mowetentertainment1 730de334a7 initial
2025-12-05 11:05:33 -05:00

2 lines
1.5 MiB
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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

(self.webpackChunkelement_web=self.webpackChunkelement_web||[]).push([[5385],{"./packages/shared-components/src/audio/Clock/index.tsx":(e,t,s)=>{"use strict";s.d(t,{z:()=>l});var n=s("./node_modules/react/index.js"),o=s("./node_modules/temporal-polyfill/chunks/classApi.js"),i=s("./node_modules/classnames/index.js"),r=s.n(i),a=s("./packages/shared-components/src/utils/DateUtils.ts");class l extends n.Component{shouldComponentUpdate(e){return Math.floor(this.props.seconds)!==Math.floor(e.seconds)}calculateDuration(e){if(!isNaN(e))return new o.fE.Duration(0,0,0,0,0,0,Math.round(e)).round({smallestUnit:"seconds",largestUnit:"hours"}).toString()}render(){const{seconds:e,role:t}=this.props;return n.createElement("time",{dateTime:this.calculateDuration(e),"aria-live":this.props["aria-live"],role:t,className:r()("mx_Clock",this.props.className)},(0,a.X)(e))}}},"./packages/shared-components/src/useViewModel.ts":(e,t,s)=>{"use strict";s.d(t,{i:()=>o});var n=s("./node_modules/react/index.js");function o(e){return(0,n.useSyncExternalStore)(e.subscribe,e.getSnapshot,e.getSnapshot)}},"./packages/shared-components/src/utils/DateUtils.ts":(e,t,s)=>{"use strict";function n(e){const t=e<0;e=Math.abs(e);const s=Math.floor(e/3600).toFixed(0).padStart(2,"0");let n="";return"00"!==s&&(n+=`${s}:`),n+=`${Math.floor(e%3600/60).toFixed(0).padStart(2,"0")}:${Math.floor(e%3600%60).toFixed(0).padStart(2,"0")}`,t&&(n="-"+n),n}s.d(t,{X:()=>n})},"./packages/shared-components/src/utils/Flex/index.ts":(e,t,s)=>{"use strict";s.d(t,{s:()=>u});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/classnames/index.js"),r=s.n(i),a=s("./node_modules/react/index.js"),l=s("./packages/shared-components/src/utils/Flex/Flex.module.css");const c=["as","display","direction","align","justify","gap","wrap","className","children"];function d(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function m(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?d(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):d(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}function u(e){let{as:t="div",display:s="flex",direction:n="row",align:i="start",justify:d="start",gap:u="0",wrap:h="nowrap",className:p,children:g}=e,v=(0,o.A)(e,c);const _=(0,a.useMemo)(()=>({"--mx-flex-display":s,"--mx-flex-direction":n,"--mx-flex-align":i,"--mx-flex-justify":d,"--mx-flex-gap":u,"--mx-flex-wrap":h}),[i,n,s,u,d,h]);return a.createElement(t,m(m({},v),{},{className:r()(l.A.flex,p),style:_}),g)}},"./packages/shared-components/src/utils/FormattingUtils.ts":(e,t,s)=>{"use strict";function n(e,t=2){if(0===e)return"0 Bytes";const s=t<0?0:t,n=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,n)).toFixed(s))+" "+["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"][n]}s.d(t,{z:()=>n})},"./packages/shared-components/src/utils/humanize.ts":(e,t,s)=>{"use strict";s.d(t,{P:()=>d});var n=s("./packages/shared-components/src/utils/i18n.tsx");const o=15e3,i=75e3,r=45,a=75,l=23,c=26;function d(e){let t=Date.now()-e;const s=Math.abs(Math.ceil(t/6e4)),d=Math.ceil(s/60),m=Math.ceil(d/24);return t>=0?t<=o?(0,n._t)("time|few_seconds_ago"):t<=i?(0,n._t)("time|about_minute_ago"):s<=r?(0,n._t)("time|n_minutes_ago",{num:s}):s<=a?(0,n._t)("time|about_hour_ago"):d<=l?(0,n._t)("time|n_hours_ago",{num:d}):d<=c?(0,n._t)("time|about_day_ago"):(0,n._t)("time|n_days_ago",{num:m}):(t=Math.abs(t),t<=o?(0,n._t)("time|in_few_seconds"):t<=i?(0,n._t)("time|in_about_minute"):s<=r?(0,n._t)("time|in_n_minutes",{num:s}):s<=a?(0,n._t)("time|in_about_hour"):d<=l?(0,n._t)("time|in_n_hours",{num:d}):d<=c?(0,n._t)("time|in_about_day"):(0,n._t)("time|in_n_days",{num:m}))}},"./packages/shared-components/src/utils/i18n.tsx":(e,t,s)=>{"use strict";s.d(t,{sf:()=>i.KEY_SEPARATOR,_t:()=>_,_3:()=>y,AO:()=>u,ax:()=>x,Ev:()=>i.getNormalizedLanguageKeys,w2:()=>f,zv:()=>i.normalizeLanguageKey,ot:()=>b});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-web-i18n/lib/index.js"),r=s("./node_modules/counterpart/index.js"),a=s.n(r);const l=s.p+"i18n/languages.ddcef0a.json";function c(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function d(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?c(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):c(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const m="i18n/";a().setSeparator(i.KEY_SEPARATOR);function u(e){return e}function h(e){return"string"==typeof e&&!e.startsWith("missing translation:")}a().setFallbackLocale("en");const p=(e,t)=>{const s=a().translate(e,d(d({},t),{},{fallbackLocale:a().getLocale()}));if(h(s))return{translated:s};const n=a().translate(e,d(d({},t),{},{locale:"en"}));return h(n)?{translated:n,isFallback:!0}:{translated:e,isFallback:!0}};function g(e,t){const s=d(d({},t),{},{interpolate:!1});return s&&"object"==typeof s&&Object.keys(s).forEach(e=>{void 0===s[e]&&(console.warn("safeCounterpartTranslate called with undefined interpolation name: "+e),s[e]="undefined"),null===s[e]&&(console.warn("safeCounterpartTranslate called with null interpolation name: "+e),s[e]="null")}),p(e,s)}const v=(e,t)=>e;function _(e,t,s){const{translated:n}=g(e,t),o=E(n,t,s);return v(o,e)}function f(e){return g(e,{}).translated}function y(e,t,s){const{translated:n,isFallback:i}=g(e,t),r=E(n,t,s);return v(i?o.createElement("span",{lang:"en"},r):r,e)}function b(e){return e.replace(/%\(([^)]*)\)/g,"% ($1)")}function E(e,t,s){let n=e;if(void 0!==t){const e={};for(const s in t)e[`%\\(${s}\\)s`]=t[s];n=w(n,e)}if(void 0!==s){const e={};for(const t in s)e[`(<${t}>(.*?)<\\/${t}>|<${t}>|<${t}\\s*\\/>)`]=s[t];n=w(n,e)}return n}function w(e,t){const s=[e];let n=!1;for(const o in t){const i=new RegExp(o,"g");let r=!1;for(let e=0;e<s.length;e++){const a=s[e];if("string"!=typeof a)continue;let l=i.exec(a);if(!l)continue;r=!0;const c=a.slice(0,l.index),d=[];let m;for(;l;){m=l;const e=l.slice(2);let s,r;if(s=t[o]instanceof Function?t[o](...e):t[o],"object"==typeof s&&(n=!0),"string"==typeof s&&""===s||d.push(s),l=i.exec(a),l){const e=m.index+m[0].length;r=a.slice(e,l.index)}else r=a.slice(m.index+m[0].length);r&&d.push(r)}s.splice(e,1,...d),""!==c&&s.splice(e,0,c)}r||"%\\(count\\)s"!==o&&"%\\(locale\\)s"!==o&&console.log(`Could not find ${i} in ${e}`)}return n?o.createElement("span",null,...s):s.join("")}async function x(){let e;e="string"==typeof l?l:m+"languages.json";const t=await fetch(e,{method:"GET"});if(!t.ok)throw new Error(`Failed to load ${e}, got ${t.status}`);return t.json()}},"./packages/shared-components/src/utils/numbers.ts":(e,t,s)=>{"use strict";function n(e,t){return Number.isFinite(e)?Number(e):t}function o(e,t,s){return Math.min(Math.max(e,t),s)}function i(...e){return[...e].reduce((e,t)=>t+e,0)}function r(e,t,s){return e*(s-t)+t}function a(e,t,s){const n=(e-t)/(s-t);return Number.isNaN(n)?0:n}s.d(t,{FZ:()=>n,cz:()=>i,qE:()=>o,s5:()=>a,yj:()=>r})},"./res/img/betas/video_rooms.png":e=>{e.exports="img/betas/video_rooms.7fada3d.png"},"./res/img/e2e/warning.svg":(e,t,s)=>{"use strict";s.d(t,{A:()=>l,I:()=>a});var n,o=s("./node_modules/react/index.js");function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)({}).hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e},i.apply(null,arguments)}var r=function(e,t){return o.createElement("svg",i({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 18 18",role:"presentation","aria-hidden":!0,ref:t},e),n||(n=o.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M2 9.27V3.05L9 1l7 2.05v6.22C16 15.63 9 17 9 17s-7-1.37-7-7.73M8.92 4.4c-.57.04-.99.54-.94 1.11l.32 4c.03.35.3.62.65.65h.06c.37 0 .68-.28.71-.65l.32-4v-.16a1.06 1.06 0 0 0-1.12-.95m.96 7.72a.88.88 0 1 1-1.76 0 .88.88 0 0 1 1.76 0",clipRule:"evenodd"})))},a=(0,o.forwardRef)(r);const l="img/e2e/warning.71ffc83.svg"},"./res/img/element-desktop-logo.svg":(e,t,s)=>{"use strict";s.d(t,{A:()=>n});s("./node_modules/react/index.js");const n="img/element-desktop-logo.9ad01e8.svg"},"./res/img/element-icons/ask-to-join.svg":(e,t,s)=>{"use strict";s.d(t,{I:()=>a});var n,o=s("./node_modules/react/index.js");function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)({}).hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e},i.apply(null,arguments)}var r=function(e,t){return o.createElement("svg",i({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 12 16",role:"presentation","aria-hidden":!0,ref:t},e),n||(n=o.createElement("path",{fill:"currentColor",d:"M6.806 16q-1.817 0-3.091-1.008t-1.826-2.425L.217 8.25q-.308-.8-.179-1.192.13-.39.585-.391.6 0 .941.358.34.359.552.908l.714 1.884q.015.05.26.183h.227V2.2q0-.35.251-.608a.8.8 0 0 1 1.177 0 .86.86 0 0 1 .244.608v5.467q0 .133.097.233a.307.307 0 0 0 .454 0 .32.32 0 0 0 .098-.233v-6.8q0-.35.251-.609A.8.8 0 0 1 6.482 0a.8.8 0 0 1 .592.258.84.84 0 0 1 .252.609v6.8q0 .133.097.233a.307.307 0 0 0 .455 0 .32.32 0 0 0 .097-.233v-5.8q0-.35.252-.609A.8.8 0 0 1 8.819 1a.8.8 0 0 1 .592.258.84.84 0 0 1 .252.609v5.8q0 .133.097.233a.307.307 0 0 0 .455 0 .32.32 0 0 0 .097-.233v-3.8q0-.35.252-.609A.8.8 0 0 1 11.156 3a.8.8 0 0 1 .592.258.84.84 0 0 1 .252.609v6.966q0 2.284-1.485 3.725Q9.03 16.001 6.806 16"})))},a=(0,o.forwardRef)(r)},"./res/img/element-icons/email-prompt.svg":(e,t,s)=>{"use strict";s.d(t,{A:()=>m,I:()=>d});var n,o,i,r,a=s("./node_modules/react/index.js");function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)({}).hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e},l.apply(null,arguments)}var c=function(e,t){return a.createElement("svg",l({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 57 46",role:"presentation","aria-hidden":!0,ref:t},e),n||(n=a.createElement("path",{fill:"#737d8c",d:"M4 17c-.5 0-.975.096-1.416.264L20 34.68l17.416-17.416A4 4 0 0 0 36 17ZM.264 19.584A4 4 0 0 0 0 21v21a4 4 0 0 0 4 4h32a4 4 0 0 0 4-4V21c0-.5-.096-.975-.264-1.416L21.16 38.16a1.6 1.6 0 0 1-.533.356 1.6 1.6 0 0 1-.627.125 1.6 1.6 0 0 1-.627-.125 1.6 1.6 0 0 1-.533-.356z"})),o||(o=a.createElement("path",{fill:"#0dbd8b",fillOpacity:.1,d:"M57 16a16 16 0 0 1-16 16 16 16 0 0 1-16-16A16 16 0 0 1 41 0a16 16 0 0 1 16 16"})),i||(i=a.createElement("path",{fill:"#fff",d:"M53 16a12 12 0 0 1-12 12 12 12 0 0 1-12-12A12 12 0 0 1 41 4a12 12 0 0 1 12 12"})),r||(r=a.createElement("path",{fill:"#0dbd8b",d:"M49 16a8 8 0 0 1-8 8 8 8 0 0 1-8-8 8 8 0 0 1 8-8 8 8 0 0 1 8 8"})))},d=(0,a.forwardRef)(c);const m="img/element-icons/email-prompt.67a8ba4.svg"},"./res/img/element-icons/room/composer/poll.svg":(e,t,s)=>{"use strict";s.d(t,{I:()=>a});var n,o=s("./node_modules/react/index.js");function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)({}).hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e},i.apply(null,arguments)}var r=function(e,t){return o.createElement("svg",i({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",role:"presentation","aria-hidden":!0,ref:t},e),n||(n=o.createElement("path",{fill:"currentColor",d:"M3 9.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5V22H3zM17 13.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5V22h-4zM10 2.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5V22h-4z"})))},a=(0,o.forwardRef)(r)},"./res/img/icon-email-pill-avatar.svg":(e,t,s)=>{"use strict";s.d(t,{A:()=>c,I:()=>l});var n,o,i=s("./node_modules/react/index.js");function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)({}).hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e},r.apply(null,arguments)}var a=function(e,t){return i.createElement("svg",r({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 65.631 67.981",role:"presentation","aria-hidden":!0,ref:t},e),n||(n=i.createElement("defs",null,i.createElement("filter",{id:"icon-email-pill-avatar_svg__a",width:1.118,height:1.158,x:-.059,y:-.079,filterUnits:"objectBoundingBox"},i.createElement("feOffset",{dy:2,in:"SourceAlpha",result:"shadowOffsetOuter1"}),i.createElement("feGaussianBlur",{in:"shadowOffsetOuter1",result:"shadowBlurOuter1",stdDeviation:16}),i.createElement("feColorMatrix",{in:"shadowBlurOuter1",result:"shadowMatrixOuter1",values:"0 0 0 0 0 0 0 0 0 0.473684211 0 0 0 0 1 0 0 0 0.241258741 0"}),i.createElement("feMerge",null,i.createElement("feMergeNode",{in:"shadowMatrixOuter1"}),i.createElement("feMergeNode",{in:"SourceGraphic"}))))),o||(o=i.createElement("g",{fill:"none",fillRule:"evenodd",stroke:"#368bd6",strokeLinecap:"round",strokeLinejoin:"round",filter:"url(#icon-email-pill-avatar_svg__a)",transform:"translate(-1493.716 -795.144)scale(3.40907)"},i.createElement("g",{transform:"translate(441.5 237.5)"},i.createElement("circle",{cx:6.286,cy:5.714,r:2.286}),i.createElement("path",{d:"M8.571 3.429v2.857a1.714 1.714 0 1 0 3.429 0v-.572a5.714 5.714 0 1 0-2.24 4.537"})))))},l=(0,i.forwardRef)(a);const c="img/icon-email-pill-avatar.a6d2e88.svg"},"./res/img/location/live-location.svg":(e,t,s)=>{"use strict";s.d(t,{I:()=>a});var n,o=s("./node_modules/react/index.js");function i(){return i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)({}).hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e},i.apply(null,arguments)}var r=function(e,t){return o.createElement("svg",i({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 26 14",role:"presentation","aria-hidden":!0,ref:t},e),n||(n=o.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M3.654 13.153a.87.87 0 0 0 .063-1.173c-2.41-2.93-2.41-7.185-.007-10.121A.885.885 0 0 0 3.654.673a.89.89 0 0 0-1.318.063c-2.93 3.582-2.93 8.765 0 12.354a.885.885 0 0 0 1.318.063m2.529-2.529a.885.885 0 0 0 .081-1.148 4.43 4.43 0 0 1 0-5.12.89.89 0 0 0-.081-1.148l-.007-.006c-.376-.377-1.016-.352-1.324.081a6.22 6.22 0 0 0 0 7.266c.314.433.948.458 1.33.075m7.132-9.585c-2.429 0-4.392 2.018-4.392 4.512 0 2.688 2.773 6.394 3.915 7.805.25.31.709.31.96 0 1.136-1.411 3.909-5.117 3.909-7.805 0-2.494-1.964-4.512-4.392-4.512m0 6.123c-.866 0-1.569-.722-1.569-1.611 0-.89.703-1.611 1.569-1.611s1.568.721 1.568 1.61-.702 1.612-1.568 1.612m8.994 4.818a.87.87 0 0 0 .063 1.173.885.885 0 0 0 1.318-.063c2.93-3.589 2.93-8.772 0-12.354a.89.89 0 0 0-1.318-.063.885.885 0 0 0-.056 1.186c2.403 2.936 2.403 7.19-.007 10.12m-2.547-2.504a.885.885 0 0 0 .081 1.148c.383.383 1.017.358 1.33-.075a6.22 6.22 0 0 0 0-7.266c-.307-.433-.947-.458-1.323-.081l-.007.006a.89.89 0 0 0-.081 1.148 4.43 4.43 0 0 1 0 5.12",clipRule:"evenodd"})))},a=(0,o.forwardRef)(r)},"./res/img/social/email-1.png":e=>{e.exports="img/social/email-1.4053cdb.png"},"./res/img/social/facebook.png":e=>{e.exports="img/social/facebook.b008f77.png"},"./res/img/social/linkedin.png":e=>{e.exports="img/social/linkedin.5764540.png"},"./res/img/social/reddit.png":e=>{e.exports="img/social/reddit.5424a6c.png"},"./res/img/social/twitter-2.png":e=>{e.exports="img/social/twitter-2.711a2e5.png"},"./res/img/warning.svg":(e,t,s)=>{"use strict";s.d(t,{A:()=>c,I:()=>l});var n,o,i=s("./node_modules/react/index.js");function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)({}).hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e},r.apply(null,arguments)}var a=function(e,t){return i.createElement("svg",r({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",xmlSpace:"preserve",viewBox:"0 0 24 23",role:"presentation","aria-hidden":!0,ref:t},e),n||(n=i.createElement("defs",null,i.createElement("path",{id:"warning_svg__a",d:"M9.2 2.2c1.6-2.9 4.1-2.9 5.7 0l8.3 15.4c1.6 2.9.2 5.3-3.2 5.3H4c-3.3 0-4.7-2.4-3.2-5.3zm0 0"}))),i.createElement("clipPath",{id:"warning_svg__b"},i.createElement("use",{xlinkHref:"#warning_svg__a",style:{overflow:"visible"}})),i.createElement("path",{d:"M-4.8-5h33.6v32.9H-4.8z",style:{clipPath:"url(#warning_svg__b)",fill:"#ff0064"}}),o||(o=i.createElement("defs",null,i.createElement("path",{id:"warning_svg__c",d:"m12.7 15 .3-9.6h-2l.3 9.6zm-.7 4.1c.7 0 1.2-.5 1.2-1.2s-.5-1.2-1.2-1.2-1.2.5-1.2 1.2.5 1.2 1.2 1.2m0 0"}))),i.createElement("clipPath",{id:"warning_svg__d"},i.createElement("use",{xlinkHref:"#warning_svg__c",style:{overflow:"visible"}})),i.createElement("path",{d:"M5.8.4h12.4v23.7H5.8z",style:{clipPath:"url(#warning_svg__d)",fill:"#fff"}}))},l=(0,i.forwardRef)(a);const c="img/warning.76eaf74.svg"},"./src/@types/media_preview.ts":(e,t,s)=>{"use strict";s.d(t,{E:()=>o,M:()=>n});let n=function(e){return e.On="on",e.Private="private",e.Off="off",e}({});const o="io.element.msc4278.media_preview_config"},"./src/Avatar.ts":(e,t,s)=>{"use strict";s.d(t,{$R:()=>y,_V:()=>h,gx:()=>g,iv:()=>f,r4:()=>v,ze:()=>b});var n=s("./node_modules/@vector-im/compound-web/dist/components/Avatar/useIdColorHash.js"),o=s("./src/utils/DMRoomMap.ts"),i=s("./src/customisations/Media.ts"),r=s("./src/utils/localRoom/isLocalRoom.ts"),a=s("./src/utils/strings.ts"),l=s("./src/settings/watchers/ThemeWatcher.ts");const c=["#e0f8d9","#e3f5f8","#faeefb","#f1efff","#ffecf0","#ffefe4"],d=["#005f00","#00548c","#822198","#5d26cd","#9f0850","#9b2200"],m=["#002600","#001b4e","#37004e","#22006a","#450018","#470000"],u=["#56c02c","#21bacd","#d991de","#ad9cfe","#fe84a2","#f6913d"];function h(e,t,s,n){let o;return null!=e&&e.getMxcAvatarUrl()&&(o=(0,i.mediaFromMxc)(e.getMxcAvatarUrl()).getThumbnailOfSourceHttp(t,s,n)),o||(o=f(e?e.userId:"")),o}function p(){return"dark"===(new l.A).getEffectiveTheme()}function g(e){const t=(0,n.K)(e);return p()?u[t-1]:d[t-1]}function v(e,t,s,n){return e.avatarUrl?(0,i.mediaFromMxc)(e.avatarUrl).getThumbnailOfSourceHttp(t,s,n):null}const _=new Map;function f(e){if(!e)return"";const t=(0,n.K)(e),s=`--avatar-background-colors_${t}`,o=getComputedStyle(document.body).getPropertyValue(s)||p()?m[t-1]:c[t-1];let i=_.get(o);return i||(!function(e){return"string"==typeof e&&(7===e.length||9===e.length)&&e.startsWith("#")&&!e.slice(1).split("").some(e=>isNaN(parseInt(e,16)))}(o)?i="":(i=function(e){const t=document.createElement("canvas");t.width=40,t.height=40;const s=t.getContext("2d");return s?(s.fillStyle=e,s.fillRect(0,0,40,40),t.toDataURL()):""}(o),_.set(o,i))),i}function y(e){if(!e)return void console.trace("`name` argument to `getInitialLetter` not supplied");if(e.length<1)return;const t=e[0];return"@"!==t&&"#"!==t&&"+"!==t||!e[1]||(e=e.substring(1)),(0,a.Ee)(e).toUpperCase()}function b(e,t,s,n,a){if(!e)return null;const l=null!=a?a:e.getMxcAvatarUrl();if(l){const e=(0,i.mediaFromMxc)(l);return void 0!==t&&void 0!==s?e.getThumbnailOfSourceHttp(t,s,n):e.srcHttp}if(e.isSpaceRoom())return null;if(!o.A.shared().getUserIdForRoomId(e.roomId)&&!(0,r.F)(e))return null;const c=e.getAvatarFallbackMember();if(null!=c&&c.getMxcAvatarUrl()){const e=(0,i.mediaFromMxc)(c.getMxcAvatarUrl());return void 0!==t&&void 0!==s?e.getThumbnailOfSourceHttp(t,s,n):e.srcHttp}return null}},"./src/BasePlatform.ts":(e,t,s)=>{"use strict";s.d(t,{FL:()=>v,ot:()=>f,U7:()=>_,Kn:()=>y,Ay:()=>E});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./src/dispatcher/dispatcher.ts"),a=s("./src/dispatcher/actions.ts"),l=s("./src/toasts/UpdateToast.tsx"),c=s("./src/MatrixClientPeg.ts"),d=s("./src/utils/StorageAccess.ts"),m=s("./src/SdkConfig.ts"),u=s("./node_modules/matrix-js-sdk/src/base64.ts");function h(e,t){const s=new Uint8Array(e.length+t.length+1);for(let t=0;t<e.length;t++)s[t]=e.charCodeAt(t);s[e.length]=124;for(let n=0;n<t.length;n++)s[e.length+1+n]=t.charCodeAt(n);return s}var p=s("./src/favicon.ts");async function g(e){const t=new URL(e,window.location.href);t.searchParams.set("cachebuster",Date.now().toString());const s=await fetch(t,{cache:"no-cache",method:"GET"});return 404===s.status||0===s.status?{}:s.ok?s.json():void 0}const v="mx_sso_hs_url",_="mx_sso_is_url",f="mx_sso_idp_id";let y=function(e){return e.Checking="CHECKING",e.Error="ERROR",e.NotAvailable="NOTAVAILABLE",e.Downloading="DOWNLOADING",e.Ready="READY",e}({});const b="mx_defer_update";class E{constructor(){(0,n.A)(this,"notificationCount",0),(0,n.A)(this,"errorDidOccur",!1),(0,n.A)(this,"_favicon",void 0),(0,n.A)(this,"initialised",Promise.resolve(void 0)),r.A.register(this.onAction.bind(this)),this.startUpdateCheck=this.startUpdateCheck.bind(this)}async getConfig(){return async function(e=""){""===e||e.endsWith("/")||(e+="/");let t=window.location.hostname.trimEnd();t.endsWith(".")&&(t=t.slice(0,-1));const s=g(`${e}config.${t}.json`),n=g(e+"config.json");try{const e=await s;if(!e||0===Object.keys(e).length)throw new Error;return e}catch{return n}}()}onAction(e){switch(e.action){case"on_client_not_viable":case a.r.OnLoggedOut:this.setNotificationCount(0)}}setNotificationCount(e){this.notificationCount!==e&&(this.notificationCount=e,this.updateFavicon())}setErrorStatus(e){this.errorDidOccur!==e&&(this.errorDidOccur=e,this.updateFavicon())}async canSelfUpdate(){return!1}startUpdateCheck(){(0,l.Y)(),localStorage.removeItem(b),r.A.dispatch({action:a.r.CheckUpdates,status:y.Checking})}installUpdate(){}shouldShowUpdate(e){if(c.J.userRegisteredWithinLastHours(24))return!1;try{const[t,s]=JSON.parse(localStorage.getItem(b));return e!==t||Date.now()>s}catch{return!0}}deferUpdate(e){const t=new Date(Date.now()+864e5);t.setHours(8,0,0,0),localStorage.setItem(b,JSON.stringify([e,t.getTime()])),(0,l.Y)()}supportsSpellCheckSettings(){return!1}allowOverridingNativeContextMenus(){return!1}supportsNotifications(){return!1}maySendNotifications(){return!1}displayNotification(e,t,s,n,i){const l={body:t,silent:!0};s&&(l.icon=s);const c=new window.Notification(e,l);c.onclick=()=>{const e={action:a.r.ViewRoom,room_id:n.roomId,metricsTrigger:"Notification"};null!=i&&i.getThread()&&(e.event_id=i.getId()),r.A.dispatch(e),window.focus()};const d=()=>c.close();return i&&(i.once(o.MatrixEventEvent.BeforeRedaction,d),c.onclose=()=>{i.off(o.MatrixEventEvent.BeforeRedaction,d)}),c}loudNotification(e,t){}clearNotification(e){e.close&&e.close()}needsUrlTooltips(){return!1}supportsSetting(e){return!1}async getSettingValue(e){}setSettingValue(e,t){throw new Error("Unimplemented")}getEventIndexingManager(){return null}setLanguage(e){}setSpellCheckEnabled(e){}async getSpellCheckEnabled(){return!1}setSpellCheckLanguages(e){}getSpellCheckLanguages(){return null}async getDesktopCapturerSources(e){return[]}supportsDesktopCapturer(){return!1}supportsJitsiScreensharing(){return!0}overrideBrowserShortcuts(){return!1}navigateForwardBack(e){}getAvailableSpellCheckLanguages(){return null}getSSOCallbackUrl(e=""){const t=new URL(window.location.href);return t.hash=e,t}startSingleSignOn(e,t,s,n,o){localStorage.setItem(v,e.getHomeserverUrl()),e.getIdentityServerUrl()&&localStorage.setItem(_,e.getIdentityServerUrl()),n&&localStorage.setItem(f,n);const i=this.getSSOCallbackUrl(s);window.location.href=e.getSsoLoginUrl(i.toString(),t,n,o)}async getPickleKey(e,t){var s;let n;try{n=await(0,d.Gt)("pickleKey",[e,t])}catch(e){i.vF.error("idbLoad for pickleKey failed",e)}return null!==(s=await async function(e,t,s){var n;if(null!==(n=crypto)&&void 0!==n&&n.subtle&&e&&e.encrypted&&e.iv&&e.cryptoKey)try{const n=h(t,s),o=await crypto.subtle.decrypt({name:"AES-GCM",iv:e.iv,additionalData:n},e.cryptoKey,e.encrypted);if(o)return(0,u.PP)(new Uint8Array(o))}catch{i.vF.error("Error decrypting pickle key")}}(n,e,t))&&void 0!==s?s:null}async createPickleKey(e,t){const s=new Uint8Array(32);crypto.getRandomValues(s);const n=await async function(e,t,s){var n;if(null===(n=crypto)||void 0===n||!n.subtle)return;const o=await crypto.subtle.generateKey({name:"AES-GCM",length:256},!1,["encrypt","decrypt"]),i=new Uint8Array(32);crypto.getRandomValues(i);const r=h(t,s);return{encrypted:await crypto.subtle.encrypt({name:"AES-GCM",iv:i,additionalData:r},o,e),iv:i,cryptoKey:o}}(s,e,t);if(void 0===n)return null;try{await(0,d.x7)("pickleKey",[e,t],n)}catch{return null}return(0,o.encodeUnpaddedBase64)(s)}async destroyPickleKey(e,t){try{await(0,d.N6)("pickleKey",[e,t])}catch(e){i.vF.error("idbDelete failed in destroyPickleKey",e)}}async clearStorage(){window.sessionStorage.clear(),window.localStorage.clear()}get baseUrl(){return window.location.origin+window.location.pathname}get defaultOidcClientUri(){return window.location.origin}async getOidcClientMetadata(){var e,t,s,n,o,i,r,a,l,c;const d=m.Ay.get();return{clientName:d.brand,clientUri:null!==(e=null===(t=d.oidc_metadata)||void 0===t?void 0:t.client_uri)&&void 0!==e?e:this.defaultOidcClientUri,redirectUris:[this.getOidcCallbackUrl().href],logoUri:null!==(s=null===(n=d.oidc_metadata)||void 0===n?void 0:n.logo_uri)&&void 0!==s?s:new URL("vector-icons/1024.png",this.baseUrl).href,applicationType:"web",contacts:null===(o=d.oidc_metadata)||void 0===o?void 0:o.contacts,tosUri:null!==(i=null===(r=d.oidc_metadata)||void 0===r?void 0:r.tos_uri)&&void 0!==i?i:null===(a=d.terms_and_conditions_links)||void 0===a||null===(a=a[0])||void 0===a?void 0:a.url,policyUri:null!==(l=null===(c=d.oidc_metadata)||void 0===c?void 0:c.policy_uri)&&void 0!==l?l:d.privacy_policy_url}}getOidcClientState(){return""}getOidcCallbackUrl(){const e=new URL(window.location.href);return e.hash="",e.searchParams.set("no_universal_links","true"),e}get favicon(){return this._favicon||(this._favicon=new p.A),this._favicon}updateFavicon(){const e=this.notificationCount;this.errorDidOccur&&this.favicon.badge(e||"×",{bgColor:"#f00"}),this.favicon.badge(e)}startUpdater(){}}},"./src/ContentMessages.ts":(e,t,s)=>{"use strict";s.d(t,{Ay:()=>$,QM:()=>W});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-encrypt-attachment/lib/browser-encrypt-attachment.js"),r=s.n(i),a=s("./node_modules/png-chunks-extract/index.js"),l=s.n(a),c=s("./node_modules/matrix-js-sdk/src/logger.ts"),d=s("./node_modules/matrix-js-sdk/src/utils.ts"),m=s("./src/dispatcher/dispatcher.ts"),u=s("./src/languageHandler.tsx"),h=s("./src/Modal.tsx"),p=s("./src/components/views/elements/Spinner.tsx"),g=s("./src/dispatcher/actions.ts");class v{constructor(e,t,s,o=0){(0,n.A)(this,"abortController",new AbortController),(0,n.A)(this,"promise",void 0),(0,n.A)(this,"uploaded",0),this.roomId=e,this.fileName=t,this.relation=s,this.fileSize=o}onProgress(e){this.uploaded=e.loaded,this.fileSize=e.total}abort(){this.abortController.abort()}get cancelled(){return this.abortController.signal.aborted}get total(){return this.fileSize}get loaded(){return this.uploaded}}var _=s("./src/settings/SettingsStore.ts"),f=s("./src/sendTimePerformanceMetrics.ts"),y=s("./src/contexts/RoomContext.ts"),b=s("./src/utils/Reply.ts"),E=s("./src/components/views/dialogs/ErrorDialog.tsx"),w=s("./node_modules/react/index.js"),x=s("./src/components/views/dialogs/BaseDialog.tsx"),A=s("./src/components/views/elements/DialogButtons.tsx"),S=s("./src/utils/FileUtils.ts");class C extends w.Component{constructor(...e){super(...e),(0,n.A)(this,"onCancelClick",()=>{this.props.onFinished(!1)}),(0,n.A)(this,"onUploadClick",()=>{this.props.onFinished(!0)})}render(){let e,t;if(1===this.props.totalFiles&&1===this.props.badFiles.length)e=(0,u._t)("upload_file|error_file_too_large",{limit:(0,S.Ov)(this.props.contentMessages.getUploadLimit()),sizeOfThisFile:(0,S.Ov)(this.props.badFiles[0].size)},{b:e=>w.createElement("strong",null,e)}),t=w.createElement(A.A,{primaryButton:(0,u._t)("action|ok"),hasCancel:!1,onPrimaryButtonClick:this.onCancelClick,focus:!0});else if(this.props.totalFiles===this.props.badFiles.length)e=(0,u._t)("upload_file|error_files_too_large",{limit:(0,S.Ov)(this.props.contentMessages.getUploadLimit())},{b:e=>w.createElement("strong",null,e)}),t=w.createElement(A.A,{primaryButton:(0,u._t)("action|ok"),hasCancel:!1,onPrimaryButtonClick:this.onCancelClick,focus:!0});else{e=(0,u._t)("upload_file|error_some_files_too_large",{limit:(0,S.Ov)(this.props.contentMessages.getUploadLimit())},{b:e=>w.createElement("strong",null,e)});const s=this.props.totalFiles-this.props.badFiles.length;t=w.createElement(A.A,{primaryButton:(0,u._t)("upload_file|upload_n_others_button",{count:s}),onPrimaryButtonClick:this.onUploadClick,hasCancel:!0,cancelButton:(0,u._t)("upload_file|cancel_all_button"),onCancel:this.onCancelClick,focus:!0})}return w.createElement(x.A,{className:"mx_UploadFailureDialog",onFinished:this.onCancelClick,title:(0,u._t)("upload_file|error_title"),contentId:"mx_Dialog_content"},w.createElement("div",{id:"mx_Dialog_content"},e,undefined),t)}}var R=s("./src/components/views/dialogs/UploadConfirmDialog.tsx"),k=s("./src/utils/image-media.ts"),I=s("./src/components/views/rooms/SendMessageComposer.tsx"),P=s("./src/utils/local-room.ts"),T=s("./src/contexts/SDKContext.ts"),O=s("./src/utils/Image.ts");function M(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function N(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?M(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):M(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const D=[0,0,22,37,0,0,22,37,1];class j extends Error{}class U extends Error{constructor(e){super(),this.cause=e}}const F=["image/avif","image/webp"];async function L(e,t,s){let n="image/png";"image/jpeg"===s.type&&(n="image/jpeg");const o=(0,O.t)(s),i=await async function(e){const t=new Image,s=URL.createObjectURL(e),n=new Promise((e,n)=>{t.onload=function(){URL.revokeObjectURL(s),e(t)},t.onerror=function(e){n(e)}});t.src=s;let o=Promise.resolve(!1);"image/png"===e.type&&(o=H(e).then(e=>{const t=new Uint8Array(e),s=l()(t);for(const e of s)if("pHYs"===e.name)return e.data.byteLength===D.length&&e.data.every((e,t)=>e===D[t]);return!1}).catch(e=>(console.error("Failed to parse PNG",e),!1)));const[i]=await Promise.all([o,n]);return{width:i?t.width>>1:t.width,height:i?t.height>>1:t.height,img:t}}(s),r=await(0,k.p)(i.img,i.width,i.height,n),a=r.info;if(void 0!==await o&&(a["org.matrix.msc4230.is_animated"]=await o),!F.includes(s.type)){const e=s.size-a.thumbnail_info.size;if(s.size<=32768||e<=65536&&e<=.1*s.size)return delete a.thumbnail_info,a}const c=await W(e,t,r.thumbnail);return a.thumbnail_url=c.url,a.thumbnail_file=c.file,a}async function B(e){const t=await function(e){return new Promise((t,s)=>{const n=document.createElement("audio");n.preload="metadata",n.muted=!0;const o=new FileReader;o.onload=function(e){var o;n.onloadedmetadata=async function(){t(n)},n.onerror=function(e){s(e)},n.src=null===(o=e.target)||void 0===o?void 0:o.result},o.onerror=function(e){s(e)},o.readAsDataURL(e)})}(e);return{duration:Math.ceil(1e3*t.duration)}}function V(e,t,s){const n={};return function(e){return new Promise((t,s)=>{const n=document.createElement("video");n.preload="metadata",n.playsInline=!0,n.muted=!0;const o=new FileReader;o.onload=function(e){var o,i;n.onloadeddata=async function(){t(n),n.pause()},n.onerror=function(e){s(e)};let r=null===(o=e.target)||void 0===o?void 0:o.result;null!==(i=r)&&void 0!==i&&i.startsWith("data:video/quicktime;")&&(r=r.replace("data:video/quicktime;","data:video/mp4;")),n.src=r,n.load(),n.play()},o.onerror=function(e){s(e)},o.readAsDataURL(e)})}(s).then(e=>(n.duration=Math.ceil(1e3*e.duration),(0,k.p)(e,e.videoWidth,e.videoHeight,"image/jpeg"))).then(s=>(Object.assign(n,s.info),W(e,t,s.thumbnail))).then(e=>(n.thumbnail_url=e.url,n.thumbnail_file=e.file,n))}function H(e){return new Promise((t,s)=>{const n=new FileReader;n.onload=function(e){var s;t(null===(s=e.target)||void 0===s?void 0:s.result)},n.onerror=function(e){s(e)},n.readAsArrayBuffer(e)})}async function W(e,t,s,n,o){var i;const a=null!=o?o:new AbortController;if(await(null===(i=e.getCrypto())||void 0===i?void 0:i.isEncryptionEnabledInRoom(t))){const t=await H(s);if(a.signal.aborted)throw new j;const o=await r().encryptAttachment(t);if(a.signal.aborted)throw new j;const i=new Blob([o.data]);let l;try{({content_uri:l}=await e.uploadContent(i,{progressHandler:n,abortController:a,includeFilename:!1,type:"application/octet-stream"}))}catch(e){if(a.signal.aborted)throw new j;throw console.error("Failed to upload file",e),new U(e)}if(a.signal.aborted)throw new j;return{file:N(N({},o.info),{},{url:l})}}{let t;try{({content_uri:t}=await e.uploadContent(s,{progressHandler:n,abortController:a}))}catch(e){if(a.signal.aborted)throw new j;throw console.error("Failed to upload file",e),new U(e)}if(a.signal.aborted)throw new j;return{url:t}}}class ${constructor(){(0,n.A)(this,"inprogress",[]),(0,n.A)(this,"mediaConfig",null)}sendStickerContentToRoom(e,t,s,n,o,i){return(0,P.Y)(t,t=>i.sendStickerMessage(t,s,e,n,o),i).catch(s=>{throw c.vF.warn(`Failed to send content with URL ${e} to room ${t}`,s),s})}getUploadLimit(){var e,t;return null!==(e=null===(t=this.mediaConfig)||void 0===t?void 0:t["m.upload.size"])&&void 0!==e?e:null}async sendContentListToRoom(e,t,s,n,o=y.Ae.Room){if(n.isGuest())return void m.A.dispatch({action:"require_registration"});const i=T.M.instance.roomViewStore.getQuotingEvent();if(!this.mediaConfig){const e=h.Ay.createDialog(p.A,void 0,"mx_Dialog_spinner");if(await Promise.race([this.ensureMediaConfigFetched(n),e.finished]),!this.mediaConfig)return;e.close()}const r=[],a=[];for(const t of e)this.isFileSizeAcceptable(t)?a.push(t):r.push(t);if(r.length>0){const{finished:t}=h.Ay.createDialog(C,{badFiles:r,totalFiles:e.length,contentMessages:this}),[s]=await t;if(!s)return}let l=!1,c=Promise.resolve();for(let e=0;e<a.length;++e){const o=a[e],r=c;if(!l){const{finished:t}=h.Ay.createDialog(R.A,{file:o,currentIndex:e,totalFiles:a.length}),[s,n]=await t;if(!s)break;n&&(l=!0)}c=(0,P.Y)(t,e=>this.sendContentToRoom(o,e,s,n,null!=i?i:void 0,r),n)}i&&m.A.dispatch({action:"reply_to_event",event:null,context:o}),m.A.dispatch({action:g.r.FocusSendMessageComposer,context:o})}getCurrentUploads(e){return this.inprogress.filter(t=>{const s=!e&&!t.relation,n=e&&t.relation&&e.rel_type===t.relation.rel_type&&e.event_id===t.relation.event_id;return(s||n)&&!t.cancelled})}cancelUpload(e){e.abort(),m.A.dispatch({action:g.r.UploadCanceled,upload:e})}async sendContentToRoom(e,t,s,n,i,r){const a=e.name||(0,u._t)("common|attachment"),l={body:a,info:{size:e.size},msgtype:o.MsgType.File};(0,I.LO)(n.getSafeUserId(),l,null,i),(0,I.gV)(l,s),i&&(0,b.fh)(l,i),_.A.getValue("Performance.addSendMessageTimingMetadata")&&(0,f.H)(l),e.type&&(l.info.mimetype=e.type);const p=new v(t,a,s,e.size);this.inprogress.push(p),m.A.dispatch({action:g.r.UploadStarted,upload:p});try{if(e.type.startsWith("image/")){l.msgtype=o.MsgType.Image;try{const s=await L(n,t,e);Object.assign(l.info,s)}catch(e){if(e instanceof U)throw e;c.vF.error(e),l.msgtype=o.MsgType.File}}else if(e.type.startsWith("audio/")){l.msgtype=o.MsgType.Audio;try{const t=await B(e);Object.assign(l.info,t)}catch(e){c.vF.error(e),l.msgtype=o.MsgType.File}}else if(e.type.startsWith("video/")){l.msgtype=o.MsgType.Video;try{const s=await V(n,t,e);Object.assign(l.info,s)}catch(e){c.vF.error(e),l.msgtype=o.MsgType.File}}else l.msgtype=o.MsgType.File;if(p.cancelled)throw new j;const i=await W(n,t,e,function(e){p.onProgress(e),m.A.dispatch({action:g.r.UploadProgress,upload:p})},p.abortController);if(l.file=i.file,l.url=i.url,p.cancelled)throw new j;if(r&&await r,p.cancelled)throw new j;const a=(null==s?void 0:s.rel_type)===o.THREAD_RELATION_TYPE.name?s.event_id:null,d=await n.sendMessage(t,null!=a?a:null,l);_.A.getValue("Performance.addSendMessageTimingMetadata")&&(0,f._)(n,t,d.event_id),m.A.dispatch({action:g.r.UploadFinished,upload:p}),m.A.dispatch({action:"message_sent"})}catch(e){const t=e instanceof U&&e.cause?e.cause:e;if(t instanceof o.HTTPError&&413===t.httpStatus&&(this.mediaConfig=null),!p.cancelled){let s=(0,u._t)("upload_failed_generic",{fileName:p.fileName});t instanceof o.HTTPError&&413===t.httpStatus&&(s=(0,u._t)("upload_failed_size",{fileName:p.fileName})),h.Ay.createDialog(E.A,{title:(0,u._t)("upload_failed_title"),description:s}),m.A.dispatch({action:g.r.UploadFailed,upload:p,error:e})}}finally{(0,d.Nz)(this.inprogress,e=>e.promise===p.promise)}}isFileSizeAcceptable(e){var t;return!(void 0!==(null===(t=this.mediaConfig)||void 0===t?void 0:t["m.upload.size"])&&e.size>this.mediaConfig["m.upload.size"])}ensureMediaConfigFetched(e){return null!==this.mediaConfig?Promise.resolve():(c.vF.log("[Media Config] Fetching"),e.getMediaConfig().then(e=>(c.vF.log("[Media Config] Fetched config:",e),e)).catch(()=>(c.vF.log("[Media Config] Could not fetch config, so not limiting uploads."),{})).then(e=>{this.mediaConfig=e}))}static sharedInstance(){return void 0===window.mxContentMessages&&(window.mxContentMessages=new $),window.mxContentMessages}}},"./src/DateUtils.ts":(e,t,s)=>{"use strict";s.d(t,{Ah:()=>S,Ak:()=>h,DE:()=>k,F0:()=>u,GX:()=>f,Lu:()=>v,Pr:()=>I,U:()=>b,VG:()=>g,Xo:()=>r.X,Yq:()=>p,a3:()=>R,ej:()=>x,fU:()=>y,fq:()=>w,fw:()=>C,rm:()=>_,td:()=>A});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./src/languageHandler.tsx"),i=s("./src/TimezoneHandler.ts"),r=s("./packages/shared-components/src/utils/DateUtils.ts");function a(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function l(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?a(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):a(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const c=6e4,d=60*c,m=24*d;function u(e="short"){const{format:t}=new Intl.DateTimeFormat((0,o.mf)(),{weekday:e,timeZone:"UTC"});return[...Array(7).keys()].map(e=>t(16725744e5+e*m))}function h(e){return{hourCycle:e?"h12":"h23"}}function p(e,t=!1,s){const n=null!=s?s:(0,o.mf)(),r=new Date;return e.toDateString()===r.toDateString()?y(e,t,n):r.getTime()-e.getTime()<6*m?new Intl.DateTimeFormat(n,l(l({},h(t)),{},{weekday:"short",hour:"numeric",minute:"2-digit",timeZone:(0,i.dB)()})).format(e):r.getFullYear()===e.getFullYear()?new Intl.DateTimeFormat(n,l(l({},h(t)),{},{weekday:"short",month:"short",day:"numeric",hour:"numeric",minute:"2-digit",timeZone:(0,i.dB)()})).format(e):v(e,t,!1,n)}function g(e,t){return new Intl.DateTimeFormat(null!=t?t:(0,o.mf)(),{weekday:"short",month:"short",day:"numeric",year:"numeric",timeZone:(0,i.dB)()}).format(e)}function v(e,t=!1,s=!0,n){return new Intl.DateTimeFormat(null!=n?n:(0,o.mf)(),l(l({},h(t)),{},{weekday:"short",month:"short",day:"numeric",year:"numeric",hour:"numeric",minute:"2-digit",second:s?"2-digit":void 0,timeZone:(0,i.dB)()})).format(e)}function _(e){return`${`${e.getFullYear()}`.padStart(4,"0")}-${`${e.getMonth()+1}`.padStart(2,"0")}-${`${e.getDate()}`.padStart(2,"0")}`}function f(e,t=!1,s){return new Intl.DateTimeFormat(null!=s?s:(0,o.mf)(),l(l({},h(t)),{},{hour:"numeric",minute:"2-digit",second:"2-digit",timeZone:(0,i.dB)()})).format(e)}function y(e,t=!1,s){return new Intl.DateTimeFormat(null!=s?s:(0,o.mf)(),l(l({},h(t)),{},{hour:"numeric",minute:"2-digit",timeZone:(0,i.dB)()})).format(e)}function b(e){const t=Math.floor(e/3600).toFixed(0),s=Math.floor(e%3600/60).toFixed(0),n=Math.floor(e%3600%60).toFixed(0);return"0"!==t?(0,o._t)("time|hours_minutes_seconds_left",{hours:t,minutes:s,seconds:n}):"0"!==s?(0,o._t)("time|minutes_seconds_left",{minutes:s,seconds:n}):(0,o._t)("time|seconds_left",{seconds:n})}function E(e,t){return Math.abs(e.getTime()-t.getTime())<=m}function w(e,t){return!(!t||!e)&&(!E(e,t)||e.getDay()!==t.getDay())}function x(e){const t=(0,o.mf)();return(0,o._t)("time|date_at_time",{date:e.toLocaleDateString(t).replace(/\//g,"-"),time:e.toLocaleTimeString(t).replace(/:/g,"-")})}function A(e){return e.toISOString()}function S(e,t){return new Intl.DateTimeFormat(null!=t?t:(0,o.mf)(),{year:"numeric",month:"numeric",day:"numeric",timeZone:(0,i.dB)()}).format(e)}function C(e,t=!1){const s=new Date;if(E(n=e,i=s)&&n.getDay()===i.getDay())return y(e,t);{let t=`${function(e="short"){const{format:t}=new Intl.DateTimeFormat((0,o.mf)(),{month:e,timeZone:"UTC"});return[...Array(12).keys()].map(e=>t(Date.UTC(2021,e)))}()[e.getMonth()]} ${e.getDate()}`;return function(e,t){return e.getFullYear()===t.getFullYear()}(e,s)||(t+=`, ${e.getFullYear()}`),t}var n,i}function R(e){return e>=m?(0,o._t)("time|short_days",{value:Math.round(e/m)}):e>=d?(0,o._t)("time|short_hours",{value:Math.round(e/d)}):e>=c?(0,o._t)("time|short_minutes",{value:Math.round(e/c)}):(0,o._t)("time|short_seconds",{value:Math.round(e/1e3)})}function k(e){const t=Math.floor(e/m),s=Math.floor(e%m/d),n=Math.floor(e%d/c),i=Math.floor(e%c/1e3);return t>0?(0,o._t)("time|short_days_hours_minutes_seconds",{days:t,hours:s,minutes:n,seconds:i}):s>0?(0,o._t)("time|short_hours_minutes_seconds",{hours:s,minutes:n,seconds:i}):n>0?(0,o._t)("time|short_minutes_seconds",{minutes:n,seconds:i}):(0,o._t)("time|short_seconds",{value:i})}const I=(e,t)=>new Intl.DateTimeFormat(null!=t?t:(0,o.mf)(),{day:"2-digit",month:"2-digit",year:"2-digit",timeZone:(0,i.dB)()}).format(e)},"./src/Editing.ts":(e,t,s)=>{"use strict";s.d(t,{O:()=>n,S:()=>o});const n=(e,t)=>`mx_edit_room_${e}_${t}`,o=e=>`mx_edit_state_${e}`},"./src/HtmlUtils.tsx":(e,t,s)=>{"use strict";s.d(t,{SR:()=>P,XZ:()=>_.XZ,aA:()=>H,aS:()=>R,bk:()=>k,hk:()=>I,kz:()=>_.kz,nr:()=>A,qy:()=>L,rR:()=>B,sH:()=>V});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/sanitize-html/index.js"),r=s.n(i),a=s("./node_modules/classnames/index.js"),l=s.n(a),c=s("./node_modules/katex/dist/katex.mjs"),d=s("./node_modules/html-entities/dist/esm/index.js"),m=s("./node_modules/escape-html/index.js"),u=s.n(m),h=s("./node_modules/@matrix-org/emojibase-bindings/build/emoji.js"),p=s("./src/settings/SettingsStore.ts"),g=s("./src/utils/Reply.ts"),v=s("./src/utils/UrlUtils.ts"),_=s("./src/Linkify.tsx"),f=s("./src/utils/strings.ts");function y(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function b(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?y(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):y(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const E=/([\ud800-\udbff])([\udc00-\udfff])/,w=/([\u2100-\u2bff])/,x=/[\u200B\s]/g,A=(()=>{try{return new RegExp("\\p{RGI_Emoji}(?!\\uFE0E)(?:(?<!\\uFE0F)\\uFE0F)?|[\\u{1f1e6}-\\u{1f1ff}]","v")}catch{return/(?!)/}})(),S=(()=>{try{return new RegExp(`^(${A.source})+$`,"iv")}catch{return/(?!)/}})();function C(e){return!!e&&(E.test(e)||w.test(e))}function R(e){var t;const s=null===(t=(0,h.getEmojiFromUnicode)(e))||void 0===t?void 0:t.shortcodes;return null!=s&&s.length?`:${s[0]}:`:""}function k(e){const t=r()(e,_.h4);return o.createElement("div",{dangerouslySetInnerHTML:{__html:t},dir:"auto"})}function I(e){return r()(e,{allowedTags:[],allowedAttributes:{},selfClosing:[],allowedSchemes:[],disallowedTagsMode:"discard"})}function P(e){try{return v._f.includes(new URL(e).protocol.slice(0,-1))}catch{return!1}}const T=b(b({},_.h4),{},{transformTags:{code:_.Gx.code,"*":_.Gx["*"]}}),O=b(b({},_.h4),{},{allowedTags:["font","del","s","a","sup","sub","b","i","u","strong","em","strike","br","div","span"]});class M{constructor(e,t){this.highlightClass=e,this.highlightLink=t}applyHighlights(e,t){let s,n=0,o=[];const i=t[0];for(;(s=e.toLowerCase().indexOf(i.toLowerCase(),n))>=0;){if(s>n){const i=e.substring(n,s);o=o.concat(this.applySubHighlights(i,t))}const r=s+i.length;o.push(this.processSnippet(e.substring(s,r),!0)),n=r}if(n!==e.length){const s=e.substring(n,void 0);o=o.concat(this.applySubHighlights(s,t))}return o}applySubHighlights(e,t){return t[1]?this.applyHighlights(e,t.slice(1)):[this.processSnippet(e,!1)]}}class N extends M{processSnippet(e,t){if(!t)return e;let s=`<span class="${this.highlightClass}">${e}</span>`;return this.highlightLink&&(s=`<a href="${encodeURI(this.highlightLink)}">${s}</a>`),s}}const D=e=>`<span class='mx_Emoji' title='${R(e)}'>${e}</span>`,j=(e,t)=>o.createElement("span",{key:t,className:"mx_Emoji",title:R(e)},e);function U(e,t){const s=t?D:j,n=[];if(!e)return n;let o="",i=0;for(const t of f.eL.segment(e))A.test(t.segment)?(o&&(n.push(o),o=""),n.push(s(t.segment,i)),i++):o+=t.segment;return o&&n.push(o),n}function F(e,t,s={}){var n;let o=_.h4;s.forComposerQuote&&(o=T),!1===s.mediaIsVisible&&null!==(n=o.transformTags)&&void 0!==n&&n.img&&(o=b(b({},o),{},{transformTags:b(b({},o.transformTags),{},{img:e=>({tagName:e,attribs:{}})})}));try{const n="org.matrix.custom.html"===e.format&&"string"==typeof e.formatted_body;let i,a=!1,l=!1;const m=null==t?void 0:t.filter(e=>!e.includes("<")).map(e=>r()(e,o));let h="string"==typeof e.formatted_body?e.formatted_body:null;const v="string"==typeof e.body?e.body:"";s.stripReplyFallback&&h&&(h=(0,g.kH)(h));const _=s.stripReplyFallback?(0,g.fJ)(v):v;a=C(n?h:v);const f=null!=m&&m.length?new N("mx_EventTile_searchHighlight",s.highlightLink):null;if(n){f&&(o.textFilter=function(e){return f.applyHighlights(e,m).join("")}),i=r()(h,o);const e=(new DOMParser).parseFromString(i,"text/html");l=!(e.body.innerHTML===e.body.textContent),l&&p.A.getValue("feature_latex_maths")&&([...e.querySelectorAll("div[data-mx-maths], span[data-mx-maths]")].forEach(e=>{e.outerHTML=c.Ay.renderToString((0,d.D4)(e.getAttribute("data-mx-maths")),{throwOnError:!1,displayMode:"DIV"==e.tagName,output:"htmlAndMathml"})}),i=e.body.innerHTML)}else f&&(i=f.applyHighlights(u()(v),m).join(""));return{bodyHasEmoji:a,isHtmlMessage:l,strippedBody:_,safeBody:i,isFormattedBody:n}}finally{delete o.textFilter}}function L(e,t,s={}){const n=F(e,t,s);let o=!1;if(!s.disableBigEmoji&&n.bodyHasEmoji){var i,r;const t=null!==(i=n.safeBody)&&void 0!==i?i:n.strippedBody;let s=void 0!==t?t.trim():"";s=s.replace(x,"");const a=S.exec(s);o=(null==a||null===(r=a[0])||void 0===r?void 0:r.length)===s.length&&(n.strippedBody===n.safeBody||void 0===e.formatted_body||!e.formatted_body.includes("http:")&&!e.formatted_body.includes("https:"))}const a=l()({mx_EventTile_body:!0,mx_EventTile_bigEmoji:o,"markdown-body":n.isHtmlMessage&&!o,translate:!0});let c,d=n.safeBody;return n.isFormattedBody&&n.bodyHasEmoji&&n.safeBody&&(d=U(n.safeBody,!0).join("")),!n.safeBody&&n.bodyHasEmoji&&(c=U(n.strippedBody,!1)),{strippedBody:n.strippedBody,formattedBody:d,emojiBodyElements:c,className:a}}function B(e,t,s={}){const n=F(e,t,s);let o=n.safeBody;return n.isFormattedBody&&n.bodyHasEmoji&&o&&(o=U(n.safeBody,!0).join("")),null!=o?o:n.strippedBody}function V(e,t,s,n=!1){let i,a=!!t,l=!1,c="";try{l=C(a?t:e),a&&(c=r()(t,n?_.h4:O),l&&(c=U(c,!0).join("")))}catch{a=!1}return!a&&l&&(i=U(e,!1)),a?c?o.createElement("span",{ref:s,dangerouslySetInnerHTML:{__html:c},dir:"auto"}):null:i||e?o.createElement("span",{ref:s,dir:"auto"},i||e):null}function H(e){switch(e.nodeName){case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"PRE":case"BLOCKQUOTE":case"P":case"UL":case"OL":case"LI":case"HR":case"TABLE":case"THEAD":case"TBODY":case"TR":case"TH":case"TD":return!0;case"DIV":return!e.hasAttribute("data-mx-maths");default:return!1}}},"./src/IdentityAuthClient.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>g});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./node_modules/matrix-js-sdk/src/logger.ts"),a=s("./src/MatrixClientPeg.ts"),l=s("./src/Modal.tsx"),c=s("./src/languageHandler.tsx"),d=s("./src/Terms.ts"),m=s("./src/utils/IdentityServerUtils.ts"),u=s("./src/components/views/dialogs/QuestionDialog.tsx"),h=s("./src/utils/UrlUtils.ts");class p extends Error{}class g{constructor(e){(0,n.A)(this,"accessToken",null),(0,n.A)(this,"tempClient",void 0),(0,n.A)(this,"authEnabled",!0),e&&(this.tempClient=(0,i.createClient)({baseUrl:"",idBaseUrl:e}))}get identityClient(){var e;return null!==(e=this.tempClient)&&void 0!==e?e:this.matrixClient}get matrixClient(){return a.J.safeGet()}writeToken(){this.tempClient||(this.accessToken?window.localStorage.setItem("mx_is_access_token",this.accessToken):window.localStorage.removeItem("mx_is_access_token"))}readToken(){return this.tempClient?null:window.localStorage.getItem("mx_is_access_token")}async getAccessToken({check:e=!0}={}){if(!this.authEnabled)return null;let t=this.accessToken;if(t||(t=this.readToken()),!t)return t=await this.registerForToken(e),t&&(this.accessToken=t,this.writeToken()),t;if(e)try{await this.checkToken(t)}catch(e){if(e instanceof d.lO||e instanceof p)throw e;t=await this.registerForToken(),t&&(this.accessToken=t,this.writeToken())}return t}async checkToken(e){const t=this.identityClient.getIdentityServerUrl();try{await this.identityClient.getIdentityAccount(e)}catch(s){if(s instanceof i.MatrixError&&"M_TERMS_NOT_SIGNED"===s.errcode)return r.vF.log("Identity server requires new terms to be agreed to"),void await(0,d.gw)(this.matrixClient,[new d.kl(i.SERVICE_TYPES.IS,t,e)]);throw s}if(!this.tempClient&&!(0,m.Os)(this.matrixClient)&&!await(0,m.mn)(this.matrixClient,t)){const{finished:e}=l.Ay.createDialog(u.A,{title:(0,c._t)("terms|identity_server_no_terms_title"),description:o.createElement("div",null,o.createElement("p",null,(0,c._t)("terms|identity_server_no_terms_description_1",{},{server:()=>o.createElement("strong",null,(0,h.FO)(t))})),o.createElement("p",null,(0,c._t)("terms|identity_server_no_terms_description_2"))),button:(0,c._t)("action|trust")}),[s]=await e;if(!s)throw new p("User aborted identity server action without terms");(0,m.eF)(this.matrixClient)}}async registerForToken(e=!0){const t=await a.J.safeGet().getOpenIdToken(),{access_token:s,token:n}=await this.identityClient.registerWithIdentityServer(t),o=n||s;return e&&await this.checkToken(o),o}}},"./src/KeyBindingsManager.ts":(e,t,s)=>{"use strict";s.d(t,{zM:()=>h});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./src/Keyboard.ts"),i=s("./src/settings/SettingsStore.ts"),r=s("./src/SdkConfig.ts"),a=s("./src/accessibility/KeyboardShortcuts.ts"),l=s("./src/accessibility/KeyboardShortcutUtils.ts");const c=e=>a.R6[e].settingNames.reduce((e,t)=>{var s;const n=null===(s=(0,l.tS)()[t])||void 0===s?void 0:s.default;return n&&e.push({action:t,keyCombo:n}),e},[]),d={getMessageComposerBindings:()=>{const e=c(a.md.COMPOSER);return i.A.getValue("MessageComposerInput.ctrlEnterToSend")?(e.push({action:a.bY.SendMessage,keyCombo:{key:o.Uz.ENTER,ctrlOrCmdKey:!0}}),e.push({action:a.bY.NewLine,keyCombo:{key:o.Uz.ENTER}}),e.push({action:a.bY.NewLine,keyCombo:{key:o.Uz.ENTER,shiftKey:!0}})):(e.push({action:a.bY.SendMessage,keyCombo:{key:o.Uz.ENTER}}),e.push({action:a.bY.NewLine,keyCombo:{key:o.Uz.ENTER,shiftKey:!0}}),o.vL&&e.push({action:a.bY.NewLine,keyCombo:{key:o.Uz.ENTER,altKey:!0}})),e},getAutocompleteBindings:()=>{const e=c(a.md.AUTOCOMPLETE);return e.push({action:a.bY.ForceCompleteAutocomplete,keyCombo:{key:o.Uz.TAB}}),e.push({action:a.bY.ForceCompleteAutocomplete,keyCombo:{key:o.Uz.TAB,ctrlKey:!0}}),e.push({action:a.bY.CompleteAutocomplete,keyCombo:{key:o.Uz.ENTER}}),e.push({action:a.bY.CompleteAutocomplete,keyCombo:{key:o.Uz.ENTER,ctrlKey:!0}}),e},getRoomListBindings:()=>c(a.md.ROOM_LIST),getRoomBindings:()=>{const e=c(a.md.ROOM);return i.A.getValue("ctrlFForSearch")&&e.push({action:a.bY.SearchInRoom,keyCombo:{key:o.Uz.F,ctrlOrCmdKey:!0}}),e},getNavigationBindings:()=>c(a.md.NAVIGATION),getAccessibilityBindings:()=>c(a.md.ACCESSIBILITY),getCallBindings:()=>c(a.md.CALLS),getLabsBindings:()=>r.Ay.get("show_labs_settings")?c(a.md.LABS):[]};function m(e,t,s){var n,o,i,r,a,l,c,d;if(void 0!==t.key)if(e.shiftKey){if(e.key.toLowerCase()!==t.key.toLowerCase())return!1}else if(e.key!==t.key)return!1;const m=null!==(n=t.ctrlKey)&&void 0!==n&&n,u=null!==(o=t.altKey)&&void 0!==o&&o,h=null!==(i=t.shiftKey)&&void 0!==i&&i,p=null!==(r=t.metaKey)&&void 0!==r&&r,g=null!==(a=e.ctrlKey)&&void 0!==a&&a,v=null!==(l=e.altKey)&&void 0!==l&&l,_=null!==(c=e.shiftKey)&&void 0!==c&&c,f=null!==(d=e.metaKey)&&void 0!==d&&d;if(t.ctrlOrCmdKey){if(s){if(!f||g!==m||v!==u||_!==h)return!1}else if(!g||f!==p||v!==u||_!==h)return!1;return!0}return f===p&&g===m&&v===u&&_===h}const u=new class{constructor(){(0,n.A)(this,"bindingsProviders",[d])}getAction(e,t){for(const s of e){const e=s().find(e=>m(t,e.keyCombo,o.vL));if(e)return e.action}}getMessageComposerAction(e){return this.getAction(this.bindingsProviders.map(e=>e.getMessageComposerBindings),e)}getAutocompleteAction(e){return this.getAction(this.bindingsProviders.map(e=>e.getAutocompleteBindings),e)}getRoomListAction(e){return this.getAction(this.bindingsProviders.map(e=>e.getRoomListBindings),e)}getRoomAction(e){return this.getAction(this.bindingsProviders.map(e=>e.getRoomBindings),e)}getNavigationAction(e){return this.getAction(this.bindingsProviders.map(e=>e.getNavigationBindings),e)}getAccessibilityAction(e){return this.getAction(this.bindingsProviders.map(e=>e.getAccessibilityBindings),e)}getCallAction(e){return this.getAction(this.bindingsProviders.map(e=>e.getCallBindings),e)}getLabsAction(e){return this.getAction(this.bindingsProviders.map(e=>e.getLabsBindings),e)}};function h(){return u}},"./src/Keyboard.ts":(e,t,s)=>{"use strict";s.d(t,{Et:()=>r,Uz:()=>n,cp:()=>i,fg:()=>a,vL:()=>o});const n={HOME:"Home",END:"End",PAGE_UP:"PageUp",PAGE_DOWN:"PageDown",BACKSPACE:"Backspace",DELETE:"Delete",ARROW_UP:"ArrowUp",ARROW_DOWN:"ArrowDown",ARROW_LEFT:"ArrowLeft",ARROW_RIGHT:"ArrowRight",F6:"F6",TAB:"Tab",ESCAPE:"Escape",ENTER:"Enter",ALT:"Alt",CONTROL:"Control",META:"Meta",SHIFT:"Shift",CONTEXT_MENU:"ContextMenu",COMMA:",",PERIOD:".",LESS_THAN:"<",GREATER_THAN:">",BACKTICK:"`",SPACE:" ",SLASH:"/",SQUARE_BRACKET_LEFT:"[",SQUARE_BRACKET_RIGHT:"]",SEMICOLON:";",A:"a",B:"b",C:"c",D:"d",E:"e",F:"f",G:"g",H:"h",I:"i",J:"j",K:"k",L:"l",M:"m",N:"n",O:"o",P:"p",Q:"q",R:"r",S:"s",T:"t",U:"u",V:"v",W:"w",X:"x",Y:"y",Z:"z"},o=navigator.platform.toUpperCase().includes("MAC"),i=window.electron;function r(e){return o?e.metaKey&&!e.altKey&&!e.ctrlKey&&!e.shiftKey:e.ctrlKey&&!e.altKey&&!e.metaKey&&!e.shiftKey}function a(e){return e.metaKey||e.altKey||e.ctrlKey||e.shiftKey}},"./src/LegacyCallHandler.tsx":(e,t,s)=>{"use strict";s.d(t,{cd:()=>z,uv:()=>K,Ay:()=>J});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./node_modules/matrix-js-sdk/src/webrtc/call.ts"),a=s("./node_modules/matrix-js-sdk/src/logger.ts"),l=s("./node_modules/matrix-js-sdk/src/webrtc/callEventHandler.ts"),c=s("./src/MatrixClientPeg.ts"),d=s("./src/Modal.tsx"),m=s("./src/languageHandler.tsx"),u=s("./src/dispatcher/dispatcher.ts"),h=s("./src/utils/WidgetUtils.ts"),p=s("./src/settings/SettingsStore.ts"),g=s("./src/widgets/WidgetType.ts"),v=s("./src/settings/SettingLevel.ts"),_=s("./src/components/views/dialogs/QuestionDialog.tsx"),f=s("./src/components/views/dialogs/ErrorDialog.tsx"),y=s("./src/stores/WidgetStore.ts"),b=s("./src/stores/widgets/WidgetMessagingStore.ts"),E=s("./src/stores/widgets/ElementWidgetActions.ts"),w=s("./src/settings/UIFeature.ts"),x=s("./src/dispatcher/actions.ts"),A=s("./src/widgets/ManagedHybrid.ts"),S=s("./src/SdkConfig.ts"),C=s("./src/createRoom.ts"),R=s("./src/stores/widgets/WidgetLayoutStore.ts"),k=s("./node_modules/classnames/index.js"),I=s.n(k),P=s("./src/components/views/avatars/RoomAvatar.tsx"),T=s("./src/components/views/elements/AccessibleButton.tsx");class O extends o.Component{constructor(e){super(e),(0,n.A)(this,"roomId",void 0),(0,n.A)(this,"componentDidMount",()=>{J.instance.addListener(K.SilencedCallsChanged,this.onSilencedCallsChanged)}),(0,n.A)(this,"onSilencedCallsChanged",()=>{this.setState({silenced:J.instance.isCallSilenced(this.props.call.callId)})}),(0,n.A)(this,"onAnswerClick",e=>{e.stopPropagation(),J.instance.answerCall(this.roomId)}),(0,n.A)(this,"onRejectClick",e=>{e.stopPropagation(),J.instance.hangupOrReject(this.roomId,!0)}),(0,n.A)(this,"onSilenceClick",e=>{e.stopPropagation();const t=this.props.call.callId;this.state.silenced?J.instance.unSilenceCall(t):J.instance.silenceCall(t)});const t=J.instance.roomIdForCall(this.props.call);if(!t)throw new Error("Unable to find room for incoming call");this.roomId=t,this.state={silenced:J.instance.isCallSilenced(this.props.call.callId)}}componentWillUnmount(){J.instance.removeListener(K.SilencedCallsChanged,this.onSilencedCallsChanged)}render(){const e=c.J.safeGet().getRoom(this.roomId),t=this.props.call.type===r.JG.Voice,s=J.instance.isForcedSilent();let n=this.state.silenced?(0,m._t)("voip|unsilence"):(0,m._t)("voip|silence");s&&(n=(0,m._t)("voip|silenced"));const i=I()("mx_IncomingLegacyCallToast_content",{mx_IncomingLegacyCallToast_content_voice:t,mx_IncomingLegacyCallToast_content_video:!t}),a=I()("mx_IncomingLegacyCallToast_iconButton",{mx_IncomingLegacyCallToast_unSilence:this.state.silenced,mx_IncomingLegacyCallToast_silence:!this.state.silenced});return o.createElement(o.Fragment,null,o.createElement(P.A,{room:null!=e?e:void 0,size:"32px"}),o.createElement("div",{className:i},o.createElement("span",{className:"mx_LegacyCallEvent_caller"},e?e.name:(0,m._t)("voip|unknown_caller")),o.createElement("div",{className:"mx_LegacyCallEvent_type"},o.createElement("div",{className:"mx_LegacyCallEvent_type_icon"}),t?(0,m._t)("voip|voice_call"):(0,m._t)("voip|video_call")),o.createElement("div",{className:"mx_IncomingLegacyCallToast_buttons"},o.createElement(T.A,{className:"mx_IncomingLegacyCallToast_button mx_IncomingLegacyCallToast_button_decline",onClick:this.onRejectClick,kind:"danger"},o.createElement("span",null," ",(0,m._t)("action|decline")," ")),o.createElement(T.A,{className:"mx_IncomingLegacyCallToast_button mx_IncomingLegacyCallToast_button_accept",onClick:this.onAnswerClick,kind:"primary"},o.createElement("span",null," ",(0,m._t)("action|accept")," ")))),o.createElement(T.A,{className:a,disabled:s,onClick:this.onSilenceClick,title:n}))}}var M=s("./src/stores/ToastStore.ts"),N=s("./src/components/views/dialogs/InviteDialogTypes.ts"),D=s("./src/utils/dm/findDMForUser.ts"),j=s("./src/utils/room/getJoinedNonFunctionalMembers.ts"),U=s("./src/utils/notifications.ts"),F=s("./src/Typeguards.ts"),L=s("./src/audio/BackgroundAudio.ts"),B=s("./src/widgets/Jitsi.ts");const V="m.protocol.pstn",H="im.vector.protocol.pstn",W=["error","emptied","stalled","suspend","waiting"],$=[...W,"play","pause","playing","ended","loadeddata","loadedmetadata","canplay","canplaythrough","volumechange"];let z=function(e){return e.Ring="ringAudio",e.Ringback="ringbackAudio",e.CallEnd="callendAudio",e.Busy="busyAudio",e}({});let K=function(e){return e.CallsChanged="calls_changed",e.CallChangeRoom="call_change_room",e.SilencedCallsChanged="silenced_calls_changed",e.ShownSidebarsChanged="shown_sidebars_changed",e.CallState="call_state",e.ProtocolSupport="protocol_support",e}({});class J extends i.TypedEventEmitter{constructor(...e){super(...e),(0,n.A)(this,"calls",new Map),(0,n.A)(this,"transferees",new Map),(0,n.A)(this,"supportsPstnProtocol",null),(0,n.A)(this,"pstnSupportPrefixed",null),(0,n.A)(this,"assertedIdentityNativeUsers",new Map),(0,n.A)(this,"silencedCalls",new Set),(0,n.A)(this,"shownSidebars",new Map),(0,n.A)(this,"backgroundAudio",new L.J),(0,n.A)(this,"playingSources",{}),(0,n.A)(this,"onCallIncoming",e=>{var t,s;if(null===(t=c.J.get())||void 0===t||!t.supportsVoip())return;const n=J.instance.roomIdForCall(e);if(!n)return;if(this.getCallForRoom(n))return void a.vF.log("Got incoming call for room "+n+" but there's already a call for this room: ignoring");this.addCallForRoom(n,e),this.setCallListeners(e),this.onCallStateChanged(e.state,null,e);const o=c.J.safeGet(),i=o.getRoom(e.roomId);i&&(null===(s=o.getCrypto())||void 0===s||s.prepareToEncrypt(i))}),(0,n.A)(this,"onCallStateChanged",(e,t,s)=>{const n=this.roomIdForCall(s);if(n&&this.matchesCallForThisRoom(s)){switch(this.setCallState(s,e),u.A.dispatch({action:"call_state",room_id:n,state:e}),t){case r.iP.Ringing:this.pause(z.Ring);break;case r.iP.InviteSent:this.pause(z.Ringback)}switch(e!==r.iP.Ringing&&this.silencedCalls.delete(s.callId),e){case r.iP.Ringing:{const e=c.J.safeGet().pushProcessor.getPushRuleById(i.RuleId.IncomingCall),t=null==e?void 0:e.enabled,n=null==e?void 0:e.actions.some(e=>"string"!=typeof e&&e.set_tweak===i.TweakName.Sound&&"ring"===e.value);t&&n&&!this.isForcedSilent()?this.play(z.Ring):this.silenceCall(s.callId);break}case r.iP.InviteSent:this.play(z.Ringback);break;case r.iP.Ended:{const e=s.hangupReason;if((0,F.P)(n)&&this.removeCallForRoom(n),t===r.iP.InviteSent&&s.hangupParty===r.Jv.Remote){if(this.play(z.Busy),!e||[r.Il.UserHangup,"user hangup"].includes(e))break;let t,n;s.hangupReason===r.Il.UserBusy?(t=(0,m._t)("voip|user_busy"),n=(0,m._t)("voip|user_busy_description")):(t=(0,m._t)("voip|call_failed"),n=(0,m._t)("voip|call_failed_description")),d.Ay.createDialog(f.A,{title:t,description:n})}else e===r.Il.AnsweredElsewhere&&t===r.iP.Connecting?d.Ay.createDialog(f.A,{title:(0,m._t)("voip|answered_elsewhere"),description:(0,m._t)("voip|answered_elsewhere_description")}):t!==r.iP.Fledgling&&t!==r.iP.Ringing&&this.play(z.CallEnd);(0,F.P)(n)&&this.logCallStats(s,n);break}}}})}static get instance(){return window.mxLegacyCallHandler||(window.mxLegacyCallHandler=new J),window.mxLegacyCallHandler}roomIdForCall(e){var t;if(!e)return null;if(this.shouldObeyAssertedfIdentity()){const t=this.assertedIdentityNativeUsers.get(e.callId);if(t){const e=(0,D.D)(c.J.safeGet(),t);if(e)return e.roomId}}return null!==(t=e.roomId)&&void 0!==t?t:null}start(){p.A.getValue(w.f.Voip)&&c.J.safeGet().on(l.B.Incoming,this.onCallIncoming),this.checkProtocols(3)}stop(){const e=c.J.get();e&&e.removeListener(l.B.Incoming,this.onCallIncoming)}handleEvent(e){const t=e.target,s=null==t?void 0:t.id;W.includes(e.type)?a.vF.error(`LegacyCallHandler: encountered "${e.type}" event with <audio id="${s}">`,e):$.includes(e.type)&&((...e)=>{p.A.getValue("debug_legacy_call_handler")&&a.vF.log.call(console,"LegacyCallHandler debuglog:",...e)})(`encountered "${e.type}" event with <audio id="${s}">`,e)}isForcedSilent(){const e=c.J.safeGet();return(0,U.J7)(e)}silenceCall(e){e&&(this.silencedCalls.add(e),this.emit(K.SilencedCallsChanged,this.silencedCalls),this.areAnyCallsUnsilenced()||this.pause(z.Ring))}unSilenceCall(e){e&&!this.isForcedSilent()&&(this.silencedCalls.delete(e),this.emit(K.SilencedCallsChanged,this.silencedCalls),this.play(z.Ring))}isCallSilenced(e){return this.isForcedSilent()||!!e&&this.silencedCalls.has(e)}areAnyCallsUnsilenced(){for(const e of this.calls.values())if(e.state===r.iP.Ringing&&!this.isCallSilenced(e.callId))return!0;return!1}setCallSidebarShown(e,t){this.shownSidebars.set(e,t),this.emit(K.ShownSidebarsChanged,this.shownSidebars)}isCallSidebarShown(e){var t;return!!e&&(null===(t=this.shownSidebars.get(e))||void 0===t||t)}async checkProtocols(e){try{const e=await c.J.safeGet().getThirdpartyProtocols();void 0!==e[V]?(this.supportsPstnProtocol=Boolean(e[V]),this.supportsPstnProtocol&&(this.pstnSupportPrefixed=!1)):void 0!==e[H]?(this.supportsPstnProtocol=Boolean(e[H]),this.supportsPstnProtocol&&(this.pstnSupportPrefixed=!0)):this.supportsPstnProtocol=null,this.emit(K.ProtocolSupport)}catch(t){1===e?a.vF.log("Failed to check for protocol support and no retries remain: assuming no support",t):(a.vF.log("Failed to check for protocol support: will retry",t),window.setTimeout(()=>{this.checkProtocols(e-1)},1e4))}}shouldObeyAssertedfIdentity(){var e;return!(null===(e=S.Ay.getObject("voip"))||void 0===e||!e.get("obey_asserted_identity"))}getSupportsPstnProtocol(){var e;return null!==(e=this.supportsPstnProtocol)&&void 0!==e&&e}async pstnLookup(e){try{return await c.J.safeGet().getThirdpartyUser(this.pstnSupportPrefixed?H:V,{"m.id.phone":e})}catch(e){return a.vF.warn("Failed to lookup user from phone number",e),Promise.resolve([])}}getCallById(e){for(const t of this.calls.values())if(t.callId===e)return t;return null}getCallForRoom(e){return this.calls.get(e)||null}getAllActiveCalls(){const e=[];for(const t of this.calls.values())t.state!==r.iP.Ended&&t.state!==r.iP.Ringing&&e.push(t);return e}getAllActiveCallsNotInRoom(e){const t=[];for(const[s,n]of this.calls.entries())s!==e&&n.state!==r.iP.Ended&&t.push(n);return t}getAllActiveCallsForPip(e){const t=c.J.safeGet().getRoom(e);return t&&R.aK.instance.hasMaximisedWidget(t)?this.getAllActiveCalls():this.getAllActiveCallsNotInRoom(e)}getTransfereeForCallId(e){return this.transferees.get(e)}async play(e){const t=`LegacyCallHandler.play(${e}):`;a.vF.debug(`${t} beginning of function`);const s={[z.Ring]:["./media/ring",!0],[z.Ringback]:["./media/ringback",!0],[z.CallEnd]:["./media/callend",!1],[z.Busy]:["./media/busy",!1]},[n,o]=s[e],i=await this.backgroundAudio.pickFormatAndPlay(n,["mp3","ogg"],o);this.playingSources[e]&&a.vF.warn(`${t} Already playing audio ${e}!`),this.playingSources[e]=i,a.vF.debug(`${t} playing audio successfully`)}pause(e){const t=`LegacyCallHandler.pause(${e}):`;a.vF.debug(`${t} beginning of function`);const s=this.playingSources[e];s?(s.stop(),delete this.playingSources[e],a.vF.debug(`${t} paused audio`)):a.vF.debug(`${t} audio not playing`)}isPlaying(e){return!!this.playingSources[e]}matchesCallForThisRoom(e){const t=this.roomIdForCall(e),s=t?this.getCallForRoom(t):null;return!!s&&e.callId===s.callId}setCallListeners(e){let t=this.roomIdForCall(e);e.on(r.$E.Error,t=>{this.matchesCallForThisRoom(e)&&(a.vF.error("Call error:",t),t.code!==r.Il.NoUserMedia?0!==c.J.safeGet().getTurnServers().length||null!==p.A.getValue("fallbackICEServerAllowed")?d.Ay.createDialog(f.A,{title:(0,m._t)("voip|call_failed"),description:t.message}):this.showICEFallbackPrompt():this.showMediaCaptureError(e))}),e.on(r.$E.Hangup,()=>{t&&this.matchesCallForThisRoom(e)&&(0,F.P)(t)&&this.removeCallForRoom(t)}),e.on(r.$E.State,(t,s)=>{this.onCallStateChanged(t,s,e)}),e.on(r.$E.Replaced,s=>{t&&this.matchesCallForThisRoom(e)&&(a.vF.log(`Call ID ${e.callId} is being replaced by call ID ${s.callId}`),e.state===r.iP.Ringing?this.pause(z.Ring):e.state===r.iP.InviteSent&&this.pause(z.Ringback),(0,F.P)(t)&&(this.removeCallForRoom(t),this.addCallForRoom(t,s)),this.setCallListeners(s),this.setCallState(s,s.state))}),e.on(r.$E.AssertedIdentityChanged,async()=>{var s;if(!t||!this.matchesCallForThisRoom(e))return;if(a.vF.log(`Call ID ${e.callId} got new asserted identity:`,e.getRemoteAssertedIdentity()),!this.shouldObeyAssertedfIdentity())return void a.vF.log("asserted identity not enabled in config: ignoring");const n=null===(s=e.getRemoteAssertedIdentity())||void 0===s?void 0:s.id;if(n){this.assertedIdentityNativeUsers.set(e.callId,n),await(0,C.EP)(c.J.safeGet(),n);const s=this.roomIdForCall(e);a.vF.log(`Old room ID: ${t}, new room ID: ${s}`),s!==t&&(0,F.P)(t)&&(0,F.P)(s)&&(this.removeCallForRoom(t),t=s,a.vF.log("Moving call to room "+t),this.addCallForRoom(t,e,!0))}})}async logCallStats(e,t){const s=await e.getCurrentCallStats();if(a.vF.debug(`Call completed. Call ID: ${e.callId}, virtual room ID: ${e.roomId}, user-facing room ID: ${t}, direction: ${e.direction}, our Party ID: ${e.ourPartyId}, hangup party: ${e.hangupParty}, hangup reason: ${e.hangupReason}`),s){a.vF.debug("Local candidates:");for(const e of s.filter(e=>"local-candidate"===e.type)){const t=e.address||e.ip;a.vF.debug(`${e.id} - type: ${e.candidateType}, address: ${t}, port: ${e.port}, protocol: ${e.protocol}, relay protocol: ${e.relayProtocol}, network type: ${e.networkType}`)}a.vF.debug("Remote candidates:");for(const e of s.filter(e=>"remote-candidate"===e.type)){const t=e.address||e.ip;a.vF.debug(`${e.id} - type: ${e.candidateType}, address: ${t}, port: ${e.port}, protocol: ${e.protocol}`)}a.vF.debug("Candidate pairs:");for(const e of s.filter(e=>"candidate-pair"===e.type))a.vF.debug(`${e.localCandidateId} / ${e.remoteCandidateId} - state: ${e.state}, nominated: ${e.nominated}, requests sent ${e.requestsSent}, requests received ${e.requestsReceived}, responses received: ${e.responsesReceived}, responses sent: ${e.responsesSent}, bytes received: ${e.bytesReceived}, bytes sent: ${e.bytesSent}, `);a.vF.debug("Outbound RTP:");for(const e of s.filter(e=>"outbound-rtp"===e.type))a.vF.debug(e);a.vF.debug("Inbound RTP:");for(const e of s.filter(e=>"inbound-rtp"===e.type))a.vF.debug(e)}else a.vF.debug("Call statistics are undefined. The call has probably failed before a peerConn was established")}setCallState(e,t){const s=J.instance.roomIdForCall(e);a.vF.log(`Call state in ${s} changed to ${t}`);const n=`call_${e.callId}`;t===r.iP.Ringing?M.A.sharedInstance().addOrReplaceToast({key:n,priority:100,component:O,bodyClassName:"mx_IncomingLegacyCallToast",props:{call:e}}):M.A.sharedInstance().dismissToast(n),this.emit(K.CallState,s,t)}removeCallForRoom(e){a.vF.log("Removing call for room ",e),this.calls.delete(e),this.emit(K.CallsChanged,this.calls)}showICEFallbackPrompt(){const e=c.J.safeGet(),{finished:t}=d.Ay.createDialog(_.A,{title:(0,m._t)("voip|misconfigured_server"),description:o.createElement("div",null,o.createElement("p",null,(0,m._t)("voip|misconfigured_server_description",{homeserverDomain:e.getDomain()},{code:e=>o.createElement("code",null,e)})),o.createElement("p",null,(0,m._t)("voip|misconfigured_server_fallback",void 0,{server:()=>o.createElement("code",null,new URL(r.ZB).pathname)}))),button:(0,m._t)("voip|misconfigured_server_fallback_accept",{server:new URL(r.ZB).pathname}),cancelButton:(0,m._t)("action|ok")},void 0,!0);t.then(([e])=>{p.A.setValue("fallbackICEServerAllowed",null,v.p.DEVICE,e)})}showMediaCaptureError(e){let t,s;e.type===r.JG.Voice?(t=(0,m._t)("voip|unable_to_access_microphone"),s=o.createElement("div",null,(0,m._t)("voip|call_failed_microphone"))):e.type===r.JG.Video&&(t=(0,m._t)("voip|unable_to_access_media"),s=o.createElement("div",null,(0,m._t)("voip|call_failed_media"),o.createElement("ul",null,o.createElement("li",null,(0,m._t)("voip|call_failed_media_connected")),o.createElement("li",null,(0,m._t)("voip|call_failed_media_permissions")),o.createElement("li",null,(0,m._t)("voip|call_failed_media_applications"))))),d.Ay.createDialog(f.A,{title:t,description:s},void 0,!0)}async placeMatrixCall(e,t,s){const n=c.J.safeGet(),o=n.getTurnServersExpiry()-Date.now();a.vF.log("Current turn creds expire in "+o+" ms");const i=n.createCall(e);try{this.addCallForRoom(e,i)}catch{return void d.Ay.createDialog(f.A,{title:(0,m._t)("voip|already_in_call"),description:(0,m._t)("voip|already_in_call_person")})}s&&this.transferees.set(i.callId,s),this.setCallListeners(i),this.setActiveCallRoomId(e),t===r.JG.Voice?i.placeVoiceCall():"video"===t?i.placeVideoCall():a.vF.error("Unknown conf call type: "+t)}async placeCall(e,t,s){const n=c.J.safeGet(),o=n.getRoom(e);if(!o)return void a.vF.error(`Room ${e} does not exist.`);if((0,A.dq)(o))return void await(0,A.ry)(o);if(!n.supportsVoip())return void d.Ay.createDialog(f.A,{title:(0,m._t)("voip|unsupported"),description:(0,m._t)("voip|unsupported_browser")});if(n.getSyncState()===i.SyncState.Error)return void d.Ay.createDialog(f.A,{title:(0,m._t)("voip|connection_lost"),description:(0,m._t)("voip|connection_lost_description")});if(this.getAllActiveCalls().length>1)return void d.Ay.createDialog(f.A,{title:(0,m._t)("voip|too_many_calls"),description:(0,m._t)("voip|too_many_calls_description")});const r=(0,j.T)(o);r.length<=1?d.Ay.createDialog(f.A,{description:(0,m._t)("voip|cannot_call_yourself_description")}):2!==r.length||B.k.getInstance().useFor1To1Calls?await this.placeJitsiCall(e,t):(a.vF.info(`Place ${t} call in ${e}`),await this.placeMatrixCall(e,t,s))}hangupAllCalls(){for(const e of this.calls.values())this.stopRingingIfPossible(e.callId),e.hangup(r.Il.UserHangup,!1)}hangupOrReject(e,t){const s=this.calls.get(e);s&&(this.stopRingingIfPossible(s.callId),t?s.reject():s.hangup(r.Il.UserHangup,!1))}answerCall(e){if(!this.calls.has(e))return;const t=this.calls.get(e);this.stopRingingIfPossible(t.callId),this.getAllActiveCalls().length>1?d.Ay.createDialog(f.A,{title:(0,m._t)("voip|too_many_calls"),description:(0,m._t)("voip|too_many_calls_description")}):(t.answer(),this.setActiveCallRoomId(e),u.A.dispatch({action:x.r.ViewRoom,room_id:e,metricsTrigger:"WebAcceptCall"}))}stopRingingIfPossible(e){this.silencedCalls.delete(e),this.areAnyCallsUnsilenced()||this.pause(z.Ring)}async dialNumber(e,t){const s=await this.pstnLookup(e);if(!s||0===s.length||!s[0].userid)return void d.Ay.createDialog(f.A,{title:(0,m._t)("voip|msisdn_lookup_failed"),description:(0,m._t)("voip|msisdn_lookup_failed_description")});const n=s[0].userid,o=await(0,C.EP)(c.J.safeGet(),n);if(!o)throw new Error("Failed to ensure DM exists for dialing number");u.A.dispatch({action:x.r.ViewRoom,room_id:o,metricsTrigger:"WebDialPad"}),await this.placeMatrixCall(o,r.JG.Voice,t)}async startTransferToPhoneNumber(e,t,s){if(s)return void this.dialNumber(t,e);const n=await this.pstnLookup(t);n&&0!==n.length&&n[0].userid?await this.startTransferToMatrixID(e,n[0].userid,s):d.Ay.createDialog(f.A,{title:(0,m._t)("voip|msisdn_transfer_failed"),description:(0,m._t)("voip|msisdn_lookup_failed_description")})}async startTransferToMatrixID(e,t,s){if(s){const s=await(0,C.EP)(c.J.safeGet(),t);if(!s)return a.vF.log("Failed to transfer call, could not ensure dm exists"),void d.Ay.createDialog(f.A,{title:(0,m._t)("voip|transfer_failed"),description:(0,m._t)("voip|transfer_failed_description")});this.placeCall(s,e.type,e),u.A.dispatch({action:x.r.ViewRoom,room_id:s,should_peek:!1,joining:!1,metricsTrigger:void 0})}else try{await e.transfer(t)}catch(e){a.vF.log("Failed to transfer call",e),d.Ay.createDialog(f.A,{title:(0,m._t)("voip|transfer_failed"),description:(0,m._t)("voip|transfer_failed_description")})}}setActiveCallRoomId(e){a.vF.info("Setting call in room "+e+" active");for(const[t,s]of this.calls.entries())s.state!==r.iP.Ended&&(t===e?s.setRemoteOnHold(!1):(a.vF.info("Holding call in room "+t+" because another call is being set active"),s.setRemoteOnHold(!0)))}hasAnyUnheldCall(){for(const e of this.calls.values())if(e.state!==r.iP.Ended&&!e.isRemoteOnHold())return!0;return!1}async placeJitsiCall(e,t){const s=c.J.safeGet();a.vF.info(`Place conference call in ${e}`),u.A.dispatch({action:"appsDrawer",show:!0});const n=y.Ay.instance.getApps(e).find(e=>g.x.JITSI.matches(e.type));if(n){const t=s.getRoom(e);return void((0,F.P)(t)&&R.aK.instance.moveToContainer(t,n,R.mc.Top))}try{await h.A.addJitsiWidget(s,e,t,"Jitsi",!1),a.vF.log("Jitsi widget added")}catch(e){e instanceof i.MatrixError&&"M_FORBIDDEN"===e.errcode&&d.Ay.createDialog(f.A,{title:(0,m._t)("voip|no_permission_conference"),description:(0,m._t)("voip|no_permission_conference_description")}),a.vF.error(e)}}hangupCallApp(e){a.vF.info("Leaving conference call in "+e);const t=y.Ay.instance.getRoom(e);if(!t)return;t.widgets.filter(e=>g.x.JITSI.matches(e.type)).forEach(e=>{const t=b.c.instance.getMessagingForUid(h.A.getWidgetUid(e));t&&t.transport.send(E.k.HangupCall,{})})}showTransferDialog(e){e.setRemoteOnHold(!0),u.A.dispatch({action:x.r.OpenInviteDialog,kind:N.m.CallTransfer,call:e,analyticsName:"Transfer Call",className:"mx_InviteDialog_transferWrapper",onFinishedCallback:t=>{0!==t.length&&!1!==t[0]||e.setRemoteOnHold(!1)}})}addCallForRoom(e,t,s=!1){if(this.calls.has(e))throw a.vF.log(`Couldn't add call to room ${e}: already have a call for this room`),new Error("Already have a call for room "+e);a.vF.log("setting call for room "+e),this.calls.set(e,t),s?this.emit(K.CallChangeRoom,t):this.emit(K.CallsChanged,this.calls)}}},"./src/Linkify.tsx":(e,t,s)=>{"use strict";s.d(t,{Gx:()=>p,XZ:()=>v,h4:()=>g,kz:()=>_});var n=s("./node_modules/react/index.js"),o=s("./node_modules/sanitize-html/index.js"),i=s.n(o),r=s("./node_modules/lodash/lodash.js"),a=s("./node_modules/linkify-react/dist/linkify-react.mjs"),l=s("./src/linkify-matrix.ts"),c=s("./src/utils/permalinks/Permalinks.ts"),d=s("./src/customisations/Media.ts"),m=s("./src/utils/UrlUtils.ts");const u=/^#[0-9a-fA-F]{6}$/,h=/\/_matrix\/media\/r0\/(?:download|thumbnail)\/(.+?)\/(.+?)(?:[?/]|$)/,p={a:function(e,t){if(t.href){t.target="_blank";((0,c.uK)(t.href)!==t.href||t.href.match(l.kD))&&delete t.target}else delete t.href;return t.rel="noreferrer noopener",{tagName:e,attribs:t}},img:function(e,t){let s=t.src;if(!s)return{tagName:e,attribs:{}};if(!s.startsWith("mxc://")){const e=h.exec(s);e&&(s=`mxc://${e[1]}/${e[2]}`)}if(!s.startsWith("mxc://"))return{tagName:e,attribs:{}};const n=Number(t.width),o=Number(t.height),i=Math.min(n||800,800),r=Math.min(o||600,600);return t.style=`max-width: ${i}px; max-height: ${r}px;`,n&&(t.style+="width: 100%;"),o&&(t.style+="height: 100%;"),t.src=(0,d.mediaFromMxc)(s).getThumbnailOfSourceHttp(i,r),{tagName:e,attribs:t}},code:function(e,t){if(void 0!==t.class){const e=t.class.split(/\s/).filter(function(e){return e.startsWith("language-")&&!e.startsWith("language-_")});t.class=e.join(" ")}return{tagName:e,attribs:t}},"*":function(e,t){"img"!==e&&delete t.style;const s={"data-mx-color":"color","data-mx-bg-color":"background-color"};let n="";return Object.keys(s).forEach(e=>{const o=s[e],i=t[e];i&&"string"==typeof i&&u.test(i)&&(n+=o+":"+i+";",delete t[e])}),n&&(t.style=n+(t.style||"")),{tagName:e,attribs:t}}},g={allowedTags:["font","del","s","h1","h2","h3","h4","h5","h6","blockquote","p","a","ul","ol","sup","sub","nl","li","b","i","u","strong","em","strike","code","hr","br","div","table","thead","caption","tbody","tr","th","td","pre","span","img","details","summary"],allowedAttributes:{font:["color","data-mx-bg-color","data-mx-color","style"],span:["data-mx-maths","data-mx-bg-color","data-mx-color","data-mx-spoiler","style"],div:["data-mx-maths"],a:["href","name","target","rel"],img:["src","alt","title","style"],ol:["start"],code:["class"]},selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:m._f,allowProtocolRelative:!1,transformTags:p,nestingLimit:50};function v({as:e,options:t,children:s}){return n.createElement(a.A,{as:e,options:(0,r.merge)({},l.fF,t)},s)}function _(e,t=l.fF){return i()(function(e,t=l.fF){return(0,l.TP)(e,t)}(e,t),g)}},"./src/Markdown.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>v});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/commonmark/lib/index.js"),i=s("./node_modules/lodash/lodash.js"),r=s("./node_modules/matrix-js-sdk/src/logger.ts"),a=s("./src/linkify-matrix.ts");const l=["sub","sup","del","s","u","br","br/"],c=["text","softbreak","linebreak","paragraph","document"];function d(e){if(!e.literal)return!1;if(null!=e.literal.match('^<((div|span) data-mx-maths="[^"]*"|/(div|span))>$'))return!0;const t=/^<\/?(.*)>$/.exec(e.literal);if(t&&2==t.length){const e=t[1];return l.indexOf(e)>-1}return!1}function m(e){let t=e;for(;t.parent;)t=t.parent;return t.firstChild!=t.lastChild}function u(e){let t=e,s="";for(;t&&"softbreak"!==t.type&&"linebreak"!==t.type;){const{literal:e,type:n}=t;if("text"===n&&e){let t=0,n=e[t];for(;" "!==n&&null!==n&&t<=e.length&&" "!==n;)n&&(s+=n),t+=1,n=e[t];if(" "===n)break}t=t.next}return s}const h={emph:"_",strong:"__"},p=e=>{let t="";const s=e.walker();let n;for(;n=s.next();){const e=n.node,s=e.literal;n.entering&&"text"===e.type&&s&&(t+=s)}return t},g=e=>!e.prev&&!e.next&&!e.firstChild;class v{constructor(e){(0,n.A)(this,"input",void 0),(0,n.A)(this,"parsed",void 0),this.input=e;const t=new o.iX;this.parsed=t.parse(this.input),this.parsed=this.repairLinks(this.parsed)}repairLinks(e){const t=e.walker();let s=null,n="",i=!1,l=null,c=!1;for(;s=t.next();){const{node:e}=s;if("paragraph"===e.type&&(i=!!s.entering),i){var d;if("softbreak"===e.type||"linebreak"===e.type||"text"===e.type&&" "===e.literal){n="";continue}if("text"===e.type&&e.literal){const[s,...i]=e.literal.split(/( )/);e.literal=s,n+=s,i.reverse().forEach(s=>{if(s){const n=new o.bP("text");n.literal=s,e.insertAfter(n),t.resumeAt(n,!0)}})}if(("emph"===e.type||"strong"===e.type)&&"text"===(null===(d=l)||void 0===d?void 0:d.type))if(s.entering){const t=a.Bu.find(n);for(const{value:i}of t){var m;if(null!=e&&null!==(m=e.firstChild)&&void 0!==m&&m.literal){const t=h[e.type],d=`${t}${p(e)}${t}`,m=i+d+u(e);if(1===a.Bu.find(m).length){const t=new o.bP("text");t.literal=d,l.insertAfter(t),e.firstChild.literal="",s=e.walker().next(),s&&(e.unlink(),l.insertAfter(s.node),c=!0)}else r.vF.error("Markdown links escaping found too many links for following text: ",n),r.vF.error("Markdown links escaping found too many links for modified text: ",m)}}}else c&&(e.unlink(),c=!1)}l=e}return e}isPlainText(){const e=this.parsed.walker();let t;for(;t=e.next();){const e=t.node;if(!(c.indexOf(e.type)>-1)){if("list"==e.type||"item"==e.type){if("list"==e.type&&e.firstChild&&g(e.firstChild))continue;if("item"==e.type&&g(e))continue;return!1}if("html_inline"!=e.type&&"html_block"!=e.type)return!1;if(d(e))return!1}}return!0}toHTML({externalLinks:e=!1}={}){const t=new o.j6({safe:!1,softbreak:"<br />"}),s=t.paragraph;return t.paragraph=function(e,t){var n;("block_quote"===(null===(n=e.parent)||void 0===n?void 0:n.type)||m(e))&&s.call(this,e,t)},t.link=function(t,s){const n=this.attrs(t);s&&t.destination?(n.push(["href",this.esc(t.destination)]),t.title&&n.push(["title",this.esc(t.title)]),e&&(n.push(["target","_blank"]),n.push(["rel","noreferrer noopener"])),this.tag("a",n)):this.tag("/a")},t.html_inline=function(e){e.literal&&(d(e)?this.lit(e.literal):this.lit((0,i.escape)(e.literal)))},t.html_block=function(e){t.html_inline(e)},t.render(this.parsed)}toPlaintext(){const e=new o.j6({safe:!1});return e.paragraph=function(e,t){m(e)&&!t&&e.next&&this.lit("\n\n")},e.html_block=function(e){e.literal&&this.lit(e.literal),m(e)&&e.next&&this.lit("\n\n")},e.esc=e=>e,(0,i.escape)(e.render(this.parsed))}}},"./src/MatrixClientPeg.ts":(e,t,s)=>{"use strict";s.d(t,{J:()=>B});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/types.ts"),r=s("./node_modules/matrix-js-sdk/src/utils.ts"),a=s("./node_modules/matrix-js-sdk/src/logger.ts"),l=s("./src/utils/createMatrixClient.ts"),c=s("./src/settings/SettingsStore.ts"),d=s("./src/dispatcher/dispatcher.ts");function m(e,t,s){return{action:"MatrixActions.sync",state:t,prevState:s,matrixClient:e}}function u(e,t,s){return{action:"MatrixActions.accountData",event:t,event_type:t.getType(),event_content:t.getContent(),previousEvent:s}}function h(e,t,s){return{action:"MatrixActions.Room.accountData",event:t,event_type:t.getType(),event_content:t.getContent(),room:s}}function p(e,t){return{action:"MatrixActions.Room",room:t}}function g(e,t,s){return{action:"MatrixActions.Room.tags",room:s}}function v(e,t,s){return{action:"MatrixActions.Room.receipt",event:t,room:s,matrixClient:e}}function _(e,t,s,n,o,i){return{action:"MatrixActions.Room.timeline",event:t,isLiveEvent:i.liveEvent,isLiveUnfilteredRoomTimelineEvent:i.timeline.getTimelineSet()===(null==s?void 0:s.getUnfilteredTimelineSet()),room:s}}function f(e,t,s,n){return{action:"MatrixActions.RoomState.events",event:t,state:s,lastStateEvent:n}}function y(e,t,s,n){return{action:"MatrixActions.Room.myMembership",room:t,membership:s,oldMembership:n}}function b(e,t){return{action:"MatrixActions.Event.decrypted",event:t}}let E=[];function w(e,t,s){const n=(...t)=>{const n=s(e,...t);n&&d.A.dispatch(n,!1)};e.on(t,n),E.push(()=>{e.removeListener(t,n)})}const x={start(e){w(e,o.ClientEvent.Sync,m),w(e,o.ClientEvent.AccountData,u),w(e,o.RoomEvent.AccountData,h),w(e,o.ClientEvent.Room,p),w(e,o.RoomEvent.Tags,g),w(e,o.RoomEvent.Receipt,v),w(e,o.RoomEvent.Timeline,_),w(e,o.RoomEvent.MyMembership,y),w(e,o.MatrixEventEvent.Decrypted,b),w(e,o.RoomStateEvent.Events,f)},stop(){E.forEach(e=>e()),E=[]}};var A=s("./src/Modal.tsx"),S=s("./src/settings/handlers/MatrixClientBackedSettingsHandler.ts"),C=s("./src/utils/StorageManager.ts"),R=s("./src/IdentityAuthClient.tsx"),k=s("./src/SecurityManager.ts"),I=s("./src/SlidingSyncManager.ts"),P=s("./src/languageHandler.tsx"),T=s("./src/settings/controllers/MatrixClientBackedController.ts"),O=s("./src/components/views/dialogs/ErrorDialog.tsx"),M=s("./src/PlatformPeg.ts"),N=s("./src/utils/FormattingUtils.ts"),D=s("./src/SdkConfig.ts"),j=s("./src/settings/controllers/DeviceIsolationModeController.ts"),U=s("./src/utils/device/dehydration.ts");function F(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function L(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?F(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):F(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const B=new class{constructor(){(0,n.A)(this,"opts",{initialSyncLimit:20}),(0,n.A)(this,"matrixClient",null),(0,n.A)(this,"justRegisteredUserId",null),(0,n.A)(this,"onUnexpectedStoreClose",async()=>{var e;if(this.matrixClient){if(this.matrixClient.stopClient(),this.matrixClient.store.destroy(),!this.matrixClient.isGuest()){var t;const e=D.Ay.get().brand,s="Web Platform"===(null===(t=M.A.get())||void 0===t?void 0:t.getHumanReadableName())?(0,P._t)("error_database_closed_description|for_web",{brand:e}):(0,P._t)("error_database_closed_description|for_desktop"),[n]=await A.Ay.createDialog(O.A,{title:(0,P._t)("error_database_closed_title",{brand:e}),description:s,button:(0,P._t)("action|reload")}).finished;if(!n)return}null===(e=M.A.get())||void 0===e||e.reload()}})}get(){return this.matrixClient}safeGet(){if(!this.matrixClient)throw new P.P7("error_user_not_logged_in");return this.matrixClient}unset(){this.matrixClient=null,x.stop()}setJustRegisteredUserId(e){if(this.justRegisteredUserId=e,e){const e=Date.now().toString();window.localStorage.setItem("mx_registration_time",e)}}currentUserIsJustRegistered(){return!!this.matrixClient&&this.matrixClient.credentials.userId===this.justRegisteredUserId}userRegisteredWithinLastHours(e){if(e<=0)return!1;try{const t=parseInt(window.localStorage.getItem("mx_registration_time"),10);return(Date.now()-t)/36e5<=e}catch{return!1}}userRegisteredAfter(e){try{const t=parseInt(window.localStorage.getItem("mx_registration_time"),10);return e.getTime()<=t}catch{return!1}}replaceUsingCreds(e,t){this.createClient(e,t)}async assign(e={}){var t,s;if(!this.matrixClient)throw new Error("createClient must be called first");for(const e of["indexeddb","memory"])try{const e=this.matrixClient.store.startup();a.vF.log("MatrixClientPeg: waiting for MatrixClient store to initialise"),await e;break}catch(t){if("indexeddb"!==e)throw a.vF.error("Failed to start memory store!",t),t;a.vF.error("Error starting matrixclient store - falling back to memory store",t),this.matrixClient.store=new o.MemoryStore({localStorage})}null===(t=(s=this.matrixClient.store).on)||void 0===t||t.call(s,"closed",this.onUnexpectedStoreClose),c.A.getValue("lowBandwidth")||await this.initClientCrypto(e.rustCryptoStoreKey,e.rustCryptoStorePassword);const n=r.A4(this.opts);if(n.pendingEventOrdering=o.PendingEventOrdering.Detached,n.lazyLoadMembers=!0,n.clientWellKnownPollPeriod=7200,n.threadSupport=!0,c.A.getValue("feature_sliding_sync"))throw new P.P7("sliding_sync_legacy_no_longer_supported");return c.A.getValue("feature_simplified_sliding_sync")?n.slidingSync=await I.f.instance.setup(this.matrixClient):I.f.instance.checkSupport(this.matrixClient),x.start(this.matrixClient),S.A.matrixClient=this.matrixClient,T.A.matrixClient=this.matrixClient,n}async initClientCrypto(e,t){if(!this.matrixClient)throw new Error("createClient must be called first");e||t||a.vF.error("Warning! Not using an encryption key for rust crypto store."),await this.matrixClient.initRustCrypto({storageKey:e,storagePassword:t}),C.jy(!0),(0,j.y)(this.matrixClient,c.A.getValue("feature_exclude_insecure_devices"));try{await(0,U.p)(this.matrixClient,{onlyIfKeyCached:!0,rehydrate:!1})}catch(e){console.log("Error starting device dehydration",e)}}async start(e){const t=await this.assign(e);a.vF.log("MatrixClientPeg: really starting MatrixClient"),await this.matrixClient.startClient(t),a.vF.log("MatrixClientPeg: MatrixClient started")}namesToRoomName(e,t){const s=t-1;return e.length?1===e.length&&s<=1?e[0]:void 0:(0,P._t)("empty_room")}memberNamesToRoomName(e,t){const s=this.namesToRoomName(e,t);return s||(2===e.length&&2===t?(0,N.ki)(e):(0,N.ki)(e,1))}inviteeNamesToRoomName(e,t){const s=this.namesToRoomName(e,t);return s||(2===e.length&&2===t?(0,P._t)("inviting_user1_and_user2",{user1:e[0],user2:e[1]}):(0,P._t)("inviting_user_and_n_others",{user:e[0],count:t-1}))}createClient(e,t){const s={baseUrl:e.homeserverUrl,idBaseUrl:e.identityServerUrl,accessToken:e.accessToken,refreshToken:e.refreshToken,tokenRefreshFunction:t,userId:e.userId,deviceId:e.deviceId,pickleKey:e.pickleKey,timelineSupport:!0,forceTURN:!c.A.getValue("webRtcAllowPeerToPeer"),fallbackICEServerAllowed:!!c.A.getValue("fallbackICEServerAllowed"),iceCandidatePoolSize:20,verificationMethods:[i.V.Sas,i.V.ShowQrCode,i.V.Reciprocate],identityServer:new R.A,cryptoCallbacks:L({},k.c6),roomNameGenerator:(e,t)=>{switch(t.type){case o.RoomNameType.Generated:return"Inviting"===t.subtype?this.inviteeNamesToRoomName(t.names,t.count):this.memberNamesToRoomName(t.names,t.count);case o.RoomNameType.EmptyRoom:return t.oldName?(0,P._t)("empty_room_was_name",{oldName:t.oldName}):(0,P._t)("empty_room");default:return null}}};this.matrixClient=(0,l.A)(s),this.matrixClient.setGuest(Boolean(e.guest));const n=new o.EventTimelineSet(void 0,{timelineSupport:!0,pendingEvents:!1});n.getLiveTimeline().setPaginationToken("",o.EventTimeline.BACKWARDS),this.matrixClient.setNotifTimelineSet(n)}};window.mxMatrixClientPeg||(window.mxMatrixClientPeg=B)},"./src/MediaDeviceHandler.ts":(e,t,s)=>{"use strict";s.d(t,{Ay:()=>h,cm:()=>m,hW:()=>u});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/events/events.js"),i=s.n(o),r=s("./node_modules/matrix-js-sdk/src/logger.ts"),a=s("./src/settings/SettingsStore.ts"),l=s("./src/settings/SettingLevel.ts"),c=s("./src/MatrixClientPeg.ts"),d=s("./src/languageHandler.tsx");let m=function(e){return e.AudioOutput="audiooutput",e.AudioInput="audioinput",e.VideoInput="videoinput",e}({}),u=function(e){return e.AudioOutputChanged="audio_output_changed",e}({});class h extends(i()){static get instance(){return h.internalInstance||(h.internalInstance=new h),h.internalInstance}static async hasAnyLabeledDevices(){return(await navigator.mediaDevices.enumerateDevices()).some(e=>Boolean(e.label))}static async getDevices(){try{const e=await navigator.mediaDevices.enumerateDevices(),t={[m.AudioOutput]:[],[m.AudioInput]:[],[m.VideoInput]:[]};return e.forEach(e=>t[e.kind].push(e)),t}catch(e){r.vF.warn("Unable to refresh WebRTC Devices: ",e)}}static async loadDevices(){const e=a.A.getValue("webrtc_audioinput"),t=a.A.getValue("webrtc_videoinput");await c.J.safeGet().getMediaHandler().setAudioInput(e),await c.J.safeGet().getMediaHandler().setVideoInput(t),await h.updateAudioSettings()}static async updateAudioSettings(){await c.J.safeGet().getMediaHandler().setAudioSettings({autoGainControl:h.getAudioAutoGainControl(),echoCancellation:h.getAudioEchoCancellation(),noiseSuppression:h.getAudioNoiseSuppression()})}setAudioOutput(e){a.A.setValue("webrtc_audiooutput",null,l.p.DEVICE,e),this.emit(u.AudioOutputChanged,e)}async setAudioInput(e){return a.A.setValue("webrtc_audioinput",null,l.p.DEVICE,e),c.J.safeGet().getMediaHandler().setAudioInput(e)}async setVideoInput(e){return a.A.setValue("webrtc_videoinput",null,l.p.DEVICE,e),c.J.safeGet().getMediaHandler().setVideoInput(e)}async setDevice(e,t){switch(t){case m.AudioOutput:this.setAudioOutput(e);break;case m.AudioInput:await this.setAudioInput(e);break;case m.VideoInput:await this.setVideoInput(e)}}static async setAudioAutoGainControl(e){await a.A.setValue("webrtc_audio_autoGainControl",null,l.p.DEVICE,e),await h.updateAudioSettings()}static async setAudioEchoCancellation(e){await a.A.setValue("webrtc_audio_echoCancellation",null,l.p.DEVICE,e),await h.updateAudioSettings()}static async setAudioNoiseSuppression(e){await a.A.setValue("webrtc_audio_noiseSuppression",null,l.p.DEVICE,e),await h.updateAudioSettings()}static getAudioOutput(){return a.A.getValueAt(l.p.DEVICE,"webrtc_audiooutput")}static getAudioInput(){return a.A.getValueAt(l.p.DEVICE,"webrtc_audioinput")}static getVideoInput(){return a.A.getValueAt(l.p.DEVICE,"webrtc_videoinput")}static getAudioAutoGainControl(){return a.A.getValue("webrtc_audio_autoGainControl")}static getAudioEchoCancellation(){return a.A.getValue("webrtc_audio_echoCancellation")}static getAudioNoiseSuppression(){return a.A.getValue("webrtc_audio_noiseSuppression")}static getDevice(e){switch(e){case m.AudioOutput:return this.getAudioOutput();case m.AudioInput:return this.getAudioInput();case m.VideoInput:return this.getVideoInput()}}static get startWithAudioMuted(){return a.A.getValue("audioInputMuted")}static set startWithAudioMuted(e){a.A.setValue("audioInputMuted",null,l.p.DEVICE,e)}static get startWithVideoMuted(){return a.A.getValue("videoInputMuted")}static set startWithVideoMuted(e){a.A.setValue("videoInputMuted",null,l.p.DEVICE,e)}}(0,n.A)(h,"internalInstance",void 0),(0,n.A)(h,"getDefaultDevice",e=>e.some(e=>"default"===e.deviceId)?"default":(e.unshift({deviceId:"",label:(0,d._t)("voip|default_device")}),""))},"./src/Modal.tsx":(e,t,s)=>{"use strict";s.d(t,{XM:()=>y,Ay:()=>w});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/react-dom/client.js"),a=s("./node_modules/classnames/index.js"),l=s.n(a),c=s("./node_modules/matrix-js-sdk/src/matrix.ts"),d=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/TooltipProvider.js"),m=s("./node_modules/@vector-im/compound-web/dist/components/Glass/Glass.js"),u=s("./src/dispatcher/dispatcher.ts"),h=s("./src/languageHandler.tsx"),p=s("./src/components/views/dialogs/BaseDialog.tsx"),g=s("./src/components/views/elements/DialogButtons.tsx"),v=s("./src/components/views/elements/Spinner.tsx");class _ extends i.Component{constructor(...e){super(...e),(0,o.A)(this,"state",{})}static getDerivedStateFromError(e){return{error:e}}render(){return this.state.error?i.createElement(p.A,{onFinished:this.props.onFinished,title:(0,h._t)("common|error")},(0,h._t)("failed_load_async_component"),i.createElement(g.A,{primaryButton:(0,h._t)("action|dismiss"),onPrimaryButtonClick:this.props.onFinished,hasCancel:!1})):i.createElement(i.Suspense,{fallback:i.createElement(v.A,null)},this.props.children)}}var f=s("./src/utils/arrays.ts");let y=function(e){return e.Opened="opened",e.Closed="closed",e}({});function b(e){let t=document.getElementById(e);return t||(t=document.createElement("div"),t.id=e,document.body.appendChild(t)),t}class E extends c.TypedEventEmitter{static getOrCreateRoot(){if(!E.root){const e=b("mx_Dialog_Container");E.root=(0,r.createRoot)(e)}return E.root}static getOrCreateStaticRoot(){if(!E.staticRoot){const e=b("mx_Dialog_StaticContainer");E.staticRoot=(0,r.createRoot)(e)}return E.staticRoot}constructor(){super(),(0,o.A)(this,"counter",0),(0,o.A)(this,"priorityModal",null),(0,o.A)(this,"staticModal",null),(0,o.A)(this,"modals",[]),(0,o.A)(this,"onAction",e=>{"logout"===e.action&&this.forceCloseAllModals()}),(0,o.A)(this,"onBackgroundClick",()=>{const e=this.getCurrentModal();e&&(e.closeReason="backgroundClick",e.close(),e.closeReason=void 0)}),u.A.register(this.onAction)}toggleCurrentDialogVisibility(){const e=this.getCurrentModal();e&&(e.hidden=!e.hidden)}hasDialogs(){return!!this.priorityModal||!!this.staticModal||this.modals.length>0}closeCurrentModal(e){const t=this.getCurrentModal();return!!t&&(t.closeReason=e,t.close(),!0)}forceCloseAllModals(){const e=(0,f.Bo)([...this.modals,this.staticModal,this.priorityModal]);for(const s of e){var t;null===(t=s.deferred)||void 0===t||t.resolve([]),this.emitClosed()}this.modals=[],this.staticModal=null,this.priorityModal=null,this.reRender()}buildModal(e,t,s,o){const r={onBeforeClose:null==o?void 0:o.onBeforeClose,className:s,elem:null},[a,l]=this.getCloseFn(r),c=this.counter++;return r.elem=i.createElement(_,{key:c,onFinished:a},i.createElement(e,(0,n.A)({},t,{onFinished:a}))),r.close=a,{modal:r,closeDialog:a,onFinishedProm:l}}getCloseFn(e){return e.deferred=Promise.withResolvers(),[async(...t)=>{var s;if(e.beforeClosePromise)await e.beforeClosePromise;else if(e.onBeforeClose){e.beforeClosePromise=e.onBeforeClose(e.closeReason);const t=await e.beforeClosePromise;if(e.beforeClosePromise=void 0,!t)return}null===(s=e.deferred)||void 0===s||s.resolve(t);const n=this.modals.indexOf(e);n>=0&&this.modals.splice(n,1),this.priorityModal===e&&(this.priorityModal=null,this.modals=[]),this.staticModal===e&&(this.staticModal=null,this.modals=[]),this.reRender(),this.emitClosed()},e.deferred.promise]}createDialog(e,t,s,n=!1,o=!1,i={}){const r=this.getCurrentModal(),{modal:a,closeDialog:l,onFinishedProm:c}=this.buildModal(e,t,s,i);return n?this.priorityModal=a:o?this.staticModal=a:this.modals.unshift(a),this.reRender(),this.emitIfChanged(r),{close:l,finished:c}}appendDialog(e,t,s){const n=this.getCurrentModal(),{modal:o,closeDialog:i,onFinishedProm:r}=this.buildModal(e,t,s,{});return this.modals.push(o),this.reRender(),this.emitIfChanged(n),{close:i,finished:r}}emitIfChanged(e){e!==this.getCurrentModal()&&this.emit(y.Opened)}emitClosed(){this.emit(y.Closed)}getCurrentModal(){return this.priorityModal?this.priorityModal:this.modals[0]||this.staticModal}async reRender(){if(0===this.modals.length&&!this.priorityModal&&!this.staticModal)return u.A.dispatch({action:"aria_unhide_main_app"}),E.getOrCreateRoot().render(i.createElement(i.Fragment,null)),void E.getOrCreateStaticRoot().render(i.createElement(i.Fragment,null));if(u.A.dispatch({action:"aria_hide_main_app"}),this.staticModal){const e=l()("mx_Dialog_wrapper mx_Dialog_staticWrapper",this.staticModal.className),t=i.createElement(i.StrictMode,null,i.createElement(d.B,null,i.createElement("div",{className:e},i.createElement(m.H,{className:"mx_Dialog_border"},i.createElement("div",{className:"mx_Dialog"},this.staticModal.elem)),i.createElement("div",{className:"mx_Dialog_background mx_Dialog_staticBackground",onClick:this.onBackgroundClick}))));E.getOrCreateStaticRoot().render(t)}else E.getOrCreateStaticRoot().render(i.createElement(i.Fragment,null));const e=this.getCurrentModal();if(e===this.staticModal||e.hidden)E.getOrCreateRoot().render(i.createElement(i.Fragment,null));else{const t=l()("mx_Dialog_wrapper",e.className,{mx_Dialog_wrapperWithStaticUnder:this.staticModal}),s=i.createElement(i.StrictMode,null,i.createElement(d.B,null,i.createElement("div",{className:t},i.createElement(m.H,{className:"mx_Dialog_border"},i.createElement("div",{className:"mx_Dialog"},e.elem)),i.createElement("div",{className:"mx_Dialog_background",onClick:this.onBackgroundClick}))));E.getOrCreateRoot().render(s)}}}(0,o.A)(E,"root",void 0),(0,o.A)(E,"staticRoot",void 0),window.singletonModalManager||(window.singletonModalManager=new E);const w=window.singletonModalManager},"./src/Notifier.ts":(e,t,s)=>{"use strict";s.r(t),s.d(t,{Notifier:()=>ce,NotifierEvent:()=>re,default:()=>le});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./node_modules/matrix-js-sdk/src/matrixrtc/index.ts"),a=s("./src/MatrixClientPeg.ts"),l=s("./src/PosthogAnalytics.ts"),c=s("./src/SdkConfig.ts"),d=s("./src/PlatformPeg.ts"),m=s("./src/TextForEvent.tsx"),u=s("./src/Avatar.ts"),h=s("./src/dispatcher/dispatcher.ts"),p=s("./src/languageHandler.tsx"),g=s("./src/Modal.tsx"),v=s("./src/settings/SettingsStore.ts"),_=s("./src/toasts/DesktopNotificationsToast.ts"),f=s("./src/settings/SettingLevel.ts"),y=s("./src/settings/controllers/NotificationControllers.ts"),b=s("./src/UserActivity.ts"),E=s("./src/customisations/Media.ts"),w=s("./src/components/views/dialogs/ErrorDialog.tsx"),x=s("./src/contexts/SDKContext.ts"),A=s("./src/utils/notifications.ts"),S=s("./node_modules/react/index.js"),C=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/Tooltip.js"),R=s("./node_modules/@vector-im/compound-web/dist/components/Button/Button.js"),k=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/TooltipProvider.js"),I=s("./node_modules/@vector-im/compound-web/dist/components/Form/Controls/Toggle/Toggle.js"),P=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/video-call-solid.js"),T=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/check.js"),O=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/close.js"),M=s("./src/components/views/avatars/RoomAvatar.tsx"),N=s("./src/dispatcher/actions.ts"),D=s("./src/stores/ToastStore.ts"),j=s("./src/components/views/rooms/LiveContentSummary.tsx"),U=s("./src/hooks/useCall.ts"),F=s("./src/components/views/elements/AccessibleButton.tsx"),L=s("./src/hooks/useDispatcher.ts"),B=s("./src/models/Call.ts"),V=s("./src/LegacyCallHandler.tsx"),H=s("./src/hooks/useEventEmitter.ts"),W=s("./src/stores/CallStore.ts"),$=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),z=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),K=s("./node_modules/classnames/index.js"),J=s.n(K),G=s("./packages/shared-components/src/avatar/AvatarWithDetails/AvatarWithDetails.module.css"),q=s("./packages/shared-components/src/utils/Flex/index.ts");const Y=["as","className","details","avatar","title"];function Z(e){let{as:t,className:s,details:n,avatar:o,title:i}=e,r=(0,z.A)(e,Y);const a=t||"div";return S.createElement(a,(0,$.A)({className:J()(G.A.avatarWithDetails,s)},r),o,S.createElement(q.s,{direction:"column"},S.createElement("span",{className:G.A.title},i),S.createElement("span",{className:G.A.details},n)))}const Q=(e,t)=>`call_${e}_${t}`,X=e=>{const t=e.getContent().sender_ts;return t&&Math.abs(t-e.getTs())>=15e3?(i.vF.warn("Received RTCNotification event. With large sender_ts origin_server_ts offset -> using origin_server_ts"),e.getTs()):null!=t?t:e.getTs()};function ee({onClick:e,call:t,disabledTooltip:s}){var n;let o=s;const i=(0,U.Rv)(t);return o=null!==(n=null!=s?s:i)&&void 0!==n?n:void 0,S.createElement(C.m,{description:null!=o?o:(0,p._t)("voip|video_call")},S.createElement(R.$,{className:"mx_IncomingCallToast_actionButton",onClick:e,disabled:null!=o,kind:"primary",Icon:T.A,size:"sm"},(0,p._t)("action|join")))}function te({notificationEvent:e,room:t,onDeclined:s}){const[n,o]=(0,S.useState)(!1),i=(0,S.useCallback)(async n=>{var i;n.stopPropagation(),o(!0),await(null==t?void 0:t.client.sendRtcDecline(t.roomId,null!==(i=e.getId())&&void 0!==i?i:"")),s(n)},[e,s,null==t?void 0:t.client,null==t?void 0:t.roomId]);return S.createElement(C.m,{description:(0,p._t)("voip|decline_call")},S.createElement(R.$,{className:"mx_IncomingCallToast_actionButton",onClick:i,kind:"primary",destructive:!0,disabled:n,Icon:O.A,size:"sm"},(0,p._t)("action|decline")))}function se({notificationEvent:e}){var t;const s=e.getRoomId(),n=e.getContent(),r=null!==(t=a.J.safeGet().getRoom(s))&&void 0!==t?t:void 0,l=(0,U.Gc)(s),[c,d]=(0,S.useState)(Array.from(W.e.instance.connectedCalls));(0,H.ml)(W.e.instance,W.s.ConnectedCalls,()=>{d(Array.from(W.e.instance.connectedCalls))});const m=c.find(e=>e.roomId!==s),u=(0,S.useRef)(!1);(0,S.useEffect)(()=>{!("ring"==n.notification_type)||u.current||V.Ay.instance.isPlaying(V.cd.Ring)||(u.current=!0,V.Ay.instance.play(V.cd.Ring))},[n.notification_type,u]);const g=(0,S.useCallback)(()=>{const t=e.getId();t?(D.A.sharedInstance().dismissToast(Q(t,s)),V.Ay.instance.pause(V.cd.Ring)):i.vF.warn("Could not get eventId for RTCNotification event")},[e,s]),v=(0,S.useCallback)((t,s)=>{const n=e.getRoomId();(n||n===s)&&(null!==t&&0!==t.participants.size||g())},[g,e]),_=(0,S.useCallback)(t=>{const s=null==r?void 0:r.client.getUserId();t.getType()===o.EventType.RTCDecline&&void 0!==s&&t.getSender()===s&&t.relationEventId===e.getId()&&g()},[g,e,null==r?void 0:r.client]),f=(0,S.useCallback)((e,t)=>{Array.from(e.keys()).some(e=>e.userId==(null==r?void 0:r.client.getUserId()))&&g()},[g,null==r?void 0:r.client]);(0,S.useEffect)(()=>{var t;const s=null!==(t=n.lifetime)&&void 0!==t?t:9e4,o=setTimeout(g,X(e)+s-Date.now());return()=>clearTimeout(o)}),(0,L.F)(h.A,(0,S.useCallback)(e=>{e.action===N.r.ViewRoom&&e.room_id===s&&e.view_call&&g()},[s,g]));const[y,b]=(0,S.useState)(!0),E=(0,S.useCallback)(e=>{e.stopPropagation(),h.A.dispatch({action:N.r.ViewRoom,room_id:null==r?void 0:r.roomId,view_call:!0,skipLobby:"shiftKey"in e&&e.shiftKey||y,metricsTrigger:void 0})},[r,y]),w=(0,S.useCallback)(e=>{e.stopPropagation(),g()},[g]);(0,H.ml)(W.e.instance,W.s.Call,v),(0,H.ml)(null!=l?l:void 0,B.$E.Participants,f),(0,H.ml)(r,o.RoomEvent.Timeline,_);const x=l?S.createElement(j.eg,{call:l}):S.createElement(j.m_,{type:j.In.Video,text:(0,p._t)("common|video"),active:!1,participantCount:0});return S.createElement(k.B,null,S.createElement(S.Fragment,null,S.createElement("div",{className:"mx_IncomingCallToast_content"},S.createElement("div",{className:"mx_IncomingCallToast_message"},S.createElement(P.A,{width:"20px",height:"20px",style:{position:"relative",top:"4px"}})," ",(0,p._t)("voip|video_call_started")),S.createElement(Z,{avatar:S.createElement(M.A,{room:null!=r?r:void 0,size:"32px"}),details:x,title:r?r.name:(0,p._t)("voip|call_toast_unknown_room")}),S.createElement("div",{className:"mx_IncomingCallToast_toggleWithLabel"},S.createElement("span",null,(0,p._t)("voip|skip_lobby_toggle_option")),S.createElement(I.l,{onChange:e=>b(e.target.checked),checked:y})),S.createElement("div",{className:"mx_IncomingCallToast_buttons"},S.createElement(te,{notificationEvent:e,room:r,onDeclined:w}),S.createElement(ee,{onClick:E,call:l,disabledTooltip:m?"Ongoing call":void 0}))),S.createElement(F.A,{className:"mx_IncomingCallToast_closeButton",onClick:w,title:(0,p._t)("action|close")})))}var ne=s("./src/utils/Reply.ts"),oe=s("./src/audio/BackgroundAudio.ts");const ie={[o.MsgType.KeyVerificationRequest]:e=>{var t;const s=null===(t=e.sender)||void 0===t?void 0:t.name;return(0,p._t)("notifier|m.key.verification.request",{name:s})},[o.M_LOCATION.name]:e=>m.QY(e)(),[o.M_LOCATION.altName]:e=>m.QY(e)(),[o.MsgType.Audio]:e=>m.Rd(e,a.J.safeGet())};let re=function(e){return e.NotificationHiddenChange="notification_hidden_change",e}({});class ae extends o.TypedEventEmitter{constructor(...e){super(...e),(0,n.A)(this,"notifsByRoom",{}),(0,n.A)(this,"pendingEncryptedEventIds",[]),(0,n.A)(this,"toolbarHidden",void 0),(0,n.A)(this,"isSyncing",void 0),(0,n.A)(this,"backgroundAudio",new oe.J),(0,n.A)(this,"onSyncStateChange",(e,t,s)=>{e===o.SyncState.Syncing?this.isSyncing=!0:e!==o.SyncState.Stopped&&e!==o.SyncState.Error||(this.isSyncing=!1),[o.SyncState.Stopped,o.SyncState.Error].includes(e)||null!=s&&s.fromCache||(0,A.aI)(a.J.safeGet())}),(0,n.A)(this,"onEvent",(e,t,s,n,o)=>{if(!n&&o.liveEvent&&!s&&this.isSyncing&&e.getSender()!==a.J.safeGet().getUserId()&&null===o.timeline.getTimelineSet().threadListType)if(a.J.safeGet().decryptEventIfNeeded(e),e.isBeingDecrypted()||e.isDecryptionFailure())for(this.pendingEncryptedEventIds.push(e.getId());this.pendingEncryptedEventIds.length>20;)this.pendingEncryptedEventIds.shift();else this.evaluateEvent(e)}),(0,n.A)(this,"onEventDecrypted",e=>{if(e.isDecryptionFailure())return;const t=this.pendingEncryptedEventIds.indexOf(e.getId());-1!==t&&(this.pendingEncryptedEventIds.splice(t,1),this.evaluateEvent(e))}),(0,n.A)(this,"onRoomReceipt",(e,t)=>{if(0===t.getUnreadNotificationCount()){const e=d.A.get();if(!e)return;if(void 0===this.notifsByRoom[t.roomId])return;for(const s of this.notifsByRoom[t.roomId])e.clearNotification(s);delete this.notifsByRoom[t.roomId]}})}notificationMessageForEvent(e){const t=e.getContent().msgtype;return t&&ie.hasOwnProperty(t)?ie[t](e):m.Rd(e,a.J.safeGet())}displayPopupNotification(e,t){const s=d.A.get(),n=a.J.safeGet();if(!s)return;if(!s.supportsNotifications()||!s.maySendNotifications())return;if((0,A.J7)(n))return;let o,i=this.notificationMessageForEvent(e);if(!i)return;if(e.sender&&t.name!==e.sender.name){if("m.room.member"===e.getType())o=t.name;else if(e.sender){o=e.sender.name+" ("+t.name+")";const s=e.getContent().msgtype;!e.getContent().body||s&&ie.hasOwnProperty(s)||(i=(0,ne.fJ)(e.getContent().body))}}else{o=t.name;const s=e.getContent().msgtype;!e.getContent().body||s&&ie.hasOwnProperty(s)||(i=(0,ne.fJ)(e.getContent().body))}if(!o)return;this.isBodyEnabled()||(i="");let r=null;e.sender&&!v.A.getValue("lowBandwidth")&&(r=u._V(e.sender,40,40,"crop"));const l=s.displayNotification(o,i,r,t,e);l&&(void 0===this.notifsByRoom[e.getRoomId()]&&(this.notifsByRoom[e.getRoomId()]=[]),this.notifsByRoom[e.getRoomId()].push(l))}getSoundForRoom(e){const t=v.A.getValue("notificationSound",e);if(!t)return null;if("string"!=typeof t.url)return i.vF.warn(`${e} has custom notification sound event, but no url string`),null;if(!t.url.startsWith("mxc://"))return i.vF.warn(`${e} has custom notification sound event, but url is not a mxc url`),null;const s=(0,E.mediaFromMxc)(t.url).srcHttp;return s?{url:s,name:t.name,type:t.type,size:t.size}:(i.vF.warn("Something went wrong when generating src http url for mxc"),null)}async playAudioNotification(e,t){const s=a.J.safeGet();if((0,A.J7)(s))return;const n=this.getSoundForRoom(t.roomId);i.vF.log(`Got sound ${(null==n?void 0:n.name)||"default"} for ${t.roomId}`),n?await this.backgroundAudio.play(n.url):await this.backgroundAudio.pickFormatAndPlay("media/message",["mp3","ogg"])}start(){const e=a.J.safeGet();e.on(o.RoomEvent.Timeline,this.onEvent),e.on(o.RoomEvent.Receipt,this.onRoomReceipt),e.on(o.MatrixEventEvent.Decrypted,this.onEventDecrypted),e.on(o.ClientEvent.Sync,this.onSyncStateChange),this.toolbarHidden=!1,this.isSyncing=!1}stop(){a.J.get()&&(a.J.get().removeListener(o.RoomEvent.Timeline,this.onEvent),a.J.get().removeListener(o.RoomEvent.Receipt,this.onRoomReceipt),a.J.get().removeListener(o.MatrixEventEvent.Decrypted,this.onEventDecrypted),a.J.get().removeListener(o.ClientEvent.Sync,this.onSyncStateChange)),this.isSyncing=!1}supportsDesktopNotifications(){var e,t;return null!==(e=null===(t=d.A.get())||void 0===t?void 0:t.supportsNotifications())&&void 0!==e&&e}setEnabled(e,t){const s=d.A.get();s&&(v.A.isLevelSupported(f.p.DEVICE)&&v.A.setValue("audioNotificationsEnabled",null,f.p.DEVICE,this.isEnabled()),e?s.requestNotificationPermission().then(e=>{if("granted"!==e){const t=c.Ay.get().brand,s="denied"===e?(0,p._t)("settings|notifications|error_permissions_denied",{brand:t}):(0,p._t)("settings|notifications|error_permissions_missing",{brand:t});return void g.Ay.createDialog(w.A,{title:(0,p._t)("settings|notifications|error_title"),description:s})}t&&t(),l.Vo.instance.trackEvent({eventName:"PermissionChanged",permission:"Notification",granted:!0}),h.A.dispatch({action:"notifier_enabled",value:!0})}):(l.Vo.instance.trackEvent({eventName:"PermissionChanged",permission:"Notification",granted:!1}),h.A.dispatch({action:"notifier_enabled",value:!1})),this.setPromptHidden(!0))}isEnabled(){return this.isPossible()&&v.A.getValue("notificationsEnabled")}isPossible(){const e=d.A.get();return!(null==e||!e.supportsNotifications())&&!!e.maySendNotifications()}isBodyEnabled(){return this.isEnabled()&&v.A.getValue("notificationBodyEnabled")}isAudioEnabled(){return v.A.getValue("audioNotificationsEnabled")}setPromptHidden(e,t=!0){this.toolbarHidden=e,(0,_.Y)(),t&&s.g.localStorage&&s.g.localStorage.setItem("notifications_hidden",String(e)),this.emit(re.NotificationHiddenChange,e)}shouldShowPrompt(){const e=a.J.get();if(!e)return!1;return!e.isGuest()&&this.supportsDesktopNotifications()&&!(0,y.Mv)()&&!this.isEnabled()&&!this.isPromptHidden()}isPromptHidden(){return s.g.localStorage?"true"===s.g.localStorage.getItem("notifications_hidden"):!!this.toolbarHidden}evaluateEvent(e){const t=e.getRoomId(),s=a.J.safeGet().getRoom(t);if(!s)return;const n=a.J.safeGet().getPushActionsForEvent(e);if(null!=n&&n.notify){this.performCustomEventHandling(e);const t=x.M.instance.roomViewStore,i=t.getRoomId()===s.roomId,r=e.getId()!==e.threadRootId?e.threadRootId:void 0,a=t.getThreadId()===r;if(i&&(!r||a)&&b.A.sharedInstance().userActiveRecently()&&!g.Ay.hasDialogs())return;var o;if(this.isEnabled()&&this.displayPopupNotification(e,s),n.tweaks.sound&&this.isAudioEnabled())null===(o=d.A.get())||void 0===o||o.loudNotification(e,s),this.playAudioNotification(e,s)}}performCustomEventHandling(e){const t=a.J.safeGet(),s=t.getRoom(e.getRoomId()),n=s&&r.nl.callMembershipsForRoom(s).some(e=>e.sender===t.getUserId());if(o.EventType.RTCNotification===e.getType()&&!n){const t=e.getContent(),s=e.getRoomId(),n=e.getId();if(Date.now()-X(e)>t.lifetime)return void i.vF.warn("Received outdated RTCNotification event.");if(!s)return void i.vF.warn("Could not get roomId for RTCNotification event");if(!n)return void i.vF.warn("Could not get eventId for RTCNotification event");D.A.sharedInstance().addOrReplaceToast({key:Q(n,s),priority:100,component:se,bodyClassName:"mx_IncomingCallToast",props:{notificationEvent:e}})}}}window.mxNotifier||(window.mxNotifier=new ae);const le=window.mxNotifier,ce=window.mxNotifier},"./src/PageTypes.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>o});var n=function(e){return e.HomePage="home_page",e.RoomView="room_view",e.UserView="user_view",e}(n||{});const o=n},"./src/PlatformPeg.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>i});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");class o{constructor(){(0,n.A)(this,"platform",null),(0,n.A)(this,"platformPromiseWithResolvers",Promise.withResolvers())}get platformPromise(){return this.platformPromiseWithResolvers.promise}get(){return this.platform}set(e){this.platformPromiseWithResolvers.resolve(e),this.platform=e}}window.mxPlatformPeg||(window.mxPlatformPeg=new o);const i=window.mxPlatformPeg},"./src/PosthogAnalytics.ts":(e,t,s)=>{"use strict";s.d(t,{NZ:()=>_,Vo:()=>y});var n=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/posthog-js/dist/module.js"),r=s("./node_modules/matrix-js-sdk/src/logger.ts"),a=s("./src/PlatformPeg.ts"),l=s("./src/SdkConfig.ts"),c=s("./src/MatrixClientPeg.ts"),d=s("./src/settings/SettingsStore.ts"),m=s("./src/dispatcher/actions.ts"),u=s("./src/dispatcher/dispatcher.ts"),h=s("./src/settings/enums/Layout.ts");const p=["eventName"];function g(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function v(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?g(Object(s),!0).forEach(function(t){(0,o.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):g(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}let _=function(e){return e[e.Disabled=0]="Disabled",e[e.Anonymous=1]="Anonymous",e[e.Pseudonymous=2]="Pseudonymous",e}({});const f=new Set(["register","login","forgot_password","soft_logout","new","settings","welcome","home","start","directory","start_sso","start_cas","complete_security","post_registration","room","user"]);class y{static get instance(){return this._instance||(this._instance=new y(i.Ay)),this._instance}constructor(e){(0,o.A)(this,"anonymity",_.Disabled),(0,o.A)(this,"enabled",!1),(0,o.A)(this,"platformSuperProperties",{}),(0,o.A)(this,"propertiesForNextEvent",{}),(0,o.A)(this,"userPropertyCache",{}),(0,o.A)(this,"authenticationType","Other"),(0,o.A)(this,"watchSettingRef",void 0),(0,o.A)(this,"currentCryptoBackend",void 0),(0,o.A)(this,"onLayoutUpdated",()=>{let e;switch(d.A.getValue("layout")){case h.P.IRC:e="IRC";break;case h.P.Bubble:e="Bubble";break;case h.P.Group:e=d.A.getValue("useCompactLayout")?"Compact":"Group"}this.setProperty("WebLayout",e)}),(0,o.A)(this,"onAction",e=>{if(e.action!==m.r.SettingUpdated)return;["layout","useCompactLayout"].includes(e.settingName)&&this.onLayoutUpdated()}),(0,o.A)(this,"lastScreen","Loading"),(0,o.A)(this,"sanitizeProperties",(e,t)=>("$pageview"===t&&(this.lastScreen=e.$current_url),e.$current_url=this.lastScreen,this.anonymity==_.Anonymous&&(e.$referrer=null,e.$referring_domain=null,e.$initial_referrer=null,e.$initial_referring_domain=null,e.$device_id=null),e)),this.posthog=e;const t=l.Ay.getObject("posthog");t?(this.posthog.init(t.get("project_api_key"),{api_host:t.get("api_host"),autocapture:!1,mask_all_text:!0,mask_all_element_attributes:!0,capture_pageview:!1,sanitize_properties:this.sanitizeProperties,respect_dnt:!0,advanced_disable_decide:!0}),this.enabled=!0):this.enabled=!1,u.A.register(this.onAction),d.A.monitorSetting("layout",null),d.A.monitorSetting("useCompactLayout",null),this.onLayoutUpdated(),this.updateCryptoSuperProperty()}registerSuperProperties(e){this.enabled&&this.posthog.register(e)}static async getPlatformProperties(){const e=a.A.get();let t;try{t=await(null==e?void 0:e.getAppVersion())}catch{t="unknown"}return{appVersion:t,appPlatform:null==e?void 0:e.getHumanReadableName()}}capture(e,t,s){if(!this.enabled)return;const{origin:n,hash:o,pathname:i}=window.location;t.redactedCurrentUrl=function(e,t,s){let n;if(e.startsWith("file://")&&(s="/<redacted_file_scheme_url>/"),""==t)n="";else{let[e,s]=t.split("/");f.has(s)||(s="<redacted_screen_name>"),n=`${e}/${s}/<redacted>`}return e+s+n}(n,o,i),this.posthog.capture(e,v(v({},this.propertiesForNextEvent),t),s),this.propertiesForNextEvent={}}isEnabled(){return this.enabled}setAnonymity(e){!this.enabled||e!=_.Disabled&&e!=_.Anonymous||(this.posthog.reset(),this.registerSuperProperties(this.platformSuperProperties)),this.anonymity=e,this.updateCryptoSuperProperty()}static getRandomAnalyticsId(){return[...crypto.getRandomValues(new Uint8Array(16))].map(e=>e.toString(16)).join("")}async identifyUser(e,t){if(this.anonymity==_.Pseudonymous)try{var s;const n=await e.getAccountDataFromServer(y.ANALYTICS_EVENT_TYPE);let o=null==n?void 0:n.id;if(o||(o=t(),await e.setAccountData(y.ANALYTICS_EVENT_TYPE,v({id:o},n))),this.posthog.get_distinct_id()===o)return;"identified"===(null===(s=this.posthog.persistence)||void 0===s?void 0:s.get_property("$user_state"))&&this.posthog.reset(),this.posthog.identify(o)}catch(e){r.vF.log("Unable to identify user for tracking",e)}}getAnonymity(){return this.anonymity}logout(){this.enabled&&this.posthog.reset(),d.A.unwatchSetting(this.watchSettingRef),this.setAnonymity(_.Disabled)}trackEvent(e,t){let{eventName:s}=e,o=(0,n.A)(e,p);this.anonymity!=_.Disabled&&this.anonymity!=_.Anonymous&&this.capture(s,o,t)}setProperty(e,t){this.userPropertyCache[e]!==t&&(this.userPropertyCache[e]=t,this.propertiesForNextEvent.$set||(this.propertiesForNextEvent.$set={}),this.propertiesForNextEvent.$set[e]=t)}setPropertyOnce(e,t){this.userPropertyCache[e]||(this.userPropertyCache[e]=t,this.propertiesForNextEvent.$set_once||(this.propertiesForNextEvent.$set_once={}),this.propertiesForNextEvent.$set_once[e]=t)}async updatePlatformSuperProperties(){this.platformSuperProperties=await y.getPlatformProperties(),this.registerSuperProperties(this.platformSuperProperties)}updateCryptoSuperProperty(){this.enabled&&this.anonymity!==_.Disabled&&this.currentCryptoBackend&&this.registerSuperProperties({cryptoSDK:this.currentCryptoBackend})}async updateAnonymityFromSettings(e,t){if(e.getCrypto()){e.getCrypto().getVersion().includes("Rust SDK")?this.currentCryptoBackend="Rust":this.currentCryptoBackend="Legacy"}const s=t?_.Pseudonymous:_.Disabled;this.setAnonymity(s),s===_.Pseudonymous&&(await this.identifyUser(e,y.getRandomAnalyticsId),c.J.currentUserIsJustRegistered()&&this.trackNewUserEvent()),s!==_.Disabled&&(await this.updatePlatformSuperProperties(),this.updateCryptoSuperProperty())}startListeningToSettingsChanges(e){this.watchSettingRef=d.A.watchSetting("pseudonymousAnalyticsOptIn",null,(t,s,n,o,i)=>{this.updateAnonymityFromSettings(e,!!i)})}setAuthenticationType(e){this.authenticationType=e}trackNewUserEvent(){const e={},t=parseInt(window.localStorage.getItem("mx_registration_time"),10);return isNaN(t)||(e.timestamp=new Date(t)),this.trackEvent({eventName:"Signup",authenticationType:this.authenticationType},e)}}(0,o.A)(y,"_instance",null),(0,o.A)(y,"ANALYTICS_EVENT_TYPE","im.vector.analytics")},"./src/PosthogTrackers.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>d,Z:()=>m});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./src/PageTypes.ts"),r=s("./src/Views.ts"),a=s("./src/PosthogAnalytics.ts");const l={[r.A.LOADING]:"Loading",[r.A.CONFIRM_LOCK_THEFT]:"ConfirmStartup",[r.A.WELCOME]:"Welcome",[r.A.LOGIN]:"Login",[r.A.REGISTER]:"Register",[r.A.FORGOT_PASSWORD]:"ForgotPassword",[r.A.COMPLETE_SECURITY]:"CompleteSecurity",[r.A.E2E_SETUP]:"E2ESetup",[r.A.SOFT_LOGOUT]:"SoftLogout",[r.A.LOCK_STOLEN]:"SessionLockStolen"},c={[i.A.HomePage]:"Home",[i.A.RoomView]:"Room",[i.A.UserView]:"User"};class d{constructor(){(0,n.A)(this,"view",r.A.LOADING),(0,n.A)(this,"pageType",void 0),(0,n.A)(this,"override",void 0)}static get instance(){return d.internalInstance||(d.internalInstance=new d),d.internalInstance}trackPageChange(e,t,s){this.view=e,this.pageType=t,this.override||this.trackPage(s)}trackPage(e){const t=this.view===r.A.LOGGED_IN?c[this.pageType]:l[this.view];a.Vo.instance.trackEvent({eventName:"$pageview",$current_url:t,durationMs:e})}trackOverride(e){e&&(this.override=e,a.Vo.instance.trackEvent({eventName:"$pageview",$current_url:e}))}clearOverride(e){e===this.override&&(this.override=void 0,this.trackPage())}static trackInteraction(e,t,s){let n;"click"===(null==t?void 0:t.type)?n="Pointer":null!=t&&t.type.startsWith("key")&&(n="Keyboard"),a.Vo.instance.trackEvent({eventName:"Interaction",interactionType:n,index:s,name:e})}static trackPinUnpinMessage(e,t){a.Vo.instance.trackEvent({eventName:"PinUnpinAction",kind:e,from:t})}}(0,n.A)(d,"internalInstance",void 0);class m extends o.PureComponent{componentDidMount(){d.instance.trackOverride(this.props.screenName)}componentDidUpdate(){d.instance.trackOverride(this.props.screenName)}componentWillUnmount(){d.instance.clearOverride(this.props.screenName)}render(){return null}}},"./src/Resend.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./node_modules/matrix-js-sdk/src/logger.ts"),i=s("./src/dispatcher/dispatcher.ts");class r{static resendUnsentEvents(e){return Promise.all(e.getPendingEvents().filter(function(e){return e.status===n.EventStatus.NOT_SENT}).map(function(t){return r.resend(e.client,t)}))}static cancelUnsentEvents(e){e.getPendingEvents().filter(function(e){return e.status===n.EventStatus.NOT_SENT}).forEach(function(t){r.removeFromQueue(e.client,t)})}static resend(e,t){const s=e.getRoom(t.getRoomId());return e.resendEvent(t,s).then(function(e){i.A.dispatch({action:"message_sent",event:t})},function(e){o.vF.log("Resend got send failure: "+e.name+"("+e+")")})}static removeFromQueue(e,t){e.cancelPendingEvent(t)}}},"./src/Roles.ts":(e,t,s)=>{"use strict";s.d(t,{X:()=>i,x:()=>o});var n=s("./src/languageHandler.tsx");function o(e){return{undefined:(0,n._t)("power_level|default"),0:(0,n._t)("power_level|restricted"),[e]:(0,n._t)("power_level|default"),50:(0,n._t)("power_level|moderator"),100:(0,n._t)("power_level|admin")}}function i(e,t){const s=o(t);return s[e]?s[e]:(0,n._t)("power_level|custom",{level:e})}},"./src/RoomAliasCache.ts":(e,t,s)=>{"use strict";s.d(t,{K:()=>i,i:()=>o});const n=new Map;function o(e,t,s){n.set(e,{roomId:t,viaServers:s})}function i(e){return n.get(e)}},"./src/RoomInvite.tsx":(e,t,s)=>{"use strict";s.d(t,{Qo:()=>v,_7:()=>g,uG:()=>_,wq:()=>h,xZ:()=>p});var n=s("./node_modules/react/index.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./src/utils/MultiInviter.ts"),r=s("./src/Modal.tsx"),a=s("./src/languageHandler.tsx"),l=s("./src/components/views/dialogs/InviteDialog.tsx"),c=s("./src/components/views/avatars/BaseAvatar.tsx"),d=s("./src/customisations/Media.ts"),m=s("./src/components/views/dialogs/ErrorDialog.tsx"),u=s("./src/components/views/dialogs/InviteDialogTypes.ts");async function h(e,t,s,n={}){const o=new i.Ay(e,t,n);return{states:await o.invite(s),inviter:o}}function p(e=""){r.Ay.createDialog(l.A,{kind:u.m.Dm,initialText:e},"mx_InviteDialog_flexWrapper",!1,!0)}function g(e,t=""){r.Ay.createDialog(l.A,{kind:u.m.Invite,initialText:t,roomId:e},"mx_InviteDialog_flexWrapper",!1,!0)}function v(e){if(!e||e.getType()!==o.EventType.RoomThirdPartyInvite)return!1;return!["key_validity_url","public_key","display_name"].some(t=>!e.getContent()[t])}function _(e,t,s,o){const i=Object.keys(e).filter(t=>"error"===e[t]);if(1===i.length&&s.fatal)return r.Ay.createDialog(m.A,{title:(0,a._t)("invite|room_failed_title",{roomName:t.name}),description:s.getErrorText(i[0])}),!1;{const l=[];for(const t of i)if("error"===e[t]){const e=s.getErrorText(t);l.push(t+": "+e)}const u=t.client;if(l.length>0){const e=n.createElement("div",{className:"mx_InviteDialog_multiInviterError"},n.createElement("h4",null,(0,a._t)("invite|room_failed_partial",{},{RoomName:()=>n.createElement("strong",null,t.name)})),n.createElement("div",null,i.map(e=>{var t,i,r;const a=(null==o?void 0:o.get(e))||u.getUser(e),l=a.name||a.rawDisplayName,m=(null===(t=(i=a).getMxcAvatarUrl)||void 0===t?void 0:t.call(i))||a.avatarUrl;return n.createElement("div",{key:e,className:"mx_InviteDialog_tile mx_InviteDialog_tile--inviterError"},n.createElement("div",{className:"mx_InviteDialog_tile_avatarStack"},n.createElement(c.A,{url:null!==(r=m&&(0,d.mediaFromMxc)(m).getSquareThumbnailHttp(24))&&void 0!==r?r:void 0,name:l,idName:null==a?void 0:a.userId,size:"36px"})),n.createElement("div",{className:"mx_InviteDialog_tile_nameStack"},n.createElement("span",{className:"mx_InviteDialog_tile_nameStack_name"},l),n.createElement("span",{className:"mx_InviteDialog_tile_nameStack_userId"},null==a?void 0:a.userId)),n.createElement("div",{className:"mx_InviteDialog_tile--inviterError_errorText"},s.getErrorText(e)))})));return r.Ay.createDialog(m.A,{title:(0,a._t)("invite|room_failed_partial_title"),description:e}),!1}}return!0}},"./src/RoomNotifs.ts":(e,t,s)=>{"use strict";s.d(t,{Db:()=>v,Gg:()=>u,dC:()=>m,m5:()=>y,wh:()=>h});var n=s("./node_modules/matrix-js-sdk/src/pushprocessor.ts"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./src/stores/notifications/NotificationLevel.ts"),r=s("./src/components/structures/RoomStatusBar.tsx"),a=s("./src/Unread.ts"),l=s("./src/utils/membership.ts"),c=s("./src/settings/SettingsStore.ts"),d=s("./src/utils/notifications.ts");let m=function(e){return e.AllMessagesLoud="all_messages_loud",e.AllMessages="all_messages",e.MentionsOnly="mentions_only",e.Mute="mute",e}({});function u(e,t){var s;if(e.isGuest())return m.AllMessages;if(g(e,t))return m.Mute;let o;try{o=e.getRoomPushRule("global",t)}catch{return null}if(null===(s=o)||void 0===s||!s.enabled)return m.AllMessages;if(f(o))return m.MentionsOnly;return n.j.actionListToActionsObject(o.actions).tweaks.sound?m.AllMessagesLoud:null}function h(e,t,s){return s===m.Mute?function(e,t){const s=[],n=e.getRoomPushRule("global",t);n&&s.push(e.deletePushRule("global",o.PushRuleKind.RoomSpecific,n.rule_id));return s.push(e.addPushRule("global",o.PushRuleKind.Override,t,{conditions:[{kind:o.ConditionKind.EventMatch,key:"room_id",pattern:t}],actions:[o.PushRuleActionName.DontNotify]})),Promise.all(s)}(e,t):function(e,t,s){const n=[],i=g(e,t);i&&n.push(e.deletePushRule("global",o.PushRuleKind.Override,i.rule_id));if(s===m.AllMessages){const s=e.getRoomPushRule("global",t);s&&n.push(e.deletePushRule("global",o.PushRuleKind.RoomSpecific,s.rule_id))}else s===m.MentionsOnly?n.push(e.addPushRule("global",o.PushRuleKind.RoomSpecific,t,{actions:[o.PushRuleActionName.DontNotify]})):s===m.AllMessagesLoud&&n.push(e.addPushRule("global",o.PushRuleKind.RoomSpecific,t,{actions:[o.PushRuleActionName.Notify,{set_tweak:o.TweakName.Sound,value:"default"}]}));return Promise.all(n)}(e,t,s)}function p(e,t,s,n){const i=(e,t)=>s?e.getUnreadNotificationCount(t):e.getRoomUnreadNotificationCount(t);let r=n?e.getThreadUnreadNotificationCount(n,t):i(e,t);const a=c.A.getValue("feature_dynamic_room_predecessors"),l=e.findPredecessor(a);if(!n&&null!=l&&l.roomId){const t=l.roomId,s=e.client.getRoom(t);s&&(r+=i(s,o.NotificationCountType.Highlight))}return r}function g(e,t){var s;if(null==e||null===(s=e.pushRules)||void 0===s||null===(s=s.global)||void 0===s||!s.override)return null;for(const s of e.pushRules.global.override)if(s.enabled&&_(t,s))return s;return null}function v(e){var t;return 1===(null===(t=e.conditions)||void 0===t?void 0:t.length)&&e.conditions[0].kind===o.ConditionKind.EventMatch&&"room_id"===e.conditions[0].key&&f(e)}function _(e,t){if(!v(t))return!1;return t.conditions[0].pattern===e}function f(e){return 0===e.actions.length||1===e.actions.length&&e.actions[0]===o.PushRuleActionName.DontNotify}function y(e,t,s){if(!e)return{symbol:null,count:0,level:i.S.None,invited:!1};if((0,r.c)(e,t).length>0)return{symbol:"!",count:1,level:i.S.Unsent,invited:!1};if((0,l.Cs)(e.getMyMembership())===l._T.Invite)return{symbol:"!",count:1,level:i.S.Highlight,invited:!0};if(c.A.getValue("feature_ask_to_join")&&(0,l.yE)(e))return{symbol:"!",count:1,level:i.S.Highlight,invited:!1};if(u(e.client,e.roomId)===m.Mute)return{symbol:null,count:0,level:i.S.None,invited:!1};const n=p(e,o.NotificationCountType.Highlight,null!=s&&s,t),h=p(e,o.NotificationCountType.Total,null!=s&&s,t),g=h||n;if(n>0)return{symbol:null,count:g,level:i.S.Highlight,invited:!1};const v=(0,d.nx)(e);if(h>0||v)return{symbol:null,count:g,level:i.S.Notification,invited:!1};let _=!1;if(t){const s=e.getThread(t);s&&(_=(0,a.jM)(s))}else _=(0,a.GN)(e,null!=s&&s);return{symbol:null,count:g,level:_?i.S.Activity:i.S.None,invited:!1}}},"./src/Rooms.ts":(e,t,s)=>{"use strict";s.d(t,{FZ:()=>c,iW:()=>a,lA:()=>l,zQ:()=>r});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./src/customisations/Alias.ts"),i=s("./src/utils/dm/filterValidMDirect.ts");function r(e){return a(e.getCanonicalAlias(),e.getAltAliases())}function a(e,t){var s;return o.A.getDisplayAliasForAliasSet?o.A.getDisplayAliasForAliasSet(e,t):null!==(s=e||(null==t?void 0:t[0]))&&void 0!==s?s:""}function l(e,t){let s;if(t){s=function(e,t){let s,n;for(const i of e.getJoinedMembers()){var o;if(i.userId!=t)if(void 0===s||i.events.member&&i.events.member.getTs()<s)n=i,s=null===(o=i.events.member)||void 0===o?void 0:o.getTs()}if(n)return n.userId;for(const o of e.currentState.getMembers()){var i;if(o.userId!=t)if(void 0===s||o.events.member&&o.events.member.getTs()<s)n=o,s=null===(i=o.events.member)||void 0===i?void 0:i.getTs()}return void 0===n?t:n.userId}(e,e.client.getSafeUserId())}else s=null;return c(e.client,e.roomId,s)}async function c(e,t,s){var o;if(e.isGuest())return;const r=e.getAccountData(n.EventType.Direct),{filteredContent:a}=(0,i.d)(null!==(o=null==r?void 0:r.getContent())&&void 0!==o?o:{});for(const e in a)a[e]&&(a[e]=a[e].filter(e=>e!==t));s&&(a[s]||(a[s]=[]),a[s].push(t)),await e.setAccountData(n.EventType.Direct,a)}},"./src/SdkConfig.ts":(e,t,s)=>{"use strict";s.d(t,{Ay:()=>c,Hy:()=>d,zY:()=>a});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/lodash/lodash.js"),i=s("./src/utils/SnakedObject.ts"),r=s("./src/utils/objects.ts");const a={brand:"Element",help_url:"https://element.io/help",help_encryption_url:"https://element.io/help#encryption",integrations_ui_url:"https://scalar.vector.im/",integrations_rest_url:"https://scalar.vector.im/api",uisi_autorageshake_app:"element-auto-uisi",show_labs_settings:!1,force_verification:!1,jitsi:{preferred_domain:"meet.element.io"},element_call:{use_exclusively:!1,participant_limit:8,brand:"Element Call"},desktopBuilds:{available:!0,logo:s("./res/img/element-desktop-logo.svg").A,url:"https://element.io/get-started"},feedback:{existing_issues_url:"https://github.com/vector-im/element-web/issues?q=is%3Aopen+is%3Aissue+sort%3Areactions-%2B1-desc",new_issue_url:"https://github.com/vector-im/element-web/issues/new/choose"},desktop_builds:{available:!0,logo:"vector-icons/1024.png",url:"https://element.io/download",url_macos:"https://packages.element.io/desktop/install/macos/Element.dmg",url_win64:"https://packages.element.io/desktop/install/win32/x64/Element%20Setup.exe",url_win64arm:"https://packages.element.io/desktop/install/win32/arm64/Element%20Setup.exe",url_linux:"https://element.io/download#linux"},mobile_builds:{ios:"https://apps.apple.com/app/vector/id1083446067",android:"https://play.google.com/store/apps/details?id=im.vector.app",fdroid:"https://f-droid.org/repository/browse/?fdid=im.vector.app"}};function l(e,t){return(0,o.mergeWith)((0,r.ZV)(e),t,(e,t)=>Array.isArray(e)?t:(0,r.Gv)(e)&&!(0,r.Gv)(t)?e:void 0)}class c{static setInstance(e){c.instance=e,c.fallback=new i.Q(e),window.mxReactSdkConfig=e}static get(e,t){return void 0===e?c.instance||{}:c.fallback.get(e,t)}static getObject(e,t){const s=c.get(e,t);return(0,r.Gv)(s)?new i.Q(s):void 0===s?void 0:null}static put(e){c.setInstance(l(a,e))}static reset(){c.setInstance(l(a,{}))}static add(e){c.put(l(c.get(),e))}}function d(e){return e.sso_redirect_options?e.sso_redirect_options:e.sso_immediate_redirect?{immediate:!0}:{}}(0,n.A)(c,"instance",void 0),(0,n.A)(c,"fallback",void 0)},"./src/SecurityManager.ts":(e,t,s)=>{"use strict";s.d(t,{qQ:()=>k,cb:()=>O,c6:()=>P,kq:()=>R,J6:()=>T});var n=s("./node_modules/react/index.js"),o=s("./node_modules/matrix-js-sdk/src/crypto-api/index.ts"),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./src/Modal.tsx"),a=s("./src/MatrixClientPeg.ts"),l=s("./src/languageHandler.tsx"),c=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),d=s("./node_modules/@vector-im/compound-web/dist/components/Form/Controls/Password/Password.js"),m=s("./node_modules/@vector-im/compound-web/dist/components/Button/Button.js"),u=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/lock-solid.js"),h=s("./node_modules/lodash/lodash.js"),p=s("./node_modules/classnames/index.js"),g=s.n(p),v=s("./packages/shared-components/src/utils/Flex/index.ts"),_=s("./src/components/views/settings/encryption/EncryptionCard.tsx"),f=s("./src/components/views/settings/encryption/EncryptionCardButtons.tsx"),y=s("./src/components/views/dialogs/BaseDialog.tsx");class b extends n.PureComponent{constructor(e){super(e),(0,c.A)(this,"inputRef",n.createRef()),(0,c.A)(this,"onCancel",()=>{this.props.onFinished(!1)}),(0,c.A)(this,"validateRecoveryKeyOnChange",(0,h.debounce)(async()=>{await this.validateRecoveryKey(this.state.recoveryKey)},200)),(0,c.A)(this,"onRecoveryKeyChange",e=>{this.setState({recoveryKey:e.target.value}),this.validateRecoveryKeyOnChange()}),(0,c.A)(this,"onRecoveryKeyNext",async e=>{e.preventDefault();const t=await this.validateRecoveryKey(this.state.recoveryKey);var s;void 0!==t?this.props.onFinished(t):null===(s=this.inputRef.current)||void 0===s||s.focus()}),this.state={recoveryKey:"",recoveryKeyCorrect:null}}async validateRecoveryKey(e){var t,s;if(""===(e=e.trim()))return void this.setState({recoveryKeyCorrect:null});const n=(null===(t=this.props.keyInfo)||void 0===t||null===(t=t.passphrase)||void 0===t?void 0:t.salt)&&(null===(s=this.props.keyInfo)||void 0===s||null===(s=s.passphrase)||void 0===s?void 0:s.iterations);try{const t={recoveryKey:e},s=await this.props.checkPrivateKey(t);if(s)return this.setState({recoveryKeyCorrect:s}),t}catch{}if(n)try{const t={passphrase:e},s=await this.props.checkPrivateKey(t);if(s)return this.setState({recoveryKeyCorrect:s}),t}catch{}this.setState({recoveryKeyCorrect:!1})}getRecoveryKeyFeedback(){let e,t;return this.state.recoveryKeyCorrect?e=" ":null===this.state.recoveryKeyCorrect?e=(0,l._t)("encryption|access_secret_storage_dialog|alternatives"):(e=(0,l._t)("encryption|access_secret_storage_dialog|key_validation_text|wrong_security_key"),t=g()({mx_AccessSecretStorageDialog_recoveryKeyFeedback:!0,"mx_AccessSecretStorageDialog_recoveryKeyFeedback--invalid":!0})),n.createElement(v.s,{align:"center",className:t},e)}render(){const e=(0,l._t)("encryption|access_secret_storage_dialog|security_key_title"),t=this.getRecoveryKeyFeedback(),s=n.createElement("div",null,n.createElement("form",{className:"mx_AccessSecretStorageDialog_primaryContainer",onSubmit:this.onRecoveryKeyNext,spellCheck:!1,autoComplete:"off"},n.createElement("div",{className:"mx_AccessSecretStorageDialog_recoveryKeyEntry"},n.createElement(d.y,{ref:this.inputRef,id:"mx_securityKey",title:(0,l._t)("encryption|access_secret_storage_dialog|security_key_label"),placeholder:(0,l._t)("encryption|access_secret_storage_dialog|security_key_label"),value:this.state.recoveryKey,onChange:this.onRecoveryKeyChange,autoFocus:!0,autoComplete:"off"})),t,n.createElement(f.D,null,n.createElement(m.$,{disabled:!this.state.recoveryKeyCorrect,onClick:this.onRecoveryKeyNext},(0,l._t)("action|continue")),n.createElement(m.$,{kind:"tertiary",onClick:this.onCancel},(0,l._t)("action|cancel")))));return n.createElement(y.A,{fixedWidth:!1,hasCancel:!1},n.createElement(_.g,{Icon:u.A,className:"mx_AccessSecretStorageDialog",title:e,description:(0,l._t)("encryption|access_secret_storage_dialog|privacy_warning")},s))}}var E=s("./src/modules/ModuleRunner.ts"),w=s("./src/components/views/dialogs/InteractiveAuthDialog.tsx");let x={},A={},S=!1;const C=i.vF.getChild("SecurityManager:");function R(){return S}class k extends Error{constructor(){super("Secret storage access canceled")}}function I(e,t,s){S&&(C.debug(`Caching 4S key ${e}`),x[e]=s,A[e]=t)}const P={getSecretStorageKey:async function({keys:e},t){const s=a.J.safeGet(),n=await s.secretStorage.getDefaultKeyId();let i;if(n&&e[n])i=n;else{const t=Object.keys(e);if(t.length>1)throw new Error("Multiple storage key requests not implemented");i=t[0]}const l=e[i];if(C.debug(`getSecretStorageKey: request for 4S keys [${Object.keys(e)}] for secret \`${t}\`: looking for key ${i}`),S&&x[i])return C.debug(`getSecretStorageKey: returning key ${i} from cache`),[i,x[i]];const c=E.r.instance.extensions.cryptoSetup.getSecretStorageKey();if(c)return C.debug("getSecretStorageKey: Using secret storage key from CryptoSetupExtension"),I(i,l,c),[i,c];if(i!==n)throw C.debug(`getSecretStorageKey: request for non-default key ${i}: not prompting user`),new Error("Request for non-default 4S key");C.debug(`getSecretStorageKey: prompting user for key ${i}`);const d=function(e){return async({passphrase:t,recoveryKey:s})=>{if(t)return(0,o.wn)(t,e.passphrase.salt,e.passphrase.iterations);if(s)return(0,o.R1)(s);throw new Error("Invalid input, passphrase or recoveryKey need to be provided")}}(l),{finished:m}=r.Ay.createDialog(b,{keyInfo:l,checkPrivateKey:async e=>{const t=await d(e);return a.J.safeGet().secretStorage.checkKey(t,l)}}),[u]=await m;if(!u)throw new k;C.debug(`getSecretStorageKey: got key ${i} from user`);const h=await d(u);return I(i,l,h),[i,h]},cacheSecretStorageKey:I};async function T(e){C.debug("enabling 4S key cache"),S=!0;try{return await e()}finally{C.debug("disabling 4S key cache"),S=!1,x={},A={}}}async function O(e=async()=>{},t={}){await T(()=>async function(e,t){try{const o=a.J.safeGet(),i=o.getCrypto();if(!i)throw new Error("End-to-end encryption is disabled - unable to access secret storage.");if(t.forceReset){C.debug("accessSecretStorage: resetting 4S");const{finished:e}=r.Ay.createDialog((0,n.lazy)(()=>s.e(1127).then(s.bind(s,"./src/async-components/views/dialogs/security/CreateSecretStorageDialog.tsx"))),t,void 0,!1,!0),[o]=await e;if(!o)throw new Error("Secret storage creation canceled")}else{if(!await o.secretStorage.hasKey())throw C.debug("accessSecretStorage: no 4S key configured"),new Error("Secret storage has not been created yet.");C.debug("accessSecretStorage: bootstrapCrossSigning"),await i.bootstrapCrossSigning({authUploadDeviceSigningKeys:async e=>{C.debug("accessSecretStorage: performing UIA to upload cross-signing keys");const{finished:t}=r.Ay.createDialog(w.A,{title:(0,l._t)("encryption|bootstrap_title"),matrixClient:o,makeRequest:e}),[s]=await t;if(!s)throw new Error("Cross-signing key upload auth canceled");C.debug("accessSecretStorage: Cross-signing key upload successful")}}),C.debug("accessSecretStorage: bootstrapSecretStorage"),await i.bootstrapSecretStorage({})}C.debug("accessSecretStorage: 4S now ready"),await e(),C.debug("accessSecretStorage: operation complete")}catch(e){throw E.r.instance.extensions.cryptoSetup.catchAccessSecretStorageError(e),C.error("accessSecretStorage: error during operation",e),e}}(e,t))}},"./src/SendHistoryManager.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/lodash/lodash.js"),i=s("./node_modules/matrix-js-sdk/src/logger.ts");class r{constructor(e,t){(0,n.A)(this,"history",[]),(0,n.A)(this,"prefix",void 0),(0,n.A)(this,"lastIndex",0),(0,n.A)(this,"currentIndex",0),this.prefix=t+e;let s,o=0;for(;s=sessionStorage.getItem(`${this.prefix}[${o}]`);){try{this.history.push(JSON.parse(s))}catch(e){i.vF.warn("Throwing away unserialisable history",e);break}++o}this.lastIndex=this.history.length-1,this.currentIndex=this.lastIndex+1}static createItem(e,t){return{parts:e.serializeParts(),replyEventId:t?t.getId():void 0}}save(e,t){const s=r.createItem(e,t);this.history.push(s),this.currentIndex=this.history.length,this.lastIndex+=1,sessionStorage.setItem(`${this.prefix}[${this.lastIndex}]`,JSON.stringify(s))}getItem(e){return this.currentIndex=(0,o.clamp)(this.currentIndex+e,0,this.history.length-1),this.history[this.currentIndex]}}},"./src/SlashCommands.tsx":(e,t,s)=>{"use strict";s.d(t,{ge:()=>Z,yc:()=>me,Ts:()=>de,OE:()=>he,SY:()=>ue});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./node_modules/matrix-js-sdk/src/logger.ts"),a=s("./node_modules/matrix-js-sdk/src/types.ts"),l=s("./src/dispatcher/dispatcher.ts"),c=s("./src/languageHandler.tsx"),d=s("./src/Modal.tsx"),m=s("./src/utils/MultiInviter.ts"),u=s("./src/HtmlUtils.tsx"),h=s("./src/components/views/dialogs/QuestionDialog.tsx"),p=s("./src/utils/WidgetUtils.ts"),g=s("./src/utils/colour.ts"),v=s("./src/UserAddress.ts"),_=s("./src/utils/UrlUtils.ts"),f=s("./src/utils/IdentityServerUtils.ts"),y=s("./src/widgets/WidgetType.ts"),b=s("./src/widgets/Jitsi.ts"),E=s("./src/components/views/dialogs/BugReportDialog.tsx"),w=s("./src/createRoom.ts"),x=s("./src/dispatcher/actions.ts"),A=s("./src/SdkConfig.ts"),S=s("./src/settings/SettingsStore.ts"),C=s("./src/settings/UIFeature.ts"),R=s("./src/effects/index.ts"),k=s("./src/LegacyCallHandler.tsx"),I=s("./src/Rooms.ts"),P=s("./src/utils/RoomUpgrade.ts"),T=s("./src/components/views/dialogs/DevtoolsDialog.tsx"),O=s("./src/components/views/dialogs/RoomUpgradeWarningDialog.tsx"),M=s("./src/components/views/dialogs/InfoDialog.tsx"),N=s("./src/MatrixClientPeg.ts");const D=({onFinished:e})=>{const t={};de.forEach(e=>{e.isEnabled(N.J.get())&&(t[e.category]||(t[e.category]=[]),t[e.category].push(e))});const s=Object.values(Z).filter(e=>t[e]).map(e=>{const s=[o.createElement("tr",{key:"_category_"+e,className:"mx_SlashCommandHelpDialog_headerRow"},o.createElement("td",{colSpan:3},o.createElement("h2",null,(0,c._t)(e))))];return t[e].forEach(e=>{s.push(o.createElement("tr",{key:e.command},o.createElement("td",null,o.createElement("strong",null,e.getCommand())),o.createElement("td",null,e.args),o.createElement("td",null,(0,c._t)(e.description))))}),s});return o.createElement(M.A,{className:"mx_SlashCommandHelpDialog",title:(0,c._t)("slash_command|help_dialog_title"),description:o.createElement("table",null,o.createElement("tbody",null,s)),hasCloseButton:!0,onFinished:e})};var j=s("./src/customisations/helpers/UIComponents.ts"),U=s("./src/contexts/RoomContext.ts"),F=s("./src/editor/serialize.ts"),L=s("./src/utils/leave-behaviour.ts"),B=s("./src/contexts/SDKContext.ts"),V=s("./src/utils/localRoom/isLocalRoom.ts"),H=s("./src/components/views/dialogs/UploadConfirmDialog.tsx");function W(e){return{error:e}}function $(e=Promise.resolve()){return{promise:e}}function z(e){return $(Promise.resolve(e))}const K=e=>{const t=B.M.instance.roomViewStore.getRoomId();if(!e||!t)return!1;const s=null==e?void 0:e.getRoom(t);return!(null==s||!s.currentState.maySendStateEvent(i.EventType.RoomPowerLevels,e.getSafeUserId())||(0,V.F)(s))},J=async e=>new Promise(t=>{const s=document.createElement("input");s.setAttribute("type","file"),s.onchange=s=>{var n;const o=null===(n=s.target.files)||void 0===n?void 0:n[0];if(!o)return;const{finished:i}=d.Ay.createDialog(H.A,{file:o});i.then(async([s])=>{if(s){const{content_uri:s}=await e.uploadContent(o);t(s)}else t(null)})},s.click()}),G=e=>{const t=B.M.instance.roomViewStore.getRoomId();if(!t)return!1;const s=null==e?void 0:e.getRoom(t);return!!s&&(0,V.F)(s)};var q=s("./src/utils/membership.ts"),Y=s("./src/components/views/right_panel/UserInfo.tsx");const Z={messages:(0,c.AO)("slash_command|category_messages"),actions:(0,c.AO)("slash_command|category_actions"),admin:(0,c.AO)("slash_command|category_admin"),advanced:(0,c.AO)("slash_command|category_advanced"),effects:(0,c.AO)("slash_command|category_effects"),other:(0,c.AO)("slash_command|category_other")};var Q=s("./src/PosthogAnalytics.ts");class X{constructor(e){var t;(0,n.A)(this,"command",void 0),(0,n.A)(this,"aliases",void 0),(0,n.A)(this,"args",void 0),(0,n.A)(this,"description",void 0),(0,n.A)(this,"runFn",void 0),(0,n.A)(this,"category",void 0),(0,n.A)(this,"hideCompletionAfterSpace",void 0),(0,n.A)(this,"renderingTypes",void 0),(0,n.A)(this,"analyticsName",void 0),(0,n.A)(this,"_isEnabled",void 0),this.command=e.command,this.aliases=e.aliases||[],this.args=e.args||"",this.description=e.description,this.runFn=null===(t=e.runFn)||void 0===t?void 0:t.bind(this),this.category=e.category||Z.other,this.hideCompletionAfterSpace=e.hideCompletionAfterSpace||!1,this._isEnabled=e.isEnabled,this.renderingTypes=e.renderingTypes,this.analyticsName=e.analyticsName}getCommand(){return`/${this.command}`}getCommandWithArgs(){return this.getCommand()+" "+this.args}run(e,t,s,n){var o;if(!this.runFn)return W(new c.P7("slash_command|error_invalid_runfn"));const i=s?U.Ae.Thread:U.Ae.Room;return!this.renderingTypes||null!==(o=this.renderingTypes)&&void 0!==o&&o.includes(i)?(this.analyticsName&&Q.Vo.instance.trackEvent({eventName:"SlashCommand",command:this.analyticsName}),this.runFn(e,t,s,n)):W(new c.P7("slash_command|error_invalid_rendering_type",{renderingType:i,cause:void 0}))}getUsage(){return(0,c._t)("slash_command|usage")+": "+this.getCommandWithArgs()}isEnabled(e){var t,s;return null===(t=null===(s=this._isEnabled)||void 0===s?void 0:s.call(this,e))||void 0===t||t}}const ee=(e,t,s,n)=>{const o=e.getRoom(t);if(!o)return W(new c.P7("slash_command|error_invalid_room",{roomId:t,cause:void 0}));const i=o.getMember(s);return null!=i&&i.membership&&(0,q.Cs)(i.membership)!==q._T.Leave?$((async(e,t,s)=>{if(t.userId===e.client.getUserId()&&(void 0===s||t.powerLevel>s)&&!await(0,Y.lr)(e.isSpaceRoom()))return;return e.client.setPowerLevel(e.roomId,t.userId,s)})(o,i,n)):W(new c.P7("slash_command|error_invalid_user_in_room"))},te=new X({command:"op",args:"<user-id> [<power-level>]",description:(0,c.AO)("slash_command|op"),isEnabled:K,runFn:function(e,t,s,n){if(n){const s=n.match(/^(\S+?)( +(-?\d+))?$/);let o=50;if(s){const n=s[1];return 4===s.length&&void 0!==s[3]&&(o=parseInt(s[3],10)),ee(e,t,n,o)}}return W(this.getUsage())},category:Z.admin,renderingTypes:[U.Ae.Room]}),se=new X({command:"deop",args:"<user-id>",description:(0,c.AO)("slash_command|deop"),isEnabled:K,runFn:function(e,t,s,n){if(n){if(n.match(/^(\S+)$/))return ee(e,t,n,void 0)}return W(this.getUsage())},category:Z.admin,renderingTypes:[U.Ae.Room]});var ne=s("./src/utils/permalinks/Permalinks.ts");function oe(e,t,s){if(!t)return;const n=t.split(" ");if(n.length<1)return;let o=!1;if(n[0].startsWith("http:")||n[0].startsWith("https:")){const e=new URL(n[0]),t=e.host||e.hostname;(0,ne.aW)(t)&&(o=!0)}if("#"===n[0][0]){let t=n[0];return t.includes(":")||(t+=":"+e.getDomain()),l.A.dispatch({action:x.r.ViewRoom,room_alias:t,auto_join:s,metricsTrigger:"SlashCommand",metricsViaKeyboard:!0}),$()}if("!"===n[0][0]){const[e,...t]=n;return l.A.dispatch({action:x.r.ViewRoom,room_id:e,via_servers:t,auto_join:s,metricsTrigger:"SlashCommand",metricsViaKeyboard:!0}),$()}if(o){const e=(0,ne.$N)(n[0]);if(!e)return;if(!e.roomIdOrAlias)return;const t=e.roomIdOrAlias,o=e.viaServers,i=e.eventId,r={action:x.r.ViewRoom,auto_join:s,metricsTrigger:"SlashCommand",metricsViaKeyboard:!0};return"!"===t[0]?r.room_id=t:r.room_alias=t,i&&(r.event_id=i,r.highlighted=!0),o&&(r.opts={viaServers:o},r.via_servers=o),l.A.dispatch(r),$()}}const ie=new X({command:"join",aliases:["j"],args:"<room-address>",description:(0,c.AO)("slash_command|join"),runFn:function(e,t,s,n){var o;return null!==(o=oe(e,n,!0))&&void 0!==o?o:W(this.getUsage())},category:Z.actions,renderingTypes:[U.Ae.Room]}),re=new X({command:"goto",aliases:["view"],args:"<room-address>",description:(0,c.AO)("slash_command|view"),runFn:function(e,t,s,n){var o;return null!==(o=oe(e,n,!1))&&void 0!==o?o:W(this.getUsage())},category:Z.actions,renderingTypes:[U.Ae.Room]});var ae=s("./src/components/views/dialogs/ManualDeviceKeyVerificationDialog.tsx");function le(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function ce(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?le(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):le(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const de=[new X({command:"spoiler",args:"<message>",description:(0,c.AO)("slash_command|spoiler"),runFn:function(e,t,s,n=""){return z(i.ContentHelpers.makeHtmlMessage(n,`<span data-mx-spoiler>${n}</span>`))},category:Z.messages}),new X({command:"shrug",args:"<message>",description:(0,c.AO)("slash_command|shrug"),runFn:function(e,t,s,n){let o="¯\\_(ツ)_/¯";return n&&(o=o+" "+n),z(i.ContentHelpers.makeTextMessage(o))},category:Z.messages}),new X({command:"tableflip",args:"<message>",description:(0,c.AO)("slash_command|tableflip"),runFn:function(e,t,s,n){let o="(╯°□°)╯︵ ┻━┻";return n&&(o=o+" "+n),z(i.ContentHelpers.makeTextMessage(o))},category:Z.messages}),new X({command:"unflip",args:"<message>",description:(0,c.AO)("slash_command|unflip"),runFn:function(e,t,s,n){let o="┬──┬ ( ゜-゜ノ)";return n&&(o=o+" "+n),z(i.ContentHelpers.makeTextMessage(o))},category:Z.messages}),new X({command:"lenny",args:"<message>",description:(0,c.AO)("slash_command|lenny"),runFn:function(e,t,s,n){let o="( ͡° ͜ʖ ͡°)";return n&&(o=o+" "+n),z(i.ContentHelpers.makeTextMessage(o))},category:Z.messages}),new X({command:"plain",args:"<message>",description:(0,c.AO)("slash_command|plain"),runFn:function(e,t,s,n=""){return z(i.ContentHelpers.makeTextMessage(n))},category:Z.messages}),new X({command:"html",args:"<message>",description:(0,c.AO)("slash_command|html"),runFn:function(e,t,s,n=""){return z(i.ContentHelpers.makeHtmlMessage(n,n))},category:Z.messages}),new X({command:"upgraderoom",args:"<new_version>",description:(0,c.AO)("slash_command|upgraderoom"),isEnabled:e=>!G(e),runFn:function(e,t,s,n){if(n){const s=e.getRoom(t);if(null==s||!s.currentState.mayClientSendStateEvent("m.room.tombstone",e))return W(new c.P7("slash_command|upgraderoom_permission_error"));const{finished:o}=d.Ay.createDialog(O.A,{roomId:t,targetVersion:n},void 0,!1,!0);return $(o.then(async([e])=>{null!=e&&e.continue&&await(0,P.W)(s,n,e.invite)}))}return W(this.getUsage())},category:Z.admin,renderingTypes:[U.Ae.Room]}),new X({command:"jumptodate",args:"<YYYY-MM-DD>",description:(0,c.AO)("slash_command|jumptodate"),isEnabled:()=>S.A.getValue("feature_jump_to_date"),runFn:function(e,t,s,n){return n?$((async()=>{const s=Date.parse(n);if(!s)throw new c.P7("slash_command|jumptodate_invalid_input",{inputDate:n,cause:void 0});const{event_id:o,origin_server_ts:a}=await e.timestampToEvent(t,s,i.Direction.Forward);r.vF.log(`/timestamp_to_event: found ${o} (${a}) for timestamp=${s}`),l.A.dispatch({action:x.r.ViewRoom,event_id:o,highlighted:!0,room_id:t,metricsTrigger:"SlashCommand",metricsViaKeyboard:!0})})()):W(this.getUsage())},category:Z.actions}),new X({command:"nick",args:"<display_name>",description:(0,c.AO)("slash_command|nick"),runFn:function(e,t,s,n){return n?$(e.setDisplayName(n)):W(this.getUsage())},category:Z.actions,renderingTypes:[U.Ae.Room]}),new X({command:"myroomnick",aliases:["roomnick"],args:"<display_name>",description:(0,c.AO)("slash_command|myroomnick"),isEnabled:e=>!G(e),runFn:function(e,t,s,n){if(n){var o;const s=null===(o=e.getRoom(t))||void 0===o?void 0:o.currentState.getStateEvents(i.EventType.RoomMember,e.getSafeUserId()),r=ce(ce({},s?s.getContent():{membership:a.O.Join}),{},{displayname:n});return $(e.sendStateEvent(t,i.EventType.RoomMember,r,e.getSafeUserId()))}return W(this.getUsage())},category:Z.actions,renderingTypes:[U.Ae.Room]}),new X({command:"roomavatar",args:"[<mxc_url>]",description:(0,c.AO)("slash_command|roomavatar"),isEnabled:e=>!G(e),runFn:function(e,t,s,n){let o=Promise.resolve(null!=n?n:null);return n||(o=J(e)),$(o.then(s=>{if(s)return e.sendStateEvent(t,i.EventType.RoomAvatar,{url:s},"")}))},category:Z.actions,renderingTypes:[U.Ae.Room]}),new X({command:"myroomavatar",args:"[<mxc_url>]",description:(0,c.AO)("slash_command|myroomavatar"),isEnabled:e=>!G(e),runFn:function(e,t,s,n){const o=e.getRoom(t),r=e.getSafeUserId();let l=Promise.resolve(null!=n?n:null);return n||(l=J(e)),$(l.then(s=>{if(!s)return;const n=null==o?void 0:o.currentState.getStateEvents(i.EventType.RoomMember,r),l=ce(ce({},n?n.getContent():{membership:a.O.Join}),{},{avatar_url:s});return e.sendStateEvent(t,i.EventType.RoomMember,l,r)}))},category:Z.actions,renderingTypes:[U.Ae.Room]}),new X({command:"myavatar",args:"[<mxc_url>]",description:(0,c.AO)("slash_command|myavatar"),runFn:function(e,t,s,n){let o=Promise.resolve(null!=n?n:null);return n||(o=J(e)),$(o.then(t=>{if(t)return e.setAvatarUrl(t)}))},category:Z.actions,renderingTypes:[U.Ae.Room]}),new X({command:"topic",args:"[<topic>]",description:(0,c.AO)("slash_command|topic"),isEnabled:e=>!G(e),runFn:function(e,t,s,n){var r;if(n){const s=(0,F.Ro)(n,{forceHTML:!1});return $(e.setRoomTopic(t,n,s))}const a=e.getRoom(t);if(!a)return W(new c.P7("slash_command|topic_room_error",{roomId:t,cause:void 0}));const l=null===(r=a.currentState.getStateEvents("m.room.topic",""))||void 0===r?void 0:r.getContent(),m=l?i.ContentHelpers.parseTopicContent(l):{text:(0,c._t)("slash_command|topic_none")},h=(0,u.sH)(m.text,m.html,void 0,!0);return d.Ay.createDialog(M.A,{title:a.name,description:o.createElement(u.XZ,null,h),hasCloseButton:!0,className:"markdown-body"}),$()},category:Z.admin,renderingTypes:[U.Ae.Room]}),new X({command:"roomname",args:"<name>",description:(0,c.AO)("slash_command|roomname"),isEnabled:e=>!G(e),runFn:function(e,t,s,n){return n?$(e.setRoomName(t,n)):W(this.getUsage())},category:Z.admin,renderingTypes:[U.Ae.Room]}),new X({command:"invite",args:"<user-id> [<reason>]",description:(0,c.AO)("slash_command|invite"),analyticsName:"Invite",isEnabled:e=>!G(e)&&(0,j.g)(C.C.InviteUsers),runFn:function(e,t,s,n){if(n){const[s,i]=n.split(/\s+(.+)/);if(s){let n=Promise.resolve();if((0,v.Z)(s)===v.R.Email&&!e.getIdentityServerUrl()){const t=(0,f.iR)();if(!t)return W(new c.P7("slash_command|invite_3pid_needs_is_error"));{const{finished:s}=d.Ay.createDialog(h.A,{title:(0,c._t)("slash_command|invite_3pid_use_default_is_title"),description:o.createElement("p",null,(0,c._t)("slash_command|invite_3pid_use_default_is_title_description",{defaultIdentityServerName:(0,_.FO)(t)})),button:(0,c._t)("action|continue")});n=s.then(([t])=>{if(!t)throw new c.P7("slash_command|invite_3pid_needs_is_error");(0,f.eF)(e)})}}const r=new m.Ay(e,t);return $(n.then(()=>r.invite([s],i)).then(()=>{if("invited"!==r.getCompletionState(s)){const e=r.getErrorText(s);throw e?new Error(e):new c.P7("slash_command|invite_failed",{user:s,roomId:t,cause:void 0})}}))}}return W(this.getUsage())},category:Z.actions,renderingTypes:[U.Ae.Room]}),re,ie,new X({command:"part",args:"[<room-address>]",description:(0,c.AO)("action|leave_room"),analyticsName:"Part",isEnabled:e=>!G(e),runFn:function(e,t,s,n){let o;if(n){const t=n.match(/^(\S+)$/);if(t){var i;let s=t[1];if(!s.startsWith("#"))return W(this.getUsage());s.includes(":")||(s+=":"+e.getDomain());if(o=null===(i=e.getRooms().find(e=>e.getCanonicalAlias()===s||e.getAltAliases().includes(s)))||void 0===i?void 0:i.roomId,!o)return W(new c.P7("slash_command|part_unknown_alias",{roomAlias:s,cause:void 0}))}}return o||(o=t),$((0,L.U)(e,o))},category:Z.actions,renderingTypes:[U.Ae.Room]}),new X({command:"remove",aliases:["kick"],args:"<user-id> [reason]",description:(0,c.AO)("slash_command|remove"),isEnabled:e=>!G(e),runFn:function(e,t,s,n){if(n){const s=n.match(/^(\S+?)( +(.*))?$/);if(s)return $(e.kick(t,s[1],s[3]))}return W(this.getUsage())},category:Z.admin,renderingTypes:[U.Ae.Room]}),new X({command:"ban",args:"<user-id> [reason]",description:(0,c.AO)("slash_command|ban"),isEnabled:e=>!G(e),runFn:function(e,t,s,n){if(n){const s=n.match(/^(\S+?)( +(.*))?$/);if(s)return $(e.ban(t,s[1],s[3]))}return W(this.getUsage())},category:Z.admin,renderingTypes:[U.Ae.Room]}),new X({command:"unban",args:"<user-id>",description:(0,c.AO)("slash_command|unban"),isEnabled:e=>!G(e),runFn:function(e,t,s,n){if(n){const s=n.match(/^(\S+)$/);if(s)return $(e.unban(t,s[1]))}return W(this.getUsage())},category:Z.admin,renderingTypes:[U.Ae.Room]}),new X({command:"ignore",args:"<user-id>",description:(0,c.AO)("slash_command|ignore"),runFn:function(e,t,s,n){if(n){const t=n.match(/^(@[^:]+:\S+)$/);if(t){const s=t[1],n=e.getIgnoredUsers();return n.push(s),$(e.setIgnoredUsers(n).then(()=>{d.Ay.createDialog(M.A,{title:(0,c._t)("slash_command|ignore_dialog_title"),description:o.createElement("div",null,o.createElement("p",null,(0,c._t)("slash_command|ignore_dialog_description",{userId:s})))})}))}}return W(this.getUsage())},category:Z.actions}),new X({command:"unignore",args:"<user-id>",description:(0,c.AO)("slash_command|unignore"),runFn:function(e,t,s,n){if(n){const t=n.match(/(^@[^:]+:\S+$)/);if(t){const s=t[1],n=e.getIgnoredUsers(),i=n.indexOf(s);return-1!==i&&n.splice(i,1),$(e.setIgnoredUsers(n).then(()=>{d.Ay.createDialog(M.A,{title:(0,c._t)("slash_command|unignore_dialog_title"),description:o.createElement("div",null,o.createElement("p",null,(0,c._t)("slash_command|unignore_dialog_description",{userId:s})))})}))}}return W(this.getUsage())},category:Z.actions}),te,se,new X({command:"devtools",description:(0,c.AO)("slash_command|devtools"),runFn:function(e,t,s){return d.Ay.createDialog(T.A,{roomId:t,threadRootId:s},"mx_DevtoolsDialog_wrapper"),$()},category:Z.advanced}),new X({command:"addwidget",args:"<url | embed code | Jitsi url>",description:(0,c.AO)("slash_command|addwidget"),isEnabled:e=>S.A.getValue(C.f.Widgets)&&(0,j.g)(C.C.AddIntegrations)&&!G(e),runFn:function(e,t,s,n){if(!n)return W(new c.P7("slash_command|addwidget_missing_url"));if(n.toLowerCase().startsWith("<iframe ")){var o;const e=(new DOMParser).parseFromString(n,"text/html").body;if(1===(null==e||null===(o=e.childNodes)||void 0===o?void 0:o.length)){const t=e.firstElementChild;if("iframe"===(null==t?void 0:t.tagName.toLowerCase())){if(r.vF.log("Pulling URL out of iframe (embed code)"),!t.hasAttribute("src"))return W(new c.P7("slash_command|addwidget_iframe_missing_src"));n=t.getAttribute("src")}}}if(!n.startsWith("https://")&&!n.startsWith("http://"))return W(new c.P7("slash_command|addwidget_invalid_protocol"));if(p.A.canUserModifyWidgets(e,t)){const s=e.getUserId(),o=(new Date).getTime(),i=encodeURIComponent(`${t}_${s}_${o}`);let a=y.x.CUSTOM,l="Custom",c={};const d=b.k.getInstance().parsePreferredConferenceUrl(n);return d&&(r.vF.log("Making /addwidget widget a Jitsi conference"),a=y.x.JITSI,l="Jitsi",c=d,n=p.A.getLocalJitsiWrapperUrl()),$(p.A.setRoomWidget(e,t,i,a,n,l,c))}return W(new c.P7("slash_command|addwidget_no_permissions"))},category:Z.admin,renderingTypes:[U.Ae.Room]}),new X({command:"verify",args:"<device-id> <device-fingerprint>",description:(0,c.AO)("slash_command|verify"),runFn:function(e,t,s,n){if(n){const t=n.match(/^(\S+) +(\S+)$/);if(t){const s=t[1],n=t[2],{finished:o}=d.Ay.createDialog(h.A,{title:(0,c._t)("slash_command|manual_device_verification_confirm_title"),description:(0,c._t)("slash_command|manual_device_verification_confirm_description"),button:(0,c._t)("action|verify"),danger:!0});return $(o.then(([t])=>{t&&(0,ae.$)(e,s,n)}))}}return W(this.getUsage())},category:Z.advanced,renderingTypes:[U.Ae.Room]}),new X({command:"discardsession",description:(0,c.AO)("slash_command|discardsession"),isEnabled:e=>!G(e),runFn:function(e,t){try{var s;null===(s=e.getCrypto())||void 0===s||s.forceDiscardSession(t)}catch(e){return W(e instanceof Error?e.message:e)}return $()},category:Z.advanced,renderingTypes:[U.Ae.Room]}),new X({command:"rainbow",description:(0,c.AO)("slash_command|rainbow"),args:"<message>",runFn:function(e,t,s,n){return n?z(i.ContentHelpers.makeHtmlMessage(n,(0,g.a)(n))):W(this.getUsage())},category:Z.messages}),new X({command:"rainbowme",description:(0,c.AO)("slash_command|rainbowme"),args:"<message>",runFn:function(e,t,s,n){return n?z(i.ContentHelpers.makeHtmlEmote(n,(0,g.a)(n))):W(this.getUsage())},category:Z.messages}),new X({command:"help",description:(0,c.AO)("slash_command|help"),runFn:function(){return d.Ay.createDialog(D),$()},category:Z.advanced}),new X({command:"whois",description:(0,c.AO)("slash_command|whois"),args:"<user-id>",isEnabled:e=>!G(e),runFn:function(e,t,s,n){var o;if(!n||!n.startsWith("@")||!n.includes(":"))return W(this.getUsage());const i=null===(o=e.getRoom(t))||void 0===o?void 0:o.getMember(n);return l.A.dispatch({action:x.r.ViewUser,member:i||{userId:n}}),$()},category:Z.advanced}),new X({command:"rageshake",aliases:["bugreport"],description:(0,c.AO)("slash_command|rageshake"),isEnabled:()=>!!A.Ay.get().bug_report_endpoint_url,args:"<description>",runFn:function(e,t,s,n){return $(d.Ay.createDialog(E.A,{initialText:n}).finished)},category:Z.advanced}),new X({command:"query",description:(0,c.AO)("slash_command|query"),args:"<user-id>",runFn:function(e,t,s,n){const o=n&&/^\+?[0123456789]+$/.test(n);return n&&(n.startsWith("@")&&n.includes(":")||o)?$((async()=>{if(o){const e=await k.Ay.instance.pstnLookup(n);if(!e||0===e.length||!e[0].userid)throw new c.P7("slash_command|query_not_found_phone_number");n=e[0].userid}const t=await(0,w.EP)(e,n);if(!t)throw new Error("Failed to ensure DM exists");l.A.dispatch({action:x.r.ViewRoom,room_id:t,metricsTrigger:"SlashCommand",metricsViaKeyboard:!0})})()):W(this.getUsage())},category:Z.actions}),new X({command:"msg",description:(0,c.AO)("slash_command|msg"),args:"<user-id> [<message>]",runFn:function(e,t,s,n){if(n){const t=n.match(/^(\S+?)(?: +(.*))?$/s);if(t){const[s,n]=t.slice(1);if(s&&s.startsWith("@")&&s.includes(":"))return $((async()=>{const t=await(0,w.EP)(e,s);if(!t)throw new Error("Failed to ensure DM exists");l.A.dispatch({action:x.r.ViewRoom,room_id:t,metricsTrigger:"SlashCommand",metricsViaKeyboard:!0}),n&&e.sendTextMessage(t,n)})())}}return W(this.getUsage())},category:Z.actions}),new X({command:"holdcall",description:(0,c.AO)("slash_command|holdcall"),category:Z.other,isEnabled:e=>!G(e),runFn:function(e,t,s,n){const o=k.Ay.instance.getCallForRoom(t);return o?(o.setRemoteOnHold(!0),$()):W(new c.P7("slash_command|no_active_call"))},renderingTypes:[U.Ae.Room]}),new X({command:"unholdcall",description:(0,c.AO)("slash_command|unholdcall"),category:Z.other,isEnabled:e=>!G(e),runFn:function(e,t,s,n){const o=k.Ay.instance.getCallForRoom(t);return o?(o.setRemoteOnHold(!1),$()):W(new c.P7("slash_command|no_active_call"))},renderingTypes:[U.Ae.Room]}),new X({command:"converttodm",description:(0,c.AO)("slash_command|converttodm"),category:Z.other,isEnabled:e=>!G(e),runFn:function(e,t,s,n){const o=e.getRoom(t);return o?$((0,I.lA)(o,!0)):W(new c.P7("slash_command|could_not_find_room"))},renderingTypes:[U.Ae.Room]}),new X({command:"converttoroom",description:(0,c.AO)("slash_command|converttoroom"),category:Z.other,isEnabled:e=>!G(e),runFn:function(e,t,s,n){const o=e.getRoom(t);return o?$((0,I.lA)(o,!1)):W(new c.P7("slash_command|could_not_find_room"))},renderingTypes:[U.Ae.Room]}),new X({command:"me",args:"<message>",description:(0,c.AO)("slash_command|me"),category:Z.messages,hideCompletionAfterSpace:!0}),...R.y.map(e=>new X({command:e.command,description:e.description(),args:"<message>",runFn:function(t,s,n,o){let r;return r=o?{msgtype:e.msgType,body:o}:i.ContentHelpers.makeEmoteMessage(e.fallbackMessage()),l.A.dispatch({action:`effects.${e.command}`}),z(r)},category:Z.effects,renderingTypes:[U.Ae.Room]}))],me=new Map;function ue(e){if(!(e=e.trimEnd()).startsWith("/"))return{};const t=e.match(/^(\S+?)(?:[ \n]+((.|\n)*))?$/);let s,n;return t?(s=t[1].substring(1).toLowerCase(),n=t[2]):s=e,{cmd:s,args:n}}function he(e){const{cmd:t,args:s}=ue(e);return t&&me.has(t)&&me.get(t).isEnabled(N.J.get())?{cmd:me.get(t),args:s}:{}}de.forEach(e=>{me.set(e.command,e),e.aliases.forEach(t=>{me.set(t,e)})})},"./src/SlidingSyncManager.ts":(e,t,s)=>{"use strict";s.d(t,{f:()=>_});var n,o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./node_modules/matrix-js-sdk/src/sliding-sync.ts"),a=s("./node_modules/matrix-js-sdk/src/logger.ts"),l=s("./node_modules/matrix-js-sdk/src/utils.ts");function c(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function d(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?c(Object(s),!0).forEach(function(t){(0,o.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):c(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const m=[[i.EventType.RoomJoinRules,""],[i.EventType.RoomAvatar,""],[i.EventType.RoomCanonicalAlias,""],[i.EventType.RoomTombstone,""],[i.EventType.RoomEncryption,""],[i.EventType.RoomCreate,""],[i.EventType.SpaceChild,r.rb],[i.EventType.SpaceParent,r.rb],[i.EventType.RoomMember,r.x7]],u={timeline_limit:50,include_old_rooms:{timeline_limit:0,required_state:m}},h="unencrypted",p=d({required_state:[[i.EventType.RoomMember,r.x7],[i.EventType.RoomMember,r.rS]]},u),g=d({required_state:[[r.rb,r.rb]]},u),v={spaces:{ranges:[[0,10]],timeline_limit:0,required_state:m,include_old_rooms:{timeline_limit:0,required_state:m},filters:{room_types:["m.space"]}},invites:{ranges:[[0,10]],timeline_limit:1,required_state:m,include_old_rooms:{timeline_limit:0,required_state:m},filters:{is_invite:!0}},favourites:{ranges:[[0,10]],timeline_limit:1,required_state:m,include_old_rooms:{timeline_limit:0,required_state:m},filters:{tags:["m.favourite"]}},dms:{ranges:[[0,10]],timeline_limit:1,required_state:m,include_old_rooms:{timeline_limit:0,required_state:m},filters:{is_dm:!0,is_invite:!1,not_tags:["m.favourite","m.lowpriority"]}},untagged:{ranges:[[0,10]],timeline_limit:1,required_state:m,include_old_rooms:{timeline_limit:0,required_state:m}}};class _{constructor(){(0,o.A)(this,"slidingSync",void 0),(0,o.A)(this,"client",void 0),(0,o.A)(this,"configureDefer",Promise.withResolvers())}static get instance(){return _.internalInstance}configure(e,t){this.client=e;const s=new Map;for(const e in v)s.set(e,v[e]);return this.slidingSync=new r.W$(t,s,g,e,2e4),this.slidingSync.addCustomSubscription(h,p),this.configureDefer.resolve(),this.slidingSync}async ensureListRegistered(e,t){a.vF.debug("ensureListRegistered:::",e,t),await this.configureDefer.promise;let s=this.slidingSync.getListParams(e);if(s){const e=d(d({},s),t);if(JSON.stringify(s)===JSON.stringify(e))return a.vF.debug("list matches, not sending, update => ",t),s;s=e}else s=d({ranges:[[0,20]],sort:["by_notification_level","by_recency"],timeline_limit:1,required_state:[[i.EventType.RoomJoinRules,""],[i.EventType.RoomAvatar,""],[i.EventType.RoomTombstone,""],[i.EventType.RoomEncryption,""],[i.EventType.RoomCreate,""],[i.EventType.RoomMember,r.x7]],include_old_rooms:{timeline_limit:0,required_state:[[i.EventType.RoomCreate,""],[i.EventType.RoomTombstone,""],[i.EventType.SpaceChild,r.rb],[i.EventType.SpaceParent,r.rb],[i.EventType.RoomMember,r.x7]]}},t);try{t.ranges&&1===Object.keys(t).length?await this.slidingSync.setListRanges(e,t.ranges):await this.slidingSync.setList(e,s)}catch(e){a.vF.debug("ensureListRegistered: update failed txn_id=",e)}return this.slidingSync.getListParams(e)}async setRoomVisible(e){var t;await this.configureDefer.promise;const s=this.slidingSync.getRoomSubscriptions();if(s.has(e))return;s.add(e);const n=null===(t=this.client)||void 0===t?void 0:t.getRoom(e);let o=!1;var r;n&&(o=!await(null===(r=this.client)||void 0===r||null===(r=r.getCrypto())||void 0===r?void 0:r.isEncryptionEnabledInRoom(e)));return a.vF.log("SlidingSync setRoomVisible:",e,"shouldLazyLoad:",o),o&&this.slidingSync.useCustomSubscription(e,h),this.slidingSync.modifyRoomSubscriptions(s),n?void 0:new Promise(t=>{var s;a.vF.log(`SlidingSync setRoomVisible room ${e} not found, waiting for ClientEvent.Room`);const n=s=>{var o;s.roomId===e&&(null===(o=this.client)||void 0===o||o.off(i.ClientEvent.Room,n),a.vF.log(`SlidingSync room ${e} found, resolving setRoomVisible`),t())};null===(s=this.client)||void 0===s||s.on(i.ClientEvent.Room,n)})}async startSpidering(e,t,s){const n=new Map(Object.keys(v).map(e=>[e,v[e].ranges[0][1]]));console.log("startSpidering:",n);const o=async(i,a,c)=>{if(i!==r.ns.Complete)return;if(await(0,l.yy)(s),c)return;let d=!1;n.forEach((s,o)=>{var i;if(s<((null===(i=e.getListData(o))||void 0===i?void 0:i.joinedCount)||0)){const i=s+t;console.log(`startSpidering: ${o} ${s} => ${i}`),n.set(o,i),e.setListRanges(o,[[0,i]]),d=!0}}),d||e.off(r.cQ.Lifecycle,o)};e.on(r.cQ.Lifecycle,o)}async setup(e){const t=this.configure(e,e.baseUrl);return a.vF.info("Simplified Sliding Sync activated at",e.baseUrl),this.startSpidering(t,50,50),t}async nativeSlidingSyncSupport(e){const t=await(null==e?void 0:e.doesServerSupportUnstableFeature("org.matrix.simplified_msc3575"));return t&&a.vF.log("nativeSlidingSyncSupport: org.matrix.simplified_msc3575 sliding sync advertised as unstable"),t}async checkSupport(e){await this.nativeSlidingSyncSupport(e)?_.serverSupportsSlidingSync=!0:_.serverSupportsSlidingSync=!1}}n=_,(0,o.A)(_,"serverSupportsSlidingSync",void 0),(0,o.A)(_,"ListSpaces","space_list"),(0,o.A)(_,"ListSearch","search_list"),(0,o.A)(_,"internalInstance",new n)},"./src/SupportedBrowser.ts":(e,t,s)=>{"use strict";s.d(t,{mM:()=>b,o7:()=>E});var n=s("./node_modules/matrix-js-sdk/src/logger.ts"),o=s("./node_modules/browserslist/index.js"),i=s.n(o),r=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/pop-out.js"),a=s("./src/utils/device/parseUserAgent.ts"),l=s("./src/stores/ToastStore.ts"),c=s("./src/components/views/toasts/GenericToast.tsx"),d=s("./src/languageHandler.tsx"),m=s("./src/SdkConfig.ts");const u="mx_accepts_unsupported_browser",h="unsupportedbrowser",p=[a.b.Web,a.b.Desktop],g="last 2 Chrome versions, last 2 Firefox versions, last 2 Safari versions, last 2 Edge versions",v="https://github.com/element-hq/element-web#supported-environments";function _(){f(),window.open(v,"_blank","noopener,noreferrer")}function f(){localStorage.setItem(u,String(!0)),l.A.sharedInstance().dismissToast(h)}function y(e){const[t,s]=e.split(" ");return[t.toLowerCase(),parseInt(s,10)]}function b(){const e=i()(g).sort(),t=new Map;for(const s of e){const[e,n]=y(s);t.has(e)||t.set(e,n)}const s=(0,a.y)(navigator.userAgent);let o=!0;if(p.includes(s.deviceType)||(n.vF.warn("Browser unsupported, unsupported device type",s.deviceType),o=!1),s.client){if(s.deviceType===a.b.Desktop)return o;const[e,i]=y(s.client),r=t.get(e);(!r||i<r)&&(n.vF.warn("Browser unsupported, unsupported user agent",s.client),o=!1)}else n.vF.warn("Browser unsupported, unknown client",navigator.userAgent),o=!1;return o}function E(){if(b())return;if(localStorage.getItem(u))return void n.vF.warn("Browser unsupported, but user has previously accepted");const e=m.Ay.get().brand;l.A.sharedInstance().addOrReplaceToast({key:h,title:(0,d._t)("unsupported_browser|title",{brand:e}),props:{description:(0,d._t)("unsupported_browser|description",{brand:e}),secondaryLabel:(0,d._t)("action|learn_more"),SecondaryIcon:r.A,onSecondaryClick:_,primaryLabel:(0,d._t)("action|dismiss"),onPrimaryClick:f},component:c.A,priority:40})}},"./src/Terms.ts":(e,t,s)=>{"use strict";s.d(t,{kl:()=>f,lO:()=>_,Lo:()=>E,S$:()=>y,gw:()=>b});var n=s("./node_modules/classnames/index.js"),o=s.n(n),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./src/Modal.tsx"),a=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),l=s("./node_modules/react/index.js"),c=s("./node_modules/matrix-js-sdk/src/matrix.ts"),d=s("./src/languageHandler.tsx"),m=s("./src/components/views/elements/DialogButtons.tsx"),u=s("./src/components/views/dialogs/BaseDialog.tsx"),h=s("./src/components/views/elements/ExternalLink.tsx"),p=s("./src/utils/UrlUtils.ts");class g extends l.PureComponent{constructor(...e){super(...e),(0,a.A)(this,"onChange",e=>{this.props.onChange(this.props.url,e.currentTarget.checked)})}render(){return l.createElement("input",{type:"checkbox",onChange:this.onChange,checked:this.props.checked})}}class v extends l.PureComponent{constructor(e){super(e),(0,a.A)(this,"onCancelClick",()=>{this.props.onFinished(!1)}),(0,a.A)(this,"onNextClick",()=>{this.props.onFinished(!0,Object.keys(this.state.agreedUrls).filter(e=>this.state.agreedUrls[e]))}),(0,a.A)(this,"onTermsCheckboxChange",(e,t)=>{this.setState({agreedUrls:Object.assign({},this.state.agreedUrls,{[e]:t})})}),this.state={agreedUrls:{}};for(const t of e.agreedUrls)this.state.agreedUrls[t]=!0}nameForServiceType(e,t){switch(e){case c.SERVICE_TYPES.IS:return l.createElement("div",null,(0,d._t)("common|identity_server"),l.createElement("br",null),"(",t,")");case c.SERVICE_TYPES.IM:return l.createElement("div",null,(0,d._t)("common|integration_manager"),l.createElement("br",null),"(",t,")")}}summaryForServiceType(e){switch(e){case c.SERVICE_TYPES.IS:return l.createElement("div",null,(0,d._t)("terms|summary_identity_server_1"),l.createElement("br",null),(0,d._t)("terms|summary_identity_server_2"));case c.SERVICE_TYPES.IM:return l.createElement("div",null,(0,d._t)("terms|integration_manager"))}}render(){const e=[];for(const t of this.props.policiesAndServicePairs){const s=(0,p.Dl)(t.service.baseUrl),n=Object.values(t.policies);for(let o=0;o<n.length;++o){const i=y(n[o]);if(!i)continue;let r,a;0===o&&(r=this.nameForServiceType(t.service.serviceType,s.host),a=this.summaryForServiceType(t.service.serviceType)),e.push(l.createElement("tr",{key:i.url},l.createElement("td",{className:"mx_TermsDialog_service"},r),l.createElement("td",{className:"mx_TermsDialog_summary"},a),l.createElement("td",null,l.createElement(h.A,{rel:"noreferrer noopener",target:"_blank",href:i.url},i.name)),l.createElement("td",null,l.createElement(g,{url:i.url,onChange:this.onTermsCheckboxChange,checked:Boolean(this.state.agreedUrls[i.url])}))))}}let t=!1;for(const e of this.props.policiesAndServicePairs){let s=0;for(const t of Object.values(e.policies)){let e=!1;for(const s of Object.keys(t))if("version"!==s&&"string"!=typeof t[s]&&this.state.agreedUrls[t[s].url]){e=!0;break}e&&++s}if(s===Object.keys(e.policies).length){t=!0;break}}return l.createElement(u.A,{fixedWidth:!1,onFinished:this.onCancelClick,title:(0,d._t)("terms|tos"),contentId:"mx_Dialog_content",hasCancel:!1},l.createElement("div",{id:"mx_Dialog_content"},l.createElement("p",null,(0,d._t)("terms|intro")),l.createElement("table",{className:"mx_TermsDialog_termsTable"},l.createElement("tbody",null,l.createElement("tr",{className:"mx_TermsDialog_termsTableHeader"},l.createElement("th",null,(0,d._t)("terms|column_service")),l.createElement("th",null,(0,d._t)("terms|column_summary")),l.createElement("th",null,(0,d._t)("terms|column_document")),l.createElement("th",null,(0,d._t)("action|accept"))),e))),l.createElement(m.A,{primaryButton:(0,d._t)("action|next"),hasCancel:!0,onCancel:this.onCancelClick,onPrimaryButtonClick:this.onNextClick,primaryDisabled:!t}))}}class _ extends Error{}class f{constructor(e,t,s){this.serviceType=e,this.baseUrl=t,this.accessToken=s}}function y(e){return e[(0,d.CO)(Object.keys(e).filter(e=>"version"!==e))]}async function b(e,t,s=E){var n;const o=t.map(t=>e.getTerms(t.serviceType,t.baseUrl)),r=(await Promise.all(o)).map((e,s)=>({service:t[s],policies:e.policies})),a=null===(n=e.getAccountData("m.accepted_terms"))||void 0===n?void 0:n.getContent(),l=new Set((null==a?void 0:a.accepted)||[]),c=[];for(const{service:e,policies:t}of r){const s={};for(const[e,n]of Object.entries(t)){let t=!1;for(const e of Object.keys(n))if("version"!==e&&"string"!=typeof n[e]&&l.has(n[e].url)){t=!0;break}t||(s[e]=n)}Object.keys(s).length>0&&c.push({service:e,policies:s})}const d=l.size;if(c.length>0){const e=await s(c,[...l]);i.vF.log("User has agreed to URLs",e),e.forEach(e=>l.add(e))}else i.vF.log("User has already agreed to all required policies");if(l.size!==d){const t={accepted:Array.from(l)};await e.setAccountData("m.accepted_terms",t)}const m=r.map(t=>{const s=Array.from(l).filter(e=>{for(const s of Object.values(t.policies))for(const t of Object.keys(s))if("version"!==t&&"string"!=typeof s[t]&&s[t].url===e)return!0;return!1});return 0===s.length?Promise.resolve():e.agreeToTerms(t.service.serviceType,t.service.baseUrl,t.service.accessToken,s)});await Promise.all(m)}async function E(e,t,s){i.vF.log("Terms that need agreement",e);const{finished:n}=r.Ay.createDialog(v,{policiesAndServicePairs:e,agreedUrls:t},o()("mx_TermsDialog",s)),[a,l]=await n;if(!a||!l)throw new _;return l}},"./src/TextForEvent.tsx":(e,t,s)=>{"use strict";s.d(t,{I3:()=>U,Rd:()=>F,QY:()=>T});var n=s("./node_modules/react/index.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/types.ts"),r=s("./node_modules/matrix-js-sdk/src/logger.ts"),a=s("./node_modules/matrix-js-sdk/src/utils.ts"),l=s("./src/languageHandler.tsx"),c=s("./src/Roles.ts"),d=s("./src/RoomInvite.tsx"),m=s("./src/settings/SettingsStore.ts"),u=s("./src/mjolnir/BanList.ts"),h=s("./src/stores/widgets/WidgetLayoutStore.ts"),p=s("./src/stores/right-panel/RightPanelStorePhases.ts"),g=s("./src/dispatcher/dispatcher.ts"),v=s("./src/components/views/dialogs/RoomSettingsDialog.tsx"),_=s("./src/components/views/elements/AccessibleButton.tsx"),f=s("./src/stores/right-panel/RightPanelStore.ts"),y=s("./src/utils/EventUtils.ts");function b(e){var t,s,n;return null!==(t=null!==(s=null===(n=e.sender)||void 0===n?void 0:n.name)&&void 0!==s?s:e.getSender())&&void 0!==t?t:(0,l._t)("common|someone")}var E=s("./src/PosthogTrackers.ts"),w=s("./src/call-types.ts");function x(e,t,s=t.getSender()){var n;const o=t.getRoomId(),i=null===(n=e.getRoom(o))||void 0===n?void 0:n.getMember(s);return(null==i?void 0:i.name)||(null==i?void 0:i.rawDisplayName)||s||(0,l._t)("common|someone")}function A(e,t){var s;const n=null===(s=t.getRoom(e.getRoomId()))||void 0===s?void 0:s.name;return t.supportsVoip()?()=>(0,l._t)("timeline|m.call|video_call_started",{roomName:n}):()=>(0,l._t)("timeline|m.call|video_call_started_unsupported",{roomName:n})}var S=function(e){return e[e.None=0]="None",e[e.Unset=1]="Unset",e[e.Set=2]="Set",e[e.Changed=3]="Changed",e}(S||{});function C(e,t){return e&&t&&e!==t?S.Changed:e&&!t?S.Unset:!e&&t?S.Set:S.None}const R=()=>{g.A.dispatch({action:"open_room_settings",initial_tab_id:v.e.Security})};function k(e,t){return(0,y.wq)(e)?T(e):()=>{const s=e.sender&&e.sender.name?e.sender.name:e.getSender();let n=e.getContent().body;return e.isRedacted()&&(n=O(e,t)),n=e.getContent().msgtype===o.MsgType.Emote?"* "+s+" "+n:e.getContent().msgtype===o.MsgType.Image?(0,l._t)("timeline|m.image|sent",{senderDisplayName:s}):e.getType()==o.EventType.Sticker?(0,l._t)("timeline|m.sticker",{senderDisplayName:s}):s+": "+n,n}}const I=()=>{E.A.trackInteraction("PinnedMessageStateEventClick"),f.A.instance.setCard({phase:p.n.PinnedMessages},!1)};function P(e){const t=b(e),{entity:s}=e.getPrevContent(),{entity:n,recommendation:o,reason:i}=e.getContent();return n?o&&i?n===s?u.zq.includes(e.getType())?()=>(0,l._t)("timeline|mjolnir|updated_rule_users",{senderName:t,glob:n,reason:i}):u.B5.includes(e.getType())?()=>(0,l._t)("timeline|mjolnir|updated_rule_rooms",{senderName:t,glob:n,reason:i}):u.t5.includes(e.getType())?()=>(0,l._t)("timeline|mjolnir|updated_rule_servers",{senderName:t,glob:n,reason:i}):()=>(0,l._t)("timeline|mjolnir|updated_rule",{senderName:t,glob:n,reason:i}):s?u.zq.includes(e.getType())?()=>(0,l._t)("timeline|mjolnir|changed_rule_users",{senderName:t,oldGlob:s,newGlob:n,reason:i}):u.B5.includes(e.getType())?()=>(0,l._t)("timeline|mjolnir|changed_rule_rooms",{senderName:t,oldGlob:s,newGlob:n,reason:i}):u.t5.includes(e.getType())?()=>(0,l._t)("timeline|mjolnir|changed_rule_servers",{senderName:t,oldGlob:s,newGlob:n,reason:i}):()=>(0,l._t)("timeline|mjolnir|changed_rule_glob",{senderName:t,oldGlob:s,newGlob:n,reason:i}):u.zq.includes(e.getType())?()=>(0,l._t)("timeline|mjolnir|created_rule_users",{senderName:t,glob:n,reason:i}):u.B5.includes(e.getType())?()=>(0,l._t)("timeline|mjolnir|created_rule_rooms",{senderName:t,glob:n,reason:i}):u.t5.includes(e.getType())?()=>(0,l._t)("timeline|mjolnir|created_rule_servers",{senderName:t,glob:n,reason:i}):()=>(0,l._t)("timeline|mjolnir|created_rule",{senderName:t,glob:n,reason:i}):()=>(0,l._t)("timeline|mjolnir|updated_invalid_rule",{senderName:t}):u.zq.includes(e.getType())?()=>(0,l._t)("timeline|mjolnir|removed_rule_users",{senderName:t,glob:s}):u.B5.includes(e.getType())?()=>(0,l._t)("timeline|mjolnir|removed_rule_rooms",{senderName:t,glob:s}):u.t5.includes(e.getType())?()=>(0,l._t)("timeline|mjolnir|removed_rule_servers",{senderName:t,glob:s}):()=>(0,l._t)("timeline|mjolnir|removed_rule",{senderName:t,glob:s})}function T(e){return()=>(0,l._t)("timeline|m.location|full",{senderName:b(e)})}function O(e,t){var s;let n=(0,l._t)("timeline|self_redaction");const o=e.getUnsigned(),i=null==o||null===(s=o.redacted_because)||void 0===s?void 0:s.sender;if(i&&i!==e.getSender()){const s=t.getRoom(e.getRoomId()),o=null==s?void 0:s.getMember(i);n=(0,l._t)("timeline|redaction",{name:(null==o?void 0:o.name)||i})}return n}function M(e,t){return()=>{let s="";if(e.isRedacted()){var n,o;s=O(e,t);s=(null!==(n=null===(o=e.sender)||void 0===o?void 0:o.name)&&void 0!==n?n:e.getSender())+": "+s}else{var i;s=(0,l._t)("timeline|m.poll.start",{senderName:b(e),pollQuestion:null===(i=e.unstableExtensibleEvent)||void 0===i||null===(i=i.question)||void 0===i?void 0:i.text})}return s}}function N(e){return()=>(0,l._t)("timeline|m.poll.end|sender_ended",{senderName:b(e)})}const D={[o.EventType.RoomMessage]:k,[o.EventType.Sticker]:k,[o.EventType.CallInvite]:function(e,t){var s;const n=b(e),o=!(null!==(s=e.getContent().offer)&&void 0!==s&&null!==(s=s.sdp)&&void 0!==s&&s.includes("m=video")),i=t.supportsVoip();return o&&i?()=>(0,l._t)("timeline|m.call.invite|voice_call",{senderName:n}):o&&!i?()=>(0,l._t)("timeline|m.call.invite|voice_call_unsupported",{senderName:n}):!o&&i?()=>(0,l._t)("timeline|m.call.invite|video_call",{senderName:n}):o||i?null:()=>(0,l._t)("timeline|m.call.invite|video_call_unsupported",{senderName:n})},[o.M_POLL_START.name]:M,[o.M_POLL_END.name]:N,[o.M_POLL_START.altName]:M,[o.M_POLL_END.altName]:N},j={[o.EventType.RoomCanonicalAlias]:function(e){const t=b(e),s=e.getPrevContent().alias,n=e.getPrevContent().alt_aliases||[],o=e.getContent().alias,i=e.getContent().alt_aliases||[],r=n.filter(e=>!i.includes(e)),a=i.filter(e=>!n.includes(e));if(r.length||a.length){if(o!==s)return()=>(0,l._t)("timeline|m.room.canonical_alias|changed_main_and_alternative",{senderName:t});if(a.length&&!r.length)return()=>(0,l._t)("timeline|m.room.canonical_alias|alt_added",{senderName:t,addresses:a.join(", "),count:a.length});if(r.length&&!a.length)return()=>(0,l._t)("timeline|m.room.canonical_alias|alt_removed",{senderName:t,addresses:r.join(", "),count:r.length});if(r.length&&a.length)return()=>(0,l._t)("timeline|m.room.canonical_alias|changed_alternative",{senderName:t})}else{if(o)return()=>(0,l._t)("timeline|m.room.canonical_alias|set",{senderName:t,address:e.getContent().alias});if(s)return()=>(0,l._t)("timeline|m.room.canonical_alias|removed",{senderName:t})}return()=>(0,l._t)("timeline|m.room.canonical_alias|changed",{senderName:t})},[o.EventType.RoomName]:function(e){const t=e.sender&&e.sender.name?e.sender.name:e.getSender();return e.getContent().name&&0!==e.getContent().name.trim().length?e.getPrevContent().name?()=>(0,l._t)("timeline|m.room.name|change",{senderDisplayName:t,oldRoomName:e.getPrevContent().name,newRoomName:e.getContent().name}):()=>(0,l._t)("timeline|m.room.name|set",{senderDisplayName:t,roomName:e.getContent().name}):()=>(0,l._t)("timeline|m.room.name|remove",{senderDisplayName:t})},[o.EventType.RoomTopic]:function(e){const t=e.sender&&e.sender.name?e.sender.name:e.getSender(),s=o.ContentHelpers.parseTopicContent(e.getContent()).text;return()=>s?(0,l._t)("timeline|m.room.topic|changed",{senderDisplayName:t,topic:s}):(0,l._t)("timeline|m.room.topic|removed",{senderDisplayName:t})},[o.EventType.RoomMember]:function(e,t,s,n){var o,c;const d=(null===(o=e.sender)||void 0===o?void 0:o.name)||x(t,e),u=(null===(c=e.target)||void 0===c?void 0:c.name)||x(t,e,e.getStateKey()),h=e.getPrevContent(),p=e.getContent(),g=p.reason;switch(p.membership){case i.O.Invite:{const e=p.third_party_invite;return e?e.display_name?()=>(0,l._t)("timeline|m.room.member|accepted_3pid_invite",{targetName:u,displayName:e.display_name}):()=>(0,l._t)("timeline|m.room.member|accepted_invite",{targetName:u}):()=>(0,l._t)("timeline|m.room.member|invite",{senderName:d,targetName:u})}case i.O.Ban:return()=>g?(0,l._t)("timeline|m.room.member|ban_reason",{senderName:d,targetName:u,reason:g}):(0,l._t)("timeline|m.room.member|ban",{senderName:d,targetName:u});case i.O.Join:if(h&&h.membership===i.O.Join){const t=C(h.displayname,p.displayname),s=C(h.avatar_url,p.avatar_url);return t!==S.None&&s!==S.None?()=>(0,l._t)("timeline|m.room.member|change_name_avatar",{oldDisplayName:(0,a.d7)(h.displayname)}):t===S.Changed?()=>(0,l._t)("timeline|m.room.member|change_name",{oldDisplayName:(0,a.d7)(h.displayname),displayName:(0,a.d7)(p.displayname)}):t===S.Set?()=>(0,l._t)("timeline|m.room.member|set_name",{senderName:e.getSender(),displayName:(0,a.d7)(p.displayname)}):t===S.Unset?()=>(0,l._t)("timeline|m.room.member|remove_name",{senderName:d,oldDisplayName:(0,a.d7)(h.displayname)}):s===S.Unset?()=>(0,l._t)("timeline|m.room.member|remove_avatar",{senderName:d}):s===S.Changed?()=>(0,l._t)("timeline|m.room.member|change_avatar",{senderName:d}):s===S.Set?()=>(0,l._t)("timeline|m.room.member|set_avatar",{senderName:d}):(null!=n?n:m.A.getValue("showHiddenEventsInTimeline"))?()=>(0,l._t)("timeline|m.room.member|no_change",{senderName:d}):null}return e.target||r.vF.warn("Join message has no target! -- "+e.getContent().state_key),()=>(0,l._t)("timeline|m.room.member|join",{targetName:u});case i.O.Leave:return e.getSender()===e.getStateKey()?h.membership===i.O.Invite?()=>g?(0,l._t)("timeline|m.room.member|reject_invite_reason",{targetName:u,reason:g}):(0,l._t)("timeline|m.room.member|reject_invite",{targetName:u}):()=>g?(0,l._t)("timeline|m.room.member|left_reason",{targetName:u,reason:g}):(0,l._t)("timeline|m.room.member|left",{targetName:u}):h.membership===i.O.Ban?()=>(0,l._t)("timeline|m.room.member|unban",{senderName:d,targetName:u}):h.membership===i.O.Invite?()=>g?(0,l._t)("timeline|m.room.member|withdrew_invite_reason",{senderName:d,targetName:u,reason:g}):(0,l._t)("timeline|m.room.member|withdrew_invite",{senderName:d,targetName:u}):h.membership===i.O.Join?()=>g?(0,l._t)("timeline|m.room.member|kick_reason",{senderName:d,targetName:u,reason:g}):(0,l._t)("timeline|m.room.member|kick",{senderName:d,targetName:u}):null}return null},[o.EventType.RoomAvatar]:function(e){var t;const s=(null==e||null===(t=e.sender)||void 0===t?void 0:t.name)||e.getSender();return()=>(0,l._t)("timeline|m.room.avatar|changed",{senderDisplayName:s})},[o.EventType.RoomThirdPartyInvite]:function(e){const t=b(e);return(0,d.Qo)(e)?()=>(0,l._t)("timeline|m.room.third_party_invite|sent",{senderName:t,targetDisplayName:e.getContent().display_name}):()=>(0,l._t)("timeline|m.room.third_party_invite|revoked",{senderName:t,targetDisplayName:e.getPrevContent().display_name||(0,l._t)("common|someone")})},[o.EventType.RoomHistoryVisibility]:function(e){const t=b(e);switch(e.getContent().history_visibility){case o.HistoryVisibility.Invited:return()=>(0,l._t)("timeline|m.room.history_visibility|invited",{senderName:t});case o.HistoryVisibility.Joined:return()=>(0,l._t)("timeline|m.room.history_visibility|joined",{senderName:t});case o.HistoryVisibility.Shared:return()=>(0,l._t)("timeline|m.room.history_visibility|shared",{senderName:t});case o.HistoryVisibility.WorldReadable:return()=>(0,l._t)("timeline|m.room.history_visibility|world_readable",{senderName:t});default:return()=>(0,l._t)("timeline|m.room.history_visibility|unknown",{senderName:t,visibility:e.getContent().history_visibility})}},[o.EventType.RoomPowerLevels]:function(e,t){var s,n;const o=b(e);if(null===(s=e.getPrevContent())||void 0===s||!s.users||null===(n=e.getContent())||void 0===n||!n.users)return null;const i=e.getPrevContent().users_default||0,r=e.getContent().users_default||0,a=[];Object.keys(e.getContent().users).forEach(e=>{-1===a.indexOf(e)&&a.push(e)}),Object.keys(e.getPrevContent().users).forEach(e=>{-1===a.indexOf(e)&&a.push(e)});const d=[];return a.forEach(s=>{let n=e.getPrevContent().users[s];Number.isInteger(n)||(n=i);let o=e.getContent().users[s];if(Number.isInteger(o)||(o=r),(n!==i||o!==r)&&o!==n){const i=x(t,e,s);d.push({userId:s,name:i,from:n,to:o})}}),d.length?()=>(0,l._t)("timeline|m.room.power_levels|changed",{senderName:o,powerLevelDiffText:d.map(e=>(0,l._t)("timeline|m.room.power_levels|user_from_to",{userId:e.name,fromPowerLevel:c.X(e.from,i),toPowerLevel:c.X(e.to,r)})).join(", ")}):null},[o.EventType.RoomPinnedEvents]:function(e,t,s){const o=b(e),i=e.getRoomId(),r=e.getContent(),a=e.getPrevContent(),c=Array.isArray(r.pinned)?r.pinned:[],d=Array.isArray(a.pinned)?a.pinned:[],m=c.filter(e=>d.indexOf(e)<0),u=d.filter(e=>c.indexOf(e)<0);if(1===m.length&&0===u.length){if(s){const e=m.pop();return()=>n.createElement("span",null,(0,l._t)("timeline|m.room.pinned_events|pinned_link",{senderName:o},{a:t=>n.createElement(_.A,{kind:"link_inline",onClick:()=>{E.A.trackInteraction("PinnedMessageStateEventClick"),(0,y.nZ)(i,e)}},t),b:e=>n.createElement(_.A,{kind:"link_inline",onClick:I},e)}))}return()=>(0,l._t)("timeline|m.room.pinned_events|pinned",{senderName:o})}if(1===u.length&&0===m.length){if(s){const e=u.pop();return()=>n.createElement("span",null,(0,l._t)("timeline|m.room.pinned_events|unpinned_link",{senderName:o},{a:t=>n.createElement(_.A,{kind:"link_inline",onClick:()=>{E.A.trackInteraction("PinnedMessageStateEventClick"),(0,y.nZ)(i,e)}},t),b:e=>n.createElement(_.A,{kind:"link_inline",onClick:I},e)}))}return()=>(0,l._t)("timeline|m.room.pinned_events|unpinned",{senderName:o})}return s?()=>n.createElement("span",null,(0,l._t)("timeline|m.room.pinned_events|changed_link",{senderName:o},{a:e=>n.createElement(_.A,{kind:"link_inline",onClick:I},e)})):()=>(0,l._t)("timeline|m.room.pinned_events|changed",{senderName:o})},[o.EventType.RoomServerAcl]:function(e){const t=e.sender&&e.sender.name?e.sender.name:e.getSender(),s=e.getPrevContent(),n=e.getContent(),o=Array.isArray(s.deny)?s.deny:[],i=Array.isArray(s.allow)?s.allow:[];let r;return s.allow_ip_literals,r=0===o.length&&0===i.length?()=>(0,l._t)("timeline|m.room.server_acl|set",{senderDisplayName:t}):()=>(0,l._t)("timeline|m.room.server_acl|changed",{senderDisplayName:t}),Array.isArray(n.allow)||(n.allow=[]),0===n.allow.length?()=>r()+" "+(0,l._t)("timeline|m.room.server_acl|all_servers_banned"):r},[o.EventType.RoomTombstone]:function(e){const t=e.sender&&e.sender.name?e.sender.name:e.getSender();return()=>(0,l._t)("timeline|m.room.tombstone",{senderDisplayName:t})},[o.EventType.RoomJoinRules]:function(e,t,s){const i=e.sender&&e.sender.name?e.sender.name:e.getSender();switch(e.getContent().join_rule){case o.JoinRule.Public:return()=>(0,l._t)("timeline|m.room.join_rules|public",{senderDisplayName:i});case o.JoinRule.Invite:return()=>(0,l._t)("timeline|m.room.join_rules|invite",{senderDisplayName:i});case o.JoinRule.Knock:return()=>(0,l._t)("timeline|m.room.join_rules|knock",{senderDisplayName:i});case o.JoinRule.Restricted:return s?()=>n.createElement("span",null,(0,l._t)("timeline|m.room.join_rules|restricted_settings",{senderDisplayName:i},{a:e=>n.createElement(_.A,{kind:"link_inline",onClick:R},e)})):()=>(0,l._t)("timeline|m.room.join_rules|restricted",{senderDisplayName:i});default:return()=>(0,l._t)("timeline|m.room.join_rules|unknown",{senderDisplayName:i,rule:e.getContent().join_rule})}},[o.EventType.RoomGuestAccess]:function(e){const t=e.sender&&e.sender.name?e.sender.name:e.getSender();switch(e.getContent().guest_access){case o.GuestAccess.CanJoin:return()=>(0,l._t)("timeline|m.room.guest_access|can_join",{senderDisplayName:t});case o.GuestAccess.Forbidden:return()=>(0,l._t)("timeline|m.room.guest_access|forbidden",{senderDisplayName:t});default:return()=>(0,l._t)("timeline|m.room.guest_access|unknown",{senderDisplayName:t,rule:e.getContent().guest_access})}},"im.vector.modular.widgets":function(e){const t=b(e),{name:s,type:n,url:o}=e.getPrevContent(),{name:i,type:r,url:a}=e.getContent()||{};let c=i||s||r||n||"";return c&&c.length>0&&(c=c[0].toUpperCase()+c.slice(1)),a?o?()=>(0,l._t)("timeline|m.widget|modified",{widgetName:c,senderName:t}):()=>(0,l._t)("timeline|m.widget|added",{widgetName:c,senderName:t}):()=>(0,l._t)("timeline|m.widget|removed",{widgetName:c,senderName:t})},[h.SQ]:function(e){const t=b(e);return()=>(0,l._t)("timeline|io.element.widgets.layout",{senderName:t})}};for(const e of u.Pd)j[e]=P;for(const e of w.Fm.names)j[e]=A;function U(e,t,s){const n=(e.isState()?j:D)[e.getType()];return Boolean(null==n?void 0:n(e,t,!1,s))}function F(e,t,s=!1,n){var o;const i=(e.isState()?j:D)[e.getType()];return(null==i||null===(o=i(e,t,s,n))||void 0===o?void 0:o())||""}},"./src/TimezoneHandler.ts":(e,t,s)=>{"use strict";s.d(t,{QG:()=>l,cd:()=>i,cf:()=>c,dB:()=>r,nY:()=>a});var n=s("./src/settings/SettingLevel.ts"),o=s("./src/settings/SettingsStore.ts");const i="userTimezone";function r(){return o.A.getValueAt(n.p.DEVICE,i)||void 0}function a(e){return o.A.setValue(i,null,n.p.DEVICE,e)}function l(){return Intl.supportedValuesOf("timeZone")}function c(){var e,t;return null!==(e=null===(t=new Intl.DateTimeFormat(void 0,{timeZoneName:"short"}).formatToParts(new Date).find(e=>"timeZoneName"===e.type))||void 0===t?void 0:t.value)&&void 0!==e?e:"GMT"}},"./src/Typeguards.ts":(e,t,s)=>{"use strict";function n(e){return null!==e}function o(e){return void 0!==e}s.d(t,{E:()=>o,P:()=>n})},"./src/Unread.ts":(e,t,s)=>{"use strict";s.d(t,{GN:()=>c,Nb:()=>m,aA:()=>l,jM:()=>u});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./node_modules/matrix-js-sdk/src/logger.ts"),i=s("./src/shouldHideEvent.ts"),r=s("./src/events/EventTileFactory.tsx"),a=s("./src/RoomNotifs.ts");function l(e,t){if(t.getSender()===e.getSafeUserId())return!1;switch(t.getType()){case n.EventType.RoomMember:case n.EventType.RoomThirdPartyInvite:case n.EventType.CallAnswer:case n.EventType.CallHangup:case n.EventType.RoomCanonicalAlias:case n.EventType.RoomServerAcl:case n.M_BEACON.name:case n.M_BEACON.altName:return!1}if(t.isRedacted())return!1;try{return(0,r.bN)(t,e,!1)}catch(e){return console.warn("Error determining if event should trigger unread count",e),!1}}function c(e,t){const s=[e];t&&s.push(...e.getThreads());for(const t of s)if(d(e,t.timeline))return!0;return!1}function d(e,t){var s;if(e.isSpaceRoom())return!1;const n=e.client.getSafeUserId(),i=null===(s=function(e,t){for(let s=t.length-1;s>=0;s--){const n=t[s];if(h(e,n))return n}return null}(e.client,t))||void 0===s?void 0:s.getId();if(i)return!e.hasUserReadEvent(n,i);{var r;const s=null===(r=t.at(0))||void 0===r?void 0:r.getId();return!!s&&(!e.hasUserReadEvent(n,s)&&(o.vF.warn("Falling back to unread room because of no read receipt or counting message found",{roomId:e.roomId,earliestUnimportantEventId:s}),!0))}}function m(e){if((0,a.Gg)(e.client,e.roomId)===a.dC.Mute)return!1;for(const t of e.getThreads())if(d(e,t.timeline))return!0;return!1}function u(e){const t=e instanceof n.Thread?e.room:e,s=e instanceof n.Thread?e.timeline:t.getLiveTimeline().getEvents();return d(t,s)}function h(e,t){return!(0,i.A)(t)&&l(e,t)}},"./src/UserActivity.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./src/dispatcher/dispatcher.ts"),i=s("./src/utils/Timer.ts");class r{constructor(e,t){(0,n.A)(this,"activeNowTimeout",void 0),(0,n.A)(this,"activeRecentlyTimeout",void 0),(0,n.A)(this,"attachedActiveNowTimers",[]),(0,n.A)(this,"attachedActiveRecentlyTimers",[]),(0,n.A)(this,"lastScreenX",0),(0,n.A)(this,"lastScreenY",0),(0,n.A)(this,"onPageVisibilityChanged",e=>{"hidden"===this.document.visibilityState?(this.activeNowTimeout.abort(),this.activeRecentlyTimeout.abort()):this.onUserActivity(e)}),(0,n.A)(this,"onWindowBlurred",()=>{this.activeNowTimeout.abort(),this.activeRecentlyTimeout.abort()}),(0,n.A)(this,"onUserActivity",e=>{if(this.document.hasFocus()){if("mousemove"===e.type&&this.isMouseEvent(e)){if(e.screenX===this.lastScreenX&&e.screenY===this.lastScreenY)return;this.lastScreenX=e.screenX,this.lastScreenY=e.screenY}o.A.dispatch({action:"user_activity"}),this.activeNowTimeout.isRunning()?this.activeNowTimeout.restart():(this.activeNowTimeout.start(),o.A.dispatch({action:"user_activity_start"}),r.runTimersUntilTimeout(this.attachedActiveNowTimers,this.activeNowTimeout)),this.activeRecentlyTimeout.isRunning()?this.activeRecentlyTimeout.restart():(this.activeRecentlyTimeout.start(),r.runTimersUntilTimeout(this.attachedActiveRecentlyTimers,this.activeRecentlyTimeout))}}),this.window=e,this.document=t,this.activeNowTimeout=new i.A(700),this.activeRecentlyTimeout=new i.A(12e4)}static sharedInstance(){return void 0===window.mxUserActivity&&(window.mxUserActivity=new r(window,document)),window.mxUserActivity}timeWhileActiveNow(e){this.timeWhile(e,this.attachedActiveNowTimers),this.userActiveNow()&&e.start()}timeWhileActiveRecently(e){this.timeWhile(e,this.attachedActiveRecentlyTimers),this.userActiveRecently()&&e.start()}timeWhile(e,t){-1===t.indexOf(e)&&(t.push(e),e.finished().finally(()=>{const s=t.indexOf(e);-1!==s&&t.splice(s,1)}).catch(e=>{}))}start(){this.document.addEventListener("mousedown",this.onUserActivity),this.document.addEventListener("mousemove",this.onUserActivity),this.document.addEventListener("keydown",this.onUserActivity),this.document.addEventListener("visibilitychange",this.onPageVisibilityChanged),this.window.addEventListener("blur",this.onWindowBlurred),this.window.addEventListener("focus",this.onUserActivity),this.window.addEventListener("wheel",this.onUserActivity,{passive:!0,capture:!0})}stop(){this.document.removeEventListener("mousedown",this.onUserActivity),this.document.removeEventListener("mousemove",this.onUserActivity),this.document.removeEventListener("keydown",this.onUserActivity),this.window.removeEventListener("wheel",this.onUserActivity,{capture:!0}),this.document.removeEventListener("visibilitychange",this.onPageVisibilityChanged),this.window.removeEventListener("blur",this.onWindowBlurred),this.window.removeEventListener("focus",this.onUserActivity)}userActiveNow(){return this.activeNowTimeout.isRunning()}userActiveRecently(){return this.activeRecentlyTimeout.isRunning()}static async runTimersUntilTimeout(e,t){e.forEach(e=>e.start());try{await t.finished()}catch{}e.forEach(e=>e.abort())}isMouseEvent(e){return e.type.startsWith("mouse")}}},"./src/UserAddress.ts":(e,t,s)=>{"use strict";s.d(t,{R:()=>r,Z:()=>a});const n=/^\S+@\S+\.\S+$/,o=/^@\S+:\S+$/,i=/^!\S+:\S+$/;let r=function(e){return e.Email="email",e.MatrixUserId="mx-user-id",e.MatrixRoomId="mx-room-id",e}({});function a(e){return n.test(e)?r.Email:o.test(e)?r.MatrixUserId:i.test(e)?r.MatrixRoomId:null}},"./src/Views.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>o});var n=function(e){return e[e.LOADING=0]="LOADING",e[e.CONFIRM_LOCK_THEFT=1]="CONFIRM_LOCK_THEFT",e[e.WELCOME=2]="WELCOME",e[e.LOGIN=3]="LOGIN",e[e.REGISTER=4]="REGISTER",e[e.FORGOT_PASSWORD=5]="FORGOT_PASSWORD",e[e.COMPLETE_SECURITY=6]="COMPLETE_SECURITY",e[e.E2E_SETUP=7]="E2E_SETUP",e[e.LOGGED_IN=8]="LOGGED_IN",e[e.SOFT_LOGOUT=9]="SOFT_LOGOUT",e[e.LOCK_STOLEN=10]="LOCK_STOLEN",e}(n||{});const o=n},"./src/WorkerManager.ts":(e,t,s)=>{"use strict";s.d(t,{O:()=>i});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");function o(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}class i{constructor(e){(0,n.A)(this,"worker",void 0),(0,n.A)(this,"seq",0),(0,n.A)(this,"pendingDeferredMap",new Map),(0,n.A)(this,"onMessage",e=>{const t=this.pendingDeferredMap.get(e.data.seq);t&&(this.pendingDeferredMap.delete(e.data.seq),t.resolve(e.data))}),this.worker=e,this.worker.onmessage=this.onMessage}call(e){const t=this.seq++,s=Promise.withResolvers();return this.pendingDeferredMap.set(t,s),this.worker.postMessage(function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?o(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):o(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}({seq:t},e)),s.promise}}},"./src/accessibility/KeyboardShortcutUtils.ts":(e,t,s)=>{"use strict";s.d(t,{Lt:()=>u,Tz:()=>m,tS:()=>c});var n=s("./src/Keyboard.ts"),o=s("./src/languageHandler.tsx"),i=s("./src/PlatformPeg.ts"),r=s("./src/settings/SettingsStore.ts"),a=s("./src/accessibility/KeyboardShortcuts.ts");const l=()=>{var e;const t=r.A.getValue("MessageComposerInput.ctrlEnterToSend"),s={[a.bY.SendMessage]:{default:{key:n.Uz.ENTER,ctrlOrCmdKey:t},displayName:(0,o.AO)("composer|send_button_title")},[a.bY.NewLine]:{default:{key:n.Uz.ENTER,shiftKey:!t},displayName:(0,o.AO)("keyboard|composer_new_line")},[a.bY.CompleteAutocomplete]:{default:{key:n.Uz.ENTER},displayName:(0,o.AO)("action|complete")},[a.bY.ForceCompleteAutocomplete]:{default:{key:n.Uz.TAB},displayName:(0,o.AO)("keyboard|autocomplete_force")},[a.bY.SearchInRoom]:{default:{ctrlOrCmdKey:!0,key:n.Uz.F},displayName:(0,o.AO)("keyboard|search")}};return null!==(e=i.A.get())&&void 0!==e&&e.overrideBrowserShortcuts()&&(s[a.bY.SwitchToSpaceByNumber]={default:{ctrlOrCmdKey:!0,key:a.x5},displayName:(0,o.AO)("keyboard|switch_to_space")}),s},c=()=>{var e;const t=null===(e=i.A.get())||void 0===e?void 0:e.overrideBrowserShortcuts();return Object.keys(a.A7).filter(e=>{var s;return(null===(s=a.A7[e])||void 0===s||null===(s=s.controller)||void 0===s||!s.settingDisabled)&&(!(a.ze.includes(e)&&!n.vL)&&!(a.V9.includes(e)&&!t))}).reduce((e,t)=>(e[t]=a.A7[t],e),{})},d=()=>[...Object.entries(l()),...Object.entries(c())].reduce((e,[t,s])=>(e[t]=s,e),{}),m=e=>{var t;return null===(t=d()[e])||void 0===t?void 0:t.default},u=e=>{var t;const s=null===(t=d()[e])||void 0===t?void 0:t.displayName;return s&&(0,o._t)(s)}},"./src/accessibility/KeyboardShortcuts.ts":(e,t,s)=>{"use strict";s.d(t,{A7:()=>h,GA:()=>c,R6:()=>d,V9:()=>m,bY:()=>i,hm:()=>l,md:()=>r,x5:()=>a,ze:()=>u});var n=s("./packages/shared-components/src/utils/i18n.tsx"),o=s("./src/Keyboard.ts");let i=function(e){return e.SendMessage="KeyBinding.sendMessageInComposer",e.SelectPrevSendHistory="KeyBinding.previousMessageInComposerHistory",e.SelectNextSendHistory="KeyBinding.nextMessageInComposerHistory",e.EditPrevMessage="KeyBinding.editPreviousMessage",e.EditNextMessage="KeyBinding.editNextMessage",e.CancelReplyOrEdit="KeyBinding.cancelReplyInComposer",e.ShowStickerPicker="KeyBinding.showStickerPicker",e.FormatBold="KeyBinding.toggleBoldInComposer",e.FormatItalics="KeyBinding.toggleItalicsInComposer",e.FormatLink="KeyBinding.FormatLink",e.FormatCode="KeyBinding.FormatCode",e.FormatQuote="KeyBinding.toggleQuoteInComposer",e.EditUndo="KeyBinding.editUndoInComposer",e.EditRedo="KeyBinding.editRedoInComposer",e.NewLine="KeyBinding.newLineInComposer",e.MoveCursorToStart="KeyBinding.jumpToStartInComposer",e.MoveCursorToEnd="KeyBinding.jumpToEndInComposer",e.CompleteAutocomplete="KeyBinding.completeAutocomplete",e.ForceCompleteAutocomplete="KeyBinding.forceCompleteAutocomplete",e.PrevSelectionInAutocomplete="KeyBinding.previousOptionInAutoComplete",e.NextSelectionInAutocomplete="KeyBinding.nextOptionInAutoComplete",e.CancelAutocomplete="KeyBinding.cancelAutoComplete",e.ClearRoomFilter="KeyBinding.clearRoomFilter",e.PrevRoom="KeyBinding.downerRoom",e.NextRoom="KeyBinding.upperRoom",e.SelectRoomInRoomList="KeyBinding.selectRoomInRoomList",e.CollapseRoomListSection="KeyBinding.collapseSectionInRoomList",e.ExpandRoomListSection="KeyBinding.expandSectionInRoomList",e.ScrollUp="KeyBinding.scrollUpInTimeline",e.ScrollDown="KeyBinding.scrollDownInTimeline",e.DismissReadMarker="KeyBinding.dismissReadMarkerAndJumpToBottom",e.JumpToOldestUnread="KeyBinding.jumpToOldestUnreadMessage",e.UploadFile="KeyBinding.uploadFileToRoom",e.SearchInRoom="KeyBinding.searchInRoom",e.JumpToFirstMessage="KeyBinding.jumpToFirstMessageInTimeline",e.JumpToLatestMessage="KeyBinding.jumpToLastMessageInTimeline",e.FilterRooms="KeyBinding.filterRooms",e.ToggleSpacePanel="KeyBinding.toggleSpacePanel",e.ToggleRoomSidePanel="KeyBinding.toggleRightPanel",e.ToggleUserMenu="KeyBinding.toggleTopLeftMenu",e.ShowKeyboardSettings="KeyBinding.showKeyBindingsSettings",e.GoToHome="KeyBinding.goToHomeView",e.SelectPrevRoom="KeyBinding.previousRoom",e.SelectNextRoom="KeyBinding.nextRoom",e.SelectPrevUnreadRoom="KeyBinding.previousUnreadRoom",e.SelectNextUnreadRoom="KeyBinding.nextUnreadRoom",e.SwitchToSpaceByNumber="KeyBinding.switchToSpaceByNumber",e.OpenUserSettings="KeyBinding.openUserSettings",e.PreviousVisitedRoomOrSpace="KeyBinding.PreviousVisitedRoomOrSpace",e.NextVisitedRoomOrSpace="KeyBinding.NextVisitedRoomOrSpace",e.NextLandmark="KeyBinding.nextLandmark",e.PreviousLandmark="KeyBinding.previousLandmark",e.ToggleMicInCall="KeyBinding.toggleMicInCall",e.ToggleWebcamInCall="KeyBinding.toggleWebcamInCall",e.Escape="KeyBinding.escape",e.Enter="KeyBinding.enter",e.Space="KeyBinding.space",e.Backspace="KeyBinding.backspace",e.Delete="KeyBinding.delete",e.Home="KeyBinding.home",e.End="KeyBinding.end",e.ArrowLeft="KeyBinding.arrowLeft",e.ArrowUp="KeyBinding.arrowUp",e.ArrowRight="KeyBinding.arrowRight",e.ArrowDown="KeyBinding.arrowDown",e.Tab="KeyBinding.tab",e.Comma="KeyBinding.comma",e.Save="KeyBinding.save",e.ToggleHiddenEventVisibility="KeyBinding.toggleHiddenEventVisibility",e}({}),r=function(e){return e.NAVIGATION="Navigation",e.ACCESSIBILITY="Accessibility",e.CALLS="Calls",e.COMPOSER="Composer",e.ROOM_LIST="Room List",e.ROOM="Room",e.AUTOCOMPLETE="Autocomplete",e.LABS="Labs",e}({});const a="digits",l={[o.Uz.PAGE_UP]:(0,n.AO)("keyboard|page_up"),[o.Uz.PAGE_DOWN]:(0,n.AO)("keyboard|page_down"),[o.Uz.ESCAPE]:(0,n.AO)("keyboard|escape"),[o.Uz.ENTER]:(0,n.AO)("keyboard|enter"),[o.Uz.SPACE]:(0,n.AO)("keyboard|space"),[o.Uz.HOME]:(0,n.AO)("keyboard|home"),[o.Uz.END]:(0,n.AO)("keyboard|end"),[o.Uz.ALT]:(0,n.AO)("keyboard|alt"),[o.Uz.CONTROL]:(0,n.AO)("keyboard|control"),[o.Uz.SHIFT]:(0,n.AO)("keyboard|shift"),[a]:(0,n.AO)("keyboard|number")},c={[o.Uz.ARROW_UP]:"↑",[o.Uz.ARROW_DOWN]:"↓",[o.Uz.ARROW_LEFT]:"←",[o.Uz.ARROW_RIGHT]:"→"};o.vL&&(c[o.Uz.META]="⌘",c[o.Uz.ALT]="⌥",c[o.Uz.SHIFT]="⇧");const d={[r.COMPOSER]:{categoryLabel:(0,n.AO)("settings|preferences|composer_heading"),settingNames:[i.SendMessage,i.NewLine,i.FormatBold,i.FormatItalics,i.FormatQuote,i.FormatLink,i.FormatCode,i.EditUndo,i.EditRedo,i.MoveCursorToStart,i.MoveCursorToEnd,i.CancelReplyOrEdit,i.EditNextMessage,i.EditPrevMessage,i.SelectNextSendHistory,i.SelectPrevSendHistory,i.ShowStickerPicker]},[r.CALLS]:{categoryLabel:(0,n.AO)("keyboard|category_calls"),settingNames:[i.ToggleMicInCall,i.ToggleWebcamInCall]},[r.ROOM]:{categoryLabel:(0,n.AO)("common|room"),settingNames:[i.SearchInRoom,i.UploadFile,i.DismissReadMarker,i.JumpToOldestUnread,i.ScrollUp,i.ScrollDown,i.JumpToFirstMessage,i.JumpToLatestMessage]},[r.ROOM_LIST]:{categoryLabel:(0,n.AO)("keyboard|category_room_list"),settingNames:[i.SelectRoomInRoomList,i.ClearRoomFilter,i.CollapseRoomListSection,i.ExpandRoomListSection,i.NextRoom,i.PrevRoom]},[r.ACCESSIBILITY]:{categoryLabel:(0,n.AO)("common|accessibility"),settingNames:[i.Escape,i.Enter,i.Space,i.Backspace,i.Delete,i.Home,i.End,i.ArrowLeft,i.ArrowUp,i.ArrowRight,i.ArrowDown,i.Comma,i.Save]},[r.NAVIGATION]:{categoryLabel:(0,n.AO)("keyboard|category_navigation"),settingNames:[i.ToggleUserMenu,i.ToggleRoomSidePanel,i.ToggleSpacePanel,i.ShowKeyboardSettings,i.GoToHome,i.FilterRooms,i.SelectNextUnreadRoom,i.SelectPrevUnreadRoom,i.SelectNextRoom,i.SelectPrevRoom,i.OpenUserSettings,i.SwitchToSpaceByNumber,i.PreviousVisitedRoomOrSpace,i.NextVisitedRoomOrSpace,i.NextLandmark,i.PreviousLandmark]},[r.AUTOCOMPLETE]:{categoryLabel:(0,n.AO)("keyboard|category_autocomplete"),settingNames:[i.CancelAutocomplete,i.NextSelectionInAutocomplete,i.PrevSelectionInAutocomplete,i.CompleteAutocomplete,i.ForceCompleteAutocomplete]},[r.LABS]:{categoryLabel:(0,n.AO)("common|labs"),settingNames:[i.ToggleHiddenEventVisibility]}},m=[i.OpenUserSettings,i.SwitchToSpaceByNumber,i.PreviousVisitedRoomOrSpace,i.NextVisitedRoomOrSpace],u=[i.OpenUserSettings],h={[i.FormatBold]:{default:{ctrlOrCmdKey:!0,key:o.Uz.B},displayName:(0,n.AO)("keyboard|composer_toggle_bold")},[i.FormatItalics]:{default:{ctrlOrCmdKey:!0,key:o.Uz.I},displayName:(0,n.AO)("keyboard|composer_toggle_italics")},[i.FormatQuote]:{default:{ctrlOrCmdKey:!0,shiftKey:!0,key:o.Uz.GREATER_THAN},displayName:(0,n.AO)("keyboard|composer_toggle_quote")},[i.FormatCode]:{default:{ctrlOrCmdKey:!0,key:o.Uz.E},displayName:(0,n.AO)("keyboard|composer_toggle_code_block")},[i.FormatLink]:{default:{ctrlOrCmdKey:!0,shiftKey:!0,key:o.Uz.L},displayName:(0,n.AO)("keyboard|composer_toggle_link")},[i.CancelReplyOrEdit]:{default:{key:o.Uz.ESCAPE},displayName:(0,n.AO)("keyboard|cancel_reply")},[i.EditNextMessage]:{default:{key:o.Uz.ARROW_DOWN},displayName:(0,n.AO)("keyboard|navigate_next_message_edit")},[i.EditPrevMessage]:{default:{key:o.Uz.ARROW_UP},displayName:(0,n.AO)("keyboard|navigate_prev_message_edit")},[i.MoveCursorToStart]:{default:{ctrlOrCmdKey:!0,key:o.Uz.HOME},displayName:(0,n.AO)("keyboard|composer_jump_start")},[i.MoveCursorToEnd]:{default:{ctrlOrCmdKey:!0,key:o.Uz.END},displayName:(0,n.AO)("keyboard|composer_jump_end")},[i.SelectNextSendHistory]:{default:{altKey:!0,ctrlKey:!0,key:o.Uz.ARROW_DOWN},displayName:(0,n.AO)("keyboard|composer_navigate_next_history")},[i.SelectPrevSendHistory]:{default:{altKey:!0,ctrlKey:!0,key:o.Uz.ARROW_UP},displayName:(0,n.AO)("keyboard|composer_navigate_prev_history")},[i.ShowStickerPicker]:{default:{ctrlOrCmdKey:!0,key:o.Uz.SEMICOLON},displayName:(0,n.AO)("keyboard|send_sticker")},[i.ToggleMicInCall]:{default:{ctrlOrCmdKey:!0,key:o.Uz.D},displayName:(0,n.AO)("keyboard|toggle_microphone_mute")},[i.ToggleWebcamInCall]:{default:{ctrlOrCmdKey:!0,key:o.Uz.E},displayName:(0,n.AO)("keyboard|toggle_webcam_mute")},[i.DismissReadMarker]:{default:{key:o.Uz.ESCAPE},displayName:(0,n.AO)("keyboard|dismiss_read_marker_and_jump_bottom")},[i.JumpToOldestUnread]:{default:{shiftKey:!0,key:o.Uz.PAGE_UP},displayName:(0,n.AO)("keyboard|jump_to_read_marker")},[i.UploadFile]:{default:{ctrlOrCmdKey:!0,shiftKey:!0,key:o.Uz.U},displayName:(0,n.AO)("keyboard|upload_file")},[i.ScrollUp]:{default:{key:o.Uz.PAGE_UP},displayName:(0,n.AO)("keyboard|scroll_up_timeline")},[i.ScrollDown]:{default:{key:o.Uz.PAGE_DOWN},displayName:(0,n.AO)("keyboard|scroll_down_timeline")},[i.FilterRooms]:{default:{ctrlOrCmdKey:!0,key:o.Uz.K},displayName:(0,n.AO)("keyboard|jump_room_search")},[i.SelectRoomInRoomList]:{default:{key:o.Uz.ENTER},displayName:(0,n.AO)("keyboard|room_list_select_room")},[i.CollapseRoomListSection]:{default:{key:o.Uz.ARROW_LEFT},displayName:(0,n.AO)("keyboard|room_list_collapse_section")},[i.ExpandRoomListSection]:{default:{key:o.Uz.ARROW_RIGHT},displayName:(0,n.AO)("keyboard|room_list_expand_section")},[i.NextRoom]:{default:{key:o.Uz.ARROW_DOWN},displayName:(0,n.AO)("keyboard|room_list_navigate_down")},[i.PrevRoom]:{default:{key:o.Uz.ARROW_UP},displayName:(0,n.AO)("keyboard|room_list_navigate_up")},[i.ToggleUserMenu]:{default:{ctrlOrCmdKey:!0,key:o.Uz.BACKTICK},displayName:(0,n.AO)("keyboard|toggle_top_left_menu")},[i.ToggleRoomSidePanel]:{default:{ctrlOrCmdKey:!0,key:o.Uz.PERIOD},displayName:(0,n.AO)("keyboard|toggle_right_panel")},[i.ShowKeyboardSettings]:{default:{ctrlOrCmdKey:!0,key:o.Uz.SLASH},displayName:(0,n.AO)("keyboard|keyboard_shortcuts_tab")},[i.GoToHome]:{default:{ctrlKey:!0,altKey:!o.vL,shiftKey:o.vL,key:o.Uz.H},displayName:(0,n.AO)("keyboard|go_home_view")},[i.SelectNextUnreadRoom]:{default:{shiftKey:!0,altKey:!0,key:o.Uz.ARROW_DOWN},displayName:(0,n.AO)("keyboard|next_unread_room")},[i.SelectPrevUnreadRoom]:{default:{shiftKey:!0,altKey:!0,key:o.Uz.ARROW_UP},displayName:(0,n.AO)("keyboard|prev_unread_room")},[i.SelectNextRoom]:{default:{altKey:!0,key:o.Uz.ARROW_DOWN},displayName:(0,n.AO)("keyboard|next_room")},[i.SelectPrevRoom]:{default:{altKey:!0,key:o.Uz.ARROW_UP},displayName:(0,n.AO)("keyboard|prev_room")},[i.CancelAutocomplete]:{default:{key:o.Uz.ESCAPE},displayName:(0,n.AO)("keyboard|autocomplete_cancel")},[i.NextSelectionInAutocomplete]:{default:{key:o.Uz.ARROW_DOWN},displayName:(0,n.AO)("keyboard|autocomplete_navigate_next")},[i.PrevSelectionInAutocomplete]:{default:{key:o.Uz.ARROW_UP},displayName:(0,n.AO)("keyboard|autocomplete_navigate_prev")},[i.ToggleSpacePanel]:{default:{ctrlOrCmdKey:!0,shiftKey:!0,key:o.Uz.D},displayName:(0,n.AO)("keyboard|toggle_space_panel")},[i.ToggleHiddenEventVisibility]:{default:{ctrlKey:!0,shiftKey:!0,key:o.Uz.J},displayName:(0,n.AO)("keyboard|toggle_hidden_events")},[i.JumpToFirstMessage]:{default:{key:o.Uz.HOME,ctrlKey:!0},displayName:(0,n.AO)("keyboard|jump_first_message")},[i.JumpToLatestMessage]:{default:{key:o.Uz.END,ctrlKey:!0},displayName:(0,n.AO)("keyboard|jump_last_message")},[i.EditUndo]:{default:{key:o.Uz.Z,ctrlOrCmdKey:!0},displayName:(0,n.AO)("keyboard|composer_undo")},[i.EditRedo]:{default:{key:o.vL?o.Uz.Z:o.Uz.Y,ctrlOrCmdKey:!0,shiftKey:o.vL},displayName:(0,n.AO)("keyboard|composer_redo")},[i.Save]:{default:{key:o.Uz.S,ctrlOrCmdKey:!0},displayName:(0,n.AO)("keyboard|save")},[i.PreviousVisitedRoomOrSpace]:{default:{metaKey:o.vL,altKey:!o.vL,key:o.vL?o.Uz.SQUARE_BRACKET_LEFT:o.Uz.ARROW_LEFT},displayName:(0,n.AO)("keyboard|navigate_prev_history")},[i.NextVisitedRoomOrSpace]:{default:{metaKey:o.vL,altKey:!o.vL,key:o.vL?o.Uz.SQUARE_BRACKET_RIGHT:o.Uz.ARROW_RIGHT},displayName:(0,n.AO)("keyboard|navigate_next_history")},[i.SwitchToSpaceByNumber]:{default:{ctrlOrCmdKey:!0,key:a},displayName:(0,n.AO)("keyboard|switch_to_space")},[i.OpenUserSettings]:{default:{metaKey:!0,key:o.Uz.COMMA},displayName:(0,n.AO)("keyboard|open_user_settings")},[i.Escape]:{default:{key:o.Uz.ESCAPE},displayName:(0,n.AO)("keyboard|close_dialog_menu")},[i.Enter]:{default:{key:o.Uz.ENTER},displayName:(0,n.AO)("keyboard|activate_button")},[i.Space]:{default:{key:o.Uz.SPACE}},[i.Backspace]:{default:{key:o.Uz.BACKSPACE}},[i.Delete]:{default:{key:o.Uz.DELETE}},[i.Home]:{default:{key:o.Uz.HOME}},[i.End]:{default:{key:o.Uz.END}},[i.ArrowLeft]:{default:{key:o.Uz.ARROW_LEFT}},[i.ArrowUp]:{default:{key:o.Uz.ARROW_UP}},[i.ArrowRight]:{default:{key:o.Uz.ARROW_RIGHT}},[i.ArrowDown]:{default:{key:o.Uz.ARROW_DOWN}},[i.Comma]:{default:{key:o.Uz.COMMA}},[i.NextLandmark]:{default:{ctrlOrCmdKey:!o.cp,key:o.Uz.F6},displayName:(0,n.AO)("keyboard|next_landmark")},[i.PreviousLandmark]:{default:{ctrlOrCmdKey:!o.cp,key:o.Uz.F6,shiftKey:!0},displayName:(0,n.AO)("keyboard|prev_landmark")}}},"./src/accessibility/LandmarkNavigation.ts":(e,t,s)=>{"use strict";s.d(t,{H:()=>a,r:()=>c});var n=s("./src/contexts/RoomContext.ts"),o=s("./src/dispatcher/actions.ts"),i=s("./src/dispatcher/dispatcher.ts"),r=s("./src/settings/SettingsStore.ts");let a=function(e){return e[e.ACTIVE_SPACE_BUTTON=0]="ACTIVE_SPACE_BUTTON",e[e.ROOM_SEARCH=1]="ROOM_SEARCH",e[e.ROOM_LIST=2]="ROOM_LIST",e[e.MESSAGE_COMPOSER_OR_HOME=3]="MESSAGE_COMPOSER_OR_HOME",e}({});const l=[a.ACTIVE_SPACE_BUTTON,a.ROOM_SEARCH,a.ROOM_LIST,a.MESSAGE_COMPOSER_OR_HOME];class c{static getLandmark(e,t=!1){const s=l.findIndex(t=>t===e),n=t?-1:1;return l.at((s+n)%l.length)}static findAndFocusNextLandmark(e,t=!1){var s;let n=e,o=null;for(;null===o;)n=c.getLandmark(n,t),o=d[n]();null===(s=o)||void 0===s||s.focus({focusVisible:!0})}}const d={[a.ACTIVE_SPACE_BUTTON]:()=>document.querySelector(".mx_SpaceButton_active"),[a.ROOM_SEARCH]:()=>r.A.getValue("feature_new_room_list")?document.querySelector(".mx_RoomListSearch_search"):document.querySelector(".mx_RoomSearch"),[a.ROOM_LIST]:()=>r.A.getValue("feature_new_room_list")?document.querySelector(".mx_RoomListItemView_selected")||document.querySelector(".mx_RoomListItemView"):document.querySelector(".mx_RoomTile_selected")||document.querySelector(".mx_RoomTile"),[a.MESSAGE_COMPOSER_OR_HOME]:()=>{if(!!document.querySelector(".mx_MessageComposer")){var e;const t=!(null===(e=document.activeElement)||void 0===e||!e.closest(".mx_ThreadView"));return void i.A.dispatch({action:o.r.FocusSendMessageComposer,context:t?n.Ae.Thread:n.Ae.Room},!0)}return document.querySelector(".mx_HomePage")}}},"./src/accessibility/RovingTabIndex.tsx":(e,t,s)=>{"use strict";s.d(t,{k:()=>u,ui:()=>v,Se:()=>E,Ix:()=>a,ZU:()=>_,L4:()=>g,Ed:()=>b,A9:()=>w});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./src/KeyBindingsManager.ts"),r=s("./src/accessibility/KeyboardShortcuts.ts");const a=({children:e,inputRef:t})=>{const[s,n,o]=w(t);return e({onFocus:s,isActive:n,ref:o})};var l=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),c=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),d=s("./src/components/views/elements/AccessibleButton.tsx");const m=["inputRef","onFocus","onMouseOver","focusOnMouseOver"],u=e=>{let{inputRef:t,onFocus:s,onMouseOver:n,focusOnMouseOver:i}=e,r=(0,c.A)(e,m);const[a,u,h]=w(t);return o.createElement(d.A,(0,l.A)({},r,{onFocus:e=>{a(),null==s||s(e)},onMouseOver:e=>{i&&a(),null==n||n(e)},ref:h,tabIndex:u?0:-1}))};function h(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function p(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?h(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):h(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}function g(e){return e.matches('input:not([type="radio"]):not([type="checkbox"]), textarea, select, [contenteditable=true]')}const v=(0,o.createContext)({state:{nodes:[]},dispatch:()=>{}});v.displayName="RovingTabIndexContext";let _=function(e){return e.Register="REGISTER",e.Unregister="UNREGISTER",e.SetFocus="SET_FOCUS",e.Update="UPDATE",e}({});const f=(e,t)=>{if(e===t)return 0;const s=e.compareDocumentPosition(t);return s&Node.DOCUMENT_POSITION_FOLLOWING||s&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:s&Node.DOCUMENT_POSITION_PRECEDING||s&Node.DOCUMENT_POSITION_CONTAINS?1:0},y=(e,t)=>{switch(t.type){case _.Register:return e.activeNode||(e.activeNode=t.payload.node),e.nodes.includes(t.payload.node)?e:(e.nodes.push(t.payload.node),e.nodes.sort(f),p({},e));case _.Unregister:{const s=e.nodes.findIndex(e=>e===t.payload.node);return-1===s?e:(e.nodes.splice(s,1)[0]===e.activeNode&&(s>=e.nodes.length?e.activeNode=b(e.nodes,e.nodes.length-1,!0):e.activeNode=b(e.nodes,s)||b(e.nodes,s,!0),document.activeElement===document.body&&setTimeout(()=>{var t;return null===(t=e.activeNode)||void 0===t?void 0:t.focus()},0)),p({},e))}case _.SetFocus:return e.activeNode===t.payload.node?e:(e.activeNode=t.payload.node,p({},e));case _.Update:return e.nodes.sort(f),p({},e);default:return e}},b=(e,t,s=!1,n=!1)=>{if(s){for(let s=t;s<e.length&&s>=0;s--){var o;if(null!==(null===(o=e[s])||void 0===o?void 0:o.offsetParent))return e[s]}if(n)return b(e.slice(t+1),e.length-1,!0,!1)}else{for(let s=t;s<e.length&&s>=0;s++){var i;if(null!==(null===(i=e[s])||void 0===i?void 0:i.offsetParent))return e[s]}if(n)return b(e.slice(0,t),0,!1,!1)}},E=({children:e,handleHomeEnd:t,handleUpDown:s,handleLeftRight:n,handleLoop:a,handleInputFields:l,scrollIntoView:c,onKeyDown:d})=>{const[m,u]=(0,o.useReducer)(y,{nodes:[]}),h=(0,o.useMemo)(()=>({state:m,dispatch:u}),[m]),p=(0,o.useCallback)(e=>{if(d&&(d(e,h.state,h.dispatch),e.defaultPrevented))return;let o=!1;const m=(0,i.zM)().getAccessibilityAction(e);let p;if(!l&&g(e.target)){if(m===r.bY.Tab)if(o=!0,h.state.nodes.length>0){const t=h.state.nodes.indexOf(h.state.activeNode);p=b(h.state.nodes,t+(e.shiftKey?-1:1),e.shiftKey)}}else switch(m){case r.bY.Home:t&&(o=!0,p=b(h.state.nodes,0));break;case r.bY.End:t&&(o=!0,p=b(h.state.nodes,h.state.nodes.length-1,!0));break;case r.bY.ArrowDown:case r.bY.ArrowRight:if((m===r.bY.ArrowDown&&s||m===r.bY.ArrowRight&&n)&&(o=!0,h.state.nodes.length>0)){const e=h.state.nodes.indexOf(h.state.activeNode);p=b(h.state.nodes,e+1,!1,a)}break;case r.bY.ArrowUp:case r.bY.ArrowLeft:if((m===r.bY.ArrowUp&&s||m===r.bY.ArrowLeft&&n)&&(o=!0,h.state.nodes.length>0)){const e=h.state.nodes.indexOf(h.state.activeNode);p=b(h.state.nodes,e-1,!0,a)}}var v,f;(o&&(e.preventDefault(),e.stopPropagation()),p)&&(null===(v=p)||void 0===v||v.focus(),u({type:_.SetFocus,payload:{node:p}}),c&&(null===(f=p)||void 0===f||f.scrollIntoView(c)))},[h,d,t,s,n,a,l,c]),f=(0,o.useCallback)(()=>{u({type:_.Update})},[]);return o.createElement(v.Provider,{value:h},e({onKeyDownHandler:p,onDragEndHandler:f}))},w=e=>{const t=(0,o.useContext)(v);let s=(0,o.useRef)(null);e&&(s=e);const n=(0,o.useCallback)(e=>{e?(s.current=e,t.dispatch({type:_.Register,payload:{node:e}})):(t.dispatch({type:_.Unregister,payload:{node:s.current}}),s.current=null)},[]);return[(0,o.useCallback)(()=>{s.current?t.dispatch({type:_.SetFocus,payload:{node:s.current}}):console.warn("useRovingTabIndex.onFocus called but the react ref does not point to any DOM element!")},[]),t.state.activeNode===s.current,n,s]}},"./src/accessibility/Toolbar.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>d});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./src/accessibility/RovingTabIndex.tsx"),a=s("./src/KeyBindingsManager.ts"),l=s("./src/accessibility/KeyboardShortcuts.ts");const c=["children","ref"],d=e=>{let{children:t,ref:s}=e,d=(0,o.A)(e,c);return i.createElement(r.Se,{handleHomeEnd:!0,handleLeftRight:!0,handleUpDown:!0,onKeyDown:e=>{const t=e.target;if("INPUT"===t.tagName)return;let s=!0;switch((0,a.zM)().getAccessibilityAction(e)){case l.bY.ArrowUp:case l.bY.ArrowDown:t.hasAttribute("aria-haspopup")&&t.click();break;default:s=!1}s&&(e.preventDefault(),e.stopPropagation())}},({onKeyDownHandler:e})=>i.createElement("div",(0,n.A)({},d,{onKeyDown:e,role:"toolbar",ref:s}),t))}},"./src/accessibility/context_menu/ContextMenuButton.tsx":(e,t,s)=>{"use strict";s.d(t,{V:()=>l});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./src/components/views/elements/AccessibleButton.tsx");const a=["label","isExpanded","children","onClick","onContextMenu","ref"],l=function(e){var t;let{label:s,isExpanded:l,children:c,onClick:d,onContextMenu:m,ref:u}=e,h=(0,o.A)(e,a);return i.createElement(r.A,(0,n.A)({},h,{onClick:d,onContextMenu:null!==(t=null!=m?m:d)&&void 0!==t?t:void 0,"aria-label":s,"aria-haspopup":!0,"aria-expanded":l,ref:u}),c)}},"./src/accessibility/context_menu/ContextMenuTooltipButton.tsx":(e,t,s)=>{"use strict";s.d(t,{o:()=>l});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./src/components/views/elements/AccessibleButton.tsx");const a=["isExpanded","children","onClick","onContextMenu","ref"],l=function(e){var t;let{isExpanded:s,children:l,onClick:c,onContextMenu:d,ref:m}=e,u=(0,o.A)(e,a);return i.createElement(r.A,(0,n.A)({},u,{onClick:c,onContextMenu:null!==(t=null!=d?d:c)&&void 0!==t?t:void 0,"aria-haspopup":!0,"aria-expanded":s,disableTooltip:s,ref:m}),l)}},"./src/accessibility/context_menu/MenuItemRadio.tsx":(e,t,s)=>{"use strict";s.d(t,{s:()=>l});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./src/accessibility/RovingTabIndex.tsx");const a=["children","label","active","disabled"],l=e=>{let{children:t,label:s,active:l,disabled:c}=e,d=(0,o.A)(e,a);return i.createElement(r.k,(0,n.A)({},d,{role:"menuitemradio","aria-checked":l,"aria-disabled":c,disabled:c,"aria-label":s}),t)}},"./src/actions/RoomListActions.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>u});var n=s("./node_modules/matrix-js-sdk/src/logger.ts"),o=s("./src/dispatcher/payloads.ts");var i=s("./src/Modal.tsx"),r=s("./src/Rooms.ts"),a=s("./src/languageHandler.tsx"),l=s("./src/stores/room-list/RoomListStore.ts"),c=s("./src/stores/room-list/algorithms/models.ts"),d=s("./src/stores/room-list/models.ts"),m=s("./src/components/views/dialogs/ErrorDialog.tsx");class u{static tagRoom(e,t,s,u,h){let p;const g=l.Ay.instance;if(u&&g.getTagSorting(u)===c.G.Manual){const e=[...g.orderedLists[u]];e.sort((e,t)=>e.tags[u].order-t.tags[u].order);const t=h-1,s=h,n=t<=0?0:e[t].tags[u].order,o=s>=e.length?1:e[s].tags[u].order;p={order:(n+o)/2}}return v="RoomListActions.tagRoom",_=()=>{const o=[],l=t.roomId;if(void 0===s&&u===d.zO.DM||s===d.zO.DM&&void 0===u)return r.lA(t,u===d.zO.DM).catch(e=>{var t;n.vF.error("Failed to set DM tag "+e),i.Ay.createDialog(m.A,{title:(0,a._t)("room_list|failed_set_dm_tag"),description:null!==(t=null==e?void 0:e.message)&&void 0!==t?t:(0,a._t)("invite|failed_generic")})});const c=s!==u;if(s&&s!==d.zO.DM&&c){const t=e.deleteRoomTag(l,s).catch(function(e){var t;n.vF.error("Failed to remove tag "+s+" from room: "+e),i.Ay.createDialog(m.A,{title:(0,a._t)("room_list|failed_remove_tag",{tagName:s}),description:null!==(t=null==e?void 0:e.message)&&void 0!==t?t:(0,a._t)("invite|failed_generic")})});o.push(t)}if(u&&u!==d.zO.DM&&(c||p)){const t=e.setRoomTag(l,u,p).catch(function(e){var t;throw n.vF.error("Failed to add tag "+u+" to room: "+e),i.Ay.createDialog(m.A,{title:(0,a._t)("room_list|failed_add_tag",{tagName:u}),description:null!==(t=null==e?void 0:e.message)&&void 0!==t?t:(0,a._t)("invite|failed_generic")}),e});o.push(t)}return Promise.all(o)},f=()=>({room:t,oldTag:s,newTag:u,metaData:p}),new o.n(e=>{e({action:v+".pending",request:"function"==typeof f?f():void 0}),_().then(t=>{e({action:v+".success",result:t})}).catch(t=>{e({action:v+".failure",err:t})})});var v,_,f}}},"./src/audio/BackgroundAudio.ts":(e,t,s)=>{"use strict";s.d(t,{J:()=>a});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/logger.ts"),i=s("./src/audio/compat.ts");const r={mp3:"audio/mpeg",ogg:"audio/ogg"};class a{constructor(){(0,n.A)(this,"audioContext",(0,i.g)()),(0,n.A)(this,"sounds",{})}async pickFormatAndPlay(e,t,s=!1){const n=this.pickFormat(...t);return n||console.log("Browser doesn't support any of the formats",t),this.play(`${e}.${n}`,s)}async play(e,t=!1){if(!this.sounds.hasOwnProperty(e)){const t=await fetch(e);200!=t.status&&o.vF.warn("Failed to fetch error audio");const s=await t.arrayBuffer(),n=await this.audioContext.decodeAudioData(s);this.sounds[e]=n}const s=this.audioContext.createBufferSource();return s.buffer=this.sounds[e],s.loop=t,s.connect(this.audioContext.destination),await this.audioContext.resume(),s.onended=()=>{this.audioContext.suspend()},s.start(),s}pickFormat(...e){const t=document.createElement("audio");for(const s of e)if(t.canPlayType(r[s]))return s;return null}}},"./src/audio/Playback.ts":(e,t,s)=>{"use strict";s.d(t,{Y:()=>f,d:()=>_});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/events/events.js"),i=s.n(o),r=s("./node_modules/matrix-widget-api/lib/index.js"),a=s("./node_modules/matrix-js-sdk/src/logger.ts"),l=s("./src/stores/AsyncStore.ts"),c=s("./src/utils/arrays.ts");class d{constructor(e){(0,n.A)(this,"clipStart",0),(0,n.A)(this,"stopped",!0),(0,n.A)(this,"lastCheck",0),(0,n.A)(this,"observable",new r.SimpleObservable),(0,n.A)(this,"timerId",void 0),(0,n.A)(this,"clipDuration",0),(0,n.A)(this,"placeholderDuration",0),(0,n.A)(this,"checkTime",(e=!1)=>{const t=this.timeSeconds;(this.lastCheck!==t||e)&&(this.observable.update([t,this.durationSeconds]),this.lastCheck=t)}),this.context=e}get durationSeconds(){return this.clipDuration||this.placeholderDuration}set durationSeconds(e){this.clipDuration=e,this.observable.update([this.timeSeconds,this.clipDuration])}get timeSeconds(){return(this.context.currentTime-this.clipStart)%this.clipDuration||0}get liveData(){return this.observable}populatePlaceholdersFrom(e){var t;const s=Number(null===(t=e.getContent().info)||void 0===t?void 0:t.duration);Number.isFinite(s)&&(this.placeholderDuration=s/1e3)}flagLoadTime(){this.clipStart=this.context.currentTime}flagStart(){this.stopped&&(this.clipStart=this.context.currentTime,this.stopped=!1),this.timerId||(this.timerId=window.setInterval(this.checkTime,100))}flagStop(){this.stopped=!0,this.clipStart=this.context.currentTime}syncTo(e,t){this.clipStart=e-t,this.stopped=!1,this.checkTime(!0)}destroy(){this.observable.close(),this.timerId&&clearInterval(this.timerId)}}var m,u=s("./src/audio/compat.ts"),h=s("./packages/shared-components/src/utils/numbers.ts"),p=s("./src/audio/consts.ts"),g=s("./src/WorkerManager.ts");class v{constructor(){var e;(0,n.A)(this,"worker",new g.O(new Worker(new URL(s.p+s.u(3304),s.b),Object.assign({},e,{type:void 0}))))}static get instance(){return v.internalInstance}getPlaybackWaveform(e){return this.worker.call({data:Array.from(e)}).then(e=>e.waveform)}}m=v,(0,n.A)(v,"internalInstance",new m);let _=function(e){return e.Preparing="preparing",e.Decoding="decoding",e.Stopped="stopped",e.Paused="paused",e.Playing="playing",e}({});class f extends(i()){constructor(e,t=p.mq){super(),(0,n.A)(this,"thumbnailWaveform",void 0),(0,n.A)(this,"context",void 0),(0,n.A)(this,"source",void 0),(0,n.A)(this,"state",_.Decoding),(0,n.A)(this,"audioBuf",void 0),(0,n.A)(this,"element",void 0),(0,n.A)(this,"resampledWaveform",void 0),(0,n.A)(this,"waveformObservable",new r.SimpleObservable),(0,n.A)(this,"clock",void 0),(0,n.A)(this,"fileSize",void 0),(0,n.A)(this,"onPlaybackEnd",async()=>{await this.context.suspend(),this.emit(_.Stopped)}),this.buf=e,this.fileSize=this.buf.byteLength,this.context=(0,u.g)(),this.resampledWaveform=(0,c.$S)(null!=t?t:p.mq,p.i$),this.thumbnailWaveform=(0,c.$S)(null!=t?t:p.mq,100),this.waveformObservable.update(this.resampledWaveform),this.clock=new d(this.context)}get sizeBytes(){return this.fileSize}get waveform(){return this.resampledWaveform}get waveformData(){return this.waveformObservable}get clockInfo(){return this.clock}get liveData(){return this.clock.liveData}get timeSeconds(){return this.clock.timeSeconds}get durationSeconds(){return this.clock.durationSeconds}get currentState(){return this.state}get isPlaying(){return this.currentState===_.Playing}emit(e,...t){return this.state=e,super.emit(e,...t),super.emit(l.H,e,...t),!0}destroy(){this.stop(),this.removeAllListeners(),this.clock.destroy(),this.waveformObservable.close(),this.element&&(URL.revokeObjectURL(this.element.src),this.element.remove())}async prepare(){var e,t;if(this.state===_.Decoding){if(this.state=_.Preparing,this.buf.byteLength>5242880){a.vF.log("Audio file too large: processing through <audio /> element"),this.element=document.createElement("AUDIO");const e=Promise.withResolvers();this.element.onloadeddata=e.resolve,this.element.onerror=e.reject,this.element.src=URL.createObjectURL(new Blob([this.buf])),await e.promise}else{try{this.audioBuf=await this.context.decodeAudioData(this.buf)}catch(e){a.vF.error("Error decoding recording:",e),a.vF.warn("Trying to re-encode to WAV instead...");try{const e=await(0,u.s)(this.buf);this.audioBuf=await this.context.decodeAudioData(e)}catch(e){throw a.vF.error("Error decoding recording:",e),e}}this.resampledWaveform=await v.instance.getPlaybackWaveform(this.audioBuf.getChannelData(0))}this.waveformObservable.update(this.resampledWaveform),this.clock.flagLoadTime(),this.clock.durationSeconds=null!==(e=null===(t=this.element)||void 0===t?void 0:t.duration)&&void 0!==e?e:this.audioBuf.duration,this.emit(_.Stopped)}}async play(){this.state===_.Stopped&&(this.disconnectSource(),this.makeNewSourceBuffer(),this.element?await this.element.play():this.source.start()),await this.context.resume(),this.clock.flagStart(),this.emit(_.Playing)}disconnectSource(){var e,t;this.element||(null===(e=this.source)||void 0===e||e.disconnect(),null===(t=this.source)||void 0===t||t.removeEventListener("ended",this.onPlaybackEnd))}makeNewSourceBuffer(){if(!this.element||!this.source){var e;if(this.element)this.source=this.context.createMediaElementSource(this.element);else this.source=this.context.createBufferSource(),this.source.buffer=null!==(e=this.audioBuf)&&void 0!==e?e:null;this.source.addEventListener("ended",this.onPlaybackEnd),this.source.connect(this.context.destination)}}async pause(){await this.context.suspend(),this.emit(_.Paused)}async stop(){await this.onPlaybackEnd(),this.clock.flagStop()}async toggle(){this.isPlaying?await this.pause():await this.play()}async skipTo(e){e=(0,h.qE)(e,0,this.clock.durationSeconds);const t=this.isPlaying;t&&await this.context.suspend();const s=this.context.currentTime;this.disconnectSource(),this.makeNewSourceBuffer(),this.clock.syncTo(s,e),this.element?this.element.currentTime=e:this.source.start(s,e),t?await this.context.resume():await this.pause()}}},"./src/audio/PlaybackManager.ts":(e,t,s)=>{"use strict";s.d(t,{T:()=>a});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./src/audio/Playback.ts"),i=s("./src/audio/consts.ts");class r extends o.Y{constructor(e,t,s=i.mq){super(t,s),this.manager=e}async play(){return this.manager.pauseAllExcept(this),super.play()}destroy(){this.manager.destroyPlaybackInstance(this),super.destroy()}}class a{constructor(){(0,n.A)(this,"instances",[])}static get instance(){return a.internalInstance||(a.internalInstance=new a),a.internalInstance}pauseAllExcept(e){this.instances.filter(t=>t!==e&&t.currentState===o.d.Playing).forEach(e=>e.pause())}destroyPlaybackInstance(e){this.instances=this.instances.filter(t=>t!==e)}createPlaybackInstance(e,t=i.mq){const s=new r(this,e,t);return this.instances.push(s),s}}(0,n.A)(a,"internalInstance",void 0)},"./src/audio/RecorderWorklet.ts":(e,t,s)=>{e.exports=s.p+"recorder.worklet.js"},"./src/audio/VoiceRecording.ts":(e,t,s)=>{"use strict";s.d(t,{IZ:()=>w,$T:()=>S,sQ:()=>E,Qj:()=>C});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/opus-recorder/dist/recorder.min.js"),i=s.n(o),r=s("./node_modules/opus-recorder/dist/encoderWorker.min.js"),a=s("./node_modules/matrix-widget-api/lib/index.js"),l=s("./node_modules/events/events.js"),c=s.n(l),d=s("./node_modules/matrix-js-sdk/src/logger.ts"),m=s("./src/MediaDeviceHandler.ts"),u=s("./src/utils/Singleflight.ts"),h=s("./src/audio/consts.ts"),p=s("./src/stores/AsyncStore.ts"),g=s("./src/audio/compat.ts"),v=s("./src/utils/arrays.ts");class _{constructor(e,t){(0,n.A)(this,"samples",[]),this.width=e,this.samples=(0,v.DG)(t,this.width)}get value(){return this.samples}pushValue(e){let t=(0,v.PF)(this.samples);t.splice(0,0,e),t.length>this.width&&(t=t.slice(0,this.width)),this.samples=t}}var f=s("./packages/shared-components/src/utils/numbers.ts"),y=s("./src/audio/RecorderWorklet.ts"),b=s.n(y);const E=48e3,w=44,x={bitrate:24e3,encoderApplication:2048},A={bitrate:96e3,encoderApplication:2049};let S=function(e){return e.Started="started",e.EndingSoon="ending_soon",e.Ended="ended",e.Uploading="uploading",e.Uploaded="uploaded",e}({});class C extends(c()){constructor(...e){super(...e),(0,n.A)(this,"recorder",void 0),(0,n.A)(this,"recorderContext",void 0),(0,n.A)(this,"recorderSource",void 0),(0,n.A)(this,"recorderStream",void 0),(0,n.A)(this,"recorderWorklet",void 0),(0,n.A)(this,"recorderProcessor",void 0),(0,n.A)(this,"recording",!1),(0,n.A)(this,"observable",void 0),(0,n.A)(this,"targetMaxLength",900),(0,n.A)(this,"amplitudes",[]),(0,n.A)(this,"liveWaveform",new _(w,0)),(0,n.A)(this,"onDataAvailable",void 0),(0,n.A)(this,"onAudioProcess",e=>{this.processAudioUpdate(e.playbackTime)}),(0,n.A)(this,"processAudioUpdate",e=>{if(!this.recording)return;if(this.observable.update({waveform:this.liveWaveform.value.map(e=>(0,f.qE)(e,0,1)),timeSeconds:e}),!this.targetMaxLength)return;const t=900-this.recorderSeconds;t<0?this.stop():t<=10&&u.j.for(this,"ending_soon").do(()=>(this.emit(S.EndingSoon,{secondsLeft:t}),u.j.Void))})}get contentType(){return"audio/ogg"}get durationSeconds(){if(!this.recorder||!this.recorderContext)throw new Error("Duration not available without a recording");return this.recorderContext.currentTime}get isRecording(){return this.recording}emit(e,...t){return super.emit(e,...t),super.emit(p.H,e,...t),!0}disableMaxLength(){this.targetMaxLength=null}shouldRecordInHighQuality(){return!m.Ay.getAudioNoiseSuppression()}async makeRecorder(){try{this.recorderStream=await navigator.mediaDevices.getUserMedia({audio:{channelCount:1,deviceId:m.Ay.getAudioInput(),autoGainControl:{ideal:m.Ay.getAudioAutoGainControl()},echoCancellation:{ideal:m.Ay.getAudioEchoCancellation()},noiseSuppression:{ideal:m.Ay.getAudioNoiseSuppression()}}}),this.recorderContext=(0,g.g)({}),this.recorderSource=this.recorderContext.createMediaStreamSource(this.recorderStream),this.recorderContext.audioWorklet?(await(e=this.recorderContext,e.audioWorklet.addModule(b())),this.recorderWorklet=new AudioWorkletNode(this.recorderContext,h.pu),this.recorderSource.connect(this.recorderWorklet),this.recorderWorklet.connect(this.recorderContext.destination),this.recorderWorklet.port.onmessage=e=>{switch(e.data.ev){case h.rY.Timekeep:this.processAudioUpdate(e.data.timeSeconds);break;case h.rY.AmplitudeMark:e.data.forIndex===this.amplitudes.length&&(this.amplitudes.push(e.data.amplitude),this.liveWaveform.pushValue(e.data.amplitude))}}):(this.recorderProcessor=this.recorderContext.createScriptProcessor(1024,1,1),this.recorderSource.connect(this.recorderProcessor),this.recorderProcessor.connect(this.recorderContext.destination),this.recorderProcessor.addEventListener("audioprocess",this.onAudioProcess));const t=this.shouldRecordInHighQuality()?A:x,{encoderApplication:s,bitrate:n}=t;this.recorder=new(i())({encoderPath:r.A,encoderSampleRate:E,encoderApplication:s,streamPages:!0,encoderFrameSize:20,numberOfChannels:1,sourceNode:this.recorderSource,encoderBitRate:n,encoderComplexity:3,resampleQuality:3}),this.recorder.ondataavailable=e=>{var t;return null===(t=this.onDataAvailable)||void 0===t?void 0:t.call(this,e)}}catch(e){throw d.vF.error("Error starting recording: ",e),e instanceof DOMException&&d.vF.error(`${e.name} (${e.code}): ${e.message}`),this.recorderStream&&this.recorderStream.getTracks().forEach(e=>e.stop()),this.recorderSource&&this.recorderSource.disconnect(),this.recorder&&this.recorder.close(),this.recorderContext&&this.recorderContext.close(),e}var e}get liveData(){if(!this.recording||!this.observable)throw new Error("No observable when not recording");return this.observable}get isSupported(){return!!i().isRecordingSupported()}get recorderSeconds(){if(this.recorder)return this.recorder.encodedSamplePosition/48e3}async start(){var e;if(this.recording)throw new Error("Recording already in progress");this.observable&&this.observable.close(),this.observable=new a.SimpleObservable,await this.makeRecorder(),await(null===(e=this.recorder)||void 0===e?void 0:e.start()),this.recording=!0,this.emit(S.Started)}async stop(){return u.j.for(this,"stop").do(async()=>{if(!this.recording)throw new Error("No recording to stop");await this.recorder.stop(),this.recorderSource.disconnect(),this.recorderWorklet&&this.recorderWorklet.disconnect(),this.recorderProcessor&&(this.recorderProcessor.disconnect(),this.recorderProcessor.removeEventListener("audioprocess",this.onAudioProcess)),await this.recorderContext.close(),this.recorderStream.getTracks().forEach(e=>e.stop()),this.recording=!1,await this.recorder.close(),this.emit(S.Ended)})}destroy(){var e;this.stop(),this.removeAllListeners(),this.onDataAvailable=void 0,u.j.forgetAllFor(this),null===(e=this.observable)||void 0===e||e.close()}}},"./src/audio/compat.ts":(e,t,s)=>{"use strict";s.d(t,{g:()=>l,s:()=>c});var n=s("./node_modules/opus-recorder/dist/decoderWorker.min.wasm"),o=s("./node_modules/opus-recorder/dist/waveWorker.min.js"),i=s("./node_modules/opus-recorder/dist/decoderWorker.min.js"),r=s("./node_modules/matrix-js-sdk/src/logger.ts"),a=s("./src/audio/VoiceRecording.ts");function l(e){if(window.AudioContext){const t=new AudioContext(e);return t.suspend(),t}throw new Error("Unsupported browser")}function c(e){return new Promise(t=>{r.vF.log("Decoder WASM path: "+n.A);const s=new Uint8Array(e),l=new Worker(i.A),c=new Worker(o.A);l.postMessage({command:"init",decoderSampleRate:a.sQ,outputBufferSampleRate:a.sQ}),c.postMessage({command:"init",wavBitDepth:24,wavSampleRate:a.sQ}),l.onmessage=e=>{null!==e.data?c.postMessage({command:"encode",buffers:e.data},e.data.map(e=>e.buffer)):c.postMessage({command:"done"})},c.onmessage=e=>{"page"===e.data.message&&t(new Blob([e.data.page],{type:"audio/wav"}).arrayBuffer())},l.postMessage({command:"decode",pages:s},[s.buffer])})}},"./src/audio/consts.ts":(e,t,s)=>{"use strict";s.d(t,{i$:()=>r,mq:()=>a,pu:()=>o,rY:()=>i});var n=s("./src/utils/arrays.ts");const o="mx-voice-worklet";let i=function(e){return e.Timekeep="timekeep",e.AmplitudeMark="amplitude_mark",e}({});const r=39,a=(0,n.DG)(0,r)},"./src/autocomplete/AutocompleteProvider.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>i});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./src/contexts/RoomContext.ts");class i{constructor({commandRegex:e,forcedCommandRegex:t,renderingType:s}){if((0,n.A)(this,"commandRegex",void 0),(0,n.A)(this,"forcedCommandRegex",void 0),(0,n.A)(this,"renderingType",o.Ae.Room),e){if(!e.global)throw new Error("commandRegex must have global flag set");this.commandRegex=e}if(t){if(!t.global)throw new Error("forcedCommandRegex must have global flag set");this.forcedCommandRegex=t}s&&(this.renderingType=s)}destroy(){}getCurrentCommand(e,t,s=!1){let n,o=this.commandRegex;if(s&&this.shouldForceComplete()&&(o=this.forcedCommandRegex||/\S+/g),!o)return{};for(o.lastIndex=0;null!==(n=o.exec(e));){const e=n.index,s=e+n[0].length;if(t.start<=s&&t.end>=e)return{command:n,range:{start:e,end:s}}}return{command:null,range:{start:-1,end:-1}}}shouldForceComplete(){return!1}}},"./src/autocomplete/CommandProvider.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>u});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./src/languageHandler.tsx"),r=s("./src/autocomplete/AutocompleteProvider.tsx"),a=s("./src/autocomplete/QueryMatcher.ts"),l=s("./src/autocomplete/Components.tsx"),c=s("./src/SlashCommands.tsx"),d=s("./src/MatrixClientPeg.ts");const m=/(^\/\w*)(?: .*)?/g;class u extends r.A{constructor(e,t){super({commandRegex:m,renderingType:t}),(0,n.A)(this,"matcher",void 0),this.matcher=new a.A(c.Ts,{keys:["command","args","description"],funcs:[({aliases:e})=>e.join(" ")],context:t})}async getCompletions(e,t,s,n=-1){const{command:r,range:a}=this.getCurrentCommand(e,t);if(!r)return[];const m=d.J.get();let u=[];if(r[0]!==r[1]){const e=r[1].slice(1);if(c.yc.has(e)&&c.yc.get(e).isEnabled(m)){if(c.yc.get(e).hideCompletionAfterSpace)return[];u=[c.yc.get(e)]}}else u="/"===e?c.Ts:this.matcher.match(r[1],n);return u.filter(e=>{const t=!e.renderingTypes||e.renderingTypes.includes(this.renderingType);return e.isEnabled(m)&&t}).map(e=>{let t=e.getCommand()+" ";const s=e.aliases.find(e=>`/${e}`===r[1]);return(s||e.getCommand()===r[1])&&(t=r[0]),{completion:t,type:"command",component:o.createElement(l.c,{title:`/${s||e.command}`,subtitle:e.args,description:(0,i._t)(e.description)}),range:a}})}getName(){return"*️⃣ "+(0,i._t)("composer|autocomplete|command_description")}renderCompletions(e){return o.createElement("div",{className:"mx_Autocomplete_Completion_container_pill",role:"presentation","aria-label":(0,i._t)("composer|autocomplete|command_a11y")},e)}}},"./src/autocomplete/Components.tsx":(e,t,s)=>{"use strict";s.d(t,{c:()=>d,i:()=>m});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/classnames/index.js"),a=s.n(r);const l=["title","subtitle","description","className","aria-selected","ref"],c=["title","subtitle","description","className","children","aria-selected","ref"],d=e=>{const{title:t,subtitle:s,description:r,className:c,"aria-selected":d,ref:m}=e,u=(0,o.A)(e,l);return i.createElement("div",(0,n.A)({},u,{className:a()("mx_Autocomplete_Completion_block",c),role:"option","aria-selected":d,ref:m}),i.createElement("span",{className:"mx_Autocomplete_Completion_title"},t),i.createElement("span",{className:"mx_Autocomplete_Completion_subtitle"},s),i.createElement("span",{className:"mx_Autocomplete_Completion_description"},r))},m=e=>{const{title:t,subtitle:s,description:r,className:l,children:d,"aria-selected":m,ref:u}=e,h=(0,o.A)(e,c);return i.createElement("div",(0,n.A)({},h,{className:a()("mx_Autocomplete_Completion_pill",l),role:"option","aria-selected":m,ref:u}),d,i.createElement("span",{className:"mx_Autocomplete_Completion_title"},t),i.createElement("span",{className:"mx_Autocomplete_Completion_subtitle"},s),i.createElement("span",{className:"mx_Autocomplete_Completion_description"},r))}},"./src/autocomplete/QueryMatcher.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>l});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/lodash/lodash.js"),i=s("./node_modules/matrix-js-sdk/src/utils.ts");function r(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function a(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?r(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):r(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}class l{constructor(e,t={keys:[]}){(0,n.A)(this,"_options",void 0),(0,n.A)(this,"_items",new Map),this._options=t,this.setObjects(e),void 0===this._options.shouldMatchWordsOnly&&(this._options.shouldMatchWordsOnly=!0)}setObjects(e){this._items=new Map;for(const t of e){const e=(0,o.at)(t,this._options.keys);if(this._options.funcs)for(const s of this._options.funcs){const n=s(t);Array.isArray(n)?e.push(...n):e.push(n)}for(const[s,n]of Object.entries(e)){if(!n)continue;const e=this.processQuery(n);this._items.has(e)||this._items.set(e,[]),this._items.get(e).push({keyWeight:Number(s),object:t})}}}match(e,t=-1){if(e=this.processQuery(e),this._options.shouldMatchWordsOnly&&(e=e.replace(/[^\w]/g,"")),0===e.length)return[];const s=[];for(const[t,n]of this._items.entries()){let o=t;this._options.shouldMatchWordsOnly&&(o=o.replace(/[^\w]/g,""));const i=o.indexOf(e);-1!==i&&s.push(...n.map(e=>a({index:i},e)))}s.sort((e,t)=>{if(e.index<t.index)return-1;if(e.index===t.index){if(e.keyWeight<t.keyWeight)return-1;if(e.keyWeight===t.keyWeight)return 0}return 1});const n=(0,o.uniq)(s.map(e=>e.object)),i=-1===t?n.length:t;return n.slice(0,i)}processQuery(e){return!1!==this._options.fuzzy?(0,i.Gp)(e.toLowerCase()).toLowerCase():e.toLowerCase()}}},"./src/autocomplete/UserProvider.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>f});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/lodash/lodash.js"),r=s("./node_modules/matrix-js-sdk/src/matrix.ts"),a=s("./node_modules/matrix-js-sdk/src/types.ts"),l=s("./src/MatrixClientPeg.ts"),c=s("./src/autocomplete/QueryMatcher.ts"),d=s("./src/autocomplete/Components.tsx"),m=s("./src/autocomplete/AutocompleteProvider.tsx"),u=s("./src/languageHandler.tsx"),h=s("./src/utils/permalinks/Permalinks.ts"),p=s("./src/components/views/avatars/MemberAvatar.tsx"),g=s("./src/customisations/UserIdentifier.ts");const v=/\B@\S*/g,_=/[^/,.():; \t\n]\S*/g;class f extends m.A{constructor(e,t){super({commandRegex:v,forcedCommandRegex:_,renderingType:t}),(0,n.A)(this,"matcher",void 0),(0,n.A)(this,"users",void 0),(0,n.A)(this,"room",void 0),(0,n.A)(this,"onRoomTimeline",(e,t,s,n,o)=>{t&&(n||t.roomId===this.room.roomId&&o.timeline.getTimelineSet()===t.getUnfilteredTimelineSet()&&!s&&o&&o.liveEvent&&this.onUserSpoke(e.sender))}),(0,n.A)(this,"onRoomStateUpdate",e=>{e.roomId===this.room.roomId&&(this.users=void 0)}),this.room=e,this.matcher=new c.A([],{keys:["name"],funcs:[e=>e.userId.slice(1)],shouldMatchWordsOnly:!1}),l.J.safeGet().on(r.RoomEvent.Timeline,this.onRoomTimeline),l.J.safeGet().on(r.RoomStateEvent.Update,this.onRoomStateUpdate)}destroy(){var e,t;null===(e=l.J.get())||void 0===e||e.removeListener(r.RoomEvent.Timeline,this.onRoomTimeline),null===(t=l.J.get())||void 0===t||t.removeListener(r.RoomStateEvent.Update,this.onRoomStateUpdate)}async getCompletions(e,t,s=!1,n=-1){this.users||this.makeUsers();const{command:i,range:r}=this.getCurrentCommand(e,t,s),a=null==i?void 0:i[0];if(a&&"@"!==a){const e=a.startsWith("@")?a.substring(1):a;return this.matcher.match(e,n).map(e=>{var s;const n=null===(s=g.A.getDisplayUserIdentifier)||void 0===s?void 0:s.call(g.A,e.userId,{roomId:this.room.roomId,withDisplayName:!0}),i=e.name||e.userId||"";return{completion:e.rawDisplayName,completionId:e.userId,type:"user",suffix:t.beginning&&0===r.start?": ":" ",href:(0,h.Ne)(e.userId),component:o.createElement(d.i,{title:i,description:null!=n?n:void 0},o.createElement(p.A,{member:e,size:"24px"})),range:r}})}return[]}getName(){return(0,u._t)("composer|autocomplete|user_description")}makeUsers(){const e=this.room.getLiveTimeline().getEvents(),t={};for(const s of e)t[s.getSender()]=s.getTs();const s=l.J.safeGet().credentials.userId;this.users=this.room.getJoinedMembers().filter(({userId:e})=>e!==s),this.users=this.users.concat(this.room.getMembersWithMembership(a.O.Invite)),this.users=(0,i.sortBy)(this.users,e=>1e20-t[e.userId]||1e20),this.matcher.setObjects(this.users)}onUserSpoke(e){this.users&&e&&e.userId!==l.J.safeGet().getSafeUserId()&&(this.users.splice(this.users.findIndex(t=>t.userId===e.userId),1),this.users=[e,...this.users],this.matcher.setObjects(this.users))}renderCompletions(e){return o.createElement("div",{className:"mx_Autocomplete_Completion_container_pill",role:"presentation","aria-label":(0,u._t)("composer|autocomplete|user_a11y")},e)}shouldForceComplete(){return!0}}},"./src/call-types.ts":(e,t,s)=>{"use strict";s.d(t,{Fm:()=>r,Gd:()=>i,Vj:()=>a});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./node_modules/matrix-js-sdk/src/NamespacedValue.ts");const i="io.element.video.member",r=new o.xu(null,n.EventType.GroupCallPrefix),a=new o.xu(null,n.EventType.GroupCallMemberPrefix)},"./src/components/structures/AutoHideScrollbar.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>m});var n=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/classnames/index.js"),r=s.n(i),a=s("./node_modules/react/index.js");const l=["element","className","onScroll","tabIndex","wrappedRef","children"];function c(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function d(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?c(Object(s),!0).forEach(function(t){(0,o.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):c(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}class m extends a.Component{constructor(...e){super(...e),(0,o.A)(this,"containerRef",a.createRef())}componentDidMount(){var e,t;this.containerRef.current&&this.props.onScroll&&this.containerRef.current.addEventListener("scroll",this.props.onScroll,{passive:!0}),null===(e=(t=this.props).wrappedRef)||void 0===e||e.call(t,this.containerRef.current)}componentWillUnmount(){var e,t;this.containerRef.current&&this.props.onScroll&&this.containerRef.current.removeEventListener("scroll",this.props.onScroll),null===(e=(t=this.props).wrappedRef)||void 0===e||e.call(t,null)}render(){const e=this.props,{element:t,className:s,onScroll:o,tabIndex:i,wrappedRef:c,children:m}=e,u=(0,n.A)(e,l);return a.createElement(t,d(d({},u),{},{ref:this.containerRef,className:r()("mx_AutoHideScrollbar",s),tabIndex:null!=i?i:-1}),m)}}(0,o.A)(m,"defaultProps",{element:"div"})},"./src/components/structures/ContextMenu.tsx":(e,t,s)=>{"use strict";s.d(t,{t4:()=>N,VJ:()=>v.V,oW:()=>_.o,Dr:()=>y,K8:()=>E,sH:()=>w.s,HQ:()=>S,P$:()=>k,qv:()=>U,ps:()=>F,Gi:()=>B,t$:()=>L,Ay:()=>D,Dq:()=>j,EF:()=>V});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),r=s("./node_modules/react/index.js"),a=s("./node_modules/react-dom/index.js"),l=s("./node_modules/classnames/index.js"),c=s.n(l),d=s("./node_modules/react-focus-lock/dist/es2015/index.js"),m=s("./src/stores/UIStore.ts"),u=s("./src/accessibility/RovingTabIndex.tsx"),h=s("./src/accessibility/KeyboardShortcuts.ts"),p=s("./src/KeyBindingsManager.ts"),g=s("./src/Modal.tsx"),v=s("./src/accessibility/context_menu/ContextMenuButton.tsx"),_=s("./src/accessibility/context_menu/ContextMenuTooltipButton.tsx");const f=["children","label"],y=e=>{let{children:t,label:s}=e,i=(0,o.A)(e,f);const a=i["aria-label"]||s;return r.createElement(u.k,(0,n.A)({},i,{role:"menuitem","aria-label":a}),t)},b=["children","label","active","disabled"],E=e=>{let{children:t,label:s,active:i,disabled:a}=e,l=(0,o.A)(e,b);return r.createElement(u.k,(0,n.A)({},l,{role:"menuitemcheckbox","aria-checked":i,"aria-disabled":a,disabled:a,"aria-label":s}),t)};var w=s("./src/accessibility/context_menu/MenuItemRadio.tsx"),x=s("./src/components/views/elements/StyledCheckbox.tsx");const A=["children","onChange","onClose"],S=e=>{let{children:t,onChange:s,onClose:i}=e,a=(0,o.A)(e,A);const[l,c,d]=(0,u.A9)();return r.createElement(x.A,(0,n.A)({},a,{role:"menuitemcheckbox",onChange:s,onKeyDown:e=>{let t=!0;switch((0,p.zM)().getAccessibilityAction(e)){case h.bY.Space:s();break;case h.bY.Enter:s(),i();break;default:t=!1}t&&(e.stopPropagation(),e.preventDefault())},onKeyUp:e=>{switch((0,p.zM)().getAccessibilityAction(e)){case h.bY.Space:case h.bY.Enter:e.stopPropagation(),e.preventDefault()}},onFocus:l,inputRef:d,tabIndex:c?0:-1}),t)};var C=s("./src/components/views/elements/StyledRadioButton.tsx");const R=["children","label","onChange","onClose"],k=e=>{let{children:t,label:s,onChange:i,onClose:a}=e,l=(0,o.A)(e,R);const[c,d,m]=(0,u.A9)();return r.createElement(C.A,(0,n.A)({},l,{role:"menuitemradio","aria-label":s,onChange:i,onKeyDown:e=>{let t=!0;switch((0,p.zM)().getAccessibilityAction(e)){case h.bY.Space:i();break;case h.bY.Enter:i(),a();break;default:t=!1}t&&(e.stopPropagation(),e.preventDefault())},onKeyUp:e=>{switch((0,p.zM)().getAccessibilityAction(e)){case h.bY.Enter:case h.bY.Space:e.stopPropagation(),e.preventDefault()}},onFocus:c,inputRef:m,tabIndex:d?0:-1}),t)},I=["top","bottom","left","right","bottomAligned","rightAligned","menuClassName","menuHeight","menuWidth","menuPaddingLeft","menuPaddingRight","menuPaddingBottom","menuPaddingTop","zIndex","children","focusLock","managed","wrapperClassName","chevronFace","chevronOffset","mountAsChild"],P=["hasBackground","onFinished"];function T(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function O(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?T(Object(s),!0).forEach(function(t){(0,i.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):T(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const M="mx_ContextualMenu_Container";let N=function(e){return e.Top="top",e.Bottom="bottom",e.Left="left",e.Right="right",e.None="none",e}({});class D extends r.PureComponent{constructor(e){super(e),(0,i.A)(this,"initialFocus",void 0),(0,i.A)(this,"onModalOpen",()=>{var e,t;null===(e=(t=this.props).onFinished)||void 0===e||e.call(t)}),(0,i.A)(this,"collectContextMenuRect",e=>{if(!e)return;const t=e.querySelector('[role^="menuitem"]')||e.querySelector("[tabindex]");t&&t.focus(),this.setState({contextMenuElem:e})}),(0,i.A)(this,"onContextMenu",e=>{if(this.props.onFinished){this.props.onFinished(),e.preventDefault(),e.stopPropagation();const t=e.clientX,s=e.clientY;setTimeout(()=>{var e;const n=new MouseEvent("contextmenu",{clientX:t,clientY:s,screenX:0,screenY:0,button:0,relatedTarget:null});null===(e=document.elementFromPoint(t,s))||void 0===e||e.dispatchEvent(n)},0)}}),(0,i.A)(this,"onContextMenuPreventBubbling",e=>{e.stopPropagation()}),(0,i.A)(this,"onFinished",e=>{var t,s;e.stopPropagation(),e.preventDefault(),null===(t=(s=this.props).onFinished)||void 0===t||t.call(s)}),(0,i.A)(this,"onClick",e=>{var t,s;(e.stopPropagation(),this.props.closeOnInteraction)&&(null===(t=(s=this.props).onFinished)||void 0===t||t.call(s))}),(0,i.A)(this,"onKeyDown",e=>{e.stopPropagation();const t=(0,p.zM)().getAccessibilityAction(e);this.props.managed?(0,u.L4)(e.target)&&t!==h.bY.Escape||[h.bY.Escape,h.bY.Tab,h.bY.ArrowLeft,h.bY.ArrowRight].includes(t)&&this.props.onFinished():t===h.bY.Escape&&this.props.onFinished()}),this.state={},this.initialFocus=document.activeElement}componentDidMount(){g.Ay.on(g.XM.Opened,this.onModalOpen)}componentWillUnmount(){g.Ay.off(g.XM.Opened,this.onModalOpen),this.initialFocus.focus()}renderMenu(e=this.props.hasBackground){const t={},s=this.props,{top:i,bottom:a,left:l,right:h,bottomAligned:p,rightAligned:g,menuClassName:v,menuHeight:_,menuWidth:f,menuPaddingLeft:y,menuPaddingRight:b,menuPaddingBottom:E,menuPaddingTop:w,zIndex:x,children:A,focusLock:S,managed:C,wrapperClassName:R,chevronFace:k,chevronOffset:T,mountAsChild:M}=s,D=(0,o.A)(s,I);let j;i?t.top=i:t.bottom=a,l?(t.left=l,j=N.Left):(t.right=h,j=N.Right);const U=this.state.contextMenuElem?this.state.contextMenuElem.getBoundingClientRect():null,F={};k&&(j=k);const L=j&&j!==N.None;j===N.Top||j===N.Bottom?F.left=T:F.top=T;const{windowWidth:B,windowHeight:V}=m.A.instance;if(U){if(void 0!==t.top){let e=V-10;p||(e-=U.height),t.top=Math.min(t.top,e),void 0!==F.top&&(F.top=T+i-t.top)}else void 0!==t.bottom&&(t.bottom=Math.min(t.bottom,V-U.height-10),void 0!==F.top&&(F.top=T+t.bottom-a));if(void 0!==t.left){let e=B-10;g||(e-=U.width),t.left=Math.min(t.left,e),void 0!==F.left&&(F.left=T+l-t.left)}else void 0!==t.right&&(t.right=Math.min(t.right,B-U.width-10),void 0!==F.left&&(F.left=T+t.right-h))}let H;L&&(H=r.createElement("div",{style:F,className:"mx_ContextualMenu_chevron_"+j}));const W=c()({mx_ContextualMenu:!0,mx_ContextualMenu_left:!L&&void 0!==t.left&&!t.right,mx_ContextualMenu_right:!L&&void 0!==t.right&&!t.left,mx_ContextualMenu_top:!L&&void 0!==t.top&&!t.bottom,mx_ContextualMenu_bottom:!L&&void 0!==t.bottom&&!t.top,mx_ContextualMenu_withChevron_left:j===N.Left,mx_ContextualMenu_withChevron_right:j===N.Right,mx_ContextualMenu_withChevron_top:j===N.Top,mx_ContextualMenu_withChevron_bottom:j===N.Bottom,mx_ContextualMenu_rightAligned:!0===g,mx_ContextualMenu_bottomAligned:!0===p},v),$={};f&&($.width=f),_&&($.height=_),isNaN(Number(w))||($.paddingTop=w),isNaN(Number(y))||($.paddingLeft=y),isNaN(Number(E))||($.paddingBottom=E),isNaN(Number(b))||($.paddingRight=b);const z={};let K;isNaN(Number(x))||($.zIndex=x+1,z.zIndex=x),e&&(K=r.createElement("div",{className:"mx_ContextualMenu_background",style:z,onClick:this.onFinished,onContextMenu:this.onContextMenu}));let J=r.createElement(r.Fragment,null,H,A);S&&(J=r.createElement(d.Ay,null,J));const{hasBackground:G,onFinished:q}=D,Y=(0,o.A)(D,P);return r.createElement(u.Se,{handleHomeEnd:!0,handleUpDown:!0,onKeyDown:this.onKeyDown},({onKeyDownHandler:e})=>r.createElement("div",{className:c()("mx_ContextualMenu_wrapper",R),style:O(O({},t),z),onClick:this.onClick,onKeyDown:e,onContextMenu:this.onContextMenuPreventBubbling},K,r.createElement("div",(0,n.A)({className:W,style:$,ref:this.collectContextMenuRect,role:C?"menu":void 0},Y),J)))}render(){return this.props.mountAsChild?this.renderMenu():a.createPortal(this.renderMenu(),function(){let e=document.getElementById(M);return e||(e=document.createElement("div"),e.id=M,document.body.appendChild(e)),e}())}}(0,i.A)(D,"defaultProps",{hasBackground:!0,managed:!0});const j=(e,t=12)=>{const s=e.right+window.scrollX+3;let n=e.top+e.height/2+window.scrollY;return n-=t+8,{left:s,top:n,chevronOffset:t}},U=(e,t=N.None,s=0)=>{const n={chevronFace:t},o=e.right+window.scrollX,i=e.bottom+window.scrollY,r=e.top+window.scrollY;return n.right=m.A.instance.windowWidth-o,i<m.A.instance.windowHeight/2?n.top=i+s:n.bottom=m.A.instance.windowHeight-r+s,n},F=(e,t=N.None,s=0)=>{const n={chevronFace:t},o=e.left+window.scrollX,i=e.bottom+window.scrollY,r=e.top+window.scrollY;return n.left=o,i<m.A.instance.windowHeight/2?n.top=i+s:n.bottom=m.A.instance.windowHeight-r+s,n},L=(e,t=N.None,s=0)=>{const n={chevronFace:t},o=e.right+window.scrollX,i=e.top+window.scrollY;return n.right=m.A.instance.windowWidth-o,n.bottom=m.A.instance.windowHeight-i+s,n},B=(e,t=N.None,s=0)=>{const n={chevronFace:t},o=e.left+window.scrollX,i=e.top+window.scrollY;return n.left=o,n.bottom=m.A.instance.windowHeight-i+s,n},V=e=>{let t=(0,r.useRef)(null);e&&(t=e);const[s,n]=(0,r.useState)(!1);return[!!t.current&&s,t,e=>{null==e||e.preventDefault(),null==e||e.stopPropagation(),n(!0)},e=>{null==e||e.preventDefault(),null==e||e.stopPropagation(),n(!1)},n]}},"./src/components/structures/InteractiveAuth.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>d,R:()=>c});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/interactive-auth.ts"),r=s("./node_modules/matrix-js-sdk/src/logger.ts"),a=s("./src/components/views/auth/InteractiveAuthEntryComponents.tsx"),l=s("./src/components/views/elements/Spinner.tsx");const c=new Error("User cancelled auth session");class d extends o.Component{constructor(e){super(e),(0,n.A)(this,"authLogic",void 0),(0,n.A)(this,"stageComponent",(0,o.createRef)()),(0,n.A)(this,"intervalId",null),(0,n.A)(this,"unmounted",!1),(0,n.A)(this,"requestEmailToken",async(e,t,s,n)=>{this.setState({busy:!0});try{return await this.props.requestEmailToken(e,t,s,n)}finally{this.setState({busy:!1})}}),(0,n.A)(this,"authStateUpdated",(e,t)=>{const s=this.state.authStage;this.setState({busy:!1,authStage:e,stageState:t,errorText:t.error,errorCode:t.errcode},()=>{if(s!==e)this.setFocus();else if(!t.error){var n,o;null===(n=this.stageComponent.current)||void 0===n||null===(o=n.attemptFailed)||void 0===o||o.call(n)}})}),(0,n.A)(this,"requestCallback",(e,t)=>this.props.makeRequest(e)),(0,n.A)(this,"onBusyChanged",e=>{e&&this.setState({busy:!0,errorText:void 0,errorCode:void 0}),e||this.state.authStage!==i.hT.Sso&&this.state.authStage!==i.hT.SsoUnstable||this.setState({busy:e})}),(0,n.A)(this,"submitAuthDict",e=>{this.authLogic.submitAuthDict(e)}),(0,n.A)(this,"onPhaseChange",e=>{var t,s,n;null===(t=(s=this.props).onStagePhaseChange)||void 0===t||t.call(s,null!==(n=this.state.authStage)&&void 0!==n?n:null,e||0)}),(0,n.A)(this,"onStageCancel",async()=>{await this.props.onAuthFinished(!1,c)}),(0,n.A)(this,"onAuthStageFailed",async e=>{await this.props.onAuthFinished(!1,e)}),(0,n.A)(this,"setEmailSid",e=>{this.authLogic.setEmailSid(e)}),this.state={busy:!1,submitButtonEnabled:!1},this.authLogic=new i.Lh({authData:this.props.authData,doRequest:this.requestCallback,busyChanged:this.onBusyChanged,inputs:this.props.inputs,stateUpdated:this.authStateUpdated,matrixClient:this.props.matrixClient,sessionId:this.props.sessionId,clientSecret:this.props.clientSecret,emailSid:this.props.emailSid,requestEmailToken:this.requestEmailToken,supportedStages:[i.hT.Password,i.hT.Recaptcha,i.hT.Email,i.hT.Msisdn,i.hT.Terms,i.hT.RegistrationToken,i.hT.UnstableRegistrationToken,i.hT.Sso,i.hT.SsoUnstable,a.WM.MasCrossSigningReset]})}componentDidMount(){this.unmounted=!1,this.props.poll&&(this.intervalId=window.setInterval(()=>{this.authLogic.poll()},2e3)),this.authLogic.attemptAuth().then(async e=>{const t={emailSid:this.authLogic.getEmailSid(),clientSecret:this.authLogic.getClientSecret()};await this.props.onAuthFinished(!0,e,t)}).catch(async e=>{if(await this.props.onAuthFinished(!1,e),r.vF.error("Error during user-interactive auth:",e),this.unmounted)return;const t=e.message||e.toString();this.setState({errorText:t,errorCode:e.errcode})})}componentWillUnmount(){this.unmounted=!0,null!==this.intervalId&&clearInterval(this.intervalId)}setFocus(){var e,t;null===(e=this.stageComponent.current)||void 0===e||null===(t=e.focus)||void 0===t||t.call(e)}render(){const e=this.state.authStage;if(!e)return this.state.busy?o.createElement(l.A,null):null;const t=(0,a.Ay)(e);return o.createElement(t,{ref:this.stageComponent,loginType:e,matrixClient:this.props.matrixClient,authSessionId:this.authLogic.getSessionId(),clientSecret:this.authLogic.getClientSecret(),stageParams:this.authLogic.getStageParams(e),submitAuthDict:this.submitAuthDict,errorText:this.state.errorText,errorCode:this.state.errorCode,busy:this.state.busy,inputs:this.props.inputs,stageState:this.state.stageState,fail:this.onAuthStageFailed,setEmailSid:this.setEmailSid,onPhaseChange:this.onPhaseChange,requestEmailToken:this.authLogic.requestEmailToken,continueText:this.props.continueText,continueKind:this.props.continueKind,onCancel:this.onStageCancel})}}},"./src/components/structures/LegacyCallEventGrouper.ts":(e,t,s)=>{"use strict";s.d(t,{Cj:()=>c,fN:()=>h});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/webrtc/call.ts"),r=s("./node_modules/events/events.js"),a=s("./src/LegacyCallHandler.tsx"),l=s("./src/MatrixClientPeg.ts");let c=function(e){return e.StateChanged="state_changed",e.SilencedChanged="silenced_changed",e.LengthChanged="length_changed",e}({});const d=[i.iP.Connecting,i.iP.WaitLocalMedia,i.iP.CreateOffer,i.iP.CreateAnswer],m=[i.iP.Connected,i.iP.Ringing,i.iP.Ended],u=e=>{return(t=e.getType()).startsWith("m.call.")||t.startsWith("org.matrix.call.");var t};function h(e,t){const s=new Map;return null==t||t.forEach(t=>{if(!u(t))return;const n=t.getContent().call_id;s.has(n)||(e.has(n)?s.set(n,e.get(n)):s.set(n,new p)),s.get(n).add(t)}),s}class p extends r.EventEmitter{constructor(){super(),(0,n.A)(this,"events",new Set),(0,n.A)(this,"call",null),(0,n.A)(this,"state",void 0),(0,n.A)(this,"onSilencedCallsChanged",()=>{const e=a.Ay.instance.isCallSilenced(this.callId);this.emit(c.SilencedChanged,e)}),(0,n.A)(this,"onLengthChanged",e=>{this.emit(c.LengthChanged,e)}),(0,n.A)(this,"answerCall",()=>{const e=this.roomId;e&&a.Ay.instance.answerCall(e)}),(0,n.A)(this,"rejectCall",()=>{const e=this.roomId;e&&a.Ay.instance.hangupOrReject(e,!0)}),(0,n.A)(this,"callBack",()=>{const e=this.roomId;e&&a.Ay.instance.placeCall(e,this.isVoice?i.JG.Voice:i.JG.Video)}),(0,n.A)(this,"toggleSilenced",()=>{a.Ay.instance.isCallSilenced(this.callId)?a.Ay.instance.unSilenceCall(this.callId):a.Ay.instance.silenceCall(this.callId)}),(0,n.A)(this,"setState",()=>{this.call&&d.includes(this.call.state)?this.state=i.iP.Connecting:this.call&&m.includes(this.call.state)?this.state=this.call.state:this.reject||this.hangup?this.state=i.iP.Ended:this.invite&&this.call&&(this.state=i.iP.Connecting),this.emit(c.StateChanged,this.state)}),(0,n.A)(this,"setCall",()=>{const e=this.callId;e&&!this.call&&(this.call=a.Ay.instance.getCallById(e),this.setCallListeners(),this.setState())}),a.Ay.instance.addListener(a.uv.CallsChanged,this.setCall),a.Ay.instance.addListener(a.uv.SilencedCallsChanged,this.onSilencedCallsChanged)}get invite(){return[...this.events].find(e=>e.getType()===o.EventType.CallInvite)}get hangup(){return[...this.events].find(e=>e.getType()===o.EventType.CallHangup)}get reject(){return[...this.events].find(e=>e.getType()===o.EventType.CallReject)}get selectAnswer(){return[...this.events].find(e=>e.getType()===o.EventType.CallSelectAnswer)}get isVoice(){var e;const t=this.invite;if(t)return-1===(null===(e=t.getContent())||void 0===e||null===(e=e.offer)||void 0===e||null===(e=e.sdp)||void 0===e?void 0:e.indexOf("m=video"))}get hangupReason(){var e,t,s,n;return null!==(e=null!==(t=null===(s=this.call)||void 0===s?void 0:s.hangupReason)&&void 0!==t?t:null===(n=this.hangup)||void 0===n||null===(n=n.getContent())||void 0===n?void 0:n.reason)&&void 0!==e?e:null}get rejectParty(){var e;return null===(e=this.reject)||void 0===e?void 0:e.getSender()}get gotRejected(){return Boolean(this.reject)}get duration(){var e,t;return null!==(e=this.hangup)&&void 0!==e&&e.getDate()&&null!==(t=this.selectAnswer)&&void 0!==t&&t.getDate()?this.hangup.getDate().getTime()-this.selectAnswer.getDate().getTime():null}get callWasMissed(){return this.state===i.iP.Ended&&![...this.events].some(e=>{var t;return(null===(t=e.sender)||void 0===t?void 0:t.userId)===l.J.safeGet().getUserId()})}get callId(){var e;return null===(e=[...this.events][0])||void 0===e||null===(e=e.getContent())||void 0===e?void 0:e.call_id}get roomId(){var e;return null===(e=[...this.events][0])||void 0===e?void 0:e.getRoomId()}setCallListeners(){this.call&&(this.call.addListener(i.$E.State,this.setState),this.call.addListener(i.$E.LengthChanged,this.onLengthChanged))}add(e){this.events.has(e)||(this.events.add(e),this.setCall())}}},"./src/components/structures/RoomStatusBar.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>y,c:()=>f});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/warning.js"),a=s("./src/languageHandler.tsx"),l=s("./src/Resend.ts"),c=s("./src/dispatcher/dispatcher.ts"),d=s("./src/utils/ErrorUtils.tsx"),m=s("./src/dispatcher/actions.ts"),u=s("./src/stores/notifications/StaticNotificationState.ts"),h=s("./src/components/views/elements/AccessibleButton.tsx"),p=s("./src/components/views/elements/InlineSpinner.tsx"),g=s("./src/contexts/MatrixClientContext.tsx"),v=s("./src/components/structures/RoomStatusBarUnsentMessages.tsx"),_=s("./src/components/views/elements/ExternalLink.tsx");function f(e,t){return e?e.getPendingEvents().filter(function(e){const s=e.status===i.EventStatus.NOT_SENT,n=t===e.threadRootId;return s&&(!t||n)}):[]}class y extends o.PureComponent{constructor(e,t){super(e,t),(0,n.A)(this,"unmounted",!1),(0,n.A)(this,"onSyncStateChange",(e,t,s)=>{"SYNCING"===e&&"SYNCING"===t||this.unmounted||this.setState({syncState:e,syncStateData:null!=s?s:null})}),(0,n.A)(this,"onResendAllClick",()=>{l.A.resendUnsentEvents(this.props.room).then(()=>{this.setState({isResending:!1})}),this.setState({isResending:!0}),c.A.fire(m.r.FocusSendMessageComposer)}),(0,n.A)(this,"onCancelAllClick",()=>{l.A.cancelUnsentEvents(this.props.room),c.A.fire(m.r.FocusSendMessageComposer)}),(0,n.A)(this,"onRoomLocalEchoUpdated",(e,t)=>{if(t.roomId!==this.props.room.roomId)return;const s=f(this.props.room);this.setState({unsentMessages:s,isResending:s.length>0&&this.state.isResending})}),this.state={syncState:this.context.getSyncState(),syncStateData:this.context.getSyncStateData(),unsentMessages:f(this.props.room),isResending:!1}}componentDidMount(){this.unmounted=!1;const e=this.context;e.on(i.ClientEvent.Sync,this.onSyncStateChange),e.on(i.RoomEvent.LocalEchoUpdated,this.onRoomLocalEchoUpdated),this.checkSize()}componentDidUpdate(){this.checkSize()}componentWillUnmount(){this.unmounted=!0;const e=this.context;e&&(e.removeListener(i.ClientEvent.Sync,this.onSyncStateChange),e.removeListener(i.RoomEvent.LocalEchoUpdated,this.onRoomLocalEchoUpdated))}checkSize(){this.getSize()?this.props.onVisible&&this.props.onVisible():this.props.onHidden&&this.props.onHidden()}getSize(){return this.shouldShowConnectionError()?1:this.state.unsentMessages.length>0||this.state.isResending?2:0}shouldShowConnectionError(){const e=Boolean(this.state.syncStateData&&this.state.syncStateData.error&&"M_RESOURCE_LIMIT_EXCEEDED"===this.state.syncStateData.error.name);return"ERROR"===this.state.syncState&&!e}getUnsentMessageContent(){const e=this.state.unsentMessages;let t,s=null,n=null;for(const t of e){if(t.error&&"M_CONSENT_NOT_GIVEN"===t.error.errcode){s=t.error;break}if(t.error&&"M_RESOURCE_LIMIT_EXCEEDED"===t.error.errcode){n=t.error;break}}t=s?(0,a._t)("room|status_bar|requires_consent_agreement",{},{consentLink:e=>{var t;return o.createElement(_.A,{href:null===(t=s.data)||void 0===t?void 0:t.consent_uri,target:"_blank",rel:"noreferrer noopener"},e)}}):n?(0,d.AB)(n.data.limit_type,n.data.admin_contact,{monthly_active_user:(0,a.AO)("room|status_bar|monthly_user_limit_reached"),hs_disabled:(0,a.AO)("room|status_bar|homeserver_blocked"),"":(0,a.AO)("room|status_bar|exceeded_resource_limit")}):(0,a._t)("room|status_bar|some_messages_not_sent");let i=o.createElement(o.Fragment,null,o.createElement(h.A,{onClick:this.onCancelAllClick,className:"mx_RoomStatusBar_unsentCancelAllBtn"},(0,a._t)("room|status_bar|delete_all")),o.createElement(h.A,{onClick:this.onResendAllClick,className:"mx_RoomStatusBar_unsentRetry"},(0,a._t)("room|status_bar|retry_all")));return this.state.isResending&&(i=o.createElement(o.Fragment,null,o.createElement(p.A,{w:20,h:20}),o.createElement("span",null,(0,a._t)("forward|sending")))),o.createElement(v.E,{title:t,description:(0,a._t)("room|status_bar|select_messages_to_retry"),notificationState:u.d.RED_EXCLAMATION,buttons:i})}render(){return this.shouldShowConnectionError()?o.createElement("div",{className:"mx_RoomStatusBar"},o.createElement("div",{role:"alert"},o.createElement("div",{className:"mx_RoomStatusBar_connectionLostBar"},o.createElement(r.A,{width:"24px",height:"24px"}),o.createElement("div",null,o.createElement("div",{className:"mx_RoomStatusBar_connectionLostBar_title"},(0,a._t)("room|status_bar|server_connectivity_lost_title")),o.createElement("div",{className:"mx_RoomStatusBar_connectionLostBar_desc"},(0,a._t)("room|status_bar|server_connectivity_lost_description")))))):this.state.unsentMessages.length>0||this.state.isResending?this.getUnsentMessageContent():null}}(0,n.A)(y,"contextType",g.Ay)},"./src/components/structures/RoomStatusBarUnsentMessages.tsx":(e,t,s)=>{"use strict";s.d(t,{E:()=>i});var n=s("./node_modules/react/index.js"),o=s("./src/components/views/rooms/NotificationBadge.tsx");const i=e=>n.createElement("div",{className:"mx_RoomStatusBar mx_RoomStatusBar_unsentMessages"},n.createElement("div",{role:"alert"},n.createElement("div",{className:"mx_RoomStatusBar_unsentBadge"},n.createElement(o.A,{notification:e.notificationState})),n.createElement("div",null,n.createElement("div",{className:"mx_RoomStatusBar_unsentTitle"},e.title),e.description&&n.createElement("div",{className:"mx_RoomStatusBar_unsentDescription"},e.description)),n.createElement("div",{className:"mx_RoomStatusBar_unsentButtonBar"},e.buttons)))},"./src/components/structures/ScrollPanel.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>h});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./src/settings/SettingsStore.ts"),a=s("./src/utils/Timer.ts"),l=s("./src/components/structures/AutoHideScrollbar.tsx"),c=s("./src/KeyBindingsManager.ts"),d=s("./src/accessibility/KeyboardShortcuts.ts"),m=s("./src/contexts/SDKContext.ts");const u=(...e)=>{r.A.getValue("debug_scroll_panel")&&i.vF.log.call(console,"ScrollPanel debuglog:",...e)};class h extends o.Component{constructor(e,t){super(e,t),(0,n.A)(this,"pendingFillRequests",{b:null,f:null}),(0,n.A)(this,"itemlist",(0,o.createRef)()),(0,n.A)(this,"unmounted",!1),(0,n.A)(this,"scrollTimeout",void 0),(0,n.A)(this,"isFilling",!1),(0,n.A)(this,"isFillingDueToPropsUpdate",!1),(0,n.A)(this,"fillRequestWhileRunning",!1),(0,n.A)(this,"pendingFillDueToPropsUpdate",!1),(0,n.A)(this,"scrollState",void 0),(0,n.A)(this,"preventShrinkingState",null),(0,n.A)(this,"unfillDebouncer",null),(0,n.A)(this,"bottomGrowth",void 0),(0,n.A)(this,"minListHeight",void 0),(0,n.A)(this,"heightUpdateInProgress",!1),(0,n.A)(this,"divScroll",null),(0,n.A)(this,"onScroll",e=>{var t,s,n,o;null!==(t=this.context)&&void 0!==t&&t.resizeNotifier&&this.context.resizeNotifier.isResizing||(u("onScroll called past resize gate; scroll node top:",this.getScrollNode().scrollTop),null===(s=this.scrollTimeout)||void 0===s||s.restart(),this.saveScrollState(),this.updatePreventShrinking(),null===(n=(o=this.props).onScroll)||void 0===n||n.call(o,e),this.checkFillState())}),(0,n.A)(this,"onResize",()=>{u("onResize called"),this.checkScroll(),this.preventShrinkingState&&this.preventShrinking()}),(0,n.A)(this,"checkScroll",(e=!1)=>{this.unmounted||(this.restoreSavedScrollState(),this.checkFillState(0,e))}),(0,n.A)(this,"isAtBottom",()=>{const e=this.getScrollNode();return e.scrollHeight-(e.scrollTop+e.clientHeight)<=1}),(0,n.A)(this,"checkFillState",async(e=0,t=!1)=>{if(this.unmounted)return;const s=0===e,n=this.getScrollNode();if(s){if(this.isFilling&&!this.isFillingDueToPropsUpdate)return u("isFilling: not entering while request is ongoing, marking for a subsequent request"),this.fillRequestWhileRunning=!0,void(this.pendingFillDueToPropsUpdate=t);u("isFilling: setting"),this.isFilling=!0,this.isFillingDueToPropsUpdate=t}const o=this.itemlist.current,r=null==o?void 0:o.firstElementChild,a=[];if((!r||n.scrollTop-r.offsetTop<n.clientHeight)&&a.push(this.maybeFill(e,!0)),n.scrollHeight-n.scrollTop<2*n.clientHeight&&a.push(this.maybeFill(e,!1)),a.length)try{await Promise.all(a)}catch(e){i.vF.error(e)}if(s&&(u("isFilling: clearing"),this.isFilling=!1,this.isFillingDueToPropsUpdate=!1),this.fillRequestWhileRunning){const e=this.pendingFillDueToPropsUpdate;this.fillRequestWhileRunning=!1,this.pendingFillDueToPropsUpdate=!1,this.checkFillState(0,e)}}),(0,n.A)(this,"getScrollState",()=>this.scrollState),(0,n.A)(this,"resetScrollState",()=>{this.scrollState={stuckAtBottom:this.props.startAtBottom},this.bottomGrowth=0,this.minListHeight=0,this.scrollTimeout=new a.A(100),this.heightUpdateInProgress=!1}),(0,n.A)(this,"scrollToTop",()=>{this.getScrollNode().scrollTop=0,this.saveScrollState()}),(0,n.A)(this,"scrollToBottom",()=>{const e=this.getScrollNode();e.scrollTop=e.scrollHeight,this.saveScrollState()}),(0,n.A)(this,"scrollRelative",e=>{const t=this.getScrollNode(),s=e*t.clientHeight*.9;t.scrollBy(0,s),this.saveScrollState()}),(0,n.A)(this,"handleScrollKey",e=>{switch((0,c.zM)().getRoomAction(e)){case d.bY.ScrollUp:this.scrollRelative(-1);break;case d.bY.ScrollDown:this.scrollRelative(1);break;case d.bY.JumpToFirstMessage:this.scrollToTop();break;case d.bY.JumpToLatestMessage:this.scrollToBottom()}}),(0,n.A)(this,"scrollToToken",(e,t=0,s=0)=>{this.scrollState={stuckAtBottom:!1,trackedScrollToken:e};const n=this.getTrackedNode(),o=this.getScrollNode();n&&(u("scrollToken: setting scrollTop",{offsetBase:s,pixelOffset:t,offsetTop:n.offsetTop}),o.scrollTop=n.offsetTop-o.clientHeight*s+t,this.saveScrollState())}),(0,n.A)(this,"collectScroll",e=>{this.divScroll=e}),(0,n.A)(this,"preventShrinking",()=>{const e=this.itemlist.current,t=null==e?void 0:e.children;if(!t)return;let s;for(let e=t.length-1;e>=0;e--){const n=t[e];if(n.dataset.scrollTokens){s=n;break}}if(!s)return;this.clearPreventShrinking();const n=e.clientHeight-(s.offsetTop+s.clientHeight);this.preventShrinkingState={offsetFromBottom:n,offsetNode:s},u("prevent shrinking, last tile ",n,"px from bottom")}),(0,n.A)(this,"clearPreventShrinking",()=>{const e=this.itemlist.current,t=e&&e.parentElement;t&&t.style.removeProperty("paddingBottom"),this.preventShrinkingState=null,u("prevent shrinking cleared")}),(0,n.A)(this,"updatePreventShrinking",()=>{if(this.preventShrinkingState&&this.itemlist.current){const e=this.getScrollNode(),t=this.scrollState,s=this.itemlist.current,{offsetNode:n,offsetFromBottom:o}=this.preventShrinkingState,i=s.parentElement;let r=!n.parentElement;if(!r&&!t.stuckAtBottom){r=e.scrollHeight-(e.scrollTop+e.clientHeight)>=200}if(!r){const e=o-(s.clientHeight-(n.offsetTop+n.clientHeight));e>0&&i?(i.style.paddingBottom=`${e}px`,u("update prevent shrinking ",e,"px from bottom")):e<0&&(r=!0)}r&&this.clearPreventShrinking()}}),this.resetScrollState()}componentDidMount(){var e;this.unmounted=!1,null===(e=this.context)||void 0===e||null===(e=e.resizeNotifier)||void 0===e||e.on("middlePanelResizedNoisy",this.onResize),this.checkScroll()}componentDidUpdate(){this.checkScroll(!0),this.updatePreventShrinking()}componentWillUnmount(){var e;this.unmounted=!0,null===(e=this.context)||void 0===e||null===(e=e.resizeNotifier)||void 0===e||e.removeListener("middlePanelResizedNoisy",this.onResize),this.divScroll=null}getExcessHeight(e){const t=this.getScrollNode(),s=this.getMessagesHeight(),n=s-this.getListHeight(),o=t.scrollTop+n;return e?o-t.clientHeight-6e3:s-(o+2*t.clientHeight)-6e3}checkUnfillState(e){let t=this.getExcessHeight(e);if(t<=0||!this.itemlist.current)return;const s=t,n=this.itemlist.current.children;let o,i=null;for(let s=0;s<n.length&&(o=n[e?s:n.length-1-s],t-=o.clientHeight,!(o.clientHeight>t));s++)o.dataset.scrollTokens&&(i=o.dataset.scrollTokens.split(",")[0]);i&&(this.unfillDebouncer&&clearTimeout(this.unfillDebouncer),this.unfillDebouncer=window.setTimeout(()=>{var t,n;this.unfillDebouncer=null,u("unfilling now",{backwards:e,origExcessHeight:s}),null===(t=(n=this.props).onUnfillRequest)||void 0===t||t.call(n,e,i)},200))}maybeFill(e,t){const s=t?"b":"f";return this.pendingFillRequests[s]?(u("Already a fill in progress - not starting another; direction=",s),Promise.resolve()):(u("starting fill; direction=",s),this.pendingFillRequests[s]=!0,new Promise(e=>window.setTimeout(e,1)).then(()=>{var e,s;return null===(e=(s=this.props).onFillRequest)||void 0===e?void 0:e.call(s,t)}).finally(()=>{this.pendingFillRequests[s]=!1}).then(n=>{if(!this.unmounted)return this.checkUnfillState(!t),u("fill complete; hasMoreResults=",n,"direction=",s),n?this.checkFillState(e+1):void 0}))}saveScrollState(){var e;if(this.props.stickyBottom&&this.isAtBottom())return this.scrollState={stuckAtBottom:!0},void u("saved stuckAtBottom state");const t=this.getScrollNode(),s=t.scrollHeight-(t.scrollTop+t.clientHeight),n=this.itemlist.current;if(!n)return;const o=n.children;let i=null;for(let e=o.length-1;e>=0;--e){var r;const t=o[e];if(null!==(r=t.dataset)&&void 0!==r&&r.scrollTokens&&(i=t,this.topFromBottom(i)>s))break}if(!i)return void u("unable to save scroll state: found no children in the viewport");const a=null===(e=i.dataset.scrollTokens)||void 0===e?void 0:e.split(",")[0];u("saving anchored scroll state to message",a);const l=this.topFromBottom(i);this.scrollState={stuckAtBottom:!1,trackedNode:i,trackedScrollToken:a,bottomOffset:l,pixelOffset:l-s}}async restoreSavedScrollState(){const e=this.scrollState;if(e.stuckAtBottom){const e=this.getScrollNode();e.scrollTop!==e.scrollHeight&&(e.scrollTop=e.scrollHeight)}else if(e.trackedScrollToken){const s=this.itemlist.current,n=this.getTrackedNode();if(n){var t;const o=this.topFromBottom(n),i=o-(null!==(t=e.bottomOffset)&&void 0!==t?t:0);this.bottomGrowth+=i,e.bottomOffset=o;const r=`${this.getListHeight()}px`;s&&s.style.height!==r&&(s.style.height=r),u("balancing height because messages below viewport grew by",i)}}if(this.heightUpdateInProgress)u("not updating height because request already in progress");else{this.heightUpdateInProgress=!0;try{await this.updateHeight()}finally{this.heightUpdateInProgress=!1}}}async updateHeight(){var e;if(null!==(e=this.scrollTimeout)&&void 0!==e&&e.isRunning()?(u("updateHeight waiting for scrolling to end ... "),await this.scrollTimeout.finished(),u("updateHeight actually running now")):u("updateHeight running without delay"),this.unmounted)return void u("updateHeight: abort due to unmount");const t=this.getScrollNode(),s=this.itemlist.current,n=this.getMessagesHeight();n<t.clientHeight?this.minListHeight=t.clientHeight:this.minListHeight=400*Math.ceil(n/400),this.bottomGrowth=0;const o=`${this.getListHeight()}px`,i=this.scrollState;if(i.stuckAtBottom)s&&s.style.height!==o&&(s.style.height=o),t.scrollTop!==t.scrollHeight&&(t.scrollTop=t.scrollHeight),u("updateHeight to",o);else if(i.trackedScrollToken){const e=this.getTrackedNode();if(e){const n=e.offsetTop;s&&s.style.height!==o&&(s.style.height=o);const i=e.offsetTop-n;t.scrollBy(0,i),u("updateHeight to",{newHeight:o,topDiff:i})}}}getTrackedNode(){const e=this.scrollState,t=e.trackedNode;if((null==t||!t.parentElement)&&this.itemlist.current){let t;const n=this.itemlist.current.children,o=e.trackedScrollToken;for(let e=n.length-1;e>=0;--e){var s;const i=n[e];if(o&&null!==(s=i.dataset.scrollTokens)&&void 0!==s&&s.split(",").includes(o)){t=i;break}}t&&u("had to find tracked node again for token:",e.trackedScrollToken),e.trackedNode=t}if(e.trackedNode)return e.trackedNode;u("No node with token:",e.trackedScrollToken)}getListHeight(){return this.bottomGrowth+this.minListHeight}getMessagesHeight(){var e,t;const s=this.itemlist.current,n=null==s?void 0:s.lastElementChild;return(n?n.offsetTop+n.clientHeight:0)-(null!==(e=null==s||null===(t=s.firstElementChild)||void 0===t?void 0:t.offsetTop)&&void 0!==e?e:0)+36}topFromBottom(e){return this.itemlist.current?this.itemlist.current.clientHeight-e.offsetTop:-1}getScrollNode(){if(this.unmounted)throw new Error("ScrollPanel.getScrollNode called when unmounted");if(!this.divScroll)throw new Error("ScrollPanel.getScrollNode called before AutoHideScrollbar ref collected");return this.divScroll}render(){return o.createElement(l.A,{wrappedRef:this.collectScroll,onScroll:this.onScroll,className:`mx_ScrollPanel ${this.props.className}`,style:this.props.style},this.props.fixedChildren,o.createElement("div",{className:"mx_RoomView_messageListWrapper"},o.createElement("ol",{ref:this.itemlist,className:"mx_RoomView_MessageList","aria-live":"polite"},this.props.children)))}}(0,n.A)(h,"defaultProps",{stickyBottom:!0,startAtBottom:!0,onFillRequest:function(e){return Promise.resolve(!1)},onUnfillRequest:function(e,t){},onScroll:function(){}}),(0,n.A)(h,"contextType",m.A)},"./src/components/structures/SearchBox.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>p});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),r=s("./node_modules/react/index.js"),a=s("./node_modules/lodash/lodash.js"),l=s("./node_modules/classnames/index.js"),c=s.n(l),d=s("./src/components/views/elements/AccessibleButton.tsx"),m=s("./src/KeyBindingsManager.ts"),u=s("./src/accessibility/KeyboardShortcuts.ts");const h=["onSearch","onCleared","onKeyDown","onFocus","onBlur","className","placeholder","blurredPlaceholder","autoFocus","initialValue","collapsed"];class p extends r.Component{constructor(e){super(e),(0,i.A)(this,"search",(0,r.createRef)()),(0,i.A)(this,"onChange",()=>{this.search.current&&(this.setState({searchTerm:this.search.current.value}),this.onSearch())}),(0,i.A)(this,"onSearch",(0,a.throttle)(()=>{var e,t;this.props.onSearch(null!==(e=null===(t=this.search.current)||void 0===t?void 0:t.value)&&void 0!==e?e:"")},200,{trailing:!0,leading:!0})),(0,i.A)(this,"onKeyDown",e=>{if((0,m.zM)().getAccessibilityAction(e)===u.bY.Escape)this.clearSearch("keyboard");this.props.onKeyDown&&this.props.onKeyDown(e)}),(0,i.A)(this,"onFocus",e=>{this.setState({blurred:!1}),e.target.select(),this.props.onFocus&&this.props.onFocus(e)}),(0,i.A)(this,"onBlur",e=>{this.setState({blurred:!0}),this.props.onBlur&&this.props.onBlur(e)}),this.state={searchTerm:e.initialValue||"",blurred:!0}}clearSearch(e){var t,s;this.search.current&&(this.search.current.value=""),this.onChange(),null===(t=(s=this.props).onCleared)||void 0===t||t.call(s,e)}render(){const e=this.props,{onSearch:t,onCleared:s,onKeyDown:i,onFocus:a,onBlur:l,className:m="",placeholder:u,blurredPlaceholder:p,autoFocus:g,initialValue:v,collapsed:_}=e,f=(0,o.A)(e,h);if(_)return null;const y=!this.state.blurred||this.state.searchTerm?r.createElement(d.A,{key:"button",tabIndex:-1,className:"mx_SearchBox_closeButton",onClick:()=>{this.clearSearch("button")}}):void 0;return r.createElement("div",{className:c()("mx_SearchBox","mx_textinput",{mx_SearchBox_blurred:this.state.blurred})},r.createElement("input",(0,n.A)({},f,{key:"searchfield",type:"text",ref:this.search,className:"mx_textinput_icon mx_textinput_search "+m,value:this.state.searchTerm,onFocus:this.onFocus,onChange:this.onChange,onKeyDown:this.onKeyDown,onBlur:this.onBlur,placeholder:this.state.blurred&&p||u,autoComplete:"off",autoFocus:this.props.autoFocus})),y)}}},"./src/components/structures/TabbedView.tsx":(e,t,s)=>{"use strict";s.d(t,{oz:()=>u,lX:()=>p,Ay:()=>f,yz:()=>h});var n=s("./node_modules/react/index.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./src/languageHandler.tsx"),a=s("./src/components/structures/AutoHideScrollbar.tsx"),l=s("./src/PosthogTrackers.ts"),c=s("./src/accessibility/RovingTabIndex.tsx"),d=s("./src/stores/UIStore.ts");const m=()=>{const[e,t]=n.useState(d.A.instance.windowWidth);return n.useEffect(()=>(d.A.instance.on(d.x.Resize,()=>{t(d.A.instance.windowWidth)}),()=>{d.A.instance.removeListener(d.x.Resize,()=>{t(d.A.instance.windowWidth)})}),[]),e};class u{constructor(e,t,s,n,o,i){this.id=e,this.label=t,this.icon=s,this.body=n,this.screenName=o,this.labelClassName=i}}function h(e,t,s){const[o,i]=n.useState(s&&e.some(e=>e.id===s)?s:t);return[o,i]}let p=function(e){return e.LEFT="left",e.TOP="top",e}({});function g(e){return`mx_tabpanel_${e}`}function v({tab:e}){return n.createElement("div",{className:"mx_TabbedView_tabPanel",key:e.id,id:g(e.id),"aria-labelledby":`${g(e.id)}_label`},n.createElement(a.A,{className:"mx_TabbedView_tabPanelContent"},e.body))}function _({tab:e,isActive:t,showToolip:s,onClick:o}){const a=i()("mx_TabbedView_tabLabel",e.labelClassName,{mx_TabbedView_tabLabel_active:t});let l;e.icon&&("object"==typeof e.icon?l=e.icon:"string"==typeof e.icon&&(l=n.createElement("span",{className:`mx_TabbedView_maskedIcon ${e.icon}`})));const d=g(e.id),m=(0,r._t)(e.label);return n.createElement(c.k,{className:a,onClick:o,role:"tab","aria-selected":t,"aria-controls":d,element:"li",title:s?m:void 0},l,n.createElement("span",{className:"mx_TabbedView_tabLabel_text",id:`${d}_label`},m))}function f(e){var t,s;const o=null!==(t=e.tabLocation)&&void 0!==t?t:p.LEFT,r=m(),a=e.tabs.map(t=>n.createElement(_,{key:"tab_label_"+t.id,tab:t,isActive:t.id===e.activeTabId,onClick:()=>e.onChange(t.id),showToolip:r<1024&&o==p.LEFT})),d=(u=e.activeTabId,e.tabs.find(e=>e.id===u));var u;const h=d?n.createElement(v,{tab:d}):null,g=i()({mx_TabbedView:!0,mx_TabbedView_tabsOnLeft:o==p.LEFT,mx_TabbedView_tabsOnTop:o==p.TOP,mx_TabbedView_responsive:e.responsive}),f=null!==(s=null==d?void 0:d.screenName)&&void 0!==s?s:e.screenName;return n.createElement("div",{className:g},f&&n.createElement(l.Z,{screenName:f}),n.createElement(c.Se,{handleLoop:!0,handleHomeEnd:!0,handleLeftRight:o==p.TOP,handleUpDown:o==p.LEFT},({onKeyDownHandler:e})=>n.createElement("ul",{className:"mx_TabbedView_tabLabels",role:"tablist","aria-orientation":o==p.LEFT?"vertical":"horizontal",onKeyDown:e},a)),h)}},"./src/components/structures/ViewSource.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>g});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./src/components/views/elements/SyntaxHighlight.tsx"),r=s("./src/languageHandler.tsx"),a=s("./src/contexts/MatrixClientContext.tsx"),l=s("./src/utils/EventUtils.ts"),c=s("./src/MatrixClientPeg.ts"),d=s("./src/components/views/dialogs/BaseDialog.tsx"),m=s("./src/components/views/dialogs/devtools/BaseTool.tsx"),u=s("./src/components/views/dialogs/devtools/RoomState.tsx"),h=s("./src/components/views/dialogs/devtools/Event.tsx"),p=s("./src/components/views/elements/CopyableText.tsx");class g extends o.Component{constructor(e){super(e),(0,n.A)(this,"onBack",()=>{this.setState({isEditing:!1})}),this.state={isEditing:!1}}onEdit(){this.setState({isEditing:!0})}viewSourceContent(){let e=this.props.mxEvent.replacingEvent()||this.props.mxEvent;this.props.ignoreEdits&&(e=this.props.mxEvent);const t=e.isEncrypted(),s=e.clearEvent,n=e.event,a=()=>(0,h.As)(n);if(t){const e=()=>(0,h.As)(s||{});return o.createElement(o.Fragment,null,o.createElement("details",{open:!0,className:"mx_ViewSource_details"},o.createElement("summary",null,o.createElement("span",{className:"mx_ViewSource_heading"},(0,r._t)("devtools|view_source_decrypted_event_source"))),s?o.createElement(p.A,{getTextToCopy:e},o.createElement(i.A,{language:"json"},(0,h.As)(s))):o.createElement("div",null,(0,r._t)("devtools|view_source_decrypted_event_source_unavailable"))),o.createElement("details",{className:"mx_ViewSource_details"},o.createElement("summary",null,o.createElement("span",{className:"mx_ViewSource_heading"},(0,r._t)("devtools|original_event_source"))),o.createElement(p.A,{getTextToCopy:a},o.createElement(i.A,{language:"json"},(0,h.As)(n)))))}return o.createElement(o.Fragment,null,o.createElement("div",{className:"mx_ViewSource_heading"},(0,r._t)("devtools|original_event_source")),o.createElement(p.A,{getTextToCopy:a},o.createElement(i.A,{language:"json"},(0,h.As)(n))))}editSourceContent(){const e=this.props.mxEvent.replacingEvent()||this.props.mxEvent,t=e.isState(),s=e.getRoomId();return t?o.createElement(a.Ay.Consumer,null,t=>o.createElement(m.I.Provider,{value:{room:t.getRoom(s)}},o.createElement(u.N,{onBack:this.onBack,mxEvent:e}))):o.createElement(a.Ay.Consumer,null,t=>o.createElement(m.I.Provider,{value:{room:t.getRoom(s)}},o.createElement(h.lv,{onBack:this.onBack,mxEvent:e})))}canSendStateEvent(e){const t=c.J.safeGet(),s=t.getRoom(e.getRoomId());return!(null==s||!s.currentState.mayClientSendStateEvent(e.getType(),t))}render(){const e=this.props.mxEvent.replacingEvent()||this.props.mxEvent,t=this.state.isEditing,s=e.getRoomId(),n=e.getId(),i=e.isState()?this.canSendStateEvent(e):(0,l.wQ)(c.J.safeGet(),this.props.mxEvent);return o.createElement(d.A,{className:"mx_ViewSource",onFinished:this.props.onFinished,title:(0,r._t)("action|view_source")},o.createElement("div",{className:"mx_ViewSource_header"},o.createElement(p.A,{getTextToCopy:()=>s,border:!1},(0,r._t)("devtools|room_id",{roomId:s})),o.createElement(p.A,{getTextToCopy:()=>n,border:!1},(0,r._t)("devtools|event_id",{eventId:n})),e.threadRootId&&o.createElement(p.A,{getTextToCopy:()=>e.threadRootId,border:!1},(0,r._t)("devtools|thread_root_id",{threadRootId:e.threadRootId}))),t?this.editSourceContent():this.viewSourceContent(),!t&&i&&o.createElement("div",{className:"mx_Dialog_buttons"},o.createElement("button",{onClick:()=>this.onEdit()},(0,r._t)("action|edit"))))}}},"./src/components/structures/auth/header/AuthHeaderContext.tsx":(e,t,s)=>{"use strict";s.d(t,{h:()=>n});const n=(0,s("./node_modules/react/index.js").createContext)(void 0)},"./src/components/structures/auth/header/AuthHeaderProvider.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>r,T:()=>a});var n=s("./node_modules/lodash/lodash.js"),o=s("./node_modules/react/index.js"),i=s("./src/components/structures/auth/header/AuthHeaderContext.tsx");let r=function(e){return e[e.Add=0]="Add",e[e.Remove=1]="Remove",e}({});function a({children:e}){const[t,s]=(0,o.useReducer)((e,t)=>{switch(t.type){case r.Add:return[t.value,...e];case r.Remove:return e.length&&(0,n.isEqual)(e[0],t.value)?e.slice(1):e}},[]);return o.createElement(i.h.Provider,{value:{state:t,dispatch:s}},e)}},"./src/components/views/audio_messages/RecordingPlayback.tsx":(e,t,s)=>{"use strict";s.d(t,{_:()=>k,A:()=>I});var n=s("./node_modules/react/index.js"),o=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),i=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),r=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),a=s("./node_modules/classnames/index.js"),l=s.n(a),c=s("./src/languageHandler.tsx"),d=s("./src/audio/Playback.ts"),m=s("./src/components/views/elements/AccessibleButton.tsx");const u=["playback","playbackPhase"];class h extends n.PureComponent{constructor(...e){super(...e),(0,r.A)(this,"onClick",()=>{this.toggleState()})}async toggleState(){await this.props.playback.toggle()}render(){const e=this.props,{playback:t,playbackPhase:s}=e,r=(0,i.A)(e,u),a=t.isPlaying,h=s===d.d.Decoding,p=l()("mx_PlayPauseButton",{mx_PlayPauseButton_play:!a,mx_PlayPauseButton_pause:a,mx_PlayPauseButton_disabled:h});return n.createElement(m.A,(0,o.A)({className:p,title:a?(0,c._t)("action|pause"):(0,c._t)("action|play"),onClick:this.onClick,disabled:h},r))}}var p=s("./packages/shared-components/src/audio/Clock/index.tsx"),g=s("./src/stores/AsyncStore.ts");class v extends n.PureComponent{constructor(e){super(e),(0,r.A)(this,"onPlaybackUpdate",e=>{e===d.d.Decoding&&(e=d.d.Stopped),this.setState({playbackPhase:e})}),(0,r.A)(this,"onTimeUpdate",e=>{this.setState({seconds:e[0],durationSeconds:e[1]})}),this.state={seconds:this.props.playback.clockInfo.timeSeconds,durationSeconds:this.props.playback.clockInfo.durationSeconds,playbackPhase:d.d.Stopped}}componentDidMount(){this.props.playback.on(g.H,this.onPlaybackUpdate),this.props.playback.clockInfo.liveData.onUpdate(this.onTimeUpdate)}render(){let e=this.state.seconds;var t;this.state.playbackPhase===d.d.Stopped&&(e=Number.isFinite(this.props.defaultDisplaySeconds)?null!==(t=this.props.defaultDisplaySeconds)&&void 0!==t?t:this.props.playback.durationSeconds:this.state.durationSeconds);return n.createElement(p.z,{seconds:e,role:"timer"})}}var _=s("./node_modules/matrix-js-sdk/src/logger.ts"),f=s("./src/KeyBindingsManager.ts"),y=s("./src/accessibility/KeyboardShortcuts.ts");class b extends n.PureComponent{constructor(e){super(e),(0,r.A)(this,"seekRef",(0,n.createRef)()),(0,r.A)(this,"playPauseRef",(0,n.createRef)()),(0,r.A)(this,"onKeyDown",e=>{var t,s,n;let o=!0;switch((0,f.zM)().getAccessibilityAction(e)){case y.bY.Space:null===(t=this.playPauseRef.current)||void 0===t||t.toggleState();break;case y.bY.ArrowLeft:null===(s=this.seekRef.current)||void 0===s||s.left();break;case y.bY.ArrowRight:null===(n=this.seekRef.current)||void 0===n||n.right();break;default:o=!1}o&&e.stopPropagation()}),(0,r.A)(this,"onPlaybackUpdate",e=>{this.setState({playbackPhase:e})}),this.state={playbackPhase:this.props.playback.currentState}}componentDidMount(){this.props.playback.on(g.H,this.onPlaybackUpdate),this.props.playback.prepare().catch(e=>{_.vF.error("Error processing audio file:",e),this.setState({error:!0})})}render(){return n.createElement(n.Fragment,null,this.renderComponent(),this.state.error&&n.createElement("div",{className:"text-warning"},(0,c._t)("timeline|m.audio|error_downloading_audio")))}}var E=s("./src/utils/MarkedExecution.ts"),w=s("./packages/shared-components/src/utils/numbers.ts");class x extends n.PureComponent{constructor(e){super(e),(0,r.A)(this,"animationFrameFn",new E.L(()=>this.doUpdate(),()=>requestAnimationFrame(()=>this.animationFrameFn.trigger()))),(0,r.A)(this,"onChange",e=>{this.props.playback.skipTo(Number(e.target.value)*this.props.playback.durationSeconds)}),(0,r.A)(this,"onMouseDown",e=>{e.stopPropagation()}),this.state={percentage:(0,w.s5)(this.props.playback.timeSeconds,0,this.props.playback.durationSeconds)}}componentDidMount(){this.props.playback.liveData.onUpdate(()=>this.animationFrameFn.mark())}doUpdate(){this.setState({percentage:(0,w.s5)(this.props.playback.timeSeconds,0,this.props.playback.durationSeconds)})}left(){this.props.playback.skipTo(this.props.playback.timeSeconds-5)}right(){this.props.playback.skipTo(this.props.playback.timeSeconds+5)}render(){return n.createElement("input",{type:"range",className:"mx_SeekBar",tabIndex:this.props.tabIndex,onChange:this.onChange,onMouseDown:this.onMouseDown,min:0,max:1,value:this.state.percentage,step:.001,style:{"--fillTo":this.state.percentage},disabled:this.props.disabled,"aria-label":(0,c._t)("a11y|seek_bar_label")})}}(0,r.A)(x,"defaultProps",{tabIndex:0,disabled:!1});var A=s("./src/utils/arrays.ts"),S=s("./src/components/views/audio_messages/Waveform.tsx"),C=s("./src/audio/consts.ts");class R extends n.PureComponent{constructor(e){super(e),(0,r.A)(this,"onWaveformUpdate",e=>{this.setState({heights:this.toHeights(e)})}),(0,r.A)(this,"onTimeUpdate",e=>{const t=Number((0,w.s5)(e[0],0,e[1]).toFixed(3));this.setState({progress:t})}),this.state={heights:this.toHeights(this.props.playback.waveform),progress:0}}componentDidMount(){this.props.playback.waveformData.onUpdate(this.onWaveformUpdate),this.props.playback.clockInfo.liveData.onUpdate(this.onTimeUpdate)}toHeights(e){const t=(0,A.DG)(0,C.i$);return(0,A.tT)(e,C.i$,t)}render(){return n.createElement(S.A,{relHeights:this.state.heights,progress:this.state.progress})}}let k=function(e){return e[e.Composer=0]="Composer",e[e.Timeline=1]="Timeline",e}({});class I extends b{renderComposerLook(){return n.createElement(n.Fragment,null,n.createElement(v,{playback:this.props.playback}),n.createElement(R,{playback:this.props.playback}))}renderTimelineLook(){return n.createElement(n.Fragment,null,n.createElement("div",{className:"mx_RecordingPlayback_timelineLayoutMiddle"},n.createElement(R,{playback:this.props.playback}),n.createElement(x,{playback:this.props.playback,tabIndex:0,disabled:this.state.playbackPhase===d.d.Decoding,ref:this.seekRef})),n.createElement(v,{playback:this.props.playback}))}renderComponent(){let e;switch(this.props.layout){case k.Composer:e=this.renderComposerLook();break;case k.Timeline:default:e=this.renderTimelineLook()}return n.createElement("div",{className:"mx_MediaBody mx_VoiceMessagePrimaryContainer",onKeyDown:this.onKeyDown},n.createElement(h,{playback:this.props.playback,playbackPhase:this.state.playbackPhase,ref:this.playPauseRef}),e)}}},"./src/components/views/audio_messages/Waveform.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>a});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/classnames/index.js"),r=s.n(i);class a extends o.PureComponent{render(){return o.createElement("div",{className:"mx_Waveform"},this.props.relHeights.map((e,t)=>{const s=this.props.progress,n=t/this.props.relHeights.length<=s&&s>0,i=r()({mx_Waveform_bar:!0,mx_Waveform_bar_100pct:n});return o.createElement("span",{key:t,style:{"--barHeight":e},className:i})}))}}(0,n.A)(a,"defaultProps",{progress:1})},"./src/components/views/auth/InteractiveAuthEntryComponents.tsx":(e,t,s)=>{"use strict";s.d(t,{WM:()=>M,av:()=>T,Ay:()=>D});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./node_modules/matrix-js-sdk/src/interactive-auth.ts"),a=s("./node_modules/matrix-js-sdk/src/logger.ts"),l=s("./node_modules/react/index.js"),c=s("./node_modules/@vector-im/compound-web/dist/components/Button/Button.js"),d=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/pop-out.js"),m=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/user-profile-solid.js"),u=s("./res/img/element-icons/email-prompt.svg"),h=s("./src/languageHandler.tsx"),p=s("./src/components/structures/auth/header/AuthHeaderContext.tsx"),g=s("./src/components/structures/auth/header/AuthHeaderProvider.tsx");function v(e){var t;const s=(0,l.useContext)(p.h),n=null!==(t=null==s?void 0:s.dispatch)&&void 0!==t?t:null;return(0,l.useEffect)(()=>{if(n)return n({type:g.A.Add,value:e}),()=>n({type:g.A.Remove,value:e})},[e,n]),null}var _=s("./src/components/views/elements/AccessibleButton.tsx"),f=s("./src/components/views/elements/Field.tsx"),y=s("./src/components/views/elements/Spinner.tsx");const b="mx_recaptcha";class E extends l.Component{constructor(e){super(e),(0,n.A)(this,"captchaWidgetId",void 0),(0,n.A)(this,"recaptchaContainer",(0,l.createRef)()),this.state={errorText:void 0}}componentDidMount(){if(this.isRecaptchaReady())this.onCaptchaLoaded();else{var e;a.vF.log("Loading recaptcha script..."),window.mxOnRecaptchaLoaded=()=>{this.onCaptchaLoaded()};const t=document.createElement("script");t.setAttribute("src","https://www.recaptcha.net/recaptcha/api.js?onload=mxOnRecaptchaLoaded&render=explicit"),null===(e=this.recaptchaContainer.current)||void 0===e||e.appendChild(t)}}componentWillUnmount(){this.resetRecaptcha();const e=document.querySelectorAll("iframe");for(const n of e)if(n.src.includes("https://www.recaptcha.net/recaptcha/api2/bframe")){var t;let e=n;do{var s;e=e.parentElement}while(null!==(s=e)&&void 0!==s&&s.parentElement&&e.parentElement!=document.body);null===(t=e)||void 0===t||t.remove()}}isRecaptchaReady(){return"undefined"!=typeof window&&void 0!==s.g.grecaptcha&&"function"==typeof s.g.grecaptcha.render}renderRecaptcha(e){var t;if(!this.isRecaptchaReady())throw a.vF.error("grecaptcha not loaded!"),new Error("Recaptcha did not load successfully");const n=this.props.sitePublicKey;if(!n)throw a.vF.error("No public key for recaptcha!"),new Error("This server has not supplied enough information for Recaptcha authentication");a.vF.info(`Rendering to ${e}`),this.captchaWidgetId=null===(t=s.g.grecaptcha)||void 0===t?void 0:t.render(e,{sitekey:n,callback:this.props.onCaptchaResponse})}resetRecaptcha(){var e;this.captchaWidgetId&&(null===(e=s.g)||void 0===e||null===(e=e.grecaptcha)||void 0===e||e.reset(this.captchaWidgetId))}onCaptchaLoaded(){a.vF.log("Loaded recaptcha script.");try{this.renderRecaptcha(b),this.setState({errorText:void 0})}catch(e){this.setState({errorText:e instanceof Error?e.message:String(e)})}}render(){let e;return this.state.errorText&&(e=l.createElement("div",{className:"error"},this.state.errorText)),l.createElement("div",{ref:this.recaptchaContainer},l.createElement("p",null,(0,h._t)("auth|captcha_description")),l.createElement("div",{id:b}),e)}}(0,n.A)(E,"defaultProps",{onCaptchaResponse:()=>{}});var w=s("./src/Terms.ts"),x=s("./src/components/views/settings/encryption/EncryptionCardButtons.tsx"),A=s("./src/components/views/settings/encryption/EncryptionCard.tsx");class S extends l.Component{constructor(e){super(e),(0,n.A)(this,"onSubmit",e=>{e.preventDefault(),this.props.busy||this.props.submitAuthDict({type:r.hT.Password,identifier:{type:"m.id.user",user:this.props.matrixClient.credentials.userId},password:this.state.password})}),(0,n.A)(this,"onPasswordFieldChange",e=>{this.setState({password:e.target.value})}),this.state={password:""}}componentDidMount(){this.props.onPhaseChange(0)}render(){const e=i()({error:this.props.errorText});let t,s;return t=this.props.busy?l.createElement(y.A,null):l.createElement("input",{type:"submit",className:"mx_Dialog_primary",disabled:!this.state.password,value:(0,h._t)("action|continue")}),this.props.errorText&&(s=l.createElement("div",{className:"error",role:"alert"},this.props.errorText)),l.createElement("div",null,l.createElement("p",null,(0,h._t)("auth|uia|password_prompt")),l.createElement("form",{onSubmit:this.onSubmit,className:"mx_InteractiveAuthEntryComponents_passwordSection"},l.createElement(f.A,{className:e,type:"password",name:"passwordField",label:(0,h._t)("common|password"),autoFocus:!0,value:this.state.password,onChange:this.onPasswordFieldChange}),s,l.createElement("div",{className:"mx_button_row"},t)))}}(0,n.A)(S,"LOGIN_TYPE",r.hT.Password);class C extends l.Component{constructor(...e){super(...e),(0,n.A)(this,"onCaptchaResponse",e=>{this.props.submitAuthDict({type:r.hT.Recaptcha,response:e})})}componentDidMount(){this.props.onPhaseChange(0)}render(){if(this.props.busy)return l.createElement(y.A,null);let e,t,s=this.props.errorText;return this.props.stageParams&&this.props.stageParams.public_key?e=this.props.stageParams.public_key:s=(0,h._t)("auth|uia|recaptcha_missing_params"),s&&(t=l.createElement("div",{className:"error",role:"alert"},s)),l.createElement("div",null,e&&l.createElement(E,{sitePublicKey:e,onCaptchaResponse:this.onCaptchaResponse}),t)}}(0,n.A)(C,"LOGIN_TYPE",r.hT.Recaptcha);class R extends l.Component{constructor(e){var t;super(e),(0,n.A)(this,"trySubmit",()=>{let e=!0;for(const t of this.state.policies){const s=this.state.toggledPolicies[t.id];e=e&&s}e?this.props.submitAuthDict({type:r.hT.Terms}):this.setState({errorText:(0,h._t)("auth|uia|terms_invalid")})});const s=(null===(t=this.props.stageParams)||void 0===t?void 0:t.policies)||{},o={},i=[];for(const e of Object.keys(s)){const t=s[e],n=(0,w.S$)(t);if(!n)throw new Error("Failed to find a policy to show the user");o[e]=!1,i.push({id:e,name:n.name,url:n.url})}this.state={toggledPolicies:o,policies:i}}componentDidMount(){this.props.onPhaseChange(0)}togglePolicy(e){const t={};for(const s of this.state.policies){let n=this.state.toggledPolicies[s.id];s.id===e&&(n=!n),t[s.id]=n}this.setState({toggledPolicies:t})}render(){if(this.props.busy)return l.createElement(y.A,null);const e=[];let t,s=!0;for(const t of this.state.policies){const n=this.state.toggledPolicies[t.id];s=s&&n,e.push(l.createElement("label",{key:"policy_checkbox_"+t.id,className:"mx_InteractiveAuthEntryComponents_termsPolicy"},l.createElement("input",{type:"checkbox",onChange:()=>this.togglePolicy(t.id),checked:n}),l.createElement("a",{href:t.url,target:"_blank",rel:"noreferrer noopener"},t.name)))}return(this.props.errorText||this.state.errorText)&&(t=l.createElement("div",{className:"error",role:"alert"},this.props.errorText||this.state.errorText)),l.createElement("div",{className:"mx_InteractiveAuthEntryComponents"},l.createElement("p",null,(0,h._t)("auth|uia|terms")),e,t,l.createElement(_.A,{kind:"primary",className:"mx_InteractiveAuthEntryComponents_termsSubmit",onClick:this.trySubmit,disabled:!s},(0,h._t)("action|accept")))}}(0,n.A)(R,"LOGIN_TYPE",r.hT.Terms);class k extends l.Component{constructor(e){super(e),this.state={requested:!1,requesting:!1}}componentDidMount(){this.props.onPhaseChange(0)}render(){var e,t;let s;return this.props.errorText&&"M_UNAUTHORIZED"!==this.props.errorCode&&(s=l.createElement("div",{className:"error",role:"alert"},this.props.errorText)),void 0===(null===(e=this.props.inputs)||void 0===e?void 0:e.emailAddress)||null!==(t=this.props.stageState)&&void 0!==t&&t.emailSid?s||l.createElement(y.A,null):l.createElement("div",{className:"mx_InteractiveAuthEntryComponents_emailWrapper"},l.createElement(v,{title:(0,h._t)("auth|uia|email_auth_header"),icon:l.createElement("img",{src:u.A,role:"presentation",alt:"",width:16}),hideServerPicker:!0}),l.createElement("p",null,(0,h._t)("auth|uia|email",{emailAddress:l.createElement("strong",null,this.props.inputs.emailAddress)})),this.state.requesting?l.createElement("p",{className:"secondary"},(0,h._t)("auth|uia|email_resend_prompt",{},{a:e=>l.createElement(l.Fragment,null,l.createElement(_.A,{kind:"link_inline",onClick:null,disabled:!0},e," ",l.createElement(y.A,{w:14,h:14})))})):l.createElement("p",{className:"secondary"},(0,h._t)("auth|uia|email_resend_prompt",{},{a:e=>l.createElement(_.A,{kind:"link_inline",title:this.state.requested?(0,h._t)("auth|uia|email_resent"):(0,h._t)("action|resend"),onTooltipOpenChange:this.state.requested?e=>{e||this.setState({requested:!1})}:void 0,onClick:async()=>{this.setState({requesting:!0});try{var e,t;await(null===(e=(t=this.props).requestEmailToken)||void 0===e?void 0:e.call(t))}catch(e){a.vF.warn("Email token request failed: ",e)}finally{this.setState({requested:!0,requesting:!1})}}},e)})),s)}}(0,n.A)(k,"LOGIN_TYPE",r.hT.Email);class I extends l.Component{constructor(e){super(e),(0,n.A)(this,"submitUrl",void 0),(0,n.A)(this,"sid",void 0),(0,n.A)(this,"msisdn",void 0),(0,n.A)(this,"onTokenChange",e=>{this.setState({token:e.target.value})}),(0,n.A)(this,"onFormSubmit",async e=>{if(e.preventDefault(),""!=this.state.token){this.setState({errorText:null});try{let e;if(!this.submitUrl||!this.sid)throw new Error("The registration with MSISDN flow is misconfigured");if(e=await this.props.matrixClient.submitMsisdnTokenOtherUrl(this.submitUrl,this.sid,this.props.clientSecret,this.state.token),e.success){const e={sid:this.sid,client_secret:this.props.clientSecret};this.props.submitAuthDict({type:r.hT.Msisdn,threepid_creds:e})}else this.setState({errorText:(0,h._t)("auth|uia|msisdn_token_incorrect")})}catch(e){this.props.fail(e instanceof Error?e:new Error("Failed to submit msisdn token")),a.vF.log("Failed to submit msisdn token")}}}),this.state={token:"",requestingToken:!1,errorText:""}}componentDidMount(){this.props.onPhaseChange(0),this.setState({requestingToken:!0}),this.requestMsisdnToken().catch(e=>{this.props.fail(e)}).finally(()=>{this.setState({requestingToken:!1})})}requestMsisdnToken(){var e,t,s,n;return this.props.matrixClient.requestRegisterMsisdnToken(null!==(e=null===(t=this.props.inputs)||void 0===t?void 0:t.phoneCountry)&&void 0!==e?e:"",null!==(s=null===(n=this.props.inputs)||void 0===n?void 0:n.phoneNumber)&&void 0!==s?s:"",this.props.clientSecret,1).then(e=>{this.submitUrl=e.submit_url,this.sid=e.sid,this.msisdn=e.msisdn})}render(){if(this.state.requestingToken)return l.createElement(y.A,null);{const e=Boolean(this.state.token),t=i()({mx_InteractiveAuthEntryComponents_msisdnSubmit:!0,mx_GeneralButton:!0});let s;return this.state.errorText&&(s=l.createElement("div",{className:"error",role:"alert"},this.state.errorText)),l.createElement("div",null,l.createElement("p",null,(0,h._t)("auth|uia|msisdn",{msisdn:l.createElement("i",null,this.msisdn)})),l.createElement("p",null,(0,h._t)("auth|uia|msisdn_token_prompt")),l.createElement("div",{className:"mx_InteractiveAuthEntryComponents_msisdnWrapper"},l.createElement("form",{onSubmit:this.onFormSubmit},l.createElement("input",{type:"text",className:"mx_InteractiveAuthEntryComponents_msisdnEntry",value:this.state.token,onChange:this.onTokenChange,"aria-label":(0,h._t)("auth|uia|code")}),l.createElement("br",null),l.createElement("input",{type:"submit",value:(0,h._t)("action|submit"),className:t,disabled:!e})),s))}}}(0,n.A)(I,"LOGIN_TYPE",r.hT.Msisdn);class P extends l.Component{constructor(e){super(e),(0,n.A)(this,"onSubmit",e=>{e.preventDefault(),this.props.busy||this.props.submitAuthDict({type:this.props.loginType,token:this.state.registrationToken})}),(0,n.A)(this,"onRegistrationTokenFieldChange",e=>{this.setState({registrationToken:e.target.value})}),this.state={registrationToken:""}}componentDidMount(){this.props.onPhaseChange(0)}render(){const e=i()({error:this.props.errorText});let t,s;return t=this.props.busy?l.createElement(y.A,null):l.createElement(_.A,{onClick:this.onSubmit,kind:"primary",disabled:!this.state.registrationToken},(0,h._t)("action|continue")),this.props.errorText&&(s=l.createElement("div",{className:"error",role:"alert"},this.props.errorText)),l.createElement("div",null,l.createElement("p",null,(0,h._t)("auth|uia|registration_token_prompt")),l.createElement("form",{onSubmit:this.onSubmit,className:"mx_InteractiveAuthEntryComponents_registrationTokenSection"},l.createElement(f.A,{className:e,type:"text",name:"registrationTokenField",label:(0,h._t)("auth|uia|registration_token_label"),autoFocus:!0,value:this.state.registrationToken,onChange:this.onRegistrationTokenFieldChange}),s,l.createElement("div",{className:"mx_button_row"},t)))}}(0,n.A)(P,"LOGIN_TYPE",r.hT.RegistrationToken);class T extends l.Component{constructor(e){if(super(e),(0,n.A)(this,"ssoUrl",void 0),(0,n.A)(this,"popupWindow",void 0),(0,n.A)(this,"attemptFailed",()=>{this.setState({attemptFailed:!0})}),(0,n.A)(this,"onReceiveMessage",e=>{"authDone"===e.data&&e.source===this.popupWindow&&this.popupWindow&&(this.popupWindow.close(),this.popupWindow=null)}),(0,n.A)(this,"onStartAuthClick",()=>{this.popupWindow=window.open(this.ssoUrl,"_blank"),this.setState({phase:T.PHASE_POSTAUTH}),this.props.onPhaseChange(T.PHASE_POSTAUTH)}),(0,n.A)(this,"onConfirmClick",()=>{this.props.submitAuthDict({})}),!this.props.authSessionId)throw new Error("This UIA flow requires an authSessionId");this.ssoUrl=e.matrixClient.getFallbackAuthUrl(this.props.loginType,this.props.authSessionId),this.popupWindow=null,this.state={phase:T.PHASE_PREAUTH,attemptFailed:!1}}componentDidMount(){window.addEventListener("message",this.onReceiveMessage),this.props.onPhaseChange(T.PHASE_PREAUTH)}componentWillUnmount(){window.removeEventListener("message",this.onReceiveMessage),this.popupWindow&&(this.popupWindow.close(),this.popupWindow=null)}render(){var e;let t;const s=l.createElement(_.A,{onClick:null!==(e=this.props.onCancel)&&void 0!==e?e:null,kind:this.props.continueKind?`${this.props.continueKind}_outline`:"primary_outline"},(0,h._t)("action|cancel"));let n;return t=this.state.phase===T.PHASE_PREAUTH?l.createElement(_.A,{onClick:this.onStartAuthClick,kind:this.props.continueKind||"primary"},this.props.continueText||(0,h._t)("auth|sso")):l.createElement(_.A,{onClick:this.onConfirmClick,kind:this.props.continueKind||"primary"},this.props.continueText||(0,h._t)("action|confirm")),this.props.errorText?n=l.createElement("div",{className:"error",role:"alert"},this.props.errorText):this.state.attemptFailed&&(n=l.createElement("div",{className:"error",role:"alert"},(0,h._t)("auth|uia|sso_failed"))),l.createElement(l.Fragment,null,n,l.createElement("div",{className:"mx_InteractiveAuthEntryComponents_sso_buttons"},this.props.busy?l.createElement(y.A,{w:24,h:24}):l.createElement(l.Fragment,null,s,t)))}}(0,n.A)(T,"LOGIN_TYPE",r.hT.Sso),(0,n.A)(T,"UNSTABLE_LOGIN_TYPE",r.hT.SsoUnstable),(0,n.A)(T,"PHASE_PREAUTH",1),(0,n.A)(T,"PHASE_POSTAUTH",2);class O extends l.Component{constructor(e){super(e),(0,n.A)(this,"popupWindow",void 0),(0,n.A)(this,"fallbackButton",(0,l.createRef)()),(0,n.A)(this,"focus",()=>{var e;null===(e=this.fallbackButton.current)||void 0===e||e.focus()}),(0,n.A)(this,"onShowFallbackClick",e=>{if(!this.props.authSessionId)return;e.preventDefault(),e.stopPropagation();const t=this.props.matrixClient.getFallbackAuthUrl(this.props.loginType,this.props.authSessionId);this.popupWindow=window.open(t,"_blank")}),(0,n.A)(this,"onReceiveMessage",e=>{"authDone"===e.data&&e.source===this.popupWindow&&this.props.submitAuthDict({})}),this.popupWindow=null}componentDidMount(){window.addEventListener("message",this.onReceiveMessage),this.props.onPhaseChange(0)}componentWillUnmount(){var e;window.removeEventListener("message",this.onReceiveMessage),null===(e=this.popupWindow)||void 0===e||e.close()}render(){let e;return this.props.errorText&&(e=l.createElement("div",{className:"error",role:"alert"},this.props.errorText)),l.createElement("div",null,l.createElement(_.A,{kind:"link",ref:this.fallbackButton,onClick:this.onShowFallbackClick},(0,h._t)("auth|uia|fallback_button")),e)}}let M=function(e){return e.MasCrossSigningReset="org.matrix.cross_signing_reset",e}({});class N extends O{constructor(...e){super(...e),(0,n.A)(this,"onGoToAccountClick",()=>{var e;null!==(e=this.props.stageParams)&&void 0!==e&&e.url&&(this.popupWindow=window.open(this.props.stageParams.url,"_blank"))}),(0,n.A)(this,"onRetryClick",()=>{this.props.submitAuthDict({})})}render(){return l.createElement(A.g,{Icon:m.A,title:(0,h._t)("auth|uia|mas_cross_signing_reset_title"),description:(0,h._t)("auth|uia|mas_cross_signing_reset_description",{serverName:this.props.matrixClient.getDomain()})},l.createElement(x.D,null,l.createElement(c.$,{Icon:d.A,onClick:this.onGoToAccountClick,autoFocus:!0,kind:"primary",className:"mx_Dialog_nonDialogButton"},(0,h._t)("auth|uia|mas_cross_signing_reset_cta")),l.createElement(c.$,{onClick:this.onRetryClick,kind:"tertiary",className:"mx_Dialog_nonDialogButton"},(0,h._t)("action|retry"))))}}function D(e){switch(e){case M.MasCrossSigningReset:return N;case r.hT.Password:return S;case r.hT.Recaptcha:return C;case r.hT.Email:return k;case r.hT.Msisdn:return I;case r.hT.Terms:return R;case r.hT.RegistrationToken:case r.hT.UnstableRegistrationToken:return P;case r.hT.Sso:case r.hT.SsoUnstable:return T;default:return O}}(0,n.A)(N,"LOGIN_TYPE",M.MasCrossSigningReset)},"./src/components/views/avatars/BaseAvatar.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>_});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/classnames/index.js"),a=s.n(r),l=s("./node_modules/matrix-js-sdk/src/matrix.ts"),c=s("./node_modules/@vector-im/compound-web/dist/components/Avatar/Avatar.js"),d=s("./src/settings/SettingsStore.ts"),m=s("./src/contexts/MatrixClientContext.tsx"),u=s("./src/hooks/useEventEmitter.ts"),h=s("./src/languageHandler.tsx"),p=s("./src/contexts/ScopedRoomContext.tsx");const g=["name","idName","title","url","urls","size","onClick","className","type","altText","ref"],v=(e,t,s=!1)=>{let n=[];return s||(n=t||[],e&&(n=[e,...n])),Array.from(new Set(n))},_=e=>{const{name:t,idName:s,title:r,url:_,urls:f,size:y="40px",onClick:b,className:E,type:w="round",altText:x=(0,h._t)("common|avatar"),ref:A}=e,S=(0,o.A)(e,g),[C,R]=(({url:e,urls:t})=>{var s;const n=(0,p.ME)("lowBandwidth"),o=null!==(s=null==n?void 0:n.lowBandwidth)&&void 0!==s?s:d.A.getValue("lowBandwidth"),[r,a]=(0,i.useState)(v(e,t,o)),[c,h]=(0,i.useState)(0),g=(0,i.useCallback)(()=>{h(e=>e+1)},[]);(0,i.useEffect)(()=>{a(v(e,t,o)),h(0)},[e,JSON.stringify(t)]);const _=(0,i.useContext)(m.Ay),f=(0,i.useCallback)((e,t)=>{"ERROR"!==e&&t!==e&&h(0)},[]);return(0,u.YK)(_,l.ClientEvent.Sync,f),[r[c],g]})({url:_,urls:f}),k={};return b?(k["aria-live"]="off",k.role="button"):C?k.role=void 0:(k.role="presentation",k["aria-label"]=void 0),i.createElement(c.e,(0,n.A)({ref:A,src:C,id:null!=s?s:"",name:null!=t?t:"",type:w,size:y,className:a()("mx_BaseAvatar",E),"aria-label":x,onError:R,title:r,onClick:b},k,S))}},"./src/components/views/avatars/DecoratedRoomAvatar.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>A});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),r=s("./node_modules/react/index.js"),a=s("./node_modules/classnames/index.js"),l=s.n(a),c=s("./node_modules/matrix-js-sdk/src/matrix.ts"),d=s("./node_modules/matrix-js-sdk/src/NamespacedValue.ts"),m=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/Tooltip.js"),u=s("./src/components/views/avatars/RoomAvatar.tsx"),h=s("./src/components/views/rooms/NotificationBadge.tsx"),p=s("./src/stores/notifications/RoomNotificationStateStore.ts"),g=s("./src/utils/presence.ts"),v=s("./src/MatrixClientPeg.ts"),_=s("./src/languageHandler.tsx"),f=s("./src/utils/DMRoomMap.ts"),y=s("./src/utils/room/getJoinedNonFunctionalMembers.ts");const b=["room","size","displayBadge","hideIfDot","oobData","viewAvatarOnClick","tooltipProps"],E=new d.qr("busy","org.matrix.msc3026.busy");var w=function(e){return e.None="NONE",e.Globe="GLOBE",e.PresenceOnline="ONLINE",e.PresenceAway="AWAY",e.PresenceOffline="OFFLINE",e.PresenceBusy="BUSY",e}(w||{});function x(e){switch(e){case w.Globe:return(0,_._t)("room|header|room_is_public");case w.PresenceOnline:return(0,_._t)("presence|online");case w.PresenceAway:return(0,_._t)("presence|away");case w.PresenceOffline:return(0,_._t)("presence|offline");case w.PresenceBusy:return(0,_._t)("presence|busy")}}class A extends r.PureComponent{constructor(e){super(e),(0,i.A)(this,"_dmUser",null),(0,i.A)(this,"isUnmounted",!1),(0,i.A)(this,"isWatchingTimeline",!1),(0,i.A)(this,"onRoomTimeline",(e,t)=>{if(!this.isUnmounted&&this.props.room.roomId===(null==t?void 0:t.roomId)&&(e.getType()===c.EventType.RoomJoinRules||e.getType()===c.EventType.RoomMember)){const e=this.calculateIcon();e!==this.state.icon&&this.setState({icon:e})}}),(0,i.A)(this,"onPresenceUpdate",()=>{if(this.isUnmounted)return;const e=this.getPresenceIcon();e!==this.state.icon&&this.setState({icon:e})}),this.state={notificationState:p.n.instance.getRoomState(this.props.room),icon:this.calculateIcon()}}componentWillUnmount(){this.isUnmounted=!0,this.isWatchingTimeline&&this.props.room.off(c.RoomEvent.Timeline,this.onRoomTimeline),this.dmUser=null}get isPublicRoom(){return this.props.room.getJoinRule()===c.JoinRule.Public}get dmUser(){return this._dmUser}set dmUser(e){const t=this._dmUser;this._dmUser=e,t&&t!==this._dmUser&&(t.off(c.UserEvent.CurrentlyActive,this.onPresenceUpdate),t.off(c.UserEvent.Presence,this.onPresenceUpdate)),this._dmUser&&t!==this._dmUser&&(this._dmUser.on(c.UserEvent.CurrentlyActive,this.onPresenceUpdate),this._dmUser.on(c.UserEvent.Presence,this.onPresenceUpdate))}getPresenceIcon(){if(!this.dmUser)return w.None;let e=w.None;const t=this.dmUser.currentlyActive||"online"===this.dmUser.presence;return E.matches(this.dmUser.presence)?e=w.PresenceBusy:t?e=w.PresenceOnline:"offline"===this.dmUser.presence?e=w.PresenceOffline:"unavailable"===this.dmUser.presence&&(e=w.PresenceAway),e}calculateIcon(){let e=w.None;const t=f.A.shared().getUserIdForRoomId(this.props.room.roomId);return t&&2===(0,y.T)(this.props.room).length?(0,g.T)(this.props.room.client)&&(this.dmUser=v.J.safeGet().getUser(t),e=this.getPresenceIcon()):(e=this.isPublicRoom?w.Globe:w.None,this.isWatchingTimeline||(this.props.room.on(c.RoomEvent.Timeline,this.onRoomTimeline),this.isWatchingTimeline=!0)),e}render(){const e=this.props,{room:t,size:s,displayBadge:i,hideIfDot:a,oobData:c,viewAvatarOnClick:d,tooltipProps:p}=e,g=(0,o.A)(e,b);let v,_;var f,y;(this.props.displayBadge&&this.state.notificationState&&(v=r.createElement(h.A,{notification:this.state.notificationState,hideIfDot:this.props.hideIfDot,roomId:this.props.room.roomId})),this.state.icon!==w.None)&&(_=r.createElement("div",{tabIndex:null!==(f=null===(y=this.props.tooltipProps)||void 0===y?void 0:y.tabIndex)&&void 0!==f?f:0,className:`mx_DecoratedRoomAvatar_icon mx_DecoratedRoomAvatar_icon_${this.state.icon.toLowerCase()}`}));const E=l()("mx_DecoratedRoomAvatar",{mx_DecoratedRoomAvatar_cutout:_});return r.createElement("div",(0,n.A)({className:E},g),r.createElement(u.A,{room:this.props.room,size:this.props.size,oobData:this.props.oobData,viewAvatarOnClick:this.props.viewAvatarOnClick}),_&&r.createElement(m.m,{label:x(this.state.icon),placement:"bottom"},_),v)}}},"./src/components/views/avatars/MemberAvatar.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>v});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./src/dispatcher/dispatcher.ts"),a=s("./src/dispatcher/actions.ts"),l=s("./src/components/views/avatars/BaseAvatar.tsx"),c=s("./src/customisations/Media.ts"),d=s("./src/components/views/right_panel/context.ts"),m=s("./src/customisations/UserIdentifier.ts"),u=s("./src/hooks/room/useRoomMemberProfile.ts"),h=s("./src/languageHandler.tsx"),p=s("./src/contexts/MatrixClientContext.tsx");const g=["size","resizeMethod","viewUserOnClick","forceHistorical","fallbackUserId","hideTitle","member","ref"];function v(e){var t,s;let{size:v,resizeMethod:_="crop",viewUserOnClick:f,forceHistorical:y,fallbackUserId:b,hideTitle:E,member:w,ref:x}=e,A=(0,o.A)(e,g);const S=(0,i.useContext)(p.Ay),C=(0,i.useContext)(d.E),R=(0,u.s)({userId:null==w?void 0:w.userId,member:w,forceHistorical:y}),k=null!==(t=null==R?void 0:R.name)&&void 0!==t?t:b;let I,P=A.title;if(null!=R&&R.name){var T,O,M,N;if(R.getMxcAvatarUrl())I=(0,c.mediaFromMxc)(null!==(T=R.getMxcAvatarUrl())&&void 0!==T?T:"",S).getThumbnailOfSourceHttp(parseInt(v,10),parseInt(v,10),_);if(!P)P=null!==(O=m.A.getDisplayUserIdentifier(null!==(M=null==R?void 0:R.userId)&&void 0!==M?M:"",{roomId:null!==(N=null==R?void 0:R.roomId)&&void 0!==N?N:""}))&&void 0!==O?O:b}return i.createElement(l.A,(0,n.A)({},A,{size:v,name:null!=k?k:"",title:E?void 0:P,idName:null!==(s=null==R?void 0:R.userId)&&void 0!==s?s:b,url:I,onClick:f?()=>{r.A.dispatch({action:a.r.ViewUser,member:w,push:C.isCard})}:A.onClick,altText:(0,h._t)("common|user_avatar"),ref:x}))}},"./src/components/views/avatars/RoomAvatar.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>y});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/matrix-js-sdk/src/matrix.ts"),a=s("./src/components/views/avatars/BaseAvatar.tsx"),l=s("./src/components/views/elements/ImageView.tsx"),c=s("./src/Modal.tsx"),d=s("./src/Avatar.ts"),m=s("./src/customisations/Media.ts"),u=s("./src/utils/arrays.ts"),h=s("./src/hooks/useSettings.ts"),p=s("./src/hooks/useRoomState.ts"),g=s("./src/components/views/avatars/WithPresenceIndicator.tsx"),v=s("./src/models/LocalRoom.ts");var _=s("./src/@types/media_preview.ts");const f=["room","viewAvatarOnClick","onClick","oobData","size"],y=e=>{var t,s,y;let{room:b,viewAvatarOnClick:E,onClick:w,oobData:x,size:A="36px"}=e,S=(0,o.A)(e,f);const C=null!==(t=null!==(s=null==b?void 0:b.name)&&void 0!==s?s:null==x?void 0:x.name)&&void 0!==t?t:"?",R=(0,p.U)(b,e=>e.getStateEvents(r.EventType.RoomAvatar,"")),k=function(e,t){const s=(0,g.rT)(e);return s?s.userId:e instanceof v.Np&&1===e.targets.length?e.targets[0].userId:e?e.roomId:null==t?void 0:t.roomId}(b,x),I=(0,h.ti)("mediaPreviewConfig",null==b?void 0:b.roomId).invite_avatars===_.M.On,P=(0,i.useCallback)(()=>{const e=d.ze(null!=b?b:null);if(!e)return;const t={src:e,name:null==b?void 0:b.name};c.Ay.createDialog(l.A,t,"mx_Dialog_lightbox",void 0,!0)},[b]),T=(0,i.useMemo)(()=>{const e=null==b?void 0:b.getMyMembership();if(!(I||e!==r.KnownMembership.Invite&&e))return[];const t=parseInt(A,10);let s=null;return null!=x&&x.avatarUrl&&(s=(0,m.mediaFromMxc)(null==x?void 0:x.avatarUrl).getThumbnailOfSourceHttp(t,t,"crop")),(0,u.Bo)([s,d.ze(null!=b?b:null,t,t,"crop",null==R?void 0:R.getContent().url)])},[I,b,A,R,x]);return i.createElement(a.A,(0,n.A)({},S,{size:A,type:(null!==(y=null==b?void 0:b.getType())&&void 0!==y?y:null==x?void 0:x.roomType)===r.RoomType.Space?"square":"round",name:C,idName:k,urls:T,onClick:E&&T[0]?P:w}))}},"./src/components/views/avatars/SearchResultAvatar.tsx":(e,t,s)=>{"use strict";s.d(t,{N:()=>a});var n=s("./node_modules/react/index.js"),o=s("./res/img/icon-email-pill-avatar.svg"),i=s("./src/customisations/Media.ts"),r=s("./src/components/views/avatars/BaseAvatar.tsx");function a({user:e,size:t}){if(e.isEmail)return n.createElement("img",{className:"mx_SearchResultAvatar mx_SearchResultAvatar_threepidAvatar",alt:"",src:o.A,width:t,height:t});{const s=e.getMxcAvatarUrl();return n.createElement(r.A,{className:"mx_SearchResultAvatar",url:s?(0,i.mediaFromMxc)(s).getSquareThumbnailHttp(parseInt(t,10)):null,name:e.name,idName:e.userId,size:t})}}},"./src/components/views/avatars/WithPresenceIndicator.tsx":(e,t,s)=>{"use strict";s.d(t,{Ay:()=>f,Cq:()=>u,rT:()=>g,xQ:()=>_});var n=s("./node_modules/react/index.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/Tooltip.js"),r=s("./src/utils/presence.ts"),a=s("./src/languageHandler.tsx"),l=s("./src/utils/DMRoomMap.ts"),c=s("./src/utils/room/getJoinedNonFunctionalMembers.ts"),d=s("./src/hooks/useEventEmitter.ts"),m=s("./src/components/views/rooms/PresenceLabel.tsx");let u=function(e){return e.Online="ONLINE",e.Away="AWAY",e.Offline="OFFLINE",e.Busy="BUSY",e}({});function h(e){switch(e){case u.Online:return(0,a._t)("presence|online");case u.Away:return(0,a._t)("presence|away");case u.Offline:return(0,a._t)("presence|offline");case u.Busy:return(0,a._t)("presence|busy")}}function p(e){const t=l.A.shared().getUserIdForRoomId(e.roomId);return t?e.getMember(t):null}const g=e=>{const[t,s]=(0,n.useState)(e?p(e):null),i=()=>{s(e?p(e):null)};return(0,d.ml)(null==e?void 0:e.currentState,o.RoomStateEvent.Members,i),(0,d.ml)(null==e?void 0:e.client,o.ClientEvent.AccountData,i),(0,n.useEffect)(i,[e]),t};function v(e){if(null==e||!e.user)return null;const t=e.user.presence,s=e.user.currentlyActive||"online"===t;return m.I.matches(e.user.presence)?u.Busy:s?u.Online:"offline"===t?u.Offline:"unavailable"===t?u.Away:null}const _=(e,t)=>{const[s,i]=(0,n.useState)(v(t)),a=()=>{i(v(t))};return(0,d.ml)(null==t?void 0:t.user,o.UserEvent.Presence,a),(0,d.ml)(null==t?void 0:t.user,o.UserEvent.CurrentlyActive,a),(0,n.useEffect)(a,[t]),2===(0,c.T)(e).length&&(0,r.T)(e.client)?s:null},f=({room:e,size:t,tooltipProps:s,children:o})=>{const r=g(e),a=_(e,r);let l;var c;a&&(l=n.createElement("div",{tabIndex:null!==(c=null==s?void 0:s.tabIndex)&&void 0!==c?c:0,className:`mx_WithPresenceIndicator_icon mx_WithPresenceIndicator_icon_${a.toLowerCase()}`,style:{width:t,height:t}}));return a?n.createElement("div",{className:"mx_WithPresenceIndicator"},o,n.createElement(i.m,{label:h(a),placement:"bottom"},l)):n.createElement(n.Fragment,null,o)}},"./src/components/views/beacon/BeaconStatus.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>E});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/classnames/index.js"),a=s.n(r),l=s("./src/components/views/beacon/StyledLiveBeaconIcon.tsx"),c=s("./src/languageHandler.tsx"),d=s("./node_modules/matrix-js-sdk/src/matrix.ts"),m=s("./src/DateUtils.ts"),u=s("./src/hooks/useEventEmitter.ts"),h=s("./src/hooks/useTimeout.ts"),p=s("./src/utils/beacon/index.ts");const g=6e4,v=e=>{const t=(0,u.dF)(e,d.BeaconEvent.Update,()=>e.beaconInfo),[s,n]=(0,i.useState)(()=>t?(0,p.Mc)(t):0);(0,i.useEffect)(()=>{t&&n((0,p.Mc)(t))},[t]);const o=(0,i.useCallback)(()=>{if(!t)return;const e=(0,p.Mc)(t);n(e)},[t]);var r;return(0,h.$$)(o,(r=s)>36e5?6e5:r>g?g:1e3),s},_=({beacon:e})=>{const t=v(e),s=(0,m.a3)(t),n=(0,c._t)("time|left",{timeRemaining:s});return i.createElement("span",{className:"mx_LiveTimeRemaining"},n)};var f=s("./src/components/views/beacon/displayStatus.ts");const y=["beacon","displayStatus","displayLiveTimeRemaining","label","className","children","withIcon"],b=({beacon:e})=>{const t=(0,m.fU)(new Date((0,p.w7)(e)));return i.createElement("span",{className:"mx_BeaconStatus_expiryTime"},(0,c._t)("location_sharing|live_until",{expiryTime:t}))},E=e=>{let{beacon:t,displayStatus:s,displayLiveTimeRemaining:r,label:d,className:m,children:u,withIcon:h}=e,p=(0,o.A)(e,y);const g=s===f.T.Loading||s===f.T.Stopped;return i.createElement("div",(0,n.A)({},p,{className:a()("mx_BeaconStatus",`mx_BeaconStatus_${s}`,m)}),h&&i.createElement(l.A,{className:"mx_BeaconStatus_icon",withError:s===f.T.Error,isIdle:g}),i.createElement("div",{className:"mx_BeaconStatus_description"},s===f.T.Loading&&i.createElement("span",{className:"mx_BeaconStatus_description_status"},(0,c._t)("location_sharing|loading_live_location")),s===f.T.Stopped&&i.createElement("span",{className:"mx_BeaconStatus_description_status"},(0,c._t)("location_sharing|live_location_ended")),s===f.T.Error&&i.createElement("span",{className:"mx_BeaconStatus_description_status"},(0,c._t)("location_sharing|live_location_error")),s===f.T.Active&&t&&i.createElement(i.Fragment,null,i.createElement(i.Fragment,null,i.createElement("span",{className:"mx_BeaconStatus_label"},d),r?i.createElement(_,{beacon:t}):i.createElement(b,{beacon:t})))),u)}},"./src/components/views/beacon/OwnBeaconStatus.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>h});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./src/languageHandler.tsx"),a=s("./src/utils/beacon/index.ts"),l=s("./src/utils/NativeEventUtils.ts"),c=s("./src/components/views/beacon/BeaconStatus.tsx"),d=s("./src/components/views/beacon/displayStatus.ts"),m=s("./src/components/views/elements/AccessibleButton.tsx");const u=["beacon","displayStatus"],h=e=>{let{beacon:t,displayStatus:s}=e,h=(0,o.A)(e,u);const{hasLocationPublishError:p,hasStopSharingError:g,stoppingInProgress:v,onStopSharing:_,onResetLocationPublishError:f}=(0,a.fA)(null!=t&&t.identifier?[null==t?void 0:t.identifier]:[]),y=p||g?d.T.Error:s;return i.createElement(c.A,(0,n.A)({beacon:t,displayStatus:y,label:(0,r._t)("location_sharing|live_location_enabled"),displayLiveTimeRemaining:!0},h),y===d.T.Active&&i.createElement(m.A,{kind:"link",onClick:(0,l.Z)(_),className:"mx_OwnBeaconStatus_button mx_OwnBeaconStatus_destructiveButton",disabled:v},(0,r._t)("action|stop")),p&&i.createElement(m.A,{kind:"link",onClick:(0,l.Z)(f),className:"mx_OwnBeaconStatus_button mx_OwnBeaconStatus_destructiveButton"},(0,r._t)("action|retry")),g&&i.createElement(m.A,{kind:"link",onClick:(0,l.Z)(_),className:"mx_OwnBeaconStatus_button mx_OwnBeaconStatus_destructiveButton"},(0,r._t)("action|retry")))}},"./src/components/views/beacon/StyledLiveBeaconIcon.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>d});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/classnames/index.js"),a=s.n(r),l=s("./res/img/location/live-location.svg");const c=["className","withError","isIdle"],d=e=>{let{className:t,withError:s,isIdle:r}=e,d=(0,o.A)(e,c);return i.createElement(l.I,(0,n.A)({},d,{className:a()("mx_StyledLiveBeaconIcon",t,{mx_StyledLiveBeaconIcon_error:s,mx_StyledLiveBeaconIcon_idle:r})}))}},"./src/components/views/beacon/displayStatus.ts":(e,t,s)=>{"use strict";s.d(t,{T:()=>n,n:()=>o});let n=function(e){return e.Loading="Loading",e.Error="Error",e.Stopped="Stopped",e.Active="Active",e}({});const o=(e,t,s,o)=>s?n.Error:o?n.Loading:e?t?n.Active:n.Loading:n.Stopped},"./src/components/views/beta/BetaCard.tsx":(e,t,s)=>{"use strict";s.d(t,{s:()=>S,A:()=>C});var n=s("./node_modules/react/index.js"),o=s("./node_modules/matrix-js-sdk/src/utils.ts"),i=s("./src/languageHandler.tsx"),r=s("./src/components/views/elements/AccessibleButton.tsx"),a=s("./src/settings/SettingsStore.ts"),l=s("./src/settings/SettingLevel.ts"),c=s("./src/Modal.tsx"),d=s("./src/dispatcher/dispatcher.ts"),m=s("./src/dispatcher/actions.ts"),u=s("./src/components/views/dialogs/UserTab.ts"),h=s("./src/components/views/dialogs/QuestionDialog.tsx"),p=s("./src/components/views/elements/Field.tsx"),g=s("./src/rageshake/submit-rageshake.ts"),v=s("./src/components/views/elements/StyledCheckbox.tsx"),_=s("./src/components/views/dialogs/InfoDialog.tsx");const f=({title:e,subheading:t,children:s,rageshakeLabel:o,rageshakeData:r={},onFinished:a})=>{const[l,d]=(0,n.useState)(""),[m,u]=(0,n.useState)(!1);return n.createElement(h.A,{className:"mx_GenericFeatureFeedbackDialog",hasCancelButton:!0,title:e,description:n.createElement(n.Fragment,null,n.createElement("div",{className:"mx_GenericFeatureFeedbackDialog_subheading"},t," ",(0,i._t)("feedback|platform_username")," ",s),n.createElement(p.A,{id:"feedbackComment",label:(0,i._t)("common|feedback"),type:"text",autoComplete:"off",value:l,element:"textarea",onChange:e=>{d(e.target.value)},autoFocus:!0}),n.createElement(v.A,{checked:m,onChange:e=>u(e.target.checked)},(0,i._t)("feedback|can_contact_label"))),button:(0,i._t)("feedback|send_feedback_action"),buttonDisabled:!l,onFinished:async t=>{if(!t)return a(!1);(0,g.Wz)(o,l,m,r),a(!0),c.Ay.createDialog(_.A,{title:e,description:(0,i._t)("feedback|sent"),button:(0,i._t)("action|close"),hasCloseButton:!1,fixedWidth:!1})}})},y=({featureId:e,onFinished:t})=>{var s;const o=a.A.getBetaInfo(e);return o?n.createElement(f,{title:(0,i._t)("labs|beta_feedback_title",{featureName:o.title}),subheading:o.feedbackSubheading?(0,i._t)(o.feedbackSubheading):void 0,onFinished:t,rageshakeLabel:o.feedbackLabel,rageshakeData:Object.fromEntries(((null===(s=a.A.getBetaInfo(e))||void 0===s?void 0:s.extraSettings)||[]).map(e=>[e,a.A.getValue(e)]))},n.createElement(r.A,{kind:"link_inline",onClick:()=>{t(),d.A.dispatch({action:m.r.ViewUserSettings,initialTabId:u.v.Labs})}},(0,i._t)("labs|beta_feedback_leave_button"))):null};var b=s("./src/SdkConfig.ts"),E=s("./src/components/views/elements/SettingsFlag.tsx"),w=s("./src/hooks/useSettings.ts"),x=s("./src/components/views/elements/InlineSpinner.tsx"),A=s("./src/utils/Feedback.ts");const S=({onClick:e,tooltipTitle:t=(0,i._t)("labs|beta_feature"),tooltipCaption:s=(0,i._t)("labs|click_for_info")})=>e?n.createElement(r.A,{className:"mx_BetaCard_betaPill","aria-label":`${t} ${s}`,title:t,caption:s,onClick:e},(0,i._t)("common|beta")):n.createElement("span",{className:"mx_BetaCard_betaPill"},(0,i._t)("common|beta")),C=({title:e,featureId:t})=>{const s=a.A.getBetaInfo(t),d=(0,w.ny)(t),[m,u]=(0,n.useState)(!1);if(!s)return null;const{title:h,caption:p,faq:g,image:v,feedbackLabel:_,feedbackSubheading:f,extraSettings:C,requiresRefresh:R}=s;let k,I,P;if(d&&_&&f&&(0,A.I)()&&(k=n.createElement(r.A,{onClick:()=>{c.Ay.createDialog(y,{featureId:t})},kind:"primary"},(0,i._t)("common|feedback"))),R){const e=b.Ay.get().brand;I=d?(0,i._t)("labs|leave_beta_reload",{brand:e}):(0,i._t)("labs|join_beta_reload",{brand:e})}return P=m?n.createElement(x.A,null):d?(0,i._t)("labs|leave_beta"):(0,i._t)("labs|join_beta"),n.createElement("div",{className:"mx_BetaCard"},n.createElement("div",{className:"mx_BetaCard_columns"},n.createElement("div",{className:"mx_BetaCard_columns_description"},n.createElement("h3",{className:"mx_BetaCard_title"},n.createElement("span",null,e||(0,i._t)(h)),n.createElement(S,null)),n.createElement("div",{className:"mx_BetaCard_caption"},p()),n.createElement("div",{className:"mx_BetaCard_buttons"},k,n.createElement(r.A,{onClick:async()=>{u(!0),R||await(0,o.yy)(2e3),await a.A.setValue(t,null,l.p.DEVICE,!d),R||u(!1)},kind:k?"primary_outline":"primary",disabled:m},P)),I&&n.createElement("div",{className:"mx_BetaCard_refreshWarning"},I),g&&n.createElement("div",{className:"mx_BetaCard_faq"},g(d))),n.createElement("div",{className:"mx_BetaCard_columns_image_wrapper"},n.createElement("img",{className:"mx_BetaCard_columns_image",src:v,alt:""}))),C&&d&&n.createElement("div",{className:"mx_BetaCard_relatedSettings"},C.map(e=>n.createElement(E.A,{key:e,name:e,level:l.p.DEVICE}))))}},"./src/components/views/context_menus/IconizedContextMenu.tsx":(e,t,s)=>{"use strict";s.d(t,{Ay:()=>f,LS:()=>g,R$:()=>v,h6:()=>p,tx:()=>_});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/classnames/index.js"),a=s.n(r),l=s("./src/components/structures/ContextMenu.tsx"),c=s("./src/languageHandler.tsx");const d=["label","iconClassName","active","className"],m=["label","iconClassName","active","className","words"],u=["label","className","iconClassName","children","isDestructive"],h=["className","children","compact"],p=e=>{let{label:t,iconClassName:s,active:r,className:c}=e,m=(0,o.A)(e,d);return i.createElement(l.sH,(0,n.A)({},m,{className:a()(c,{mx_IconizedContextMenu_item:!0,mx_IconizedContextMenu_active:r}),active:r,label:t}),s&&i.createElement("span",{className:a()("mx_IconizedContextMenu_icon",s)}),i.createElement("span",{className:"mx_IconizedContextMenu_label"},t),r&&i.createElement("span",{className:"mx_IconizedContextMenu_icon mx_IconizedContextMenu_checked"}))},g=e=>{let t,{label:s,iconClassName:r,active:d,className:u,words:h}=e,p=(0,o.A)(e,m);return t=h?i.createElement("span",{className:"mx_IconizedContextMenu_activeText"},d?(0,c._t)("common|on"):(0,c._t)("common|off")):i.createElement("span",{className:a()("mx_IconizedContextMenu_icon",{mx_IconizedContextMenu_checked:d,mx_IconizedContextMenu_unchecked:!d})}),i.createElement(l.K8,(0,n.A)({},p,{className:a()(u,{mx_IconizedContextMenu_item:!0,mx_IconizedContextMenu_active:d}),active:d,label:s}),i.createElement("span",{className:a()("mx_IconizedContextMenu_icon",r)}),i.createElement("span",{className:"mx_IconizedContextMenu_label"},s),t)},v=e=>{let{label:t,className:s,iconClassName:r,children:c,isDestructive:d}=e,m=(0,o.A)(e,u);return i.createElement(l.Dr,(0,n.A)({element:"li"},m,{className:a()(s,{mx_IconizedContextMenu_item:!0,mx_IconizedContextMenu_itemDestructive:d}),label:t}),r&&i.createElement("span",{className:a()("mx_IconizedContextMenu_icon",r)}),i.createElement("span",{className:"mx_IconizedContextMenu_label"},t),c)},_=({first:e,red:t,className:s,label:n,children:o})=>{const r=a()("mx_IconizedContextMenu_optionList",s,{mx_IconizedContextMenu_optionList_notFirst:!e,mx_IconizedContextMenu_optionList_red:t});return i.createElement("div",{className:r},n&&i.createElement("div",null,i.createElement("span",{className:"mx_IconizedContextMenu_optionList_label"},n)),o)},f=e=>{let{className:t,children:s,compact:r}=e,c=(0,o.A)(e,h);const d=a()("mx_IconizedContextMenu",t,{mx_IconizedContextMenu_compact:r});return i.createElement(l.Ay,(0,n.A)({chevronFace:l.t4.None},c),i.createElement("ul",{role:"none",className:d},s))}},"./src/components/views/context_menus/MessageContextMenu.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>F});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),r=s("./node_modules/react/index.js"),a=s("./node_modules/matrix-js-sdk/src/matrix.ts"),l=s("./src/MatrixClientPeg.ts"),c=s("./src/dispatcher/dispatcher.ts"),d=s("./src/languageHandler.tsx"),m=s("./src/Modal.tsx"),u=s("./src/Resend.ts"),h=s("./src/settings/SettingsStore.ts"),p=s("./src/HtmlUtils.tsx"),g=s("./src/utils/EventUtils.ts"),v=s("./src/components/views/context_menus/IconizedContextMenu.tsx"),_=s("./src/dispatcher/actions.ts"),f=s("./src/utils/strings.ts"),y=s("./src/components/structures/ContextMenu.tsx"),b=s("./src/components/views/emojipicker/ReactionPicker.tsx"),E=s("./src/components/structures/ViewSource.tsx"),w=s("./src/components/views/dialogs/ConfirmRedactDialog.tsx"),x=s("./src/components/views/dialogs/ShareDialog.tsx"),A=s("./src/contexts/RoomContext.ts"),S=s("./node_modules/matrix-js-sdk/src/extensible_events_v1/PollEndEvent.ts"),C=s("./src/components/views/dialogs/QuestionDialog.tsx"),R=s("./src/components/views/messages/MPollBody.tsx"),k=s("./src/components/views/dialogs/ErrorDialog.tsx");class I extends r.Component{constructor(...e){super(...e),(0,i.A)(this,"onFinished",async e=>{if(e){const e=this.props.matrixClient.getRoom(this.props.event.getRoomId()),t=null==e?void 0:e.polls.get(this.props.event.getId());if(!t)throw new Error("No poll instance found in room.");try{const e=await t.getResponses(),s=(0,R.Fr)(this.props.event,e),n=""===s?(0,d._t)("poll|end_message_no_votes"):(0,d._t)("poll|end_message",{topAnswer:s}),o=S.n.from(this.props.event.getId(),n).serialize();await this.props.matrixClient.sendEvent(this.props.event.getRoomId(),o.type,o.content)}catch(e){console.error("Failed to submit poll response event:",e),m.Ay.createDialog(k.A,{title:(0,d._t)("poll|error_ending_title"),description:(0,d._t)("poll|error_ending_description")})}}this.props.onFinished(e)})}render(){return r.createElement(C.A,{title:(0,d._t)("poll|end_title"),description:(0,d._t)("poll|end_description"),button:(0,d._t)("poll|end_title"),onFinished:e=>this.onFinished(e)})}}var P=s("./src/utils/location/index.ts"),T=s("./src/events/forward/getForwardableEvent.ts"),O=s("./src/events/location/getShareableLocationEvent.ts"),M=s("./src/components/views/right_panel/context.ts"),N=s("./src/utils/PinningUtils.ts"),D=s("./src/PosthogTrackers.ts");const j=["mxEvent","rightClick","link","eventTileOps","reactions","collapseReplyChain"],U=({mxEvent:e,closeMenu:t})=>{var s;const n=(0,r.useContext)(M.E),o=null==e||null===(s=e.getRelation())||void 0===s?void 0:s.rel_type;if(Boolean(o)&&o!==a.RelationType.Thread)return null;return r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconReplyInThread",label:(0,d._t)("action|reply_in_thread"),onClick:()=>{e.getThread()&&!e.isThreadRoot?c.A.dispatch({action:_.r.ShowThread,rootEvent:e.getThread().rootEvent,initialEvent:e,scroll_into_view:!0,highlighted:!0,push:n.isCard}):c.A.dispatch({action:_.r.ShowThread,rootEvent:e,push:n.isCard}),t()}})};class F extends r.Component{constructor(e){super(e),(0,i.A)(this,"reactButtonRef",(0,r.createRef)()),(0,i.A)(this,"checkPermissions",()=>{const e=l.J.safeGet(),t=e.getRoom(this.props.mxEvent.getRoomId()),s=!(null==t||!t.currentState.maySendRedactionForEvent(this.props.mxEvent,e.getSafeUserId()))&&this.props.mxEvent.getType()!==a.EventType.RoomServerAcl&&this.props.mxEvent.getType()!==a.EventType.RoomEncryption,n=N.A.canPin(e,this.props.mxEvent)||N.A.canUnpin(e,this.props.mxEvent);this.setState({canRedact:s,canPin:n})}),(0,i.A)(this,"onResendReactionsClick",()=>{for(const e of this.getUnsentReactions())u.A.resend(l.J.safeGet(),e);this.closeMenu()}),(0,i.A)(this,"onJumpToRelatedEventClick",e=>{c.A.dispatch({action:"view_room",room_id:this.props.mxEvent.getRoomId(),event_id:e,highlighted:!0})}),(0,i.A)(this,"onReportEventClick",()=>{c.A.dispatch({action:_.r.OpenReportEventDialog,event:this.props.mxEvent}),this.closeMenu()}),(0,i.A)(this,"onViewSourceClick",()=>{m.Ay.createDialog(E.A,{mxEvent:this.props.mxEvent},"mx_Dialog_viewsource"),this.closeMenu()}),(0,i.A)(this,"onRedactClick",()=>{const{mxEvent:e,onCloseDialog:t}=this.props;(0,w.Q)({mxEvent:e,onCloseDialog:t}),this.closeMenu()}),(0,i.A)(this,"onForwardClick",e=>()=>{c.A.dispatch({action:_.r.OpenForwardDialog,event:e,permalinkCreator:this.props.permalinkCreator}),this.closeMenu()}),(0,i.A)(this,"onPinClick",e=>{N.A.pinOrUnpinEvent(l.J.safeGet(),this.props.mxEvent),D.A.trackPinUnpinMessage(e?"Pin":"Unpin","Timeline"),this.closeMenu()}),(0,i.A)(this,"closeMenu",()=>{this.props.onFinished()}),(0,i.A)(this,"onUnhidePreviewClick",()=>{var e;null===(e=this.props.eventTileOps)||void 0===e||e.unhideWidget(),this.closeMenu()}),(0,i.A)(this,"onShareClick",e=>{e.preventDefault(),m.Ay.createDialog(x.G,{target:this.props.mxEvent,permalinkCreator:this.props.permalinkCreator}),this.closeMenu()}),(0,i.A)(this,"onCopyLinkClick",e=>{e.preventDefault(),this.props.link&&((0,f.nC)(this.props.link),this.closeMenu())}),(0,i.A)(this,"onCollapseReplyChainClick",()=>{var e,t;null===(e=(t=this.props).collapseReplyChain)||void 0===e||e.call(t),this.closeMenu()}),(0,i.A)(this,"onCopyClick",()=>{(0,f.nC)((0,f.j5)()),this.closeMenu()}),(0,i.A)(this,"onQuoteClick",()=>{const e=(0,f.j5)();if(e){const t=e.trim().split(/\r?\n/).map(e=>`> ${e}`).join("\n");c.A.dispatch({action:_.r.ComposerInsert,text:"\n"+t+"\n\n ",timelineRenderingType:this.context.timelineRenderingType})}this.closeMenu()}),(0,i.A)(this,"onEditClick",()=>{(0,g.ju)(l.J.safeGet(),this.props.mxEvent,this.context.timelineRenderingType,this.props.getRelationsForEvent),this.closeMenu()}),(0,i.A)(this,"onReplyClick",()=>{c.A.dispatch({action:"reply_to_event",event:this.props.mxEvent,context:this.context.timelineRenderingType}),this.closeMenu()}),(0,i.A)(this,"onReactClick",()=>{this.setState({reactionPickerDisplayed:!0})}),(0,i.A)(this,"onCloseReactionPicker",()=>{this.setState({reactionPickerDisplayed:!1}),this.closeMenu()}),(0,i.A)(this,"onEndPollClick",()=>{const e=l.J.safeGet();m.Ay.createDialog(I,{matrixClient:e,event:this.props.mxEvent,getRelationsForEvent:this.props.getRelationsForEvent},"mx_Dialog_endPoll"),this.closeMenu()}),(0,i.A)(this,"viewInRoom",()=>{c.A.dispatch({action:_.r.ViewRoom,event_id:this.props.mxEvent.getId(),highlighted:!0,room_id:this.props.mxEvent.getRoomId(),metricsTrigger:void 0}),this.closeMenu()}),this.state={canRedact:!1,canPin:!1,reactionPickerDisplayed:!1}}componentDidMount(){l.J.safeGet().on(a.RoomMemberEvent.PowerLevel,this.checkPermissions),this.props.mxEvent.on(a.MatrixEventEvent.Status,this.checkPermissions),this.checkPermissions()}componentWillUnmount(){const e=l.J.get();e&&e.removeListener(a.RoomMemberEvent.PowerLevel,this.checkPermissions),this.props.mxEvent.removeListener(a.MatrixEventEvent.Status,this.checkPermissions)}canEndPoll(e){return a.M_POLL_START.matches(e.getType())&&this.state.canRedact&&!(0,R.Ev)(e,l.J.safeGet())}isSelectionWithinSingleTextBody(){const e=window.getSelection();if(!e||0===e.rangeCount)return!1;const t=e.getRangeAt(0);function s(e,t){for(;e;){if(e instanceof HTMLElement&&e.classList.contains(t))return e;e=e.parentNode}return null}const n=s(t.startContainer,"mx_MTextBody"),o=s(t.endContainer,"mx_MTextBody");return!!n&&n===o}getReactions(e){var t;const s=l.J.safeGet().getRoom(this.props.mxEvent.getRoomId()),n=this.props.mxEvent.getId();return null!==(t=null==s?void 0:s.getPendingEvents().filter(t=>{const s=t.getRelation();return(null==s?void 0:s.rel_type)===a.RelationType.Annotation&&s.event_id===n&&e(t)}))&&void 0!==t?t:[]}getUnsentReactions(){return this.getReactions(e=>e.status===a.EventStatus.NOT_SENT)}render(){var e,t;const s=l.J.safeGet(),i=s.getUserId(),c=this.props,{mxEvent:m,rightClick:u,link:_,eventTileOps:E,reactions:w,collapseReplyChain:x}=c,S=(0,o.A)(c,j);delete S.getRelationsForEvent,delete S.permalinkCreator;const C=m.status,R=this.getUnsentReactions().length,k=(0,g.qe)(m),I=null===(e=this.props.permalinkCreator)||void 0===e?void 0:e.forEvent(this.props.mxEvent.getId()),M=!C||C===a.EventStatus.SENT,{timelineRenderingType:D,canReact:F,canSendMessages:L}=this.context,B=(D===A.Ae.Thread||D===A.Ae.ThreadsList)&&(null==m||null===(t=m.getThread())||void 0===t?void 0:t.rootEvent)===m;let V,H,W;m.isRedacted()||0===R||(V=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconResend",label:(0,d._t)("timeline|context_menu|resent_unsent_reactions",{unsentCount:R}),onClick:this.onResendReactionsClick})),M&&this.state.canRedact&&(H=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconRedact",label:(0,d._t)("action|remove"),onClick:this.onRedactClick}));const $=(0,O.V)(m,s);if($){const e=(0,P.Gn)($);W=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconOpenInMapSite",onClick:null,label:(0,d._t)("timeline|context_menu|open_in_osm"),element:"a",href:e,target:"_blank",rel:"noreferrer noopener"})}let z;const K=(0,T.e)(m,s);k&&K&&(z=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconForward",label:(0,d._t)("action|forward"),onClick:this.onForwardClick(K)}));const J=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconSource",label:(0,d._t)("timeline|context_menu|view_source"),onClick:this.onViewSourceClick});let G,q,Y,Z,Q,X;null!=E&&E.isWidgetHidden()&&(G=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconUnhidePreview",label:(0,d._t)("timeline|context_menu|show_url_preview"),onClick:this.onUnhidePreviewClick})),I&&(q=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconPermalink",onClick:this.onShareClick,label:(0,d._t)("action|share"),element:"a",href:I,target:"_blank",rel:"noreferrer noopener"})),this.canEndPoll(m)&&(Y=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconEndPoll",label:(0,d._t)("poll|end_title"),onClick:this.onEndPollClick})),"string"==typeof m.getContent().external_url&&(0,p.SR)(m.getContent().external_url)&&(Z=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconLink",onClick:this.closeMenu,label:(0,d._t)("timeline|context_menu|external_url"),element:"a",target:"_blank",rel:"noreferrer noopener",href:m.getContent().external_url})),x&&(Q=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconCollapse",label:(0,d._t)("timeline|context_menu|collapse_reply_thread"),onClick:this.onCollapseReplyChainClick}));const ee=m.getAssociatedId();let te,se;ee&&h.A.getValue("developerMode")&&(X=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_jumpToEvent",label:(0,d._t)("timeline|context_menu|view_related_event"),onClick:()=>this.onJumpToRelatedEventClick(ee)})),m.getSender()!==i&&(te=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconReport",label:(0,d._t)("timeline|context_menu|report"),onClick:this.onReportEventClick})),_&&(se=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconCopy",onClick:this.onCopyLinkClick,label:(0,d._t)("action|copy_link"),element:"a",href:_,target:"_blank",rel:"noreferrer noopener"}));const ne=(0,f.j5)();let oe,ie,re,ae,le,ce,de,me,ue,he;if(u&&ne&&(oe=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconCopy",label:(0,d._t)("action|copy"),triggerOnMouseDown:!0,onClick:this.onCopyClick})),u&&ne&&ne.trim().length>0&&this.isSelectionWithinSingleTextBody()&&(ie=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconQuote",label:(0,d._t)("action|quote"),triggerOnMouseDown:!0,onClick:this.onQuoteClick})),u&&(0,g.wQ)(s,m)&&(re=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconEdit",label:(0,d._t)("action|edit"),onClick:this.onEditClick})),u&&k&&L&&(ae=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconReply",label:(0,d._t)("action|reply"),onClick:this.onReplyClick})),u&&k&&L&&a.Thread.hasServerSideSupport&&D!==A.Ae.Thread&&(le=r.createElement(U,{mxEvent:m,closeMenu:this.closeMenu})),u&&k&&F&&(ce=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconReact",label:(0,d._t)("action|react"),onClick:this.onReactClick,inputRef:this.reactButtonRef})),u&&this.state.canPin){const e=N.A.isPinned(l.J.safeGet(),this.props.mxEvent);de=r.createElement(v.R$,{iconClassName:e?"mx_MessageContextMenu_iconUnpin":"mx_MessageContextMenu_iconPin",label:e?(0,d._t)("action|unpin"):(0,d._t)("action|pin"),onClick:()=>this.onPinClick(e)})}B&&(me=r.createElement(v.R$,{iconClassName:"mx_MessageContextMenu_iconViewInRoom",label:(0,d._t)("timeline|mab|view_in_room"),onClick:this.viewInRoom})),(oe||ie||se)&&(ue=r.createElement(v.tx,null,oe,ie,se)),(re||ae||ce||de)&&(he=r.createElement(v.tx,null,ce,ae,le,re,de));const pe=r.createElement(v.tx,null,me,W,Y,z,q,te,Z,X,G,J,V,Q);let ge,ve;if(H&&(ge=r.createElement(v.tx,{red:!0},H)),this.state.reactionPickerDisplayed){var _e;const e=null===(_e=this.reactButtonRef.current)||void 0===_e?void 0:_e.getBoundingClientRect();ve=r.createElement(y.Ay,(0,n.A)({},(0,y.Dq)(e),{onFinished:this.closeMenu,managed:!1}),r.createElement(b.A,{mxEvent:m,onFinished:this.onCloseReactionPicker,reactions:w}))}return r.createElement(r.Fragment,null,r.createElement(v.Ay,(0,n.A)({},S,{className:"mx_MessageContextMenu",compact:!0}),ue,he,pe,ge),ve)}}(0,i.A)(F,"contextType",A.Ay)},"./src/components/views/context_menus/RoomGeneralContextMenu.tsx":(e,t,s)=>{"use strict";s.d(t,{e:()=>k});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./node_modules/react/index.js"),a=s("./src/accessibility/KeyboardShortcuts.ts"),l=s("./src/actions/RoomListActions.ts"),c=s("./src/contexts/MatrixClientContext.tsx"),d=s("./src/dispatcher/dispatcher.ts"),m=s("./src/hooks/useEventEmitter.ts"),u=s("./src/hooks/useUnreadNotifications.ts"),h=s("./src/KeyBindingsManager.ts"),p=s("./src/languageHandler.tsx"),g=s("./src/stores/notifications/NotificationLevel.ts"),v=s("./src/stores/room-list/models.ts"),_=s("./src/stores/room-list/RoomListStore.ts"),f=s("./src/utils/DMRoomMap.ts"),y=s("./src/utils/notifications.ts"),b=s("./src/components/views/context_menus/IconizedContextMenu.tsx"),E=s("./src/customisations/helpers/UIComponents.ts"),w=s("./src/settings/UIFeature.ts"),x=s("./src/Modal.tsx"),A=s("./src/components/views/dialogs/DevtoolsDialog.tsx");const S=({onFinished:e,roomId:t})=>r.createElement(b.R$,{onClick:()=>{x.Ay.createDialog(A.A,{roomId:t},"mx_DevtoolsDialog_wrapper"),e()},label:(0,p._t)("devtools|title"),iconClassName:"mx_IconizedContextMenu_developerTools"});var C=s("./src/hooks/useSettings.ts");const R=["room","onFinished","onPostFavoriteClick","onPostLowPriorityClick","onPostInviteClick","onPostCopyLinkClick","onPostSettingsClick","onPostLeaveClick","onPostForgetClick","onPostMarkAsReadClick","onPostMarkAsUnreadClick"],k=e=>{let{room:t,onFinished:s,onPostFavoriteClick:x,onPostLowPriorityClick:A,onPostInviteClick:k,onPostCopyLinkClick:I,onPostSettingsClick:P,onPostLeaveClick:T,onPostForgetClick:O,onPostMarkAsReadClick:M,onPostMarkAsUnreadClick:N}=e,D=(0,o.A)(e,R);const j=(0,r.useContext)(c.Ay),U=(0,m.dF)(_.Ay.instance,_.lA,()=>_.Ay.instance.getTagsForRoom(t)),F=f.A.shared().getUserIdForRoomId(t.roomId),L=(e,t,n=!1)=>o=>{o.preventDefault(),o.stopPropagation(),e(o);const i=(0,h.zM)().getAccessibilityAction(o);n&&i!==a.bY.Enter||s(),null==t||t(o)},B=(e,s)=>{if(j)if(s===v.zO.Favourite||s===v.zO.LowPriority){const e=s===v.zO.Favourite?v.zO.LowPriority:v.zO.Favourite,n=_.Ay.instance.getTagsForRoom(t).includes(s),o=n?s:e,i=n?null:s;d.A.dispatch(l.A.tagRoom(j,t,o,i,0))}else i.vF.warn(`Unexpected tag ${s} applied to ${t.roomId}`)},V=U.includes(v.zO.Favourite),H=r.createElement(b.LS,{onClick:L(e=>B(0,v.zO.Favourite),x,!0),active:V,label:V?(0,p._t)("room|context_menu|unfavourite"):(0,p._t)("room|context_menu|favourite"),iconClassName:"mx_RoomGeneralContextMenu_iconStar"}),W=U.includes(v.zO.LowPriority),$=r.createElement(b.LS,{onClick:L(e=>B(0,v.zO.LowPriority),A,!0),active:W,label:(0,p._t)("room|context_menu|low_priority"),iconClassName:"mx_RoomGeneralContextMenu_iconArrowDown"});let z=null;t.canInvite(j.getUserId())&&!F&&(0,E.g)(w.C.InviteUsers)&&(z=r.createElement(b.R$,{onClick:L(()=>d.A.dispatch({action:"view_invite",roomId:t.roomId}),k),label:(0,p._t)("action|invite"),iconClassName:"mx_RoomGeneralContextMenu_iconInvite"}));let K=null;F||(K=r.createElement(b.R$,{onClick:L(()=>d.A.dispatch({action:"copy_room",room_id:t.roomId}),I),label:(0,p._t)("room|context_menu|copy_link"),iconClassName:"mx_RoomGeneralContextMenu_iconCopyLink"}));const J=r.createElement(b.R$,{onClick:L(()=>d.A.dispatch({action:"open_room_settings",room_id:t.roomId}),P),label:(0,p._t)("common|settings"),iconClassName:"mx_RoomGeneralContextMenu_iconSettings"});let G;G=U.includes(v.zO.Archived)?r.createElement(b.R$,{iconClassName:"mx_RoomGeneralContextMenu_iconSignOut",label:(0,p._t)("room|context_menu|forget"),className:"mx_IconizedContextMenu_option_red",onClick:L(()=>d.A.dispatch({action:"forget_room",room_id:t.roomId}),O)}):r.createElement(b.R$,{onClick:L(()=>d.A.dispatch({action:"leave_room",room_id:t.roomId}),T),label:(0,p._t)("action|leave"),className:"mx_IconizedContextMenu_option_red",iconClassName:"mx_RoomGeneralContextMenu_iconSignOut"});const{level:q}=(0,u.X)(t),Y=q>g.S.None?r.createElement(b.R$,{onClick:L(()=>{(0,y.G9)(t,j),null==s||s()},M),label:(0,p._t)("room|context_menu|mark_read"),iconClassName:"mx_RoomGeneralContextMenu_iconMarkAsRead"}):U.includes(v.zO.Archived)?null:r.createElement(b.R$,{onClick:L(()=>{(0,y.bR)(t,j,!0),null==s||s()},N),label:(0,p._t)("room|context_menu|mark_unread"),iconClassName:"mx_RoomGeneralContextMenu_iconMarkAsUnread"}),Z=(0,C.ti)("developerMode")?r.createElement(S,{onFinished:s,roomId:t.roomId}):null;return r.createElement(b.Ay,(0,n.A)({},D,{onFinished:s,className:"mx_RoomGeneralContextMenu",compact:!0}),r.createElement(b.tx,null,Y,!U.includes(v.zO.Archived)&&r.createElement(r.Fragment,null,H,$,z,K,J),Z),r.createElement(b.tx,{red:!0},G))}},"./src/components/views/context_menus/RoomNotificationContextMenu.tsx":(e,t,s)=>{"use strict";s.d(t,{f:()=>h});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./src/accessibility/KeyboardShortcuts.ts"),a=s("./src/hooks/useRoomNotificationState.ts"),l=s("./src/KeyBindingsManager.ts"),c=s("./src/languageHandler.tsx"),d=s("./src/RoomNotifs.ts"),m=s("./src/components/views/context_menus/IconizedContextMenu.tsx");const u=["room","onFinished"],h=e=>{let{room:t,onFinished:s}=e,h=(0,o.A)(e,u);const[p,g]=(0,a.I)(t),v=(e,t=!1)=>n=>{n.preventDefault(),n.stopPropagation(),e(n);const o=(0,l.zM)().getAccessibilityAction(n);t&&o!==r.bY.Enter||s()},_=i.createElement(m.h6,{label:(0,c._t)("room|context_menu|notifications_default"),active:p===d.dC.AllMessages,iconClassName:"mx_RoomNotificationContextMenu_iconBell",onClick:v(()=>g(d.dC.AllMessages))}),f=i.createElement(m.h6,{label:(0,c._t)("notifications|all_messages"),active:p===d.dC.AllMessagesLoud,iconClassName:"mx_RoomNotificationContextMenu_iconBellDot",onClick:v(()=>g(d.dC.AllMessagesLoud))}),y=i.createElement(m.h6,{label:(0,c._t)("notifications|mentions_keywords"),active:p===d.dC.MentionsOnly,iconClassName:"mx_RoomNotificationContextMenu_iconBellMentions",onClick:v(()=>g(d.dC.MentionsOnly))}),b=i.createElement(m.h6,{label:(0,c._t)("room|context_menu|notifications_mute"),active:p===d.dC.Mute,iconClassName:"mx_RoomNotificationContextMenu_iconBellCrossed",onClick:v(()=>g(d.dC.Mute))});return i.createElement(m.Ay,(0,n.A)({},h,{onFinished:s,className:"mx_RoomNotificationContextMenu",compact:!0}),i.createElement(m.tx,{first:!0},_,f,y,b))}},"./src/components/views/dialogs/AddExistingToSpaceDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{Ay:()=>L,FM:()=>D,HK:()=>T,M:()=>j,YZ:()=>F,nZ:()=>U,sS:()=>M});var n=s("./node_modules/react/index.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./node_modules/matrix-js-sdk/src/matrix.ts"),a=s("./node_modules/matrix-js-sdk/src/types.ts"),l=s("./node_modules/matrix-js-sdk/src/utils.ts"),c=s("./node_modules/matrix-js-sdk/src/logger.ts"),d=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/error.js"),m=s("./src/languageHandler.tsx"),u=s("./src/components/views/dialogs/BaseDialog.tsx"),h=s("./src/components/views/elements/Dropdown.tsx"),p=s("./src/components/structures/SearchBox.tsx"),g=s("./src/stores/spaces/SpaceStore.ts"),v=s("./src/components/views/avatars/RoomAvatar.tsx"),_=s("./src/Rooms.ts"),f=s("./src/components/views/elements/AccessibleButton.tsx"),y=s("./src/components/structures/AutoHideScrollbar.tsx"),b=s("./src/utils/DMRoomMap.ts"),E=s("./src/utils/permalinks/Permalinks.ts"),w=s("./src/components/views/elements/StyledCheckbox.tsx"),x=s("./src/contexts/MatrixClientContext.tsx"),A=s("./src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts"),S=s("./src/components/views/elements/ProgressBar.tsx"),C=s("./src/components/views/avatars/DecoratedRoomAvatar.tsx"),R=s("./src/autocomplete/QueryMatcher.ts"),k=s("./src/components/views/elements/LazyRenderList.tsx"),I=s("./src/hooks/useSettings.ts"),P=s("./src/utils/arrays.ts");const T=({room:e,checked:t,onChange:s})=>{const o=(0,n.useId)();return n.createElement("li",{id:o,className:"mx_AddExistingToSpace_entry","aria-label":e.name},null!=e&&e.isSpaceRoom()?n.createElement(v.A,{room:e,size:"32px"}):n.createElement(C.A,{room:e,size:"32px"}),n.createElement("span",{className:"mx_AddExistingToSpace_entry_name"},e.name),n.createElement(w.A,{"aria-labelledby":o,onChange:s?e=>s(e.currentTarget.checked):void 0,checked:t,disabled:!s}))},O=({scrollTop:e,height:t},s,...n)=>{let o=0;n.forEach(e=>{o+=39+44*e});const i=e,r=i+t,a=o+15,l=a+44*s,c=Math.max(i,a),d=Math.min(r,l);return{scrollTop:Math.max(0,e-a),height:Math.max(0,d-c)}},M=({space:e,footerPrompt:t,emptySelectionButton:s,filterPlaceholder:o,roomsRenderer:i,dmsRenderer:r,spacesRenderer:u,onFinished:h})=>{const v=(0,n.useContext)(x.Ay),_=(0,I.ti)("feature_dynamic_room_predecessors"),w=(0,n.useMemo)(()=>{var e;return null!==(e=null==v?void 0:v.getVisibleRooms(_).filter(e=>e.getMyMembership()===a.O.Join))&&void 0!==e?e:[]},[v,_]),C=(0,n.useRef)(null),[k,T]=(0,n.useState)({scrollTop:0,height:600}),[M,N]=(0,n.useState)(new Set),[D,j]=(0,n.useState)(null),[U,F]=(0,n.useState)(!1),[L,B]=(0,n.useState)(""),V=L.toLowerCase().trim(),H=(0,n.useMemo)(()=>new Set(g.Ay.instance.getChildSpaces(e.roomId)),[e]),W=(0,n.useMemo)(()=>new Set(g.Ay.instance.getChildRooms(e.roomId)),[e]),[$,z,K]=(0,n.useMemo)(()=>{let t=w;if(V){t=new R.A(w,{keys:["name"],funcs:[e=>(0,P.Bo)([e.getCanonicalAlias(),...e.getAltAliases()])],shouldMatchWordsOnly:!1}).match(V)}const s=e.getJoinRule();return(0,A.pP)(t).reduce((t,n)=>(n.isSpaceRoom()?n===e||H.has(n)||t[0].push(n):W.has(n)||(b.A.shared().getUserIdForRoomId(n.roomId)?"public"!==s&&t[2].push(n):t[1].push(n)),t),[[],[],[]])},[w,e,V,W,H]),J=async()=>{F(!1),j(0);let t=!1;for(const s of M){const n=(0,E.Ex)(s);try{await g.Ay.instance.addRoomToSpace(e,s.roomId,n).catch(async t=>{if("M_LIMIT_EXCEEDED"===t.errcode)return await(0,l.yy)(t.data.retry_after_ms),void await g.Ay.instance.addRoomToSpace(e,s.roomId,n);throw t}),j(e=>(null!=e?e:0)+1)}catch(e){c.vF.error("Failed to add rooms to space",e),t=!0;break}}t?F(t):h(!0)},G=null!==D;let q;if(U)q=n.createElement(n.Fragment,null,n.createElement(d.A,{height:"24px",width:"24px"}),n.createElement("span",{className:"mx_AddExistingToSpaceDialog_error"},n.createElement("div",{className:"mx_AddExistingToSpaceDialog_errorHeading"},(0,m._t)("space|add_existing_room_space|error_heading")),n.createElement("div",{className:"mx_AddExistingToSpaceDialog_errorCaption"},(0,m._t)("action|try_again"))),n.createElement(f.A,{className:"mx_AddExistingToSpaceDialog_retryButton",onClick:J},(0,m._t)("action|retry")));else if(G)q=n.createElement("span",null,n.createElement(S.A,{value:D,max:M.size}),n.createElement("div",{className:"mx_AddExistingToSpaceDialog_progressText"},(0,m._t)("space|add_existing_room_space|progress_text",{count:M.size,progress:D})));else{let e=s;(!e||M.size>0)&&(e=n.createElement(f.A,{kind:"primary",disabled:M.size<1,onClick:J},(0,m._t)("action|add"))),q=n.createElement(n.Fragment,null,n.createElement("span",null,t),e)}const Y=G||U?void 0:(e,t)=>{e?M.add(t):M.delete(t),N(new Set(M))},Z=!u||r||i?0:$.length,Q=i?z.length:0,X=r?K.length:0;let ee=!0;(Z>0||Q>0||X>0)&&(ee=!1);const te=O(k,Q),se=O(k,Z,Q),ne=O(k,X,Z,Q);return n.createElement("div",{className:"mx_AddExistingToSpace"},n.createElement(p.A,{className:"mx_textinput_icon mx_textinput_search",placeholder:o,onSearch:B,autoFocus:!0}),n.createElement(y.A,{className:"mx_AddExistingToSpace_content",onScroll:()=>{var e;const t=null===(e=C.current)||void 0===e?void 0:e.containerRef.current;t&&T({scrollTop:t.scrollTop,height:t.clientHeight})},wrappedRef:e=>{e&&T({scrollTop:e.scrollTop,height:e.clientHeight})},ref:C},z.length>0&&i?i(z,M,te,Y):void 0,$.length>0&&u?u($,M,se,Y):null,K.length>0&&r?r(K,M,ne,Y):null,ee?n.createElement("span",{className:"mx_AddExistingToSpace_noResults"},(0,m._t)("common|no_results")):void 0),n.createElement("div",{className:"mx_AddExistingToSpace_footer"},q))},N=e=>(t,s,{scrollTop:o,height:i},r)=>n.createElement("div",{className:"mx_AddExistingToSpace_section"},n.createElement("h3",null,(0,m._t)(e)),n.createElement(k.A,{element:"ul",itemHeight:44,items:t,scrollTop:o,height:i,renderItem:e=>n.createElement(T,{key:e.roomId,room:e,checked:s.has(e),onChange:r?t=>{r(t,e)}:void 0})})),D=N((0,m.AO)("common|rooms")),j=N((0,m.AO)("common|spaces")),U=N((0,m.AO)("space|add_existing_room_space|dm_heading")),F=({title:e,space:t,value:s,onChange:o})=>{const a=(0,n.useMemo)(()=>[t,...g.Ay.instance.getChildSpaces(t.roomId).filter(e=>e.currentState.maySendStateEvent(r.EventType.SpaceChild,e.client.getSafeUserId()))],[t]);let l;return l=a.length>1?n.createElement(h.A,{id:"mx_SpaceSelectDropdown",className:"mx_SpaceSelectDropdown",onOptionChange:e=>{o(a.find(t=>t.roomId===e)||t)},value:s.roomId,label:(0,m._t)("space|add_existing_room_space|space_dropdown_label")},a.map(e=>{const t=i()({mx_SubspaceSelector_dropdownOptionActive:e===s});return n.createElement("div",{key:e.roomId,className:t},n.createElement(v.A,{room:e,size:"24px"}),e.name||(0,_.zQ)(e)||e.roomId)})):n.createElement("div",{className:"mx_SubspaceSelector_onlySpace"},t.name||(0,_.zQ)(t)||t.roomId),n.createElement("div",{className:"mx_SubspaceSelector"},n.createElement(v.A,{room:s,size:"40px"}),n.createElement("div",null,n.createElement("h1",null,e),l))},L=({space:e,onCreateRoomClick:t,onAddSubspaceClick:s,onFinished:o})=>{const[i,r]=(0,n.useState)(e);return n.createElement(u.A,{title:n.createElement(F,{title:(0,m._t)("space|add_existing_room_space|space_dropdown_title"),space:e,value:i,onChange:r}),className:"mx_AddExistingToSpaceDialog",contentId:"mx_AddExistingToSpace",onFinished:o,fixedWidth:!1},n.createElement(x.Ay.Provider,{value:e.client},n.createElement(M,{space:e,onFinished:o,footerPrompt:n.createElement(n.Fragment,null,n.createElement("div",null,(0,m._t)("space|add_existing_room_space|create")),n.createElement(f.A,{kind:"link",onClick:e=>{t(e),o()}},(0,m._t)("space|add_existing_room_space|create_prompt"))),filterPlaceholder:(0,m._t)("space|room_filter_placeholder"),roomsRenderer:D,spacesRenderer:()=>n.createElement("div",{className:"mx_AddExistingToSpace_section"},n.createElement("h3",null,(0,m._t)("common|spaces")),n.createElement(f.A,{kind:"link",onClick:()=>{s(),o()}},(0,m._t)("space|add_existing_room_space|subspace_moved_note"))),dmsRenderer:U})))}},"./src/components/views/dialogs/AskInviteAnywayDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>l});var n=s("./node_modules/react/index.js"),o=s("./src/languageHandler.tsx"),i=s("./src/settings/SettingsStore.ts"),r=s("./src/settings/SettingLevel.ts"),a=s("./src/components/views/dialogs/BaseDialog.tsx");function l({onFinished:e,onGiveUp:t,onInviteAnyways:s,unknownProfileUsers:l,description:c,inviteNeverWarnLabel:d,inviteLabel:m}){const u=(0,n.useCallback)(()=>{s(),e(!0)},[s,e]),h=(0,n.useCallback)(()=>{i.A.setValue("promptBeforeInviteUnknownUsers",null,r.p.ACCOUNT,!1),s(),e(!0)},[s,e]),p=(0,n.useCallback)(()=>{t(),e(!1)},[t,e]),g=l.map(e=>n.createElement("li",{key:e.userId},e.userId,": ",e.errorText)),v=null!=c?c:(0,o._t)("invite|unable_find_profiles_description_default");return n.createElement(a.A,{className:"mx_RetryInvitesDialog",onFinished:p,title:(0,o._t)("invite|unable_find_profiles_title"),contentId:"mx_Dialog_content"},n.createElement("div",{id:"mx_Dialog_content"},n.createElement("p",null,v),n.createElement("ul",null,g)),n.createElement("div",{className:"mx_Dialog_buttons"},n.createElement("button",{onClick:p},(0,o._t)("action|close")),n.createElement("button",{onClick:h},null!=d?d:(0,o._t)("invite|unable_find_profiles_invite_never_warn_label_default")),n.createElement("button",{onClick:u,autoFocus:!0},null!=m?m:(0,o._t)("invite|unable_find_profiles_invite_label_default"))))}},"./src/components/views/dialogs/BaseDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>v});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/react-focus-lock/dist/es2015/index.js"),r=s("./node_modules/classnames/index.js"),a=s.n(r),l=s("./src/components/views/elements/AccessibleButton.tsx"),c=s("./src/MatrixClientPeg.ts"),d=s("./src/languageHandler.tsx"),m=s("./src/contexts/MatrixClientContext.tsx"),u=s("./src/components/views/typography/Heading.tsx"),h=s("./src/PosthogTrackers.ts"),p=s("./src/KeyBindingsManager.ts"),g=s("./src/accessibility/KeyboardShortcuts.ts");class v extends o.Component{constructor(e){super(e),(0,n.A)(this,"matrixClient",void 0),(0,n.A)(this,"onKeyDown",e=>{var t,s,n,o;null===(t=(s=this.props).onKeyDown)||void 0===t||t.call(s,e);switch((0,p.zM)().getAccessibilityAction(e)){case g.bY.Escape:if(!this.props.hasCancel)break;e.stopPropagation(),e.preventDefault(),null===(n=(o=this.props).onFinished)||void 0===n||n.call(o)}}),(0,n.A)(this,"onCancelClick",()=>{var e,t;null===(e=(t=this.props).onFinished)||void 0===e||e.call(t)}),this.matrixClient=c.J.get()}render(){let e,t;this.props.hasCancel&&(e=o.createElement(l.A,{onClick:this.onCancelClick,className:"mx_Dialog_cancelButton",title:(0,d._t)("action|close"),"aria-label":(0,d._t)("dialog_close_label"),placement:"bottom"})),this.props.headerImage&&(t=o.createElement("img",{className:"mx_Dialog_titleImage",src:this.props.headerImage,alt:""}));const s={onKeyDown:this.onKeyDown,role:"dialog",tabIndex:-1,"aria-describedby":this.props.contentId};return this.props["aria-label"]?s["aria-label"]=this.props["aria-label"]:s["aria-labelledby"]="mx_BaseDialog_title",o.createElement(m.Ay.Provider,{value:this.matrixClient},this.props.screenName&&o.createElement(h.Z,{screenName:this.props.screenName}),o.createElement(i.Ay,{returnFocus:!0,lockProps:s,className:a()(this.props.className,{mx_Dialog_fixedWidth:this.props.fixedWidth})},this.props.top,o.createElement("div",{className:a()("mx_Dialog_header",{mx_Dialog_headerWithButton:!!this.props.headerButton})},!(!this.props.title&&!t)&&o.createElement(u.A,{size:"3",as:"h1",className:a()("mx_Dialog_title",this.props.titleClass),id:"mx_BaseDialog_title"},t,this.props.title),this.props.headerButton),this.props.children,e))}}(0,n.A)(v,"defaultProps",{hasCancel:!0,fixedWidth:!0})},"./src/components/views/dialogs/BugReportDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>b});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/@vector-im/compound-web/dist/components/Link/Link.js"),r=s("./src/SdkConfig.ts"),a=s("./src/Modal.tsx"),l=s("./src/languageHandler.tsx"),c=s("./src/rageshake/submit-rageshake.ts"),d=s("./src/components/views/elements/AccessibleButton.tsx"),m=s("./src/components/views/dialogs/QuestionDialog.tsx"),u=s("./src/components/views/dialogs/BaseDialog.tsx"),h=s("./src/components/views/elements/Field.tsx"),p=s("./src/components/views/elements/Spinner.tsx"),g=s("./src/components/views/elements/DialogButtons.tsx"),v=s("./src/sentry.ts"),_=s("./src/dispatcher/dispatcher.ts"),f=s("./src/dispatcher/actions.ts"),y=s("./src/SupportedBrowser.ts");class b extends o.Component{constructor(e){super(e),(0,n.A)(this,"unmounted",void 0),(0,n.A)(this,"issueRef",void 0),(0,n.A)(this,"onCancel",()=>{this.props.onFinished(!1)}),(0,n.A)(this,"onSubmit",()=>{if(!(this.state.text&&this.state.text.trim()||this.state.issueUrl&&this.state.issueUrl.trim()))return void this.setState({err:(0,l._t)("bug_reporting|error_empty")});const e=(this.state.text.length>0?this.state.text+"\n\n":"")+"Issue: "+(this.state.issueUrl.length>0?this.state.issueUrl:"No issue link given");this.setState({busy:!0,progress:null,err:null}),this.sendProgressCallback((0,l._t)("bug_reporting|preparing_logs")),(0,c.Ay)(r.Ay.get().bug_report_endpoint_url,{userText:e,sendLogs:!0,progressCallback:this.sendProgressCallback,labels:this.props.label?[this.props.label]:[]}).then(()=>{this.unmounted||(this.props.onFinished(!1),a.Ay.createDialog(m.A,{title:(0,l._t)("bug_reporting|logs_sent"),description:(0,l._t)("bug_reporting|thank_you"),hasCancelButton:!1}))},e=>{this.unmounted||this.setState({busy:!1,progress:null,err:this.getErrorText(e)})}),(0,v.KB)(this.state.text,this.state.issueUrl,this.props.error)}),(0,n.A)(this,"onDownload",async()=>{this.setState({downloadBusy:!0}),this.downloadProgressCallback((0,l._t)("bug_reporting|preparing_download"));try{await(0,c.v0)({sendLogs:!0,progressCallback:this.downloadProgressCallback,labels:this.props.label?[this.props.label]:[]}),this.setState({downloadBusy:!1,downloadProgress:null})}catch(e){this.unmounted||this.setState({downloadBusy:!1,downloadProgress:(0,l._t)("bug_reporting|failed_download_logs")+`${e instanceof Error?e.message:""}`})}}),(0,n.A)(this,"onTextChange",e=>{this.setState({text:e.currentTarget.value})}),(0,n.A)(this,"onIssueUrlChange",e=>{this.setState({issueUrl:e.currentTarget.value})}),(0,n.A)(this,"sendProgressCallback",e=>{this.unmounted||this.setState({progress:e})}),(0,n.A)(this,"downloadProgressCallback",e=>{this.unmounted||this.setState({downloadProgress:e})}),this.state={sendLogs:!0,busy:!1,err:null,issueUrl:"",text:e.initialText||"",progress:null,downloadBusy:!1,downloadProgress:null},this.unmounted=!1,this.issueRef=o.createRef()}componentDidMount(){var e;this.unmounted=!1,null===(e=this.issueRef.current)||void 0===e||e.focus(),_.A.dispatch({action:f.r.DumpDebugLogs})}componentWillUnmount(){this.unmounted=!0}getErrorText(e){var t;if(e instanceof c.U9){let s;switch(e.errorcode){case"DISALLOWED_APP":s=(0,l._t)("bug_reporting|failed_send_logs_causes|disallowed_app");break;case"REJECTED_BAD_VERSION":s=(0,l._t)("bug_reporting|failed_send_logs_causes|rejected_version");break;case"REJECTED_UNEXPECTED_RECOVERY_KEY":s=(0,l._t)("bug_reporting|failed_send_logs_causes|rejected_recovery_key");break;default:s=null!==(t=e.errorcode)&&void 0!==t&&t.startsWith("REJECTED")?(0,l._t)("bug_reporting|failed_send_logs_causes|rejected_generic"):(0,l._t)("bug_reporting|failed_send_logs_causes|server_unknown_error")}return o.createElement(o.Fragment,null,o.createElement("p",null,s),e.policyURL&&o.createElement(i.N,{size:"medium",target:"_blank",href:e.policyURL},(0,l._t)("action|learn_more")))}return o.createElement("p",null,(0,l._t)("bug_reporting|failed_send_logs_causes|unknown_error"))}render(){let e,t,s;return this.state.err&&(e=o.createElement("div",{className:"error"},this.state.err)),this.state.busy&&(t=o.createElement("div",{className:"progress"},o.createElement(p.A,null),this.state.progress," ...")),(window.Modernizr&&Object.values(window.Modernizr).some(e=>!1===e)||!(0,y.mM)())&&(s=o.createElement("p",null,o.createElement("strong",null,(0,l._t)("bug_reporting|unsupported_browser")))),o.createElement(u.A,{className:"mx_BugReportDialog",onFinished:this.onCancel,title:(0,l._t)("bug_reporting|submit_debug_logs"),contentId:"mx_Dialog_content"},o.createElement("div",{className:"mx_Dialog_content",id:"mx_Dialog_content"},s,o.createElement("p",null,(0,l._t)("bug_reporting|description")),o.createElement("p",null,o.createElement("strong",null,(0,l._t)("bug_reporting|before_submitting",{},{a:e=>o.createElement("a",{target:"_blank",href:r.Ay.get().feedback.new_issue_url,rel:"noreferrer noopener"},e)}))),o.createElement("div",{className:"mx_BugReportDialog_download"},o.createElement(d.A,{onClick:this.onDownload,kind:"link",disabled:this.state.downloadBusy},(0,l._t)("bug_reporting|download_logs")),this.state.downloadProgress&&o.createElement("span",null,this.state.downloadProgress," ...")),o.createElement(h.A,{type:"text",className:"mx_BugReportDialog_field_input",label:(0,l._t)("bug_reporting|github_issue"),onChange:this.onIssueUrlChange,value:this.state.issueUrl,placeholder:"https://github.com/vector-im/element-web/issues/...",ref:this.issueRef}),o.createElement(h.A,{className:"mx_BugReportDialog_field_input",element:"textarea",label:(0,l._t)("bug_reporting|textarea_label"),rows:5,onChange:this.onTextChange,value:this.state.text,placeholder:(0,l._t)("bug_reporting|additional_context")}),t,e),o.createElement(g.A,{primaryButton:(0,l._t)("bug_reporting|send_logs"),onPrimaryButtonClick:this.onSubmit,focus:!0,onCancel:this.onCancel,disabled:this.state.busy}))}}},"./src/components/views/dialogs/ConfirmRedactDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>u,Q:()=>h});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./src/languageHandler.tsx"),r=s("./src/MatrixClientPeg.ts"),a=s("./src/Modal.tsx"),l=s("./src/components/views/dialogs/ErrorDialog.tsx"),c=s("./src/components/views/dialogs/TextInputDialog.tsx");function d(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function m(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?d(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):d(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}class u extends o.Component{render(){let e=(0,i._t)("redact|confirm_description");return this.props.event.isState()&&(e+=" "+(0,i._t)("redact|confirm_description_state")),o.createElement(c.A,{onFinished:this.props.onFinished,title:(0,i._t)("redact|confirm_button"),description:e,placeholder:(0,i._t)("redact|reason_label"),focus:!0,button:(0,i._t)("action|remove")})}}function h({mxEvent:e,onCloseDialog:t=()=>{}}){const s=e.getId();if(!s)throw new Error("cannot redact event without ID");const n=e.getRoomId();if(!n)throw new Error(`cannot redact event ${e.getId()} without room ID`);const{finished:o}=a.Ay.createDialog(u,{event:e},"mx_Dialog_confirmredact");o.then(async([e,o])=>{if(!e)return;const c=r.J.safeGet(),d={};try{null==t||t(),await c.redactEvent(n,s,void 0,m(m({},o?{reason:o}:{}),d))}catch(e){const t=e.errcode||e.statusCode;void 0!==t&&a.Ay.createDialog(l.A,{title:(0,i._t)("common|error"),description:(0,i._t)("redact|error",{code:t})})}})}},"./src/components/views/dialogs/ConfirmUserActionDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>h});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/classnames/index.js"),r=s.n(i),a=s("./src/languageHandler.tsx"),l=s("./src/components/views/avatars/MemberAvatar.tsx"),c=s("./src/components/views/dialogs/BaseDialog.tsx"),d=s("./src/components/views/elements/DialogButtons.tsx"),m=s("./src/components/views/elements/Field.tsx"),u=s("./src/customisations/UserIdentifier.ts");class h extends o.Component{constructor(e){super(e),(0,n.A)(this,"onOk",e=>{e.preventDefault(),this.props.onFinished(!0,this.state.reason)}),(0,n.A)(this,"onCancel",()=>{this.props.onFinished(!1)}),(0,n.A)(this,"onReasonChange",e=>{this.setState({reason:e.target.value})}),this.state={reason:""}}render(){const e=this.props.danger?"danger":"";let t;this.props.askReason&&(t=o.createElement("form",{onSubmit:this.onOk},o.createElement(m.A,{type:"text",onChange:this.onReasonChange,value:this.state.reason,className:"mx_ConfirmUserActionDialog_reasonField",label:(0,a._t)("room_settings|permissions|ban_reason"),autoFocus:!0})));const s=o.createElement(l.A,{member:this.props.member,size:"48px"}),n=this.props.member.name,i=this.props.member.userId,h=u.A.getDisplayUserIdentifier(i,{roomId:this.props.roomId,withDisplayName:!0});return o.createElement(c.A,{className:r()("mx_ConfirmUserActionDialog",this.props.className),onFinished:this.props.onFinished,title:this.props.title,contentId:"mx_Dialog_content"},o.createElement("div",{id:"mx_Dialog_content",className:"mx_Dialog_content"},o.createElement("div",{className:"mx_ConfirmUserActionDialog_user"},o.createElement("div",{className:"mx_ConfirmUserActionDialog_avatar"},s),o.createElement("div",{className:"mx_ConfirmUserActionDialog_name"},n),o.createElement("div",{className:"mx_ConfirmUserActionDialog_userId"},h)),t,this.props.children),o.createElement(d.A,{primaryButton:this.props.action,onPrimaryButtonClick:this.onOk,primaryButtonClass:e,focus:!this.props.askReason,onCancel:this.onCancel}))}}(0,n.A)(h,"defaultProps",{danger:!1,askReason:!1})},"./src/components/views/dialogs/CreateRoomDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>x});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./src/SdkConfig.ts"),a=s("./src/components/views/elements/Validation.tsx"),l=s("./src/languageHandler.tsx"),c=s("./src/MatrixClientPeg.ts"),d=s("./src/createRoom.ts"),m=s("./src/components/views/elements/Field.tsx"),u=s("./src/components/views/elements/RoomAliasField.tsx"),h=s("./src/components/views/elements/LabelledToggleSwitch.tsx"),p=s("./src/components/views/elements/DialogButtons.tsx"),g=s("./src/components/views/dialogs/BaseDialog.tsx"),v=s("./src/components/views/elements/JoinRuleDropdown.tsx"),_=s("./src/KeyBindingsManager.ts"),f=s("./src/accessibility/KeyboardShortcuts.ts"),y=s("./src/utils/rooms.ts"),b=s("./src/settings/SettingsStore.ts"),E=s("./src/components/views/elements/LabelledCheckbox.tsx"),w=s("./src/settings/UIFeature.ts");class x extends o.Component{constructor(e){var t;super(e),(0,n.A)(this,"askToJoinEnabled",void 0),(0,n.A)(this,"advancedSettingsEnabled",void 0),(0,n.A)(this,"allowCreatingPublicRooms",void 0),(0,n.A)(this,"supportsRestricted",void 0),(0,n.A)(this,"nameField",(0,o.createRef)()),(0,n.A)(this,"aliasField",(0,o.createRef)()),(0,n.A)(this,"onKeyDown",e=>{if((0,_.zM)().getAccessibilityAction(e)===f.bY.Enter)this.onOk(),e.preventDefault(),e.stopPropagation()}),(0,n.A)(this,"onOk",async()=>{if(!this.nameField.current)return;const e=document.activeElement;if(null==e||e.blur(),await this.nameField.current.validate({allowEmpty:!1}),this.aliasField.current&&await this.aliasField.current.validate({allowEmpty:!1}),await new Promise(e=>this.setState({},e)),!this.state.nameIsValid||this.aliasField.current&&!this.aliasField.current.isValid){let e=null;this.state.nameIsValid?this.aliasField.current&&!this.aliasField.current.isValid&&(e=this.aliasField.current):e=this.nameField.current,e&&(e.focus(),await e.validate({allowEmpty:!1,focused:!0}))}else this.props.onFinished(!0,this.roomCreateOptions())}),(0,n.A)(this,"onCancel",()=>{this.props.onFinished(!1)}),(0,n.A)(this,"onNameChange",e=>{this.setState({name:e.target.value})}),(0,n.A)(this,"onTopicChange",e=>{this.setState({topic:e.target.value})}),(0,n.A)(this,"onJoinRuleChange",e=>{this.setState({joinRule:e})}),(0,n.A)(this,"onEncryptedChange",e=>{this.setState({isEncrypted:e})}),(0,n.A)(this,"onAliasChange",e=>{this.setState({alias:e})}),(0,n.A)(this,"onDetailsToggled",e=>{this.setState({detailsOpen:e.target.open})}),(0,n.A)(this,"onNoFederateChange",e=>{this.setState({noFederate:e})}),(0,n.A)(this,"onNameValidate",async e=>{const t=await x.validateRoomName(e);return this.setState({nameIsValid:!!t.valid}),t}),(0,n.A)(this,"onIsPublicKnockRoomChange",e=>{this.setState({isPublicKnockRoom:e})}),this.askToJoinEnabled=b.A.getValue("feature_ask_to_join"),this.advancedSettingsEnabled=b.A.getValue(w.f.AdvancedSettings),this.allowCreatingPublicRooms=b.A.getValue(w.f.AllowCreatingPublicRooms),this.supportsRestricted=!!this.props.parentSpace;const s=this.allowCreatingPublicRooms&&this.props.defaultPublic;let a=i.JoinRule.Invite;s?a=i.JoinRule.Public:this.supportsRestricted&&(a=i.JoinRule.Restricted);const l=c.J.safeGet();this.state={isPublicKnockRoom:s||!1,isEncrypted:null!==(t=this.props.defaultEncrypted)&&void 0!==t?t:(0,y.u)(l),joinRule:a,name:this.props.defaultName||"",topic:"",alias:"",detailsOpen:!1,noFederate:!1===r.Ay.get().default_federate,nameIsValid:!1,canChangeEncryption:!1}}roomCreateOptions(){const e={},t=e.createOpts={};if(e.roomType=this.props.type,t.name=this.state.name,this.state.joinRule===i.JoinRule.Public){t.visibility=i.Visibility.Public,t.preset=i.Preset.PublicChat,e.guestAccess=!1;const{alias:s}=this.state;t.room_alias_name=s.substring(1,s.indexOf(":"))}else e.encryption=this.state.isEncrypted;return this.state.topic&&(t.topic=this.state.topic),this.state.noFederate&&(t.creation_content={"m.federate":!1}),e.parentSpace=this.props.parentSpace,this.props.parentSpace&&this.state.joinRule===i.JoinRule.Restricted&&(e.joinRule=i.JoinRule.Restricted),this.state.joinRule===i.JoinRule.Knock&&(e.joinRule=i.JoinRule.Knock,t.visibility=this.state.isPublicKnockRoom?i.Visibility.Public:i.Visibility.Private),e}componentDidMount(){var e;const t=c.J.safeGet();(0,d.e)(t,i.Preset.PrivateChat).then(({allowChange:e,forcedValue:t})=>this.setState(s=>({canChangeEncryption:e,isEncrypted:null!=t?t:s.isEncrypted}))),null===(e=this.nameField.current)||void 0===e||e.focus()}render(){const e=this.props.type===i.RoomType.ElementVideo||this.props.type===i.RoomType.UnstableCall;let t,s,n,a;if(this.state.joinRule===i.JoinRule.Public){const e=c.J.safeGet().getDomain();t=o.createElement("div",{className:"mx_CreateRoomDialog_aliasContainer"},o.createElement(u.A,{ref:this.aliasField,onChange:this.onAliasChange,domain:e,value:this.state.alias}))}if(this.state.joinRule===i.JoinRule.Restricted?s=o.createElement("p",null,(0,l._t)("create_room|join_rule_restricted_label",{},{SpaceName:()=>{var e,t;return o.createElement("strong",null,null!==(e=null===(t=this.props.parentSpace)||void 0===t?void 0:t.name)&&void 0!==e?e:(0,l._t)("common|unnamed_space"))}})," ",(0,l._t)("create_room|join_rule_change_notice")):this.state.joinRule===i.JoinRule.Public&&this.props.parentSpace?s=o.createElement("p",null,(0,l._t)("create_room|join_rule_public_parent_space_label",{},{SpaceName:()=>{var e,t;return o.createElement("strong",null,null!==(e=null===(t=this.props.parentSpace)||void 0===t?void 0:t.name)&&void 0!==e?e:(0,l._t)("common|unnamed_space"))}})," ",(0,l._t)("create_room|join_rule_change_notice")):this.state.joinRule===i.JoinRule.Public?s=o.createElement("p",null,(0,l._t)("create_room|join_rule_public_label")," ",(0,l._t)("create_room|join_rule_change_notice")):this.state.joinRule===i.JoinRule.Invite?s=o.createElement("p",null,(0,l._t)("create_room|join_rule_invite_label")," ",(0,l._t)("create_room|join_rule_change_notice")):this.state.joinRule===i.JoinRule.Knock&&(s=o.createElement("p",null,(0,l._t)("create_room|join_rule_knock_label"))),this.state.joinRule===i.JoinRule.Knock&&(n=o.createElement(E.A,{className:"mx_CreateRoomDialog_labelledCheckbox",label:(0,l._t)("room_settings|security|publish_room"),onChange:this.onIsPublicKnockRoomChange,value:this.state.isPublicKnockRoom})),this.state.joinRule!==i.JoinRule.Public){let t;t=(0,y.u)(c.J.safeGet())?this.state.canChangeEncryption?e?(0,l._t)("create_room|encrypted_video_room_warning"):(0,l._t)("create_room|encrypted_warning"):(0,l._t)("create_room|encryption_forced"):(0,l._t)("settings|security|e2ee_default_disabled_warning"),a=o.createElement(o.Fragment,null,o.createElement(h.A,{label:(0,l._t)("create_room|encryption_label"),onChange:this.onEncryptedChange,value:this.state.isEncrypted,className:"mx_CreateRoomDialog_e2eSwitch",disabled:!this.state.canChangeEncryption}),o.createElement("p",null,t))}let d,_=(0,l._t)("create_room|unfederated_label_default_off");return!1===r.Ay.get().default_federate&&(_=(0,l._t)("create_room|unfederated_label_default_on")),d=e?(0,l._t)("create_room|title_video_room"):this.props.parentSpace||this.state.joinRule===i.JoinRule.Knock?(0,l._t)("action|create_a_room"):this.state.joinRule===i.JoinRule.Public?(0,l._t)("create_room|title_public_room"):(0,l._t)("create_room|title_private_room"),o.createElement(g.A,{className:"mx_CreateRoomDialog",onFinished:this.props.onFinished,title:d,screenName:"CreateRoom"},o.createElement("form",{onSubmit:this.onOk,onKeyDown:this.onKeyDown},o.createElement("div",{className:"mx_Dialog_content"},o.createElement(m.A,{ref:this.nameField,label:(0,l._t)("common|name"),onChange:this.onNameChange,onValidate:this.onNameValidate,value:this.state.name,className:"mx_CreateRoomDialog_name"}),o.createElement(m.A,{label:(0,l._t)("create_room|topic_label"),onChange:this.onTopicChange,value:this.state.topic,className:"mx_CreateRoomDialog_topic"}),o.createElement(v.A,{label:(0,l._t)("create_room|room_visibility_label"),labelInvite:(0,l._t)("create_room|join_rule_invite"),labelKnock:this.askToJoinEnabled?(0,l._t)("room_settings|security|join_rule_knock"):void 0,labelPublic:this.allowCreatingPublicRooms?(0,l._t)("common|public_room"):void 0,labelRestricted:this.supportsRestricted?(0,l._t)("create_room|join_rule_restricted"):void 0,value:this.state.joinRule,onChange:this.onJoinRuleChange}),s,n,a,t,this.advancedSettingsEnabled&&o.createElement("details",{onToggle:this.onDetailsToggled,className:"mx_CreateRoomDialog_details"},o.createElement("summary",{className:"mx_CreateRoomDialog_details_summary"},this.state.detailsOpen?(0,l._t)("action|hide_advanced"):(0,l._t)("action|show_advanced")),o.createElement(h.A,{label:(0,l._t)("create_room|unfederated",{serverName:c.J.safeGet().getDomain()}),onChange:this.onNoFederateChange,value:this.state.noFederate}),o.createElement("p",null,_)))),o.createElement(p.A,{primaryButton:e?(0,l._t)("create_room|action_create_video_room"):(0,l._t)("create_room|action_create_room"),onPrimaryButtonClick:this.onOk,onCancel:this.onCancel}))}}(0,n.A)(x,"validateRoomName",(0,a.A)({rules:[{key:"required",test:async({value:e})=>!!e,invalid:()=>(0,l._t)("create_room|name_validation_required")}]}))},"./src/components/views/dialogs/DevtoolsDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>te});var n=s("./node_modules/react/index.js"),o=s("./src/languageHandler.tsx"),i=s("./src/contexts/MatrixClientContext.tsx"),r=s("./src/components/views/dialogs/BaseDialog.tsx"),a=s("./src/components/views/dialogs/devtools/Event.tsx"),l=s("./node_modules/matrix-js-sdk/src/matrix.ts"),c=s("./node_modules/matrix-js-sdk/src/types.ts"),d=s("./src/components/views/dialogs/devtools/BaseTool.tsx");const m=({onBack:e})=>{const t=(0,n.useContext)(d.I),s=(0,n.useMemo)(()=>{const e={};return t.room.currentState.getStateEvents(l.EventType.RoomMember).forEach(t=>{var s;if(t.getContent().membership!==c.O.Join)return;const n=t.getSender().split(":")[1];e[n]=(null!==(s=e[n])&&void 0!==s?s:0)+1}),e},[t.room]);return n.createElement(d.A,{onBack:e},n.createElement("table",null,n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",null,(0,o._t)("common|server")),n.createElement("th",null,(0,o._t)("devtools|number_of_users")))),n.createElement("tbody",null,Object.entries(s).map(([e,t])=>n.createElement("tr",{key:e},n.createElement("td",null,e),n.createElement("td",null,t))))))};var u=s("./node_modules/matrix-js-sdk/src/logger.ts"),h=s("./src/components/views/elements/AccessibleButton.tsx"),p=s("./src/settings/SettingsStore.ts"),g=s("./src/settings/Settings.tsx"),v=s("./src/components/views/elements/Field.tsx");const _=({onBack:e})=>{const[t,s]=(0,n.useState)(null),[o,i]=(0,n.useState)(!1);if(t&&o){const e=()=>{i(!1)};return n.createElement(b,{setting:t,onBack:e})}if(t){const e=()=>{s(null)},o=async()=>{i(!0)};return n.createElement(E,{setting:t,onBack:e,onEdit:o})}{const t=e=>{s(e)},o=e=>{s(e),i(!0)};return n.createElement(x,{onBack:e,onView:t,onEdit:o})}},f=({setting:e,roomId:t,level:s})=>{const o=p.A.canSetValue(e,null!=t?t:null,s),i=o?"mx_DevTools_SettingsExplorer_mutable":"mx_DevTools_SettingsExplorer_immutable";return n.createElement("td",{className:i},n.createElement("code",null,o.toString()))};function y(e,t){const s={};for(const n of p.s)try{s[n]=p.A.getValueAt(n,e,t,!0,!0),void 0===s[n]&&(s[n]=null)}catch(e){u.vF.warn(e)}return JSON.stringify(s,null,4)}const b=({setting:e,onBack:t})=>{const s=(0,n.useContext)(d.I),[i,r]=(0,n.useState)(y(e)),[a,l]=(0,n.useState)(y(e,s.room.roomId));return n.createElement(d.A,{onBack:t,actionLabel:(0,o.AO)("devtools|save_setting_values"),onAction:async()=>{try{const n=JSON.parse(i),o=JSON.parse(a);for(const t of Object.keys(n)){u.vF.log(`[Devtools] Setting value of ${e} at ${t} from user input`);try{const s=n[t];await p.A.setValue(e,null,t,s)}catch(e){u.vF.warn(e)}}const r=s.room.roomId;for(const t of Object.keys(n)){u.vF.log(`[Devtools] Setting value of ${e} at ${t} in ${r} from user input`);try{const s=o[t];await p.A.setValue(e,r,t,s)}catch(e){u.vF.warn(e)}}t()}catch(e){return(0,o._t)("devtools|failed_to_save")+(e instanceof Error?` (${e.message})`:"")}}},n.createElement("h3",null,(0,o._t)("devtools|setting_colon")," ",n.createElement("code",null,e)),n.createElement("div",{className:"mx_DevTools_SettingsExplorer_warning"},n.createElement("strong",null,(0,o._t)("devtools|caution_colon"))," ",(0,o._t)("devtools|use_at_own_risk")),n.createElement("div",null,(0,o._t)("devtools|setting_definition"),n.createElement("pre",null,n.createElement("code",null,JSON.stringify(g.yy[e],null,4)))),n.createElement("div",null,n.createElement("table",null,n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",null,(0,o._t)("devtools|level")),n.createElement("th",null,(0,o._t)("devtools|settable_global")),n.createElement("th",null,(0,o._t)("devtools|settable_room")))),n.createElement("tbody",null,p.s.map(t=>n.createElement("tr",{key:t},n.createElement("td",null,n.createElement("code",null,t)),n.createElement(f,{setting:e,level:t}),n.createElement(f,{setting:e,roomId:s.room.roomId,level:t})))))),n.createElement("div",null,n.createElement(v.A,{id:"valExpl",label:(0,o._t)("devtools|values_explicit"),type:"text",className:"mx_DevTools_textarea",element:"textarea",autoComplete:"off",value:i,onChange:e=>r(e.target.value)})),n.createElement("div",null,n.createElement(v.A,{id:"valExpl",label:(0,o._t)("devtools|values_explicit_room"),type:"text",className:"mx_DevTools_textarea",element:"textarea",autoComplete:"off",value:a,onChange:e=>l(e.target.value)})))},E=({setting:e,onEdit:t,onBack:s})=>{const i=(0,n.useContext)(d.I);return n.createElement(d.A,{onBack:s,actionLabel:(0,o.AO)("devtools|edit_values"),onAction:t},n.createElement("h3",null,(0,o._t)("devtools|setting_colon")," ",n.createElement("code",null,e)),n.createElement("div",null,(0,o._t)("devtools|setting_definition"),n.createElement("pre",null,n.createElement("code",null,JSON.stringify(g.yy[e],null,4)))),n.createElement("div",null,(0,o._t)("devtools|value_colon")," ",n.createElement("code",null,w(p.A.getValue(e)))),n.createElement("div",null,(0,o._t)("devtools|value_this_room_colon")," ",n.createElement("code",null,w(p.A.getValue(e,i.room.roomId)))),n.createElement("div",null,(0,o._t)("devtools|values_explicit_colon"),n.createElement("pre",null,n.createElement("code",null,y(e)))),n.createElement("div",null,(0,o._t)("devtools|values_explicit_this_room_colon"),n.createElement("pre",null,n.createElement("code",null,y(e,i.room.roomId)))))};function w(e){return["boolean","number"].includes(typeof e)?e.toString():JSON.stringify(e)}const x=({onBack:e,onView:t,onEdit:s})=>{const i=(0,n.useContext)(d.I),[r,a]=(0,n.useState)(""),l=(0,n.useMemo)(()=>{let e=Object.keys(g.yy);if(r){const t=r.toLowerCase();e=e.filter(e=>e.toLowerCase().includes(t))}return e},[r]);return n.createElement(d.A,{onBack:e,className:"mx_DevTools_SettingsExplorer"},n.createElement(v.A,{label:(0,o._t)("common|filter_results"),autoFocus:!0,size:64,type:"text",autoComplete:"off",value:r,onChange:e=>a(e.target.value),className:"mx_TextInputDialog_input mx_DevTools_RoomStateExplorer_query"}),n.createElement("table",null,n.createElement("thead",null,n.createElement("tr",null,n.createElement("th",null,(0,o._t)("devtools|setting_id")),n.createElement("th",null,(0,o._t)("devtools|value")),n.createElement("th",null,(0,o._t)("devtools|value_in_this_room")))),n.createElement("tbody",null,l.map(e=>n.createElement("tr",{key:e},n.createElement("td",null,n.createElement(h.A,{kind:"link_inline",className:"mx_DevTools_SettingsExplorer_setting",onClick:()=>t(e)},n.createElement("code",null,e)),n.createElement(h.A,{title:(0,o._t)("devtools|edit_setting"),onClick:()=>s(e),className:"mx_DevTools_SettingsExplorer_edit"},"✏")),n.createElement("td",null,n.createElement("code",null,w(p.A.getValue(e)))),n.createElement("td",null,n.createElement("code",null,w(p.A.getValue(e,i.room.roomId)))))))))};var A=s("./src/components/views/dialogs/devtools/RoomState.tsx"),S=s("./src/hooks/useEventEmitter.ts"),C=s("./src/stores/WidgetStore.ts"),R=s("./src/stores/AsyncStore.ts"),k=s("./src/components/views/dialogs/devtools/FilteredList.tsx");const I=({onBack:e})=>{const t=(0,n.useContext)(d.I),[s,i]=(0,n.useState)(""),[r,a]=(0,n.useState)(null),l=(0,S.dF)(C.Ay.instance,R.H,()=>C.Ay.instance.getApps(t.room.roomId));if(r&&l.includes(r)){const e=()=>{a(null)},s=Array.from(Array.from(t.room.currentState.events.values()).map(e=>e.values())).reduce((e,t)=>(e.push(...t),e),[]).find(e=>e.getId()===r.eventId);return s?n.createElement(A.N,{mxEvent:s,onBack:e}):n.createElement(d.A,{onBack:e},(0,o._t)("devtools|failed_to_find_widget"))}return n.createElement(d.A,{onBack:e},n.createElement(k.A,{query:s,onChange:i},l.map(e=>n.createElement("button",{className:"mx_DevTools_button",key:e.url+e.eventId,onClick:()=>a(e)},e.url))))},P=({mxEvent:e,onBack:t})=>{const s=(0,n.useContext)(i.Ay),o=(0,n.useMemo)(()=>[(0,a.r3)(null==e?void 0:e.getType())],[e]),r=e?(0,a.As)(e.getContent()):void 0;return n.createElement(a.E8,{fieldDefs:o,defaultContent:r,onSend:async([e],t)=>{await s.setAccountData(e,t||{})},onBack:t})},T=({mxEvent:e,onBack:t})=>{const s=(0,n.useContext)(d.I),o=(0,n.useContext)(i.Ay),r=(0,n.useMemo)(()=>[(0,a.r3)(null==e?void 0:e.getType())],[e]),l=e?(0,a.As)(e.getContent()):void 0;return n.createElement(a.E8,{fieldDefs:r,defaultContent:l,onSend:async([e],t)=>{await o.setRoomAccountData(s.room.roomId,e,t||{})},onBack:t})},O=({events:e,Editor:t,actionLabel:s,onBack:o,setTool:i})=>{const[r,l]=(0,n.useState)(""),[c,m]=(0,n.useState)(null);if(c){const e=()=>{m(null)};return n.createElement(a.t2,{mxEvent:c,onBack:e,Editor:t})}return n.createElement(d.A,{onBack:o,actionLabel:s,onAction:async()=>{i(s,t)}},n.createElement(k.A,{query:r,onChange:l},Array.from(e.entries()).map(([e,t])=>n.createElement("button",{className:"mx_DevTools_button",key:e,onClick:()=>{m(t)}},e))))};var M=s("./src/components/views/elements/SettingsFlag.tsx"),N=s("./src/settings/SettingLevel.ts"),D=s("./src/components/views/dialogs/devtools/ServerInfo.tsx"),j=s("./src/components/views/elements/CopyableText.tsx"),U=s("./src/hooks/useRoomNotificationState.ts"),F=s("./src/RoomNotifs.ts"),L=s("./src/stores/notifications/NotificationLevel.ts"),B=s("./src/Unread.ts"),V=s("./src/hooks/useIsEncrypted.ts");function H({target:e}){var t,s,r,a,c,d,m,u;const h=(0,n.useContext)(i.Ay).getSafeUserId(),p=!!e.getReadReceiptForUserId(h,!1,l.ReceiptType.ReadPrivate);return n.createElement(n.Fragment,null,n.createElement("li",null,(0,o._t)("devtools|user_read_up_to"),n.createElement("strong",null,null!==(t=null===(s=e.getReadReceiptForUserId(h))||void 0===s?void 0:s.eventId)&&void 0!==t?t:(0,o._t)("devtools|no_receipt_found"))),n.createElement("li",null,(0,o._t)("devtools|user_read_up_to_ignore_synthetic"),n.createElement("strong",null,null!==(r=null===(a=e.getReadReceiptForUserId(h,!0))||void 0===a?void 0:a.eventId)&&void 0!==r?r:(0,o._t)("devtools|no_receipt_found"))),p&&n.createElement(n.Fragment,null,n.createElement("li",null,(0,o._t)("devtools|user_read_up_to_private"),n.createElement("strong",null,null!==(c=null===(d=e.getReadReceiptForUserId(h,!1,l.ReceiptType.ReadPrivate))||void 0===d?void 0:d.eventId)&&void 0!==c?c:(0,o._t)("devtools|no_receipt_found"))),n.createElement("li",null,(0,o._t)("devtools|user_read_up_to_private_ignore_synthetic"),n.createElement("strong",null,null!==(m=null===(u=e.getReadReceiptForUserId(h,!0,l.ReceiptType.ReadPrivate))||void 0===u?void 0:u.eventId)&&void 0!==m?m:(0,o._t)("devtools|no_receipt_found")))))}var W=s("./node_modules/@vector-im/compound-web/dist/components/InlineSpinner/InlineSpinner.js"),$=s("./src/hooks/useAsyncMemo.ts"),z=s("./src/Modal.tsx"),K=s("./src/components/views/dialogs/ManualDeviceKeyVerificationDialog.tsx");function J(){const e=(0,i.nH)(),t=(0,$.e)(async()=>{const t=e.getCrypto(),s=await t.getKeyBackupInfo(),n=Boolean(await e.isKeyBackupKeyStored()),o=await t.getSessionBackupPrivateKey();return{backupInfo:s,backupKeyStored:n,backupKeyCached:Boolean(o),backupKeyWellFormed:o instanceof Uint8Array,activeBackupVersion:await t.getActiveSessionBackupVersion(),secretStorageKeyInAccount:await e.secretStorage.hasKey(),secretStorageReady:await t.isSecretStorageReady()}},[e]);if(void 0===t)return n.createElement(W.Z,{"aria-label":(0,o._t)("common|loading")});const{backupInfo:s,backupKeyStored:r,backupKeyCached:a,backupKeyWellFormed:l,activeBackupVersion:c,secretStorageKeyInAccount:d,secretStorageReady:m}=t;return n.createElement("table",{"aria-label":(0,o._t)("devtools|crypto|key_storage")},n.createElement("thead",null,(0,o._t)("devtools|crypto|key_storage")),n.createElement("tbody",null,n.createElement("tr",null,n.createElement("th",{scope:"row"},(0,o._t)("devtools|crypto|key_backup_latest_version")),n.createElement("td",null,s?`${s.version} (${(0,o._t)("settings|security|key_backup_algorithm")} ${s.algorithm})`:(0,o._t)("devtools|crypto|key_backup_inactive_warning"))),n.createElement("tr",null,n.createElement("th",{scope:"row"},(0,o._t)("devtools|crypto|backup_key_stored_status")),n.createElement("td",null,r?(0,o._t)("devtools|crypto|backup_key_stored"):(0,o._t)("devtools|crypto|backup_key_not_stored"))),n.createElement("tr",null,n.createElement("th",{scope:"row"},(0,o._t)("devtools|crypto|key_backup_active_version")),n.createElement("td",null,null===c?(0,o._t)("devtools|crypto|key_backup_active_version_none"):c)),n.createElement("tr",null,n.createElement("th",{scope:"row"},(0,o._t)("devtools|crypto|backup_key_cached_status")),n.createElement("td",null,`${a?(0,o._t)("devtools|crypto|backup_key_cached"):(0,o._t)("devtools|crypto|not_found_locally")}, ${l?(0,o._t)("devtools|crypto|backup_key_well_formed"):(0,o._t)("devtools|crypto|backup_key_unexpected_type")}`)),n.createElement("tr",null,n.createElement("th",{scope:"row"},(0,o._t)("devtools|crypto|4s_public_key_status")),n.createElement("td",null,d?(0,o._t)("devtools|crypto|4s_public_key_in_account_data"):(0,o._t)("devtools|crypto|4s_public_key_not_in_account_data"))),n.createElement("tr",null,n.createElement("th",{scope:"row"},(0,o._t)("devtools|crypto|secret_storage_status")),n.createElement("td",null,m?(0,o._t)("devtools|crypto|secret_storage_ready"):(0,o._t)("devtools|crypto|secret_storage_not_ready")))))}function G(){const e=(0,i.nH)(),t=(0,$.e)(async()=>{const t=e.getCrypto(),s=await t.getCrossSigningStatus();return{crossSigningPublicKeysOnDevice:s.publicKeysOnDevice,crossSigningPrivateKeysInStorage:s.privateKeysInSecretStorage,masterPrivateKeyCached:s.privateKeysCachedLocally.masterKey,selfSigningPrivateKeyCached:s.privateKeysCachedLocally.selfSigningKey,userSigningPrivateKeyCached:s.privateKeysCachedLocally.userSigningKey,crossSigningReady:await t.isCrossSigningReady()}},[e]);if(void 0===t)return n.createElement(W.Z,{"aria-label":(0,o._t)("common|loading")});const{crossSigningPublicKeysOnDevice:s,crossSigningPrivateKeysInStorage:r,masterPrivateKeyCached:a,selfSigningPrivateKeyCached:l,userSigningPrivateKeyCached:c,crossSigningReady:d}=t;return n.createElement("table",{"aria-label":(0,o._t)("devtools|crypto|cross_signing")},n.createElement("thead",null,(0,o._t)("devtools|crypto|cross_signing")),n.createElement("tbody",null,n.createElement("tr",null,n.createElement("th",{scope:"row"},(0,o._t)("devtools|crypto|cross_signing_status")),n.createElement("td",null,function(e,t){if(e)return t?(0,o._t)("devtools|crypto|cross_signing_ready"):(0,o._t)("devtools|crypto|cross_signing_untrusted");if(t)return(0,o._t)("devtools|crypto|cross_signing_not_ready");return(0,o._t)("devtools|crypto|cross_signing_not_ready")}(d,r))),n.createElement("tr",null,n.createElement("th",{scope:"row"},(0,o._t)("devtools|crypto|cross_signing_public_keys_on_device_status")),n.createElement("td",null,s?(0,o._t)("devtools|crypto|cross_signing_public_keys_on_device"):(0,o._t)("devtools|crypto|not_found"))),n.createElement("tr",null,n.createElement("th",{scope:"row"},(0,o._t)("devtools|crypto|cross_signing_private_keys_in_storage_status")),n.createElement("td",null,r?(0,o._t)("devtools|crypto|cross_signing_private_keys_in_storage"):(0,o._t)("devtools|crypto|cross_signing_private_keys_not_in_storage"))),n.createElement("tr",null,n.createElement("th",{scope:"row"},(0,o._t)("devtools|crypto|master_private_key_cached_status")),n.createElement("td",null,a?(0,o._t)("devtools|crypto|cross_signing_cached"):(0,o._t)("devtools|crypto|not_found_locally"))),n.createElement("tr",null,n.createElement("th",{scope:"row"},(0,o._t)("devtools|crypto|self_signing_private_key_cached_status")),n.createElement("td",null,l?(0,o._t)("devtools|crypto|cross_signing_cached"):(0,o._t)("devtools|crypto|not_found_locally"))),n.createElement("tr",null,n.createElement("th",{scope:"row"},(0,o._t)("devtools|crypto|user_signing_private_key_cached_status")),n.createElement("td",null,c?(0,o._t)("devtools|crypto|cross_signing_cached"):(0,o._t)("devtools|crypto|not_found_locally")))))}function q(){const e=(0,i.nH)(),t=(0,$.e)(async()=>{const t=e.getCrypto();return{fingerprint:(await t.getOwnDeviceKeys()).ed25519,deviceId:e.deviceId}},[e]);return void 0===t?n.createElement(W.Z,{"aria-label":(0,o._t)("common|loading")}):n.createElement("table",{"aria-label":(0,o._t)("devtools|crypto|session")},n.createElement("thead",null,(0,o._t)("devtools|crypto|session")),n.createElement("tbody",null,n.createElement("tr",null,n.createElement("th",{scope:"row"},(0,o._t)("devtools|crypto|device_id")),n.createElement("td",null,t.deviceId)),n.createElement("tr",null,n.createElement("th",{scope:"row"},(0,o._t)("devtools|crypto|session_fingerprint")),n.createElement("td",null,t.fingerprint))))}var Y=s("./node_modules/@vector-im/compound-web/dist/components/Form/Controls/EditInPlace/EditInPlace.js");const Z=({settingKey:e,level:t,roomId:s,isExplicit:i,label:r,onChange:a})=>{var l;const c=p.A.getValueAt(t,e,s,i),[d,m]=(0,n.useState)(c),[u,h]=(0,n.useState)(!1),g=(0,n.useCallback)(e=>{m(e.target.value)},[]),v=(0,n.useCallback)(()=>{m(c)},[c]),_=(0,n.useCallback)(async()=>{h(!0),await p.A.setValue(e,null!=s?s:null,t,d),h(!1),null==a||a(d)},[t,s,e,d,a]);return n.createElement(Y.d,{label:null!==(l=null!=r?r:p.A.getDisplayName(e,t))&&void 0!==l?l:"",value:d,saveButtonLabel:(0,o._t)("common|save"),cancelButtonLabel:(0,o._t)("common|cancel"),savedLabel:(0,o._t)("common|saved"),savingLabel:(0,o._t)("common|updating"),onChange:g,onCancel:v,onSave:_,disabled:u})};var Q=function(e){return e[e.Room=0]="Room",e[e.Other=1]="Other",e}(Q||{});const X={[Q.Room]:(0,o.AO)("devtools|category_room"),[Q.Other]:(0,o.AO)("devtools|category_other")},ee={[Q.Room]:[[(0,o.AO)("devtools|send_custom_timeline_event"),a.lv],[(0,o.AO)("devtools|explore_room_state"),A.y],[(0,o.AO)("devtools|explore_room_account_data"),({onBack:e,setTool:t})=>{const s=(0,n.useContext)(d.I);return n.createElement(O,{events:s.room.accountData,Editor:T,actionLabel:(0,o.AO)("devtools|send_custom_room_account_data_event"),onBack:e,setTool:t})}],[(0,o.AO)("devtools|view_servers_in_room"),m],[(0,o.AO)("devtools|notifications_debug"),function({onBack:e}){const{room:t}=(0,n.useContext)(d.I),s=(0,n.useContext)(i.Ay),r=(0,V.g)(s,t),{level:a,count:c}=(0,F.m5)(t,void 0,!1),[m]=(0,U.I)(t);return n.createElement(d.A,{onBack:e},n.createElement("section",null,n.createElement("h2",null,(0,o._t)("devtools|room_status")),n.createElement("ul",null,n.createElement("li",null,(0,o._t)("devtools|room_unread_status_count",{status:(0,L.z)(a),count:c},{strong:e=>n.createElement("strong",null,e)})),n.createElement("li",null,(0,o._t)("devtools|notification_state",{notificationState:m},{strong:e=>n.createElement("strong",null,e)})),n.createElement("li",null,(0,o._t)(r?(0,o.AO)("devtools|room_encrypted"):(0,o.AO)("devtools|room_not_encrypted"),{},{strong:e=>n.createElement("strong",null,e)})))),n.createElement("section",null,n.createElement("h2",null,(0,o._t)("devtools|main_timeline")),n.createElement("ul",null,n.createElement("li",null,(0,o._t)("devtools|room_notifications_total")," ",t.getRoomUnreadNotificationCount(l.NotificationCountType.Total)),n.createElement("li",null,(0,o._t)("devtools|room_notifications_highlight")," ",t.getRoomUnreadNotificationCount(l.NotificationCountType.Highlight)),n.createElement("li",null,(0,o._t)("devtools|room_notifications_dot")," ",(0,B.jM)(t)+""),function(e){const t=e.getRoomUnreadNotificationCount(l.NotificationCountType.Total),s=e.getRoomUnreadNotificationCount(l.NotificationCountType.Highlight),n=(0,B.jM)(e);return t>0||s>0||n}(t)&&n.createElement(n.Fragment,null,n.createElement(H,{target:t}),n.createElement("li",null,(0,o._t)("devtools|room_notifications_last_event"),n.createElement("ul",null,n.createElement("li",null,(0,o._t)("devtools|id")," ",n.createElement("strong",null,t.timeline[t.timeline.length-1].getId())),n.createElement("li",null,(0,o._t)("devtools|room_notifications_type")," ",n.createElement("strong",null,t.timeline[t.timeline.length-1].getType())),n.createElement("li",null,(0,o._t)("devtools|room_notifications_sender")," ",n.createElement("strong",null,t.timeline[t.timeline.length-1].getSender()))))))),n.createElement("section",null,n.createElement("h2",null,(0,o._t)("devtools|threads_timeline")),n.createElement("ul",null,t.getThreads().filter(e=>function(e){const t=e.room.getThreadUnreadNotificationCount(e.id,l.NotificationCountType.Total),s=e.room.getThreadUnreadNotificationCount(e.id,l.NotificationCountType.Highlight),n=(0,B.jM)(e);return t>0||s>0||n}(e)).map(e=>{var s,i,r;return n.createElement("li",{key:e.id},(0,o._t)("devtools|room_notifications_thread_id")," ",e.id,n.createElement("ul",null,n.createElement("li",null,(0,o._t)("devtools|room_notifications_total"),n.createElement("strong",null,t.getThreadUnreadNotificationCount(e.id,l.NotificationCountType.Total))),n.createElement("li",null,(0,o._t)("devtools|room_notifications_highlight"),n.createElement("strong",null,t.getThreadUnreadNotificationCount(e.id,l.NotificationCountType.Highlight))),n.createElement("li",null,(0,o._t)("devtools|room_notifications_dot")," ",n.createElement("strong",null,(0,B.jM)(e)+"")),n.createElement(H,{target:e}),n.createElement("li",null,(0,o._t)("devtools|room_notifications_last_event"),n.createElement("ul",null,n.createElement("li",null,(0,o._t)("devtools|id")," ",n.createElement("strong",null,null===(s=e.lastReply())||void 0===s?void 0:s.getId())),n.createElement("li",null,(0,o._t)("devtools|room_notifications_type")," ",n.createElement("strong",null,null===(i=e.lastReply())||void 0===i?void 0:i.getType())),n.createElement("li",null,(0,o._t)("devtools|room_notifications_sender")," ",n.createElement("strong",null,null===(r=e.lastReply())||void 0===r?void 0:r.getSender()))))))}))))}],[(0,o.AO)("devtools|active_widgets"),I]],[Q.Other]:[[(0,o.AO)("devtools|explore_account_data"),({onBack:e,setTool:t})=>{const s=(0,n.useContext)(i.Ay);return n.createElement(O,{events:s.store.accountData,Editor:P,actionLabel:(0,o.AO)("devtools|send_custom_account_data_event"),onBack:e,setTool:t})}],[(0,o.AO)("devtools|settings_explorer"),_],[(0,o.AO)("devtools|server_info"),D.A],[(0,o.AO)("devtools|crypto|title"),function({onBack:e}){const t=(0,i.nH)();return n.createElement(d.A,{onBack:e,className:"mx_Crypto"},t.getCrypto()?n.createElement(n.Fragment,null,n.createElement(J,null),n.createElement(G,null),n.createElement(q,null),n.createElement("button",{type:"button",onClick:()=>{z.Ay.createDialog(K.T)}},(0,o._t)("devtools|manual_device_verification"))):n.createElement("span",null,(0,o._t)("devtools|crypto|crypto_not_available")))}]]},te=({roomId:e,threadRootId:t,onFinished:s})=>{const[a,l]=(0,n.useState)(null);let c,m;if(a){m=()=>{l(null)};const e=a[1];c=n.createElement(e,{onBack:m,setTool:(e,t)=>l([e,t])})}else{const e=()=>{s(!1)};c=n.createElement(d.A,{onBack:e},Object.entries(ee).map(([e,t])=>n.createElement("div",{key:e},n.createElement("h2",{className:"mx_DevTools_toolHeading"},(0,o._t)(X[e])),t.map(([e,t])=>n.createElement("button",{className:"mx_DevTools_button",key:e,onClick:()=>{l([e,t])}},(0,o._t)(e))))),n.createElement("div",null,n.createElement("h2",{className:"mx_DevTools_toolHeading"},(0,o._t)("common|options")),n.createElement(M.A,{name:"developerMode",level:N.p.ACCOUNT}),n.createElement(M.A,{name:"showHiddenEventsInTimeline",level:N.p.DEVICE}),n.createElement(M.A,{name:"enableWidgetScreenshots",level:N.p.ACCOUNT}),n.createElement(Z,{settingKey:"Developer.elementCallUrl",level:N.p.DEVICE})))}const u=a?(0,o._t)(a[0]):(0,o._t)("devtools|toolbox");return n.createElement(r.A,{className:"mx_QuestionDialog",onFinished:s,title:(0,o._t)("devtools|developer_tools")},n.createElement(i.Ay.Consumer,null,s=>n.createElement(n.Fragment,null,n.createElement("div",{className:"mx_DevTools_label_left"},u),n.createElement(j.A,{className:"mx_DevTools_label_right",getTextToCopy:()=>e,border:!1},(0,o._t)("devtools|room_id",{roomId:e})),t?n.createElement(j.A,{className:"mx_DevTools_label_right",getTextToCopy:()=>t,border:!1},(0,o._t)("devtools|thread_root_id",{threadRootId:t})):null,n.createElement("div",{className:"mx_DevTools_label_bottom"}),s.getRoom(e)&&n.createElement(d.I.Provider,{value:{room:s.getRoom(e),threadRootId:t}},c))))}},"./src/components/views/dialogs/ErrorDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{$:()=>a,A:()=>l});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./src/languageHandler.tsx"),r=s("./src/components/views/dialogs/BaseDialog.tsx");function a(e,t){return e instanceof i.P7&&e.translatedMessage||e instanceof Error&&e.message||t}class l extends o.Component{constructor(...e){super(...e),(0,n.A)(this,"onClick",()=>{this.props.onFinished(!0)})}render(){return o.createElement(r.A,{className:"mx_ErrorDialog",onFinished:this.props.onFinished,title:this.props.title||(0,i._t)("common|error"),headerImage:this.props.headerImage,contentId:"mx_Dialog_content"},o.createElement("div",{className:"mx_Dialog_content",id:"mx_Dialog_content"},this.props.description||(0,i._t)("error|dialog_description_default")),o.createElement("div",{className:"mx_Dialog_buttons"},o.createElement("button",{className:"mx_Dialog_primary",onClick:this.onClick,autoFocus:this.props.focus},this.props.button||(0,i._t)("action|ok"))))}}(0,n.A)(l,"defaultProps",{focus:!0})},"./src/components/views/dialogs/InfoDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>d});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/classnames/index.js"),r=s.n(i),a=s("./src/languageHandler.tsx"),l=s("./src/components/views/dialogs/BaseDialog.tsx"),c=s("./src/components/views/elements/DialogButtons.tsx");class d extends o.Component{constructor(...e){super(...e),(0,n.A)(this,"onFinished",()=>{this.props.onFinished()})}render(){return o.createElement(l.A,{className:"mx_InfoDialog",onFinished:this.props.onFinished,top:this.props.top,title:this.props.title,contentId:"mx_Dialog_content",hasCancel:this.props.hasCloseButton,onKeyDown:this.props.onKeyDown,fixedWidth:this.props.fixedWidth},o.createElement("div",{className:r()("mx_Dialog_content",this.props.className),id:"mx_Dialog_content"},this.props.description),!1!==this.props.button&&o.createElement(c.A,{primaryButton:this.props.button||(0,a._t)("action|ok"),onPrimaryButtonClick:this.onFinished,hasCancel:!1}))}}(0,n.A)(d,"defaultProps",{title:"",description:"",hasCloseButton:!1})},"./src/components/views/dialogs/InteractiveAuthDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>m});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./src/languageHandler.tsx"),r=s("./src/components/views/elements/AccessibleButton.tsx"),a=s("./src/components/structures/InteractiveAuth.tsx"),l=s("./src/components/views/auth/InteractiveAuthEntryComponents.tsx"),c=s("./src/components/views/dialogs/BaseDialog.tsx"),d=s("./src/Linkify.tsx");class m extends o.Component{constructor(e){super(e),(0,n.A)(this,"onAuthFinished",async(e,t)=>{e?this.props.onFinished(!0,t):t===a.R?this.props.onFinished(!1,null):this.setState({authError:t})}),(0,n.A)(this,"onUpdateStagePhase",(e,t)=>{this.setState({uiaStage:e,uiaStagePhase:t})}),(0,n.A)(this,"onDismissClick",()=>{this.props.onFinished(!1)}),this.state={authError:null,uiaStage:null,uiaStagePhase:null}}getDefaultDialogAesthetics(){const e={[l.av.PHASE_PREAUTH]:{title:(0,i._t)("auth|uia|sso_title"),body:(0,i._t)("auth|uia|sso_preauth_body"),continueText:(0,i._t)("auth|sso"),continueKind:"primary"},[l.av.PHASE_POSTAUTH]:{title:(0,i._t)("auth|uia|sso_postauth_title"),body:(0,i._t)("auth|uia|sso_postauth_body"),continueText:(0,i._t)("action|confirm"),continueKind:"primary"}};return{[l.av.LOGIN_TYPE]:e,[l.av.UNSTABLE_LOGIN_TYPE]:e}}render(){var e;let t,s,n=this.state.authError?"Error":null!==(e=this.props.title)&&void 0!==e?e:(0,i._t)("common|authentication"),l=this.state.authError?null:this.props.body;const m=this.props.aestheticsForStagePhases||this.getDefaultDialogAesthetics();if(!this.state.authError&&m&&null!==this.state.uiaStage&&null!==this.state.uiaStagePhase&&m[this.state.uiaStage]){const e=m[this.state.uiaStage][this.state.uiaStagePhase];e&&(e.title&&(n=e.title),e.body&&(l=e.body),e.continueText&&(t=e.continueText),e.continueKind&&(s=e.continueKind))}let u;return u=this.state.authError?o.createElement("div",{id:"mx_Dialog_content"},o.createElement(d.XZ,null,o.createElement("div",{role:"alert"},this.state.authError.message||this.state.authError.toString())),o.createElement("br",null),o.createElement(r.A,{onClick:this.onDismissClick,className:"mx_GeneralButton",autoFocus:!0},(0,i._t)("action|dismiss"))):o.createElement("div",{id:"mx_Dialog_content"},l,o.createElement(a.A,{matrixClient:this.props.matrixClient,authData:this.props.authData,makeRequest:this.props.makeRequest,onAuthFinished:this.onAuthFinished,onStagePhaseChange:this.onUpdateStagePhase,continueText:t,continueKind:s})),o.createElement(c.A,{className:"mx_InteractiveAuthDialog",onFinished:this.props.onFinished,title:n,contentId:"mx_Dialog_content"},u)}}},"./src/components/views/dialogs/InviteDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>Ae});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./node_modules/matrix-js-sdk/src/types.ts"),a=s("./node_modules/matrix-js-sdk/src/logger.ts"),l=s("./node_modules/lodash/lodash.js"),c=s("./res/img/icon-email-pill-avatar.svg"),d=s("./src/languageHandler.tsx"),m=s("./src/MatrixClientPeg.ts"),u=s("./src/utils/permalinks/Permalinks.ts"),h=s("./src/utils/DMRoomMap.ts"),p=s("./src/email.ts"),g=s("./src/utils/IdentityServerUtils.ts"),v=s("./src/utils/SortMembers.ts"),_=s("./src/utils/UrlUtils.ts"),f=s("./src/IdentityAuthClient.tsx"),y=s("./src/RoomInvite.tsx"),b=s("./src/dispatcher/actions.ts"),E=s("./src/stores/room-list/models.ts"),w=s("./src/stores/room-list/RoomListStore.ts"),x=s("./src/settings/SettingsStore.ts"),A=s("./src/settings/UIFeature.ts"),S=s("./src/customisations/Media.ts"),C=s("./src/components/views/avatars/BaseAvatar.tsx"),R=s("./src/components/views/avatars/SearchResultAvatar.tsx"),k=s("./src/components/views/elements/AccessibleButton.tsx"),I=s("./src/utils/strings.ts"),P=s("./src/components/views/elements/Field.tsx"),T=s("./src/components/structures/TabbedView.tsx"),O=s("./src/components/views/voip/DialPad.tsx"),M=s("./src/components/views/dialogs/QuestionDialog.tsx"),N=s("./src/components/views/dialogs/BaseDialog.tsx"),D=s("./src/components/views/elements/DialPadBackspaceButton.tsx"),j=s("./src/LegacyCallHandler.tsx"),U=s("./src/customisations/UserIdentifier.ts"),F=s("./src/components/views/elements/CopyableText.tsx"),L=s("./src/accessibility/KeyboardShortcuts.ts"),B=s("./src/KeyBindingsManager.ts"),V=s("./src/utils/direct-messages.ts"),H=s("./src/components/views/dialogs/InviteDialogTypes.ts"),W=s("./src/Modal.tsx"),$=s("./src/dispatcher/dispatcher.ts"),z=s("./src/utils/rooms.ts"),K=s("./src/utils/MultiInviter.ts"),J=s("./src/components/views/dialogs/AskInviteAnywayDialog.tsx"),G=s("./src/contexts/SDKContext.ts"),q=s("./src/components/views/dialogs/InviteProgressBody.tsx"),Y=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),Z=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),Q=s("./node_modules/classnames/index.js"),X=s.n(Q),ee=s("./packages/shared-components/src/rich-list/RichList/RichList.module.css"),te=s("./packages/shared-components/src/utils/Flex/index.ts");const se=["children","title","className","titleAttributes","isEmpty"];function ne(e){let{children:t,title:s,className:n,titleAttributes:i,isEmpty:r=!1}=e,a=(0,Z.A)(e,se);const l=(0,o.useId)(),{listRef:c,onKeyDown:d,onFocus:m}=function(){const e=(0,o.useRef)(null),t=(0,o.useCallback)(t=>{if(e.current&&t.target===e.current){var s,n;let t=null===(s=e.current)||void 0===s?void 0:s.firstElementChild;for(const s of e.current.children)if("true"===s.getAttribute("aria-selected")){t=s;break}null===(n=t)||void 0===n||n.focus()}},[]),s=(0,o.useCallback)(t=>{const{key:s}=t;let n=!1;switch(s){case"Enter":case" ":n=!0,document.activeElement.click();break;case"ArrowDown":{var o;n=!0;const t=document.activeElement;var i;null!==(o=e.current)&&void 0!==o&&o.contains(t)&&t&&(null===(i=t.nextElementSibling)||void 0===i||i.focus());break}case"ArrowUp":{var r;n=!0;const t=document.activeElement;var a;null!==(r=e.current)&&void 0!==r&&r.contains(t)&&t&&(null===(a=t.previousElementSibling)||void 0===a||a.focus());break}case"Home":var l;n=!0,null===(l=e.current)||void 0===l||null===(l=l.firstElementChild)||void 0===l||l.focus();break;case"End":var c;n=!0,null===(c=e.current)||void 0===c||null===(c=c.lastElementChild)||void 0===c||c.focus()}n&&t.preventDefault()},[]);return{listRef:e,onKeyDown:s,onFocus:t}}();return o.createElement(te.s,(0,Y.A)({className:X()(ee.A.richList,n),direction:"column"},a),o.createElement("span",(0,Y.A)({id:l,className:ee.A.title},i),s),r?o.createElement("span",{className:ee.A.empty},t):o.createElement("ul",{ref:c,role:"listbox",className:ee.A.content,"aria-labelledby":l,tabIndex:0,onKeyDown:d,onFocus:m},t))}var oe=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/check.js"),ie=s("./packages/shared-components/src/rich-list/RichItem/RichItem.module.css"),re=s("./packages/shared-components/src/utils/humanize.ts");const ae=["avatar","title","description","timestamp","selected"],le=(0,o.memo)(function(e){let{avatar:t,title:s,description:n,timestamp:i,selected:r}=e,a=(0,Z.A)(e,ae);return o.createElement("li",(0,Y.A)({className:ie.A.richItem,role:"option",tabIndex:-1,"aria-selected":r,"aria-label":s},a),r?o.createElement(ce,null):o.createElement(te.s,{className:ie.A.avatar},t),o.createElement("span",{className:ie.A.title},s),o.createElement("span",{className:ie.A.description},n),i&&o.createElement("span",{role:"timer",className:ie.A.timestamp},(0,re.P)(i)))});function ce(){return o.createElement(te.s,{align:"center",justify:"center","aria-hidden":"true",className:ie.A.checkmark},o.createElement(oe.A,{width:"24px",height:"24px",color:"var(--cpd-color-icon-on-solid-primary)"}))}var de=s("./node_modules/react-merge-refs/dist/index.js"),me=s("./packages/shared-components/src/pill-input/PillInput/PillInput.module.css");const ue=["className","children","onRemoveChildren","inputProps"];function he(e){let{className:t,children:s,onRemoveChildren:n,inputProps:i}=e,r=(0,Z.A)(e,ue);const a=(0,o.useRef)(null),c=(0,l.omit)(i,["onKeyDown","ref"]),d=(0,de.SV)([a,null==i?void 0:i.ref]),m=o.Children.toArray(s).length>0;return o.createElement(te.s,(0,Y.A)({},r,{gap:"var(--cpd-space-1x)",direction:"column",className:X()(me.A.pillInput,t),onClick:e=>{var t;e.preventDefault(),e.stopPropagation(),null===(t=a.current)||void 0===t||t.focus()}}),m&&o.createElement(te.s,{gap:"var(--cpd-space-1x)",wrap:"wrap",align:"center"},s),o.createElement("input",(0,Y.A)({ref:d,autoComplete:"off",className:X()(me.A.input,{[me.A.largerInput]:m}),onKeyDown:e=>{var t;const s=e.currentTarget.value.trim();if("Backspace"===e.key&&!s)return e.preventDefault(),void(null==n||n(e));null==i||null===(t=i.onKeyDown)||void 0===t||t.call(i,e)}},c)))}var pe=s("./node_modules/@vector-im/compound-web/dist/components/Button/IconButton/IconButton.js"),ge=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/close.js"),ve=s("./packages/shared-components/src/pill-input/Pill/Pill.module.css"),_e=s("./packages/shared-components/src/utils/i18n.tsx");const fe=["className","children","label","onClick"];function ye(e){let{className:t,children:s,label:n,onClick:i}=e,r=(0,Z.A)(e,fe);const a=(0,o.useId)();return o.createElement(te.s,(0,Y.A)({display:"inline-flex",gap:"var(--cpd-space-1-5x)",align:"center",className:X()(ve.A.pill,t)},r),s,o.createElement("span",{id:a,className:ve.A.label},n),i&&o.createElement(pe.K,{"aria-describedby":a,size:"16px",onClick:i,"aria-label":(0,_e._t)("action|delete")},o.createElement(ge.A,{color:"var(--cpd-color-icon-tertiary)"})))}var be=function(e){return e.UserDirectory="users",e.DialPad="dialpad",e}(be||{});class Ee extends o.PureComponent{constructor(...e){super(...e),(0,n.A)(this,"onRemove",e=>{e.preventDefault(),e.stopPropagation(),this.props.onRemove(this.props.member)})}render(){const e=o.createElement(R.N,{user:this.props.member,size:"20px"});return o.createElement(ye,{label:this.props.member.name,onClick:this.onRemove},e)}}const we=e=>e instanceof i.RoomMember?new V.qv({user_id:e.userId,display_name:e.name,avatar_url:e.getMxcAvatarUrl()}):e;class xe extends o.PureComponent{constructor(...e){super(...e),(0,n.A)(this,"onClick",e=>{e.preventDefault(),e.stopPropagation(),this.props.onToggle(this.props.member)})}render(){const e="32px",t=this.props.member.isEmail?o.createElement(c.I,{width:e,height:e}):o.createElement(C.A,{url:this.props.member.getMxcAvatarUrl()?(0,S.mediaFromMxc)(this.props.member.getMxcAvatarUrl()).getSquareThumbnailHttp(parseInt(e,10)):null,name:this.props.member.name,idName:this.props.member.userId,size:e}),s=U.A.getDisplayUserIdentifier(this.props.member.userId,{withDisplayName:!0}),n=this.props.member.isEmail?(0,d._t)("invite|email_caption"):s||this.props.member.userId;return o.createElement(le,{avatar:t,title:this.props.member.name,description:n,timestamp:this.props.lastActiveTs,onClick:this.onClick,selected:this.props.isSelected})}}class Ae extends o.PureComponent{constructor(e){if(super(e),(0,n.A)(this,"debounceTimer",null),(0,n.A)(this,"editorRef",(0,o.createRef)()),(0,n.A)(this,"numberEntryFieldRef",(0,o.createRef)()),(0,n.A)(this,"unmounted",!1),(0,n.A)(this,"encryptionByDefault",!1),(0,n.A)(this,"profilesStore",void 0),(0,n.A)(this,"onConsultFirstChange",e=>{this.setState({consultFirst:e.target.checked})}),(0,n.A)(this,"checkProfileAndStartDm",async()=>{this.setBusy(!0);const e=this.convertFilter();if(x.A.getValue("promptBeforeInviteUnknownUsers")){const t=await(async(e,t)=>{const s=e.filter(e=>e instanceof V.qv);return await Promise.all(s.map(e=>t.getOrFetchProfile(e.userId))),s.reduce((e,s)=>{const n=t.getProfileLookupError(s.userId);return n instanceof i.MatrixError&&n.errcode&&K.jo.includes(n.errcode)&&e.push({userId:s.userId,errorText:n.data.error||""}),e},[])})(e,this.profilesStore);if(t.length)return void this.showAskInviteAnywayDialog(t)}await this.startDm()}),(0,n.A)(this,"startDm",async()=>{this.setBusy(!0);try{const e=m.J.safeGet(),t=this.convertFilter();await(0,V.UZ)(e,t),this.props.onFinished(!0)}catch(e){a.vF.error(e),this.setState({busy:!1,errorText:(0,d._t)("invite|error_dm")})}}),(0,n.A)(this,"inviteUsers",async()=>{if(this.props.kind!==H.m.Invite)return;this.setState({busy:!0}),this.convertFilter();const e=this.convertFilter().map(e=>e.userId),t=m.J.safeGet(),s=t.getRoom(this.props.roomId);if(!s)return a.vF.error("Failed to find the room to invite users to"),void this.setState({busy:!1,errorText:(0,d._t)("invite|error_find_room")});try{const n=await(0,y.wq)(t,this.props.roomId,e,{inhibitProgressDialog:!0});this.shouldAbortAfterInviteError(n,s)||this.props.onFinished(!0)}catch(e){a.vF.error(e),this.setState({busy:!1,errorText:(0,d._t)("invite|error_invite")})}}),(0,n.A)(this,"transferCall",async()=>{if(this.props.kind===H.m.CallTransfer){if(this.state.currentTabId==be.UserDirectory){this.convertFilter();const e=this.convertFilter().map(e=>e.userId);if(e.length>1)return void this.setState({errorText:(0,d._t)("invite|error_transfer_multiple_target")});j.Ay.instance.startTransferToMatrixID(this.props.call,e[0],this.state.consultFirst)}else j.Ay.instance.startTransferToPhoneNumber(this.props.call,this.state.dialPadValue,this.state.consultFirst);this.props.onFinished(!0)}}),(0,n.A)(this,"onKeyDown",e=>{if(this.state.busy)return;let t=!1;const s=e.currentTarget.value.trim();switch((0,B.zM)().getAccessibilityAction(e)){case L.bY.Space:if(!s||!s.includes("@")||s.includes(" "))break;this.convertFilter(),t=!0;break;case L.bY.Enter:if(!s)break;this.convertFilter(),t=!0}t&&e.preventDefault()}),(0,n.A)(this,"onCancel",()=>{this.props.onFinished(!1)}),(0,n.A)(this,"updateSuggestions",async e=>{if(m.J.safeGet().searchUserDirectory({term:e}).then(async t=>{if(e===this.state.filterText){if(t.results||(t.results=[]),"@"===e[0]&&e.indexOf(":")>1)try{const s=await this.profilesStore.getOrFetchProfile(e,{shouldThrow:!0});s&&t.results.splice(0,0,{user_id:e,display_name:s.displayname,avatar_url:s.avatar_url})}catch(e){a.vF.warn("Non-fatal error trying to make an invite for a user ID",e)}this.setState({serverResultsMixin:t.results.map(e=>({userId:e.user_id,user:new V.qv(e)}))})}}).catch(e=>{a.vF.error("Error searching user directory:"),a.vF.error(e),this.setState({serverResultsMixin:[]})}),this.state.canUseIdentityServer){if(p.X(e)&&this.canInviteThirdParty()&&x.A.getValue(A.f.IdentityServer)){this.setState({threepidResultsMixin:[{user:new V.OZ(e),userId:e}]});try{const t=new f.A,s=await t.getAccessToken();if(!s)return;if(e!==this.state.filterText)return;const n=await m.J.safeGet().lookupThreePid("email",e,s);if(e!==this.state.filterText)return;if(!n||!("mxid"in n))return;const o=await this.profilesStore.getOrFetchProfile(n.mxid);if(e!==this.state.filterText||!o)return;this.setState({threepidResultsMixin:[...this.state.threepidResultsMixin,{user:new V.qv({user_id:n.mxid,display_name:o.displayname,avatar_url:o.avatar_url}),userId:e}]})}catch(e){a.vF.error("Error searching identity server:"),a.vF.error(e),this.setState({threepidResultsMixin:[]})}}}else this.setState({tryingIdentityServer:!0})}),(0,n.A)(this,"updateFilter",e=>{const t=e.target.value;this.setState({filterText:t}),this.debounceTimer&&clearTimeout(this.debounceTimer),this.debounceTimer=window.setTimeout(()=>{this.updateSuggestions(t)},150)}),(0,n.A)(this,"showMoreRecents",()=>{this.setState({numRecentsShown:this.state.numRecentsShown+5})}),(0,n.A)(this,"showMoreSuggestions",()=>{this.setState({numSuggestionsShown:this.state.numSuggestionsShown+5})}),(0,n.A)(this,"toggleMember",e=>{if(!this.state.busy){let t=this.state.filterText,s=this.state.targets.map(e=>e);const n=s.findIndex(t=>t.userId===e.userId);n>=0?s.splice(n,1):(this.props.kind===H.m.CallTransfer&&s.length>0&&(s=[]),s.push(e),t=""),this.setState({targets:s,filterText:t}),this.editorRef&&this.editorRef.current&&this.editorRef.current.focus()}}),(0,n.A)(this,"removeMember",e=>{const t=this.state.targets.map(e=>e),s=t.indexOf(e);s>=0&&(t.splice(s,1),this.setState({targets:t})),this.editorRef&&this.editorRef.current&&this.editorRef.current.focus()}),(0,n.A)(this,"onPaste",async e=>{if(this.state.filterText)return;const t=e.clipboardData.getData("text"),s=this.parseFilter(t);if(1===s.length&&!s[0].includes("@"))return;e.preventDefault();const n=[...this.state.recents,...this.state.suggestions,...this.state.serverResultsMixin,...this.state.threepidResultsMixin],o=[],i=[],r=[];for(const t of s){const s=n.find(e=>e.userId===t);if(s)this.canInviteMore([...this.state.targets,...o])?o.push(s.user):r.push(t);else if(p.X(t))this.canInviteThirdParty([...this.state.targets,...o])?o.push(new V.OZ(t)):r.push(t);else if("@"===t[0])try{const e=await this.profilesStore.getOrFetchProfile(t);o.push(new V.qv({user_id:t,display_name:null==e?void 0:e.displayname,avatar_url:null==e?void 0:e.avatar_url}))}catch(e){a.vF.error("Error looking up profile for "+t),a.vF.error(e),i.push(t)}else i.push(t)}this.unmounted||(i.length>0&&W.Ay.createDialog(M.A,{title:(0,d._t)("invite|error_find_user_title"),description:(0,d._t)("invite|error_find_user_description",{csvNames:i.join(", ")}),button:(0,d._t)("action|ok")}),r?this.setState({filterText:r.join(" "),targets:(0,l.uniqBy)([...this.state.targets,...o],e=>e.userId)}):this.setState({targets:(0,l.uniqBy)([...this.state.targets,...o],e=>e.userId)}))}),(0,n.A)(this,"onUseDefaultIdentityServerClick",e=>{e.preventDefault(),(0,g.eF)(m.J.safeGet()),this.setState({canUseIdentityServer:!0,tryingIdentityServer:!1})}),(0,n.A)(this,"onManageSettingsClick",e=>{e.preventDefault(),$.A.fire(b.r.ViewUserSettings),this.props.onFinished(!1)}),(0,n.A)(this,"onDialFormSubmit",e=>{e.preventDefault(),this.transferCall()}),(0,n.A)(this,"onDialChange",e=>{this.setState({dialPadValue:e.currentTarget.value})}),(0,n.A)(this,"onDigitPress",(e,t)=>{var s;(this.setState({dialPadValue:this.state.dialPadValue+e}),"click"===t.type)&&(null===(s=this.numberEntryFieldRef.current)||void 0===s||s.focus())}),(0,n.A)(this,"onDeletePress",e=>{var t;0!==this.state.dialPadValue.length&&(this.setState({dialPadValue:this.state.dialPadValue.slice(0,-1)}),"click"===e.type&&(null===(t=this.numberEntryFieldRef.current)||void 0===t||t.focus()))}),(0,n.A)(this,"onTabChange",e=>{this.setState({currentTabId:e})}),e.kind===H.m.Invite&&!e.roomId)throw new Error("When using InviteKind.Invite a roomId is required for an InviteDialog");if(e.kind===H.m.CallTransfer&&!e.call)throw new Error("When using InviteKind.CallTransfer a call is required for an InviteDialog");this.profilesStore=G.M.instance.userProfilesStore;const t=m.J.safeGet(),s=new Set([t.getSafeUserId()]);if(function(e){return e.kind===H.m.Invite}(e)){var c;const n=t.getRoom(e.roomId);if(!n)throw new Error("Room ID given to InviteDialog does not look like a room");const o=null==n||null===(c=n.currentState.getStateEvents(i.EventType.RoomCreate,""))||void 0===c?void 0:c.getContent()["m.federate"];n.getMembersWithMembership(r.O.Invite).forEach(e=>s.add(e.userId)),n.getMembersWithMembership(r.O.Join).forEach(e=>s.add(e.userId)),n.getMembersWithMembership(r.O.Ban).forEach(e=>s.add(e.userId));const a=t.getDomain();!1===o&&a&&this.excludeExternals(a,s)}this.state={targets:[],filterText:this.props.initialText||"",recents:Ae.buildRecents(s),numRecentsShown:3,suggestions:this.buildSuggestions(s),numSuggestionsShown:3,serverResultsMixin:[],threepidResultsMixin:[],canUseIdentityServer:!!t.getIdentityServerUrl(),tryingIdentityServer:!1,consultFirst:!1,dialPadValue:"",currentTabId:be.UserDirectory,busy:!1}}componentDidMount(){this.unmounted=!1,this.encryptionByDefault=(0,z.u)(m.J.safeGet()),this.props.initialText&&this.updateSuggestions(this.props.initialText)}componentWillUnmount(){this.unmounted=!0}excludeExternals(e,t){const s=m.J.safeGet(),n=Object.values((0,v._5)(s)).map(({member:e})=>e.userId);Object.keys(h.A.shared().getUniqueRoomsWithIndividuals()).forEach(e=>n.push(e));new Set(n.filter(t=>!t.includes(e))).forEach(e=>t.add(e))}static buildRecents(e){const t=h.A.shared().getUniqueRoomsWithIndividuals(),s=w.Ay.instance.orderedLists[E.zO.DM]||[],n=m.J.safeGet().getUserId();for(const e of s){const s=e.getJoinedMembers().filter(e=>e.userId!==n);for(const n of s)t[n.userId]||(a.vF.warn(`Adding DM room for ${n.userId} as ${e.roomId} from tag, not DM map`),t[n.userId]=e)}const o=[];for(const s in t){if(e.has(s)){a.vF.warn(`[Invite:Recents] Excluding ${s} from recents`);continue}const n=t[s],i=n.getMember(s);if(!i){a.vF.warn(`[Invite:Recents] ${s} is missing a member object in their own DM (${n.roomId})`);continue}const r=["m.room.message","m.room.encrypted","m.sticker"],l=20;let c=0;if(n.timeline&&n.timeline.length)for(let e=n.timeline.length-1;e>=0;e--){const t=n.timeline[e];if(r.includes(t.getType())){c=t.getTs();break}if(n.timeline.length-e>l)break}c?(o.push({userId:s,user:we(i),lastActive:c}),e.add(s)):a.vF.warn(`[Invite:Recents] ${s} (${n.roomId}) has a weird last timestamp: ${c}`)}return o||a.vF.warn("[Invite:Recents] No recents to suggest!"),o.sort((e,t)=>t.lastActive-e.lastActive),o}buildSuggestions(e){const t=m.J.safeGet(),s=(0,v.nf)(t),n=(0,v._5)(t),o=(0,v.j2)(s,n);return Object.values(n).map(({member:e})=>e).filter(t=>!e.has(t.userId)).sort(o).map(e=>({userId:e.userId,user:we(e)}))}shouldAbortAfterInviteError(e,t){this.setState({busy:!1});const s=new Map(this.state.targets.map(e=>[e.userId,e]));return!(0,y.uG)(e.states,t,e.inviter,s)}convertFilter(){if(!this.state.filterText||!this.state.filterText.includes("@"))return this.state.targets||[];if(!this.canInviteMore())return this.state.targets;let e;if(this.state.filterText.startsWith("@")?e=new V.qv({user_id:this.state.filterText}):x.A.getValue(A.f.IdentityServer)&&this.canInviteThirdParty()&&(e=new V.OZ(this.state.filterText)),!e)return this.state.targets;const t=[...this.state.targets||[],e];return this.setState({targets:t,filterText:""}),t}setBusy(e){this.setState({busy:e})}showAskInviteAnywayDialog(e){W.Ay.createDialog(J.A,{unknownProfileUsers:e,onInviteAnyways:()=>this.startDm(),onGiveUp:()=>{this.setBusy(!1)},description:(0,d._t)("invite|ask_anyway_description"),inviteNeverWarnLabel:(0,d._t)("invite|ask_anyway_never_warn_label"),inviteLabel:(0,d._t)("invite|ask_anyway_label")})}parseFilter(e){return e.split(/[\s,]+/).map(e=>e.trim()).filter(e=>!!e)}renderSection(e){let t="recents"===e?this.state.recents:this.state.suggestions,s="recents"===e?this.state.numRecentsShown:this.state.numSuggestionsShown;const n="recents"===e?this.showMoreRecents.bind(this):this.showMoreSuggestions.bind(this);let i="recents"===e?(0,d._t)("invite|recents_section"):(0,d._t)("common|suggestions");this.props.kind===H.m.Invite&&(i="recents"===e?(0,d._t)("invite|suggestions_section"):(0,d._t)("common|suggestions"));let r=[],a=[];const l=this.state.serverResultsMixin||this.state.threepidResultsMixin;if(this.state.filterText&&l&&"suggestions"===e){const e=e=>!(this.state.recents.some(t=>t.userId===e.userId)||t.some(t=>t.userId===e.userId)||r.some(t=>t.userId===e.userId)||a.some(t=>t.userId===e.userId));a=this.state.serverResultsMixin.filter(e),r=this.state.threepidResultsMixin.filter(e)}const c=r.length>0||a.length>0;if(0===t.length&&!c)return null;if(this.canInviteThirdParty()||(r=r.filter(e=>e instanceof V.OZ)),this.state.filterText){const e=this.state.filterText.toLowerCase();if(t=t.filter(t=>t.user.name.toLowerCase().includes(e)||t.userId.toLowerCase().includes(e)),0===t.length&&!c)return o.createElement("div",{className:"mx_InviteDialog_section"},o.createElement(ne,{title:i,titleAttributes:{role:"heading","aria-level":3},isEmpty:!0},(0,d._t)("common|no_results")))}t=[...r,...t,...a],s===t.length-1&&s++;const m=t.slice(0,s);let u;m.length<t.length&&(u=o.createElement("div",{className:"mx_InviteDialog_section_showMore"},o.createElement(k.A,{onClick:n,kind:"link"},(0,d._t)("common|show_more"))));const h=m.map(t=>{return o.createElement(xe,{member:t.user,lastActiveTs:(s=t,"recents"===e?s.lastActive:void 0),key:t.user.userId,onToggle:this.toggleMember,isSelected:this.state.targets.some(e=>e.userId===t.userId)});var s});return o.createElement("div",{className:"mx_InviteDialog_section"},o.createElement(ne,{title:i,titleAttributes:{role:"heading","aria-level":3}},h),u)}renderEditor(){const e=this.state.targets.map(e=>o.createElement(Ee,{member:e,onRemove:this.state.busy?void 0:this.removeMember,key:e.userId}));return o.createElement(he,{className:"mx_InviteDialog_editor",inputProps:{ref:this.editorRef,value:this.state.filterText,onKeyDown:this.onKeyDown,onChange:this.updateFilter,onPaste:this.onPaste,placeholder:(0,d._t)("action|search"),autoFocus:!0,disabled:this.state.busy||this.props.kind==H.m.CallTransfer&&this.state.targets.length>0},onRemoveChildren:()=>!this.state.busy&&this.removeMember(this.state.targets[this.state.targets.length-1])},e)}renderIdentityServerWarning(){if(!this.state.tryingIdentityServer||this.state.canUseIdentityServer||!x.A.getValue(A.f.IdentityServer))return null;const e=(0,g.iR)();return e?o.createElement("div",{className:"mx_InviteDialog_identityServer"},(0,d._t)("invite|email_use_default_is",{defaultIdentityServerName:(0,_.FO)(e)},{default:e=>o.createElement(k.A,{kind:"link_inline",onClick:this.onUseDefaultIdentityServerClick},e),settings:e=>o.createElement(k.A,{kind:"link_inline",onClick:this.onManageSettingsClick},e)})):o.createElement("div",{className:"mx_InviteDialog_identityServer"},(0,d._t)("invite|email_use_is",{},{settings:e=>o.createElement(k.A,{kind:"link_inline",onClick:this.onManageSettingsClick},e)}))}async onLinkClick(e){e.preventDefault(),(0,I.A0)(e.currentTarget)}get screenName(){if(this.props.kind===H.m.Dm)return"StartChat"}canInviteMore(e){return e=e||this.state.targets,this.canInviteThirdParty(e)||!e.some(e=>e instanceof V.OZ)}canInviteThirdParty(e){return e=e||this.state.targets,this.props.kind!==H.m.Dm||0===e.length||!this.encryptionByDefault}hasFilterAtLeastOneEmail(){return!!this.state.filterText&&this.parseFilter(this.state.filterText).some(e=>p.X(e))}hasSelection(){return this.state.targets.length>0||!!this.state.filterText&&this.state.filterText.includes("@")}renderSuggestions(){let e;if(this.props.kind===H.m.Dm){const t=(0,u.Ne)(m.J.safeGet().getSafeUserId());e=o.createElement("div",{className:"mx_InviteDialog_footer"},o.createElement("h3",null,(0,d._t)("invite|send_link_prompt")),o.createElement(F.A,{getTextToCopy:()=>(0,u.Ne)(m.J.safeGet().getSafeUserId())},o.createElement("a",{className:"mx_InviteDialog_footer_link",href:t,onClick:this.onLinkClick},t)))}let t=null,s=null;if(!this.canInviteMore()||this.hasFilterAtLeastOneEmail()&&!this.canInviteThirdParty())s=o.createElement("div",{className:"mx_InviteDialog_oneThreepid"},(0,d._t)("invite|email_limit_one"));else{let e;this.props.kind===H.m.Dm&&(e=o.createElement("div",{className:"mx_InviteDialog_section_hidden_suggestions_disclaimer"},o.createElement("span",null,(0,d._t)("invite|suggestions_disclaimer")),o.createElement("p",null,(0,d._t)("invite|suggestions_disclaimer_prompt")))),t=o.createElement("div",{className:"mx_InviteDialog_userSections"},this.renderSection("recents"),this.renderSection("suggestions"),e)}return o.createElement(o.Fragment,null,this.renderIdentityServerWarning(),o.createElement("div",{className:"error"},this.state.errorText),s,t,e)}renderMainTab(){let e,t,s=null;const n=x.A.getValue(A.f.IdentityServer),i=m.J.safeGet(),r=i.getUserId();if(this.props.kind===H.m.Dm)e=n?(0,d._t)("invite|start_conversation_name_email_mxid_prompt",{},{userId:()=>o.createElement("a",{href:(0,u.Ne)(r),rel:"noreferrer noopener",target:"_blank"},r)}):(0,d._t)("invite|start_conversation_name_mxid_prompt",{},{userId:()=>o.createElement("a",{href:(0,u.Ne)(r),rel:"noreferrer noopener",target:"_blank"},r)}),t=(0,d._t)("action|go"),s=this.checkProfileAndStartDm;else if(this.props.kind===H.m.Invite){var a;const l=this.props.roomId,c=null===(a=m.J.get())||void 0===a?void 0:a.getRoom(l);let h;h=(null==c?void 0:c.isSpaceRoom())?n?(0,d.AO)("invite|name_email_mxid_share_space"):(0,d.AO)("invite|name_mxid_share_space"):n?(0,d.AO)("invite|name_email_mxid_share_room"):(0,d.AO)("invite|name_mxid_share_room"),e=(0,d._t)(h,{},{userId:()=>o.createElement("a",{className:"mx_InviteDialog_helpText_userId",href:(0,u.Ne)(r),rel:"noreferrer noopener",target:"_blank"},r),a:e=>o.createElement("a",{href:(0,u.B4)(i,l),rel:"noreferrer noopener",target:"_blank"},e)}),t=(0,d._t)("action|invite"),s=this.inviteUsers}const l=this.props.kind==H.m.CallTransfer?null:o.createElement(k.A,{kind:"primary",onClick:s,className:"mx_InviteDialog_goButton",disabled:this.state.busy||!this.hasSelection()},t);return o.createElement(o.Fragment,null,o.createElement("p",{className:"mx_InviteDialog_helpText"},e),o.createElement("div",{className:"mx_InviteDialog_addressBar"},this.renderEditor(),l),this.state.busy?o.createElement(q.A,null):this.renderSuggestions())}renderRegularDialog(){let e;if(this.props.kind===H.m.Dm)e=(0,d._t)("space|add_existing_room_space|dm_heading");else if(this.props.kind===H.m.Invite){var t;const s=this.props.roomId,n=null===(t=m.J.get())||void 0===t?void 0:t.getRoom(s);e=(null==n?void 0:n.isSpaceRoom())?(0,d._t)("invite|to_space",{spaceName:(null==n?void 0:n.name)||(0,d._t)("common|unnamed_space")}):(0,d._t)("invite|to_room",{roomName:(null==n?void 0:n.name)||(0,d._t)("common|unnamed_room")})}return o.createElement(N.A,{className:"mx_InviteDialog_other",hasCancel:!0,onFinished:this.props.onFinished,title:e,screenName:this.screenName},o.createElement("div",{className:"mx_InviteDialog_content"},this.renderMainTab()))}renderCallTransferDialog(){const e=this.renderMainTab(),t=[new T.oz(be.UserDirectory,(0,d.AO)("invite|transfer_user_directory_tab"),"mx_InviteDialog_userDirectoryIcon",e)],s=o.createElement(D.A,{onBackspacePress:this.onDeletePress});let n;n=0!==this.state.dialPadValue.length?o.createElement(P.A,{ref:this.numberEntryFieldRef,className:"mx_InviteDialog_dialPadField",id:"dialpad_number",value:this.state.dialPadValue,autoFocus:!0,onChange:this.onDialChange,postfixComponent:s}):o.createElement(P.A,{ref:this.numberEntryFieldRef,className:"mx_InviteDialog_dialPadField",id:"dialpad_number",value:this.state.dialPadValue,autoFocus:!0,onChange:this.onDialChange});const i=o.createElement("div",{className:"mx_InviteDialog_dialPad"},o.createElement("form",{onSubmit:this.onDialFormSubmit},n),o.createElement(O.Ay,{hasDial:!1,onDigitPress:this.onDigitPress,onDeletePress:this.onDeletePress}));t.push(new T.oz(be.DialPad,(0,d.AO)("invite|transfer_dial_pad_tab"),"mx_InviteDialog_dialPadIcon",i));const r=o.createElement("div",{className:"mx_InviteDialog_transferConsultConnect"},o.createElement("label",null,o.createElement("input",{type:"checkbox",checked:this.state.consultFirst,onChange:this.onConsultFirstChange}),(0,d._t)("voip|transfer_consult_first_label")),o.createElement(k.A,{kind:"secondary",onClick:this.onCancel,className:"mx_InviteDialog_transferConsultConnect_pushRight"},(0,d._t)("action|cancel")),o.createElement(k.A,{kind:"primary",onClick:this.transferCall,disabled:!this.hasSelection()&&""===this.state.dialPadValue},(0,d._t)("action|transfer"))),a=o.createElement(o.Fragment,null,o.createElement(T.Ay,{tabs:t,activeTabId:this.state.currentTabId,tabLocation:T.lX.TOP,onChange:this.onTabChange}),r);return o.createElement(N.A,{className:"mx_InviteDialog_transfer",hasCancel:!0,onFinished:this.props.onFinished,title:(0,d._t)("action|transfer"),screenName:this.screenName},o.createElement("div",{className:"mx_InviteDialog_content"},a))}render(){return this.props.kind===H.m.CallTransfer?this.renderCallTransferDialog():this.renderRegularDialog()}}(0,n.A)(Ae,"defaultProps",{kind:H.m.Dm,initialText:""})},"./src/components/views/dialogs/InviteDialogTypes.ts":(e,t,s)=>{"use strict";s.d(t,{m:()=>n});let n=function(e){return e.Dm="dm",e.Invite="invite",e.CallTransfer="call_transfer",e}({})},"./src/components/views/dialogs/InviteProgressBody.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var n=s("./node_modules/react/index.js"),o=s("./src/components/views/elements/InlineSpinner.tsx"),i=s("./src/languageHandler.tsx");const r=()=>n.createElement("div",{className:"mx_InviteProgressBody"},n.createElement(o.A,{w:32,h:32}),n.createElement("h1",null,(0,i._t)("invite|progress|preparing")),(0,i._t)("invite|progress|dont_close"))},"./src/components/views/dialogs/ManualDeviceKeyVerificationDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{$:()=>h,T:()=>u});var n=s("./node_modules/react/index.js"),o=s("./src/languageHandler.tsx"),i=s("./src/utils/crypto/deviceInfo.ts"),r=s("./src/components/views/dialogs/QuestionDialog.tsx"),a=s("./src/Modal.tsx"),l=s("./src/components/views/dialogs/InfoDialog.tsx"),c=s("./src/components/views/elements/Field.tsx"),d=s("./src/components/views/dialogs/ErrorDialog.tsx"),m=s("./src/MatrixClientPeg.ts");function u({onFinished:e}){const[t,s]=(0,n.useState)(""),[i,a]=(0,n.useState)(""),l=m.J.safeGet(),d=(0,n.useCallback)(async s=>{s&&await h(l,t,i),e(s)},[l,t,i,e]),u=(0,n.useCallback)(e=>{s(e.target.value)},[]),p=(0,n.useCallback)(e=>{a(e.target.value)},[]),g=n.createElement("div",null,n.createElement("p",null,(0,o._t)("encryption|verification|manual|text")),n.createElement("div",{className:"mx_DeviceVerifyDialog_cryptoSection"},n.createElement(c.A,{className:"mx_TextInputDialog_input",type:"text",label:(0,o._t)("encryption|verification|manual|device_id"),value:t,onChange:u}),n.createElement(c.A,{className:"mx_TextInputDialog_input",type:"text",label:(0,o._t)("encryption|verification|manual|fingerprint"),value:i,onChange:p})));return n.createElement(r.A,{title:(0,o._t)("settings|sessions|verify_session"),description:g,button:(0,o._t)("settings|sessions|verify_session"),onFinished:d})}async function h(e,t,s){try{await async function(e,t,s){const n=e.getUserId();if(!n)throw new o.P7("encryption|verification|manual|no_userid",{cause:void 0});const r=e.getCrypto();if(!r)throw new o.P7("encryption|verification|manual|no_crypto");const a=await(0,i.G)(e,n,t);if(!a)throw new o.P7("encryption|verification|manual|no_device",{deviceId:t,cause:void 0});const l=await r.getDeviceVerificationStatus(n,t);if(null!=l&&l.isVerified())throw a.getFingerprint()===s?new o.P7("encryption|verification|manual|already_verified",{deviceId:t,cause:void 0}):new o.P7("encryption|verification|manual|already_verified_and_wrong_fingerprint",{deviceId:t,cause:void 0});if(a.getFingerprint()!==s){const e=a.getFingerprint();throw new o.P7("encryption|verification|manual|wrong_fingerprint",{fprint:e,deviceId:t,fingerprint:s,cause:void 0})}await r.crossSignDevice(t)}(e,t,s),a.Ay.createDialog(l.A,{title:(0,o._t)("encryption|verification|manual|success_title"),description:n.createElement("div",null,n.createElement("p",null,(0,o._t)("encryption|verification|manual|success_description",{deviceId:t})))})}catch(e){const s=e instanceof o.P7?e.translatedMessage:e.toString();a.Ay.createDialog(d.A,{title:(0,o._t)("encryption|verification|manual|failure_title"),description:n.createElement("div",null,n.createElement("p",null,(0,o._t)("encryption|verification|manual|failure_description",{deviceId:t,error:s})))})}}},"./src/components/views/dialogs/QuestionDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>d});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/classnames/index.js"),r=s.n(i),a=s("./src/languageHandler.tsx"),l=s("./src/components/views/dialogs/BaseDialog.tsx"),c=s("./src/components/views/elements/DialogButtons.tsx");class d extends o.Component{constructor(...e){super(...e),(0,n.A)(this,"onOk",()=>{this.props.onFinished(!0)}),(0,n.A)(this,"onCancel",()=>{this.props.onFinished(!1)})}render(){let e="";return this.props.danger&&(e="danger"),o.createElement(l.A,{className:r()("mx_QuestionDialog",this.props.className),onFinished:this.props.onFinished,title:this.props.title,contentId:"mx_Dialog_content",headerImage:this.props.headerImage,hasCancel:this.props.hasCancelButton,fixedWidth:this.props.fixedWidth},o.createElement("div",{className:"mx_Dialog_content",id:"mx_Dialog_content"},this.props.description),o.createElement(c.A,{primaryButton:this.props.button||(0,a._t)("action|ok"),primaryButtonClass:e,primaryDisabled:this.props.buttonDisabled,cancelButton:this.props.cancelButton,hasCancel:this.props.hasCancelButton&&!this.props.quitOnly,onPrimaryButtonClick:this.onOk,focus:this.props.focus,onCancel:this.onCancel},this.props.extraButtons))}}(0,n.A)(d,"defaultProps",{title:"",description:"",extraButtons:null,focus:!0,hasCancelButton:!0,danger:!1,quitOnly:!1})},"./src/components/views/dialogs/RoomSettingsDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{e:()=>Ve,A:()=>We});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./src/components/structures/TabbedView.tsx"),a=s("./src/languageHandler.tsx"),l=s("./src/components/views/settings/tabs/room/AdvancedRoomSettingsTab.tsx"),c=s("./src/components/views/settings/tabs/room/RolesRoomSettingsTab.tsx"),d=s("./node_modules/matrix-js-sdk/src/types.ts"),m=s("./node_modules/classnames/index.js"),u=s.n(m),h=s("./src/MatrixClientPeg.ts"),p=s("./src/components/views/elements/Field.tsx"),g=s("./src/components/views/elements/AccessibleButton.tsx"),v=s("./src/components/views/settings/AvatarSetting.tsx"),_=s("./src/editor/serialize.ts"),f=s("./src/utils/DMRoomMap.ts"),y=s("./src/models/LocalRoom.ts");function b(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function E(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?b(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):b(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}function w(e){const t=f.A.shared().getUserIdForRoomId(e.roomId);return t||(e instanceof y.Np&&1===e.targets.length?e.targets[0].userId:e.roomId)}class x extends o.Component{constructor(e){var t;super(e),(0,n.A)(this,"avatarUpload",(0,o.createRef)()),(0,n.A)(this,"onAvatarChanged",e=>{this.setState({avatarFile:e,avatarRemovalPending:!1,profileFieldsTouched:E(E({},this.state.profileFieldsTouched),{},{avatar:!0})})}),(0,n.A)(this,"removeAvatar",()=>{this.avatarUpload.current&&(this.avatarUpload.current.value=""),this.setState({avatarFile:null,avatarRemovalPending:!0,profileFieldsTouched:E(E({},this.state.profileFieldsTouched),{},{avatar:!0})})}),(0,n.A)(this,"isSaveEnabled",()=>Boolean(Object.values(this.state.profileFieldsTouched).length)),(0,n.A)(this,"cancelProfileChanges",async e=>{e.stopPropagation(),e.preventDefault(),this.isSaveEnabled()&&this.setState({profileFieldsTouched:{},displayName:this.state.originalDisplayName,topic:this.state.originalTopic,avatarFile:null,avatarRemovalPending:!1})}),(0,n.A)(this,"saveProfile",async e=>{if(e.stopPropagation(),e.preventDefault(),!this.isSaveEnabled())return;this.setState({profileFieldsTouched:{}});const t=h.J.safeGet(),s={},n=this.state.displayName.trim();if(this.state.originalDisplayName!==this.state.displayName&&(await t.setRoomName(this.props.roomId,n),s.originalDisplayName=n,s.displayName=n),this.state.avatarFile){const{content_uri:e}=await t.uploadContent(this.state.avatarFile);await t.sendStateEvent(this.props.roomId,i.EventType.RoomAvatar,{url:e},""),s.originalAvatarUrl=e,s.avatarFile=null}else this.state.avatarRemovalPending&&(await t.sendStateEvent(this.props.roomId,i.EventType.RoomAvatar,{},""),s.avatarRemovalPending=!1,s.originalAvatarUrl=null);if(this.state.originalTopic!==this.state.topic){const e=(0,_.Ro)(this.state.topic,{forceHTML:!1});await t.setRoomTopic(this.props.roomId,this.state.topic,e),s.originalTopic=this.state.topic}this.setState(s)}),(0,n.A)(this,"onDisplayNameChanged",e=>{this.setState({displayName:e.target.value}),this.state.originalDisplayName===e.target.value?this.setState({profileFieldsTouched:E(E({},this.state.profileFieldsTouched),{},{name:!1})}):this.setState({profileFieldsTouched:E(E({},this.state.profileFieldsTouched),{},{name:!0})})}),(0,n.A)(this,"onTopicChanged",e=>{this.setState({topic:e.target.value}),this.state.originalTopic===e.target.value?this.setState({profileFieldsTouched:E(E({},this.state.profileFieldsTouched),{},{topic:!1})}):this.setState({profileFieldsTouched:E(E({},this.state.profileFieldsTouched),{},{topic:!0})})});const s=h.J.safeGet(),r=s.getRoom(e.roomId);if(!r)throw new Error(`Expected a room for ID: ${e.roomId}`);const a=r.currentState.getStateEvents(i.EventType.RoomAvatar,""),l=null!==(t=null==a?void 0:a.getContent().url)&&void 0!==t?t:null,c=r.currentState.getStateEvents(i.EventType.RoomTopic,""),d=c&&i.ContentHelpers.parseTopicContent(c.getContent()).text||"",m=r.currentState.getStateEvents(i.EventType.RoomName,""),u=m&&m.getContent()?m.getContent().name:"",p=s.getSafeUserId();this.state={originalDisplayName:u,displayName:u,originalAvatarUrl:l,avatarFile:null,avatarRemovalPending:!1,originalTopic:d,topic:d,profileFieldsTouched:{},canSetName:r.currentState.maySendStateEvent(i.EventType.RoomName,p),canSetTopic:r.currentState.maySendStateEvent(i.EventType.RoomTopic,p),canSetAvatar:r.currentState.maySendStateEvent(i.EventType.RoomAvatar,p)}}render(){var e,t;let s;(this.state.canSetName||this.state.canSetTopic||this.state.canSetAvatar)&&(s=o.createElement("div",{className:"mx_RoomProfileSettings_buttons"},o.createElement(g.A,{onClick:this.cancelProfileChanges,kind:"primary_outline",disabled:!this.isSaveEnabled()},(0,a._t)("action|cancel")),o.createElement(g.A,{onClick:this.saveProfile,kind:"primary",disabled:!this.isSaveEnabled()},(0,a._t)("action|save"))));const n=this.state.profileFieldsTouched.avatar?Boolean(this.state.avatarFile):Boolean(this.state.originalAvatarUrl);return o.createElement("form",{onSubmit:this.saveProfile,autoComplete:"off",noValidate:!0,className:"mx_RoomProfileSettings"},o.createElement("div",{className:"mx_RoomProfileSettings_profile"},o.createElement("div",{className:"mx_RoomProfileSettings_profile_controls"},o.createElement(p.A,{label:(0,a._t)("room_settings|general|name_field_label"),type:"text",value:this.state.displayName,autoComplete:"off",onChange:this.onDisplayNameChanged,disabled:!this.state.canSetName}),o.createElement(p.A,{className:u()("mx_RoomProfileSettings_profile_controls_topic","mx_RoomProfileSettings_profile_controls_topic--room"),id:"profileTopic",label:(0,a._t)("room_settings|general|topic_field_label"),disabled:!this.state.canSetTopic,type:"text",value:this.state.topic,autoComplete:"off",onChange:this.onTopicChanged,element:"textarea"})),o.createElement(v.A,{avatar:this.state.avatarRemovalPending?void 0:null!==(e=null!==(t=this.state.avatarFile)&&void 0!==t?t:this.state.originalAvatarUrl)&&void 0!==e?e:void 0,avatarAccessibleName:(0,a._t)("room_settings|general|avatar_field_label"),disabled:!this.state.canSetAvatar,onChange:this.onAvatarChanged,removeAvatar:n?this.removeAvatar:void 0,placeholderId:w(h.J.safeGet().getRoom(this.props.roomId)),placeholderName:h.J.safeGet().getRoom(this.props.roomId).name})),s)}}var A=s("./src/dispatcher/dispatcher.ts"),S=s("./src/contexts/MatrixClientContext.tsx"),C=s("./src/settings/SettingsStore.ts"),R=s("./src/settings/UIFeature.ts"),k=s("./src/components/views/room_settings/AliasSettings.tsx"),I=s("./src/PosthogTrackers.ts"),P=s("./src/components/views/settings/shared/SettingsSubsection.tsx"),T=s("./src/components/views/settings/tabs/SettingsTab.tsx"),O=s("./src/components/views/settings/shared/SettingsSection.tsx"),M=s("./node_modules/@vector-im/compound-web/dist/components/InlineSpinner/InlineSpinner.js"),N=s("./src/dispatcher/actions.ts"),D=s("./src/settings/SettingLevel.ts"),j=s("./src/components/views/elements/SettingsFlag.tsx"),U=s("./src/components/views/settings/SettingsFieldset.tsx"),F=s("./src/hooks/useIsEncrypted.ts"),L=s("./src/hooks/useSettings.ts");function B({room:e}){const{roomId:t}=e,s=(0,S.nH)(),n=(0,F.g)(s,e),i=null===n;return o.createElement(U.A,{legend:(0,a._t)("room_settings|general|url_previews_section"),description:!i&&o.createElement(H,{isEncrypted:n})},i?o.createElement(M.Z,null):o.createElement(o.Fragment,null,o.createElement(W,{isEncrypted:n,roomId:t}),o.createElement(j.A,{name:n?"urlPreviewsEnabled_e2ee":"urlPreviewsEnabled",level:D.p.ROOM_DEVICE,roomId:t})))}function V(e){e.preventDefault(),e.stopPropagation(),A.A.fire(N.r.ViewUserSettings)}function H({isEncrypted:e}){const t=(0,L.wL)(D.p.ACCOUNT,"urlPreviewsEnabled");let s;if(e)s=(0,a._t)("room_settings|general|url_preview_encryption_warning");else{const e={a:e=>o.createElement(g.A,{kind:"link_inline",onClick:V},e)};s=t?(0,a._t)("room_settings|general|user_url_previews_default_on",{},e):(0,a._t)("room_settings|general|user_url_previews_default_off",{},e)}return o.createElement(o.Fragment,null,o.createElement("p",null,(0,a._t)("room_settings|general|url_preview_explainer")),o.createElement("p",null,s))}function W({isEncrypted:e,roomId:t}){const s=(0,L.wL)(D.p.ACCOUNT,"urlPreviewsEnabled",t,!0);if(e)return null;let n;return n=C.A.canSetValue("urlPreviewsEnabled",t,D.p.ROOM)?o.createElement(j.A,{name:"urlPreviewsEnabled",level:D.p.ROOM,roomId:t,isExplicit:!0}):o.createElement("div",null,s?(0,a._t)("room_settings|general|default_url_previews_on"):(0,a._t)("room_settings|general|default_url_previews_off")),n}var $=s("./src/components/views/settings/tabs/user/MediaPreviewAccountSettings.tsx");class z extends o.Component{constructor(e){super(e),(0,n.A)(this,"onLeaveClick",e=>{A.A.dispatch({action:"leave_room",room_id:this.props.room.roomId}),I.A.trackInteraction("WebRoomSettingsLeaveButton",e)}),this.state={isRoomPublished:!1}}render(){var e;const t=this.context,s=this.props.room,n=s.currentState.mayClientSendStateEvent("m.room.canonical_alias",t),i=null!==(e=s.currentState.getStateEvents("m.room.canonical_alias",""))&&void 0!==e?e:void 0,r=C.A.getValue(R.f.URLPreviews)?o.createElement(B,{room:s}):null;let l;return s.getMyMembership()===d.O.Join&&(l=o.createElement(P.P,{heading:(0,a._t)("action|leave_room")},o.createElement(g.A,{kind:"danger",onClick:this.onLeaveClick},(0,a._t)("action|leave_room")))),o.createElement(T.A,null,o.createElement(O.X,{heading:(0,a._t)("common|general")},o.createElement(x,{roomId:s.roomId})),o.createElement(O.X,{heading:(0,a._t)("room_settings|general|aliases_section")},o.createElement(k.A,{roomId:s.roomId,canSetCanonicalAlias:n,canSetAliases:!0,canonicalAliasEvent:i})),o.createElement(O.X,{heading:(0,a._t)("room_settings|general|other_section")},r,o.createElement(P.P,{heading:(0,a._t)("common|moderation_and_safety"),legacy:!1},o.createElement($.H,{roomId:s.roomId})),l))}}(0,n.A)(z,"contextType",S.Ay);var K=s("./node_modules/matrix-js-sdk/src/logger.ts"),J=s("./res/img/warning.svg"),G=s("./src/components/views/elements/LabelledToggleSwitch.tsx"),q=s("./src/Modal.tsx"),Y=s("./src/components/views/dialogs/QuestionDialog.tsx"),Z=s("./src/components/views/elements/StyledRadioGroup.tsx"),Q=s("./src/createRoom.ts"),X=s("./src/components/views/dialogs/CreateRoomDialog.tsx"),ee=s("./src/components/views/settings/JoinRuleSettings.tsx"),te=s("./src/components/views/dialogs/ErrorDialog.tsx"),se=s("./src/components/views/elements/ExternalLink.tsx"),ne=s("./src/SdkConfig.ts"),oe=s("./src/utils/crypto/shouldForceDisableEncryption.ts"),ie=s("./src/components/views/typography/Caption.tsx"),re=s("./src/utils/crypto/index.ts");class ae extends o.Component{constructor(e){super(e),(0,n.A)(this,"onStateEvent",e=>{[i.EventType.RoomJoinRules,i.EventType.RoomGuestAccess,i.EventType.RoomHistoryVisibility,i.EventType.RoomEncryption].includes(e.getType())&&this.forceUpdate()}),(0,n.A)(this,"onEncryptionChange",async()=>{if(this.props.room.getJoinRule()===i.JoinRule.Public){const e=q.Ay.createDialog(Y.A,{title:(0,a._t)("room_settings|security|enable_encryption_public_room_confirm_title"),description:o.createElement("div",null,o.createElement("p",null," ",(0,a._t)("room_settings|security|enable_encryption_public_room_confirm_description_1",void 0,{b:e=>o.createElement("strong",null,e)})," "),o.createElement("p",null," ",(0,a._t)("room_settings|security|enable_encryption_public_room_confirm_description_2",void 0,{a:t=>o.createElement(g.A,{kind:"link_inline",onClick:()=>{e.close(),this.createNewRoom(!1,!0)}}," ",t," ")})," "))}),{finished:t}=e,[s]=await t;if(!s)return}const{finished:e}=q.Ay.createDialog(Y.A,{title:(0,a._t)("room_settings|security|enable_encryption_confirm_title"),description:(0,a._t)("room_settings|security|enable_encryption_confirm_description",{},{a:e=>o.createElement(se.A,{href:ne.Ay.get("help_encryption_url")},e)})});e.then(([e])=>{if(!e)return void this.setState({encrypted:!1});const t=this.state.encrypted;this.setState({encrypted:!0}),this.context.sendStateEvent(this.props.room.roomId,i.EventType.RoomEncryption,{algorithm:re.Q}).catch(e=>{K.vF.error(e),this.setState({encrypted:t})})})}),(0,n.A)(this,"onGuestAccessChange",e=>{const t=e?i.GuestAccess.CanJoin:i.GuestAccess.Forbidden,s=this.state.guestAccess;s!==t&&(this.setState({guestAccess:t}),this.context.sendStateEvent(this.props.room.roomId,i.EventType.RoomGuestAccess,{guest_access:t},"").catch(e=>{K.vF.error(e),this.setState({guestAccess:s})}))}),(0,n.A)(this,"createNewRoom",async(e,t)=>{const s=q.Ay.createDialog(X.A,{defaultPublic:e,defaultEncrypted:t});I.A.trackInteraction("WebRoomSettingsSecurityTabCreateNewRoomButton");const[n,o]=await s.finished;return n&&await(0,Q.Ay)(this.context,o),null!=n&&n}),(0,n.A)(this,"onHistoryRadioToggle",e=>{const t=this.state.history;t!==e&&(this.setState({history:e}),this.context.sendStateEvent(this.props.room.roomId,i.EventType.RoomHistoryVisibility,{history_visibility:e},"").catch(e=>{K.vF.error(e),this.setState({history:t})}))}),(0,n.A)(this,"updateBlacklistDevicesFlag",e=>{this.props.room.setBlacklistUnverifiedDevices(e)}),(0,n.A)(this,"onJoinRuleChangeError",e=>{var t;q.Ay.createDialog(te.A,{title:(0,a._t)("room_settings|security|error_join_rule_change_title"),description:null!==(t=e.message)&&void 0!==t?t:(0,a._t)("room_settings|security|error_join_rule_change_unknown")})}),(0,n.A)(this,"onBeforeJoinRuleChange",async e=>{if(this.state.encrypted&&e===i.JoinRule.Public){const e=q.Ay.createDialog(Y.A,{title:(0,a._t)("room_settings|security|encrypted_room_public_confirm_title"),description:o.createElement("div",null,o.createElement("p",null," ",(0,a._t)("room_settings|security|encrypted_room_public_confirm_description_1",void 0,{b:e=>o.createElement("strong",null,e)})," "),o.createElement("p",null," ",(0,a._t)("room_settings|security|encrypted_room_public_confirm_description_2",void 0,{a:t=>o.createElement(g.A,{kind:"link_inline",onClick:()=>{e.close(),this.createNewRoom(!0,!1)}}," ",t," ")})," "))}),{finished:t}=e,[s]=await t;if(!s)return!1}const t=this.props.room.getJoinRule()===i.JoinRule.Public;if(this.state.history===i.HistoryVisibility.WorldReadable&&t&&e!==i.JoinRule.Public){var s;const e=this.context;if(!(null===(s=this.props.room.currentState)||void 0===s?void 0:s.mayClientSendStateEvent(i.EventType.RoomHistoryVisibility,e))){const e=q.Ay.createDialog(te.A,{title:(0,a._t)("room_settings|security|cannot_change_to_private_due_to_missing_history_visiblity_permissions|title"),description:o.createElement("p",null,(0,a._t)("room_settings|security|cannot_change_to_private_due_to_missing_history_visiblity_permissions|description"))});return await e.finished,!1}try{await this.context.sendStateEvent(this.props.room.roomId,i.EventType.RoomHistoryVisibility,{history_visibility:i.HistoryVisibility.Shared},""),this.setState({history:i.HistoryVisibility.Shared})}catch(e){return K.vF.error("Failed to change history visibility",e),q.Ay.createDialog(te.A,{title:(0,a._t)("common|error"),description:(0,a._t)("error|update_history_visibility")}),!1}}return!0}),(0,n.A)(this,"toggleAdvancedSection",()=>{this.setState({showAdvancedSection:!this.state.showAdvancedSection})});const t=this.props.room.currentState;this.state={guestAccess:this.pullContentPropertyFromEvent(null==t?void 0:t.getStateEvents(i.EventType.RoomGuestAccess,""),"guest_access",i.GuestAccess.Forbidden),history:this.pullContentPropertyFromEvent(null==t?void 0:t.getStateEvents(i.EventType.RoomHistoryVisibility,""),"history_visibility",i.HistoryVisibility.Shared),hasAliases:!1,encrypted:null,showAdvancedSection:!1}}async componentDidMount(){var e;this.context.on(i.RoomStateEvent.Events,this.onStateEvent),this.setState({hasAliases:await this.hasAliases(),encrypted:Boolean(await(null===(e=this.context.getCrypto())||void 0===e?void 0:e.isEncryptionEnabledInRoom(this.props.room.roomId)))})}pullContentPropertyFromEvent(e,t,s){return(null==e?void 0:e.getContent()[t])||s}componentWillUnmount(){this.context.removeListener(i.RoomStateEvent.Events,this.onStateEvent)}async hasAliases(){const e=this.context,t=(await e.getLocalAliases(this.props.room.roomId)).aliases;return Array.isArray(t)&&0!==t.length}renderJoinRule(){const e=this.props.room,t=e.getJoinRule()===i.JoinRule.Public,s=o.createElement(o.Fragment,null,o.createElement("p",null,(0,a._t)("room_settings|security|join_rule_description",{roomName:e.name})),t&&this.state.history===i.HistoryVisibility.WorldReadable&&o.createElement("div",{className:"mx_SecurityRoomSettingsTab_warning"},o.createElement(J.I,{width:15,height:15}),o.createElement("span",null,(0,a._t)("room_settings|security|join_rule_world_readable_description"))),t&&!this.state.hasAliases&&o.createElement("div",{className:"mx_SecurityRoomSettingsTab_warning"},o.createElement(J.I,{width:15,height:15}),o.createElement("span",null,(0,a._t)("room_settings|security|public_without_alias_warning"))));let n;return e.getJoinRule()===i.JoinRule.Public&&(n=o.createElement("div",null,o.createElement(g.A,{onClick:this.toggleAdvancedSection,kind:"link",className:"mx_SettingsTab_showAdvanced","aria-expanded":this.state.showAdvancedSection},this.state.showAdvancedSection?(0,a._t)("action|hide_advanced"):(0,a._t)("action|show_advanced")),this.state.showAdvancedSection&&this.renderAdvanced())),o.createElement(U.A,{legend:(0,a._t)("room_settings|access|title"),description:s},o.createElement(ee.A,{room:e,beforeChange:this.onBeforeJoinRuleChange,onError:this.onJoinRuleChangeError,closeSettingsFn:this.props.closeSettingsFn,promptUpgrade:!0}),n)}renderHistory(){if(!C.A.getValue(R.f.RoomHistorySettings))return null;const e=this.context,t=this.state.history,s=this.props.room.currentState,n=null==s?void 0:s.mayClientSendStateEvent(i.EventType.RoomHistoryVisibility,e),r=[{value:i.HistoryVisibility.Shared,label:(0,a._t)("room_settings|security|history_visibility_shared")},{value:i.HistoryVisibility.Invited,label:(0,a._t)("room_settings|security|history_visibility_invited")},{value:i.HistoryVisibility.Joined,label:(0,a._t)("room_settings|security|history_visibility_joined")}];this.state.encrypted&&t!==i.HistoryVisibility.WorldReadable||r.unshift({value:i.HistoryVisibility.WorldReadable,label:(0,a._t)("room_settings|security|history_visibility_world_readable")});const l=(0,a._t)("room_settings|security|history_visibility_warning");return o.createElement(U.A,{legend:(0,a._t)("room_settings|security|history_visibility_legend"),description:l},o.createElement(Z.A,{name:"historyVis",value:t,onChange:this.onHistoryRadioToggle,disabled:!n,definitions:r}))}renderAdvanced(){const e=this.context,t=this.state.guestAccess,s=this.props.room.currentState,n=null==s?void 0:s.mayClientSendStateEvent(i.EventType.RoomGuestAccess,e);return o.createElement("div",{className:"mx_SecurityRoomSettingsTab_advancedSection"},o.createElement(G.A,{value:t===i.GuestAccess.CanJoin,onChange:this.onGuestAccessChange,disabled:!n,label:(0,a._t)("room_settings|visibility|guest_access_label")}),o.createElement("p",null,(0,a._t)("room_settings|security|guest_access_warning")))}render(){const e=this.context,t=this.props.room,s=this.state.encrypted,n=null===s,r=t.currentState.mayClientSendStateEvent(i.EventType.RoomEncryption,e),l=(0,oe.I)(e),c=!s&&!l&&r;let d;s&&C.A.canSetValue("blacklistUnverifiedDevices",this.props.room.roomId,D.p.ROOM_DEVICE)&&(d=o.createElement(j.A,{name:"blacklistUnverifiedDevices",level:D.p.ROOM_DEVICE,onChange:this.updateBlacklistDevicesFlag,roomId:this.props.room.roomId}));const m=this.renderHistory();return o.createElement(T.A,null,o.createElement(O.X,{heading:(0,a._t)("room_settings|security|title")},o.createElement(U.A,{legend:(0,a._t)("settings|security|encryption_section"),description:l&&!s?void 0:(0,a._t)("room_settings|security|encryption_permanent")},n?o.createElement(M.Z,null):o.createElement(o.Fragment,null,o.createElement(G.A,{value:s,onChange:this.onEncryptionChange,label:(0,a._t)("common|encrypted"),disabled:!c}),l&&!s&&o.createElement(ie.H,null,(0,a._t)("room_settings|security|encryption_forced")),d)),this.renderJoinRule(),m))}}(0,n.A)(ae,"contextType",S.Ay);var le=s("./src/Notifier.ts"),ce=s("./src/stores/local-echo/EchoChamber.ts"),de=s("./src/RoomNotifs.ts"),me=s("./src/components/views/dialogs/UserTab.ts"),ue=s("./src/utils/BrowserWorkarounds.ts");class he extends o.Component{constructor(e,t){super(e,t),(0,n.A)(this,"roomProps",void 0),(0,n.A)(this,"soundUpload",(0,o.createRef)()),(0,n.A)(this,"triggerUploader",async e=>{var t;e.stopPropagation(),e.preventDefault(),null===(t=this.soundUpload.current)||void 0===t||t.click()}),(0,n.A)(this,"onSoundUploadChanged",e=>{if(!e.target.files||!e.target.files.length)return void this.setState({uploadedFile:null});const t=e.target.files[0];this.setState({uploadedFile:t})}),(0,n.A)(this,"onClickSaveSound",async e=>{e.stopPropagation(),e.preventDefault();try{await this.saveSound()}catch(e){K.vF.error(`Unable to save notification sound for ${this.props.roomId}`),K.vF.error(e)}}),(0,n.A)(this,"clearSound",e=>{e.stopPropagation(),e.preventDefault(),C.A.setValue("notificationSound",this.props.roomId,D.p.ROOM_ACCOUNT,null),this.setState({currentSound:"default"})}),(0,n.A)(this,"onRoomNotificationChange",e=>{this.roomProps.notificationVolume=e,this.forceUpdate()}),(0,n.A)(this,"onOpenSettingsClick",e=>{e.preventDefault(),this.props.closeSettingsFn(),A.A.dispatch({action:N.r.ViewUserSettings,initialTabId:me.v.Notifications})}),this.roomProps=ce.s.forRoom(t.getRoom(this.props.roomId));let s="default";const i=le.default.getSoundForRoom(this.props.roomId);i&&(s=i.name||i.url),this.state={currentSound:s,uploadedFile:null}}async saveSound(){if(!this.state.uploadedFile)return;let e=this.state.uploadedFile.type;"video/ogg"===e&&(e="audio/ogg");const{content_uri:t}=await this.context.uploadContent(this.state.uploadedFile,{type:e});await C.A.setValue("notificationSound",this.props.roomId,D.p.ROOM_ACCOUNT,{name:this.state.uploadedFile.name,type:e,size:this.state.uploadedFile.size,url:t}),this.setState({uploadedFile:null,currentSound:this.state.uploadedFile.name})}render(){let e;return this.state.uploadedFile&&(e=o.createElement("div",null,o.createElement("span",null,(0,a._t)("room_settings|notifications|uploaded_sound"),": ",o.createElement("code",null,this.state.uploadedFile.name)))),o.createElement(T.A,null,o.createElement(O.X,{heading:(0,a._t)("notifications|enable_prompt_toast_title")},o.createElement("div",{className:"mx_NotificationSettingsTab_notificationsSection"},o.createElement(Z.A,{name:"roomNotificationSetting",definitions:[{value:de.dC.AllMessages,className:"mx_NotificationSettingsTab_defaultEntry",label:o.createElement(o.Fragment,null,(0,a._t)("notifications|default"),o.createElement("div",{className:"mx_NotificationSettingsTab_microCopy"},(0,a._t)("room_settings|notifications|settings_link",{},{a:e=>o.createElement(g.A,{kind:"link_inline",onClick:this.onOpenSettingsClick},e)})))},{value:de.dC.AllMessagesLoud,className:"mx_NotificationSettingsTab_allMessagesEntry",label:o.createElement(o.Fragment,null,(0,a._t)("notifications|all_messages"),o.createElement("div",{className:"mx_NotificationSettingsTab_microCopy"},(0,a._t)("notifications|all_messages_description")))},{value:de.dC.MentionsOnly,className:"mx_NotificationSettingsTab_mentionsKeywordsEntry",label:o.createElement(o.Fragment,null,(0,a._t)("notifications|mentions_and_keywords"),o.createElement("div",{className:"mx_NotificationSettingsTab_microCopy"},(0,a._t)("notifications|mentions_and_keywords_description",{},{a:e=>o.createElement(g.A,{kind:"link_inline",onClick:this.onOpenSettingsClick},e)})))},{value:de.dC.Mute,className:"mx_NotificationSettingsTab_noneEntry",label:o.createElement(o.Fragment,null,(0,a._t)("common|off"),o.createElement("div",{className:"mx_NotificationSettingsTab_microCopy"},(0,a._t)("notifications|mute_description")))}],onChange:this.onRoomNotificationChange,value:this.roomProps.notificationVolume})),o.createElement(P.P,{heading:(0,a._t)("room_settings|notifications|sounds_section")},o.createElement("div",null,o.createElement("div",{className:"mx_SettingsTab_subsectionText"},o.createElement("span",null,(0,a._t)("room_settings|notifications|notification_sound"),":"," ",o.createElement("code",null,this.state.currentSound))),o.createElement(g.A,{className:"mx_NotificationSound_resetSound",disabled:"default"==this.state.currentSound,onClick:this.clearSound,kind:"primary"},(0,a._t)("action|reset"))),o.createElement("div",null,o.createElement("h4",{className:"mx_Heading_h4"},(0,a._t)("room_settings|notifications|custom_sound_prompt")),o.createElement("div",{className:"mx_SettingsFlag"},o.createElement("form",{autoComplete:"off",noValidate:!0},o.createElement("input",{ref:this.soundUpload,className:"mx_NotificationSound_soundUpload",type:"file",onClick:ue.e,onChange:this.onSoundUploadChanged,accept:"audio/*","aria-label":(0,a._t)("room_settings|notifications|upload_sound_label")})),e),o.createElement(g.A,{className:"mx_NotificationSound_browse",onClick:this.triggerUploader,kind:"primary"},(0,a._t)("room_settings|notifications|browse_button")),o.createElement(g.A,{className:"mx_NotificationSound_save",disabled:null==this.state.uploadedFile,onClick:this.onClickSaveSound,kind:"primary"},(0,a._t)("action|save")),o.createElement("br",null)))))}}(0,n.A)(he,"contextType",S.Ay);var pe=s("./src/components/views/elements/Pill.tsx"),ge=s("./src/utils/permalinks/Permalinks.ts"),ve=s("./src/components/views/avatars/BaseAvatar.tsx"),_e=s("./src/HtmlUtils.tsx"),fe=s("./src/customisations/Media.ts");class ye extends o.PureComponent{render(){var e,t;const s=this.props.ev.getContent();if(null===(e=s.channel)||void 0===e||!e.id||null===(t=s.protocol)||void 0===t||!t.id)return K.vF.warn(`Bridge info event ${this.props.ev.getId()} has missing content. Tile will not render`),null;s.bridgebot||(K.vF.warn(`Bridge info event ${this.props.ev.getId()} does not provide a 'bridgebot' key whichis deprecated behaviour. Using sender for now.`),s.bridgebot=this.props.ev.getSender());const{channel:n,network:i,protocol:r}=s,l=r.displayname||r.id,c=n.displayname||n.id;let d;s.creator&&(d=o.createElement("li",null,(0,a._t)("labs|bridge_state_creator",{},{user:()=>o.createElement(pe.a,{type:pe.y.UserMention,room:this.props.room,url:(0,ge.Ne)(s.creator),shouldShowPillAvatar:C.A.getValue("Pill.shouldShowPillAvatar")})})));const m=o.createElement("li",null,(0,a._t)("labs|bridge_state_manager",{},{user:()=>o.createElement(pe.a,{type:pe.y.UserMention,room:this.props.room,url:(0,ge.Ne)(s.bridgebot),shouldShowPillAvatar:C.A.getValue("Pill.shouldShowPillAvatar")})}));let u,h;if(r.avatar_url){var p;const e=null!==(p=(0,fe.mediaFromMxc)(r.avatar_url).getSquareThumbnailHttp(64))&&void 0!==p?p:void 0;u=o.createElement(ve.A,{className:"mx_RoomSettingsDialog_protocolIcon",size:"48px",name:l,idName:l,url:e})}else u=o.createElement("div",{className:"mx_RoomSettingsDialog_noProtocolIcon"});if(i){const e=i.displayname||i.id;let t=o.createElement("span",null,e);"string"==typeof i.external_url&&(0,_e.SR)(i.external_url)&&(t=o.createElement("a",{href:i.external_url,target:"_blank",rel:"noreferrer noopener"},e)),h=(0,a._t)("labs|bridge_state_workspace",{},{networkLink:()=>t})}let g=o.createElement("span",null,c);"string"==typeof n.external_url&&(0,_e.SR)(n.external_url)&&(g=o.createElement("a",{href:n.external_url,target:"_blank",rel:"noreferrer noopener"},c));const v=this.props.ev.getId();return o.createElement("li",{key:v,className:"mx_RoomSettingsDialog_BridgeList_listItem"},o.createElement("div",{className:"mx_RoomSettingsDialog_column_icon"},u),o.createElement("div",{className:"mx_RoomSettingsDialog_column_data"},o.createElement("h3",{className:"mx_RoomSettingsDialog_column_data_protocolName"},l),o.createElement("p",{className:"mx_RoomSettingsDialog_column_data_details mx_RoomSettingsDialog_workspace_channel_details"},h,o.createElement("span",{className:"mx_RoomSettingsDialog_channel"},(0,a._t)("labs|bridge_state_channel",{},{channelLink:()=>g}))),o.createElement("ul",{className:"mx_RoomSettingsDialog_column_data_metadata mx_RoomSettingsDialog_metadata"},d," ",m)))}}const be=["uk.half-shot.bridge"],Ee="https://matrix.org/bridges/";class we extends o.Component{renderBridgeCard(e,t){const s=e.getContent();return t&&null!=s&&s.channel&&s.protocol?o.createElement(ye,{key:e.getId(),room:t,ev:e}):null}static getBridgeStateEvents(e,t){var s;const n=null===(s=e.getRoom(t))||void 0===s?void 0:s.currentState;return n?be.map(e=>n.getStateEvents(e)).flat(1):[]}render(){const e=we.getBridgeStateEvents(this.context,this.props.room.roomId),t=this.props.room;let s;return s=e.length>0?o.createElement("div",null,o.createElement("p",null,(0,a._t)("room_settings|bridges|description",{},{a:e=>o.createElement("a",{href:Ee,target:"_blank",rel:"noreferrer noopener"},e)})),o.createElement("ul",{className:"mx_RoomSettingsDialog_BridgeList"},e.map(e=>this.renderBridgeCard(e,t)))):o.createElement("p",null,(0,a._t)("room_settings|bridges|empty",{},{a:e=>o.createElement("a",{href:Ee,target:"_blank",rel:"noreferrer noopener"},e)})),o.createElement(T.A,null,o.createElement(O.X,{heading:(0,a._t)("room_settings|bridges|title")},s))}}(0,n.A)(we,"contextType",S.Ay);var xe=s("./src/components/views/dialogs/BaseDialog.tsx"),Ae=s("./src/hooks/useRoomState.ts"),Se=s("./src/call-types.ts");function Ce(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}const Re=({room:e})=>{var t;const s=(0,o.useMemo)(()=>e.getJoinRule()===i.JoinRule.Public,[e]),[r,l]=(0,Ae.U)(e,(0,o.useCallback)(t=>{var s;const n=null==t||null===(s=t.getStateEvents(i.EventType.RoomPowerLevels,""))||void 0===s?void 0:s.getContent();return[null!=n?n:{},null==t?void 0:t.maySendStateEvent(i.EventType.RoomPowerLevels,e.client.getSafeUserId())]},[e.client])),[c,d]=(0,o.useState)(()=>{var e;return 0===(null===(e=r.events)||void 0===e?void 0:e[Se.Vj.name])}),m=(0,o.useCallback)(t=>{d(t);const o=function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Ce(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Ce(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}({events:{}},r);if(t){var a,l,c;const e=null!==(a=null!==(l=o.events[i.EventType.RoomMessage])&&void 0!==l?l:r.users_default)&&void 0!==a?a:0,t=null!==(c=r.kick)&&void 0!==c?c:50;o.events[Se.Fm.name]=s?t:e,o.events[Se.Vj.name]=e}else{var m,u;const e=null!==(m=null!==(u=o.events[i.EventType.RoomPowerLevels])&&void 0!==u?u:r.state_default)&&void 0!==m?m:100;o.events[Se.Fm.name]=e,o.events[Se.Vj.name]=e}e.client.sendStateEvent(e.roomId,i.EventType.RoomPowerLevels,o)},[e.client,e.roomId,r,s]),u=null!==(t=ne.Ay.get("element_call").brand)&&void 0!==t?t:ne.zY.element_call.brand;return o.createElement(G.A,{label:(0,a._t)("room_settings|voip|enable_element_call_label",{brand:u}),caption:(0,a._t)("room_settings|voip|enable_element_call_caption",{brand:u}),value:c,onChange:m,disabled:!l,tooltip:(0,a._t)("room_settings|voip|enable_element_call_no_permissions_tooltip")})},ke=({room:e})=>o.createElement(T.A,null,o.createElement(O.X,{heading:(0,a._t)("settings|voip|title")},o.createElement(P.P,{heading:(0,a._t)("room_settings|voip|call_type_section")},o.createElement(Re,{room:e}))));var Ie=s("./src/components/views/polls/pollHistory/PollHistory.tsx");const Pe=({room:e,onFinished:t})=>{const s=(0,o.useContext)(S.Ay),n=new ge.pE(e,e.roomId);return o.createElement("div",{className:"mx_SettingsTab"},o.createElement(Ie.a,{room:e,permalinkCreator:n,matrixClient:s,onFinished:t}))};var Te=s("./src/components/views/elements/ErrorBoundary.tsx"),Oe=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/close.js"),Me=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/check.js"),Ne=s("./src/DateUtils.ts"),De=s("./src/hooks/useEventEmitter.ts"),je=s("./src/components/views/avatars/MemberAvatar.tsx");const Ue=({roomMember:e})=>{var t;const s=null===(t=e.events.member)||void 0===t?void 0:t.event.origin_server_ts;return s?o.createElement("time",{className:"mx_PeopleRoomSettingsTab_timestamp"},(0,Ne.fw)(new Date(s))):null},Fe=({roomMember:e})=>{var t;const[s,n]=(0,o.useState)(!1),i=null===(t=e.events.member)||void 0===t?void 0:t.getContent().reason;if(!i)return null;const r=i.length>120;return o.createElement(o.Fragment,null,o.createElement("p",{className:"mx_PeopleRoomSettingsTab_seeMoreOrLess"},s||!r?i:`${i.substring(0,120)}…`),r&&o.createElement(g.A,{kind:"link",onClick:()=>n(!s)},s?(0,a._t)("room_settings|people|see_less"):(0,a._t)("room_settings|people|see_more")))},Le=({canKick:e,canInvite:t,onApprove:s,onDeny:n,roomMember:i})=>{const[r,l]=(0,o.useState)(!1),c=()=>l(!1);return o.createElement("div",{className:"mx_PeopleRoomSettingsTab_knock"},o.createElement(je.A,{className:"mx_PeopleRoomSettingsTab_avatar",member:i,size:"42px"}),o.createElement("div",{className:"mx_PeopleRoomSettingsTab_content"},o.createElement("span",{className:"mx_PeopleRoomSettingsTab_name"},i.name),o.createElement(Ue,{roomMember:i}),o.createElement("span",{className:"mx_PeopleRoomSettingsTab_userId"},i.userId),o.createElement(Fe,{roomMember:i})),o.createElement(g.A,{className:"mx_PeopleRoomSettingsTab_action",disabled:!e||r,kind:"icon_primary_outline",onClick:()=>{return e=i.userId,l(!0),void n(e).catch(c);var e},title:(0,a._t)("action|deny")},o.createElement(Oe.A,{width:18,height:18})),o.createElement(g.A,{className:"mx_PeopleRoomSettingsTab_action",disabled:!t||r,kind:"icon_primary",onClick:()=>{return e=i.userId,l(!0),void s(e).catch(c);var e},title:(0,a._t)("action|approve")},o.createElement(Me.A,{width:18,height:18})))},Be=({room:e})=>{const t=e.client,s=t.getUserId()||"",n=e.canInvite(s),r=e.getMember(s),l=e.getLiveTimeline().getState(i.EventTimeline.FORWARDS),c=!(!r||!l)&&l.hasSufficientPowerLevelFor("kick",r.powerLevel),m=e.roomId,u=e=>new Promise((s,n)=>t.invite(m,e).catch(e=>{p(e),n(e)})),h=e=>new Promise((s,n)=>t.kick(m,e).catch(e=>{p(e),n(e)})),p=e=>q.Ay.createDialog(te.A,{title:e.name,description:e.message}),g=(0,De.DY)(e,i.RoomStateEvent.Update,(0,o.useCallback)(()=>e.getMembersWithMembership(d.O.Knock),[e]));return o.createElement(T.A,null,o.createElement(O.X,{heading:(0,a._t)("common|people")},o.createElement(U.A,{legend:(0,a._t)("room_settings|people|knock_section")},g.length?g.map(e=>o.createElement(Le,{canInvite:n,canKick:c,key:e.userId,onApprove:u,onDeny:h,roomMember:e})):o.createElement("p",{className:"mx_PeopleRoomSettingsTab_paragraph"},(0,a._t)("room_settings|people|knock_empty")))))};let Ve=function(e){return e.General="ROOM_GENERAL_TAB",e.People="ROOM_PEOPLE_TAB",e.Voip="ROOM_VOIP_TAB",e.Security="ROOM_SECURITY_TAB",e.Roles="ROOM_ROLES_TAB",e.Notifications="ROOM_NOTIFICATIONS_TAB",e.Bridges="ROOM_BRIDGES_TAB",e.Advanced="ROOM_ADVANCED_TAB",e.PollHistory="ROOM_POLL_HISTORY_TAB",e}({});class He extends o.Component{constructor(e){super(e),(0,n.A)(this,"dispatcherRef",void 0),(0,n.A)(this,"onAction",e=>{e.action===N.r.ViewHomePage&&this.props.onFinished(!0)}),(0,n.A)(this,"onRoomName",()=>{this.forceUpdate()}),(0,n.A)(this,"onStateEvent",e=>{e.getType()===i.EventType.RoomJoinRules&&this.forceUpdate()}),(0,n.A)(this,"onTabChange",e=>{this.setState({activeTabId:e})});const t=this.getRoom();this.state={room:t,activeTabId:e.initialTabId||Ve.General}}componentDidMount(){this.dispatcherRef=A.A.register(this.onAction),h.J.safeGet().on(i.RoomEvent.Name,this.onRoomName),h.J.safeGet().on(i.RoomStateEvent.Events,this.onStateEvent),this.onRoomName()}componentDidUpdate(){if(this.props.roomId!==this.state.room.roomId){const e=this.getRoom();this.setState({room:e})}}componentWillUnmount(){var e,t;A.A.unregister(this.dispatcherRef),null===(e=h.J.get())||void 0===e||e.removeListener(i.RoomEvent.Name,this.onRoomName),null===(t=h.J.get())||void 0===t||t.removeListener(i.RoomStateEvent.Events,this.onStateEvent)}getRoom(){const e=h.J.safeGet().getRoom(this.props.roomId);if(!e)throw new Error(`Cannot find room ${this.props.roomId}`);return e}getTabs(){const e=[];return e.push(new r.oz(Ve.General,(0,a.AO)("common|general"),"mx_RoomSettingsDialog_settingsIcon",o.createElement(z,{room:this.state.room}),"RoomSettingsGeneral")),C.A.getValue("feature_ask_to_join")&&"knock"===this.state.room.getJoinRule()&&e.push(new r.oz(Ve.People,(0,a.AO)("common|people"),"mx_RoomSettingsDialog_peopleIcon",o.createElement(Be,{room:this.state.room}))),C.A.getValue("feature_group_calls")&&e.push(new r.oz(Ve.Voip,(0,a.AO)("settings|voip|title"),"mx_RoomSettingsDialog_voiceIcon",o.createElement(ke,{room:this.state.room}))),e.push(new r.oz(Ve.Security,(0,a.AO)("room_settings|security|title"),"mx_RoomSettingsDialog_securityIcon",o.createElement(ae,{room:this.state.room,closeSettingsFn:()=>this.props.onFinished(!0)}),"RoomSettingsSecurityPrivacy")),e.push(new r.oz(Ve.Roles,(0,a.AO)("room_settings|permissions|title"),"mx_RoomSettingsDialog_rolesIcon",o.createElement(c.A,{room:this.state.room}),"RoomSettingsRolesPermissions")),e.push(new r.oz(Ve.Notifications,(0,a.AO)("notifications|enable_prompt_toast_title"),"mx_RoomSettingsDialog_notificationsIcon",o.createElement(he,{roomId:this.state.room.roomId,closeSettingsFn:()=>this.props.onFinished(!0)}),"RoomSettingsNotifications")),C.A.getValue("feature_bridge_state")&&e.push(new r.oz(Ve.Bridges,(0,a.AO)("room_settings|bridges|title"),"mx_RoomSettingsDialog_bridgesIcon",o.createElement(we,{room:this.state.room}),"RoomSettingsBridges")),e.push(new r.oz(Ve.PollHistory,(0,a.AO)("right_panel|polls_button"),"mx_RoomSettingsDialog_pollsIcon",o.createElement(Pe,{room:this.state.room,onFinished:()=>this.props.onFinished(!0)}))),C.A.getValue(R.f.AdvancedSettings)&&e.push(new r.oz(Ve.Advanced,(0,a.AO)("common|advanced"),"mx_RoomSettingsDialog_warningIcon",o.createElement(l.A,{room:this.state.room,closeSettingsFn:()=>this.props.onFinished(!0)}),"RoomSettingsAdvanced")),e}render(){const e=this.state.room.name;return o.createElement(xe.A,{className:"mx_RoomSettingsDialog",hasCancel:!0,onFinished:this.props.onFinished,title:(0,a._t)("room_settings|title",{roomName:e})},o.createElement("div",{className:"mx_SettingsDialog_content"},o.createElement(r.Ay,{tabs:this.getTabs(),activeTabId:this.state.activeTabId,screenName:"RoomSettings",onChange:this.onTabChange})))}}const We=e=>o.createElement(Te.A,null,o.createElement(He,e))},"./src/components/views/dialogs/RoomUpgradeDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>u});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./src/Modal.tsx"),r=s("./src/languageHandler.tsx"),a=s("./src/utils/RoomUpgrade.ts"),l=s("./src/components/views/dialogs/BaseDialog.tsx"),c=s("./src/components/views/dialogs/ErrorDialog.tsx"),d=s("./src/components/views/elements/DialogButtons.tsx"),m=s("./src/components/views/elements/Spinner.tsx");class u extends o.Component{constructor(...e){super(...e),(0,n.A)(this,"targetVersion",void 0),(0,n.A)(this,"state",{busy:!0}),(0,n.A)(this,"onCancelClick",()=>{this.props.onFinished(!1)}),(0,n.A)(this,"onUpgradeClick",()=>{this.setState({busy:!0}),(0,a.W)(this.props.room,this.targetVersion,!1,!1).then(()=>{this.props.onFinished(!0)}).catch(e=>{var t;i.Ay.createDialog(c.A,{title:(0,r._t)("room_settings|advanced|error_upgrade_title"),description:null!==(t=null==e?void 0:e.message)&&void 0!==t?t:(0,r._t)("room_settings|advanced|error_upgrade_description")})}).finally(()=>{this.setState({busy:!1})})})}async componentDidMount(){const e=await this.props.room.getRecommendedVersion();this.targetVersion=e.version,this.setState({busy:!1})}render(){let e;return e=this.state.busy?o.createElement(m.A,null):o.createElement(d.A,{primaryButton:(0,r._t)("room_settings|advanced|upgrade_button",{version:this.targetVersion}),primaryButtonClass:"danger",hasCancel:!0,onPrimaryButtonClick:this.onUpgradeClick,onCancel:this.onCancelClick}),o.createElement(l.A,{className:"mx_RoomUpgradeDialog",onFinished:this.props.onFinished,title:(0,r._t)("room_settings|advanced|upgrade_dialog_title"),contentId:"mx_Dialog_content",hasCancel:!0},o.createElement("p",null,(0,r._t)("room_settings|advanced|upgrade_dialog_description")),o.createElement("ol",null,o.createElement("li",null,(0,r._t)("room_settings|advanced|upgrade_dialog_description_1")),o.createElement("li",null,(0,r._t)("room_settings|advanced|upgrade_dialog_description_2")),o.createElement("li",null,(0,r._t)("room_settings|advanced|upgrade_dialog_description_3")),o.createElement("li",null,(0,r._t)("room_settings|advanced|upgrade_dialog_description_4"))),e)}}},"./src/components/views/dialogs/RoomUpgradeWarningDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>v});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./src/languageHandler.tsx"),a=s("./src/SdkConfig.ts"),l=s("./src/components/views/elements/LabelledToggleSwitch.tsx"),c=s("./src/MatrixClientPeg.ts"),d=s("./src/Modal.tsx"),m=s("./src/components/views/dialogs/BugReportDialog.tsx"),u=s("./src/components/views/dialogs/BaseDialog.tsx"),h=s("./src/components/views/elements/DialogButtons.tsx"),p=s("./src/components/views/elements/ProgressBar.tsx"),g=s("./src/components/views/elements/AccessibleButton.tsx");class v extends o.Component{constructor(e){var t;super(e),(0,n.A)(this,"joinRule",void 0),(0,n.A)(this,"isInviteOrKnockRoom",void 0),(0,n.A)(this,"currentVersion",void 0),(0,n.A)(this,"onProgressCallback",(e,t,s)=>{this.setState({progress:{text:e,progress:t,total:s}})}),(0,n.A)(this,"onContinue",async()=>{var e,t;const s={continue:!0,invite:this.isInviteOrKnockRoom&&this.state.inviteUsersToNewRoom};await(null===(e=(t=this.props).doUpgrade)||void 0===e?void 0:e.call(t,s,this.onProgressCallback)),this.props.onFinished(s)}),(0,n.A)(this,"onCancel",()=>{this.props.onFinished({continue:!1,invite:!1})}),(0,n.A)(this,"onInviteUsersToggle",e=>{this.setState({inviteUsersToNewRoom:e})}),(0,n.A)(this,"openBugReportDialog",e=>{e.preventDefault(),e.stopPropagation(),d.Ay.createDialog(m.A,{})});const s=c.J.safeGet().getRoom(this.props.roomId),o=null==s?void 0:s.currentState.getStateEvents(i.EventType.RoomJoinRules,"");this.joinRule=null!==(t=null==o?void 0:o.getContent().join_rule)&&void 0!==t?t:i.JoinRule.Invite,this.isInviteOrKnockRoom=[i.JoinRule.Invite,i.JoinRule.Knock].includes(this.joinRule),this.currentVersion=null==s?void 0:s.getVersion(),this.state={inviteUsersToNewRoom:!0}}render(){const e=a.Ay.get().brand;let t,s;switch(this.isInviteOrKnockRoom&&(t=o.createElement(l.A,{value:this.state.inviteUsersToNewRoom,onChange:this.onInviteUsersToggle,label:(0,r._t)("room_settings|advanced|upgrade_warning_dialog_invite_label")})),this.joinRule){case i.JoinRule.Invite:s=(0,r._t)("room_settings|advanced|upgrade_warning_dialog_title_private");break;case i.JoinRule.Public:s=(0,r._t)("room_settings|advanced|upgrade_dwarning_ialog_title_public");break;default:s=(0,r._t)("room_settings|advanced|upgrade_warning_dialog_title")}let n,c=o.createElement("p",null,(0,r._t)("room_settings|advanced|upgrade_warning_dialog_report_bug_prompt",{brand:e}));return a.Ay.get().bug_report_endpoint_url&&(c=o.createElement("p",null,(0,r._t)("room_settings|advanced|upgrade_warning_dialog_report_bug_prompt_link",{brand:e},{a:e=>o.createElement(g.A,{kind:"link_inline",onClick:this.openBugReportDialog},e)}))),n=this.state.progress?o.createElement("span",{className:"mx_RoomUpgradeWarningDialog_progress"},o.createElement(p.A,{value:this.state.progress.progress,max:this.state.progress.total}),o.createElement("div",{className:"mx_RoomUpgradeWarningDialog_progressText"},this.state.progress.text)):o.createElement(h.A,{primaryButton:(0,r._t)("action|upgrade"),onPrimaryButtonClick:this.onContinue,cancelButton:(0,r._t)("action|cancel"),onCancel:this.onCancel}),o.createElement(u.A,{className:"mx_RoomUpgradeWarningDialog",hasCancel:!0,fixedWidth:!1,onFinished:this.props.onFinished,title:s},o.createElement("div",null,o.createElement("p",null,this.props.description||(0,r._t)("room_settings|advanced|upgrade_warning_dialog_description")),o.createElement("p",null,(0,r._t)("room_settings|advanced|upgrade_warning_dialog_explainer",{},{b:e=>o.createElement("strong",null,e)})),c,o.createElement("p",null,(0,r._t)("room_settings|advanced|upgrade_warning_dialog_footer",{},{oldVersion:()=>o.createElement("code",null,this.currentVersion),newVersion:()=>o.createElement("code",null,this.props.targetVersion)})),t),n)}}},"./src/components/views/dialogs/ScrollableBaseModal.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>u});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/react-focus-lock/dist/es2015/index.js"),r=s("./src/MatrixClientPeg.ts"),a=s("./src/contexts/MatrixClientContext.tsx"),l=s("./src/languageHandler.tsx"),c=s("./src/components/views/elements/AccessibleButton.tsx"),d=s("./src/accessibility/KeyboardShortcuts.ts"),m=s("./src/KeyBindingsManager.ts");class u extends o.PureComponent{constructor(e){super(e),(0,n.A)(this,"onKeyDown",e=>{if((0,m.zM)().getAccessibilityAction(e)===d.bY.Escape)e.stopPropagation(),e.preventDefault(),this.cancel()}),(0,n.A)(this,"onCancel",()=>{this.cancel()}),(0,n.A)(this,"onSubmit",e=>{e.stopPropagation(),e.preventDefault(),this.state.canSubmit&&this.submit()})}get matrixClient(){return r.J.get()}render(){var e;return o.createElement(a.Ay.Provider,{value:this.matrixClient},o.createElement(i.Ay,{returnFocus:!0,lockProps:{onKeyDown:this.onKeyDown,role:"dialog","aria-labelledby":"mx_CompoundDialog_title","aria-describedby":"mx_CompoundDialog_content"},className:"mx_CompoundDialog mx_ScrollableBaseDialog"},o.createElement("div",{className:"mx_CompoundDialog_header"},o.createElement("h1",null,this.state.title)),o.createElement(c.A,{onClick:this.onCancel,className:"mx_CompoundDialog_cancelButton","aria-label":(0,l._t)("dialog_close_label")}),o.createElement("form",{onSubmit:this.onSubmit,className:"mx_CompoundDialog_form"},o.createElement("div",{className:"mx_CompoundDialog_content"},this.renderContent()),o.createElement("div",{className:"mx_CompoundDialog_footer"},o.createElement(c.A,{onClick:this.onCancel,kind:"primary_outline"},null!==(e=this.state.cancelLabel)&&void 0!==e?e:(0,l._t)("action|cancel")),o.createElement(c.A,{onClick:this.onSubmit,kind:"primary",disabled:!this.state.canSubmit,type:"submit",element:"button",className:"mx_Dialog_nonDialogButton"},this.state.actionLabel)))))}}},"./src/components/views/dialogs/ShareDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{G:()=>y});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./node_modules/@vector-im/compound-web/dist/components/Button/Button.js"),a=s("./node_modules/@vector-im/compound-web/dist/components/Form/Controls/Checkbox/Checkbox.js"),l=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/link.js"),c=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/check.js"),d=s("./src/languageHandler.tsx"),m=s("./src/components/views/elements/QRCode.tsx"),u=s("./src/utils/permalinks/Permalinks.ts"),h=s("./src/utils/strings.ts"),p=s("./src/settings/UIFeature.ts"),g=s("./src/components/views/dialogs/BaseDialog.tsx"),v=s("./src/hooks/useSettings.ts");function _(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}const f=[{name:"Facebook",img:s("./res/img/social/facebook.png"),url:e=>`https://www.facebook.com/sharer/sharer.php?u=${e}`},{name:"Twitter",img:s("./res/img/social/twitter-2.png"),url:e=>`https://twitter.com/home?status=${e}`},{name:"LinkedIn",img:s("./res/img/social/linkedin.png"),url:e=>`https://www.linkedin.com/shareArticle?mini=true&url=${e}`},{name:"Reddit",img:s("./res/img/social/reddit.png"),url:e=>`https://www.reddit.com/submit?url=${e}`},{name:"email",img:s("./res/img/social/email-1.png"),url:e=>`mailto:?body=${e}`}];function y({target:e,customTitle:t,onFinished:s,permalinkCreator:f}){const y=(0,v.ti)(p.f.ShareQRCode),E=(0,v.ti)(p.f.ShareSocial),w=(0,o.useRef)(void 0),[x,A]=(0,o.useState)(!1),[S,C]=(0,o.useState)(e instanceof i.MatrixEvent),{title:R,url:k,checkboxLabel:I}=function(e,t,s){return(0,o.useMemo)(()=>{if(e instanceof URL)return{title:(0,d._t)("share|title_link"),url:e.toString()};if(e instanceof i.User||e instanceof i.RoomMember)return{title:(0,d._t)("share|title_user"),url:(0,u.Ne)(e.userId)};if(e instanceof i.Room){const s=(0,d._t)("share|title_room"),o=new u.pE(e);o.load();const i=e.getLiveTimeline().getEvents();return function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?_(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):_(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}({title:s,url:t?o.forEvent(i[i.length-1].getId()):o.forShareableRoom()},i.length>0&&{checkboxLabel:(0,d._t)("share|permalink_most_recent")})}const o=t?s.forEvent(e.getId()):s.forShareableRoom();return{title:(0,d._t)("share|title_message"),url:o,checkboxLabel:(0,d._t)("share|permalink_message")}},[e,t,s])}(e,S,f),P=null!=t?t:R;return o.createElement(g.A,{title:P,className:"mx_ShareDialog",contentId:"mx_Dialog_content",onFinished:s,fixedWidth:!1},o.createElement("div",{className:"mx_ShareDialog_content"},o.createElement("div",{className:"mx_ShareDialog_top"},y&&o.createElement(m.A,{data:k,width:200}),o.createElement("span",null,k)),I&&o.createElement("label",null,o.createElement(a.O,{defaultChecked:S,onChange:e=>C(e.target.checked)}),I),o.createElement(r.$,{Icon:x?c.A:l.A,onClick:async()=>{clearTimeout(w.current),await(0,h.nC)(k),A(!0),w.current=setTimeout(()=>A(!1),2e3)}},x?(0,d._t)("share|link_copied"):(0,d._t)("action|copy_link")),E&&o.createElement(b,{url:k})))}function b({url:e}){return o.createElement("div",{className:"mx_ShareDialog_social"},f.map(t=>o.createElement("a",{key:t.name,href:t.url(e),target:"_blank",rel:"noreferrer noopener",title:t.name},o.createElement("img",{src:t.img,alt:t.name}))))}},"./src/components/views/dialogs/TextInputDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>c});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./src/components/views/elements/Field.tsx"),r=s("./src/languageHandler.tsx"),a=s("./src/components/views/dialogs/BaseDialog.tsx"),l=s("./src/components/views/elements/DialogButtons.tsx");class c extends o.Component{constructor(e){super(e),(0,n.A)(this,"field",(0,o.createRef)()),(0,n.A)(this,"onOk",async e=>{if(e.preventDefault(),this.field.current)return this.props.validator&&(this.setState({busy:!0}),await this.field.current.validate({allowEmpty:!1}),!this.field.current.state.valid)?(this.field.current.focus(),this.field.current.validate({allowEmpty:!1,focused:!0}),void this.setState({busy:!1})):void this.props.onFinished(!0,this.state.value)}),(0,n.A)(this,"onCancel",()=>{this.props.onFinished(!1)}),(0,n.A)(this,"onChange",e=>{this.setState({value:e.target.value})}),(0,n.A)(this,"onValidate",async e=>{const t=await this.props.validator(e);return this.setState({valid:!!t.valid}),t}),this.state={value:this.props.value,busy:!1,valid:!1}}componentDidMount(){var e;this.props.focus&&(null===(e=this.field.current)||void 0===e||e.focus())}render(){return o.createElement(a.A,{className:"mx_TextInputDialog",onFinished:this.props.onFinished,title:this.props.title,fixedWidth:this.props.fixedWidth},o.createElement("form",{onSubmit:this.onOk},o.createElement("div",{className:"mx_Dialog_content"},o.createElement("div",{className:"mx_TextInputDialog_label"},o.createElement("label",{htmlFor:"textinput"}," ",this.props.description," ")),o.createElement("div",null,o.createElement(i.A,{className:"mx_TextInputDialog_input",ref:this.field,type:"text",label:this.props.placeholder,value:this.state.value,onChange:this.onChange,onValidate:this.props.validator?this.onValidate:void 0})))),o.createElement(l.A,{primaryButton:this.state.busy?(0,r._t)(this.props.busyMessage):this.props.button,disabled:this.state.busy,onPrimaryButtonClick:this.onOk,onCancel:this.onCancel,hasCancel:this.props.hasCancel}))}}(0,n.A)(c,"defaultProps",{title:"",value:"",description:"",busyMessage:(0,r.AO)("common|loading"),focus:!0,hasCancel:!0})},"./src/components/views/dialogs/UploadConfirmDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>m});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/files.js"),r=s("./src/languageHandler.tsx"),a=s("./src/utils/blobs.ts"),l=s("./src/components/views/dialogs/BaseDialog.tsx"),c=s("./src/components/views/elements/DialogButtons.tsx"),d=s("./src/utils/FileUtils.ts");class m extends o.Component{constructor(e){super(e),(0,n.A)(this,"objectUrl",void 0),(0,n.A)(this,"mimeType",void 0),(0,n.A)(this,"onCancelClick",()=>{this.props.onFinished(!1)}),(0,n.A)(this,"onUploadClick",()=>{this.props.onFinished(!0)}),(0,n.A)(this,"onUploadAllClick",()=>{this.props.onFinished(!0,!0)}),this.mimeType=(0,a.F)(e.file.type);const t=new Blob([e.file],{type:this.mimeType});this.objectUrl=URL.createObjectURL(t)}componentWillUnmount(){this.objectUrl&&URL.revokeObjectURL(this.objectUrl)}render(){let e;e=this.props.totalFiles>1&&void 0!==this.props.currentIndex?(0,r._t)("upload_file|title_progress",{current:this.props.currentIndex+1,total:this.props.totalFiles}):(0,r._t)("upload_file|title");const t=`mx-uploadconfirmdialog-${this.props.file.name}`;let s,n,a;return this.mimeType.startsWith("image/")?s=o.createElement("img",{className:"mx_UploadConfirmDialog_imagePreview",src:this.objectUrl,"aria-labelledby":t}):this.mimeType.startsWith("video/")?s=o.createElement("video",{className:"mx_UploadConfirmDialog_imagePreview",src:this.objectUrl,playsInline:!0,controls:!1}):n=o.createElement(i.A,{className:"mx_UploadConfirmDialog_fileIcon",height:"18px",width:"18px"}),this.props.currentIndex+1<this.props.totalFiles&&(a=o.createElement("button",{onClick:this.onUploadAllClick},(0,r._t)("upload_file|upload_all_button"))),o.createElement(l.A,{className:"mx_UploadConfirmDialog",fixedWidth:!1,onFinished:this.onCancelClick,title:e,contentId:"mx_Dialog_content"},o.createElement("div",{id:"mx_Dialog_content"},o.createElement("div",{className:"mx_UploadConfirmDialog_previewOuter"},o.createElement("div",{className:"mx_UploadConfirmDialog_previewInner"},s&&o.createElement("div",null,s),o.createElement("div",{id:t},n,this.props.file.name," (",(0,d.Ov)(this.props.file.size),")")))),o.createElement(c.A,{primaryButton:(0,r._t)("action|upload"),hasCancel:!1,onPrimaryButtonClick:this.onUploadClick,focus:!0},a))}}(0,n.A)(m,"defaultProps",{totalFiles:1,currentIndex:0})},"./src/components/views/dialogs/UserTab.ts":(e,t,s)=>{"use strict";s.d(t,{v:()=>n});let n=function(e){return e.Account="USER_ACCOUNT_TAB",e.Appearance="USER_APPEARANCE_TAB",e.Notifications="USER_NOTIFICATIONS_TAB",e.Preferences="USER_PREFERENCES_TAB",e.Keyboard="USER_KEYBOARD_TAB",e.Sidebar="USER_SIDEBAR_TAB",e.Voice="USER_VOICE_TAB",e.Security="USER_SECURITY_TAB",e.Encryption="USER_ENCRYPTION_TAB",e.Labs="USER_LABS_TAB",e.Mjolnir="USER_MJOLNIR_TAB",e.Help="USER_HELP_TAB",e.SessionManager="USER_SESSION_MANAGER_TAB",e}({})},"./src/components/views/dialogs/devtools/BaseTool.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>a,I:()=>l});var n=s("./node_modules/react/index.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./src/languageHandler.tsx");const a=({className:e,actionLabel:t,onBack:s,onAction:o,children:a,extraButton:l})=>{const[c,d]=(0,n.useState)(null);let m=null;if(c)a=c;else if(o&&t){const e=()=>{o().then(e=>{"string"==typeof e&&d(e)})};m=n.createElement("button",{onClick:e},(0,r._t)(t))}return n.createElement(n.Fragment,null,n.createElement("div",{className:i()("mx_DevTools_content",e)},a),n.createElement("div",{className:"mx_Dialog_buttons"},l,n.createElement("button",{onClick:()=>{c?d(null):s()}},(0,r._t)("action|back")),m))},l=(0,n.createContext)({})},"./src/components/views/dialogs/devtools/Event.tsx":(e,t,s)=>{"use strict";s.d(t,{As:()=>d,E8:()=>p,hb:()=>u,lv:()=>v,r3:()=>m,t2:()=>g});var n=s("./node_modules/react/index.js"),o=s("./src/languageHandler.tsx"),i=s("./src/components/views/elements/Field.tsx"),r=s("./src/components/views/dialogs/devtools/BaseTool.tsx"),a=s("./src/contexts/MatrixClientContext.tsx"),l=s("./src/components/views/elements/Validation.tsx"),c=s("./src/components/views/elements/SyntaxHighlight.tsx");const d=e=>JSON.stringify(e,null,2),m=e=>({id:"eventType",label:(0,o.AO)("devtools|event_type"),default:e}),u=e=>({id:"stateKey",label:(0,o.AO)("devtools|state_key"),default:e}),h=(0,l.A)({async deriveData({value:e}){try{JSON.parse(e)}catch(e){return e}},rules:[{key:"validJson",test:({value:e},t)=>!e||!t,invalid:e=>(0,o._t)("devtools|invalid_json")+" "+e}]}),p=({fieldDefs:e,defaultContent:t="{\n\n}",onSend:s,onBack:a})=>{const[l,c]=(0,n.useState)(e.map(e=>{var t;return null!==(t=e.default)&&void 0!==t?t:""})),[d,m]=(0,n.useState)(t),u=(0,n.useRef)(null),p=e.map((e,s)=>n.createElement(i.A,{key:e.id,id:e.id,label:(0,o._t)(e.label),size:42,autoFocus:void 0===t&&0===s,type:"text",autoComplete:"on",value:l[s],onChange:e=>c(t=>(t[s]=e.target.value,[...t]))}));return n.createElement(r.A,{actionLabel:(0,o.AO)("forward|send_label"),onAction:async()=>{var e,t;if(!(!!u.current&&await u.current.validate({})))return null===(e=u.current)||void 0===e||e.focus(),void(null===(t=u.current)||void 0===t||t.validate({focused:!0}));try{const e=JSON.parse(d);await s(l,e)}catch(e){return(0,o._t)("devtools|failed_to_send")+(e instanceof Error?` (${e.message})`:"")}return(0,o._t)("devtools|event_sent")},onBack:a},n.createElement("div",{className:"mx_DevTools_eventTypeStateKeyGroup"},p),n.createElement(i.A,{id:"evContent",label:(0,o._t)("devtools|event_content"),type:"text",className:"mx_DevTools_textarea",autoComplete:"off",value:d,onChange:e=>m(e.target.value),element:"textarea",onValidate:h,ref:u,autoFocus:!!t}))},g=({mxEvent:e,onBack:t,Editor:s,extraButton:i})=>{const[a,l]=(0,n.useState)(!1);if(a){const t=()=>{l(!1)};return n.createElement(s,{mxEvent:e,onBack:t})}return n.createElement(r.A,{onBack:t,actionLabel:(0,o.AO)("action|edit"),onAction:async()=>{l(!0)},extraButton:i},n.createElement(c.A,{language:"json"},d(e.event)))},v=({mxEvent:e,onBack:t})=>{const s=(0,n.useContext)(r.I),o=(0,n.useContext)(a.Ay),i=(0,n.useMemo)(()=>[m(null==e?void 0:e.getType())],[e]);let l;if(e){var c,u;const t=e.getContent(),s=null!==(c=null===(u=t["m.new_content"])||void 0===u?void 0:u.body)&&void 0!==c?c:t.body,n={body:` * ${s}`,msgtype:t.msgtype,"m.new_content":{body:s,msgtype:t.msgtype},"m.relates_to":{rel_type:"m.replace",event_id:(h=e,null!==(v=null===(_=(null!==(g=h.replacingEvent())&&void 0!==g?g:h).getWireContent()["m.relates_to"])||void 0===_?void 0:_.event_id)&&void 0!==v?v:h.getId())}};l=d(n)}else s.threadRootId&&(l=d({"m.relates_to":{rel_type:"m.thread",event_id:s.threadRootId}}));var h,g,v,_;return n.createElement(p,{fieldDefs:i,defaultContent:l,onSend:([e],t)=>o.sendEvent(s.room.roomId,e,t),onBack:t})}},"./src/components/views/dialogs/devtools/FilteredList.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>a});var n=s("./node_modules/react/index.js"),o=s("./src/languageHandler.tsx"),i=s("./src/components/views/elements/Field.tsx"),r=s("./src/components/views/elements/TruncatedList.tsx");const a=({children:e,query:t,onChange:s})=>{var a,l;const[c,d]=(0,n.useState)(20),[m,u]=(0,n.useState)(e);(0,n.useEffect)(()=>{let s=e;if(t){const n=t.toLowerCase();s=e.filter(e=>{var t;return null===(t=e.key)||void 0===t?void 0:t.toString().toLowerCase().includes(n)})}u(s),d(20)},[e,t]);return n.createElement(n.Fragment,null,n.createElement(i.A,{label:(0,o._t)("common|filter_results"),autoFocus:!0,size:64,type:"text",autoComplete:"off",value:t,onChange:e=>s(e.target.value),className:"mx_TextInputDialog_input mx_DevTools_RoomStateExplorer_query",key:null!==(a=null==e||null===(l=e[0])||void 0===l?void 0:l.key)&&void 0!==a?a:""}),m.length<1?(0,o._t)("common|no_results_found"):n.createElement(r.A,{getChildren:(e,t)=>m.slice(e,t),getChildCount:()=>m.length,truncateAt:c,createOverflowElement:(e,t)=>n.createElement("button",{className:"mx_DevTools_button",onClick:()=>{d(e=>e+50)}},(0,o._t)("common|and_n_others",{count:e}))}))}},"./src/components/views/dialogs/devtools/RoomState.tsx":(e,t,s)=>{"use strict";s.d(t,{N:()=>g,y:()=>y});var n=s("./node_modules/react/index.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./src/languageHandler.tsx"),a=s("./src/components/views/dialogs/devtools/BaseTool.tsx"),l=s("./src/contexts/MatrixClientContext.tsx"),c=s("./src/components/views/dialogs/devtools/Event.tsx"),d=s("./src/components/views/dialogs/devtools/FilteredList.tsx"),m=s("./src/components/views/elements/Spinner.tsx"),u=s("./src/components/views/elements/SyntaxHighlight.tsx"),h=s("./src/hooks/useAsyncMemo.ts"),p=s("./src/components/views/elements/LabelledToggleSwitch.tsx");const g=({mxEvent:e,onBack:t})=>{const s=(0,n.useContext)(a.I),o=(0,n.useContext)(l.Ay),i=(0,n.useMemo)(()=>[(0,c.r3)(null==e?void 0:e.getType()),(0,c.hb)(null==e?void 0:e.getStateKey())],[e]),r=e?(0,c.As)(e.getContent()):void 0;return n.createElement(c.E8,{fieldDefs:i,defaultContent:r,onSend:async([e,t],n)=>{await o.sendStateEvent(s.room.roomId,e,n,t)},onBack:t})},v=({mxEvent:e,onBack:t})=>{const s=(0,n.useContext)(l.Ay),o=(0,h.e)(async()=>{const t=[e.event];for(;null!==(n=t[0].unsigned)&&void 0!==n&&n.replaces_state;){var n;try{t.unshift(await s.fetchRoomEvent(e.getRoomId(),t[0].unsigned.replaces_state))}catch(e){t.unshift({event_id:t[0].unsigned.replaces_state,unsigned:{error:e instanceof Error?e.message:String(e)}})}}return t},[s,e],null);let i=n.createElement(m.A,null);return null!==o&&(i=n.createElement(n.Fragment,null,o.map(e=>n.createElement(u.A,{language:"json",key:e.event_id},(0,c.As)(e))))),n.createElement(a.A,{onBack:t},i)},_=({label:e,onClick:t})=>{const s=e.trim();let o=e;return s||(o=e.length>0?(0,r._t)("devtools|spaces",{count:e.length}):(0,r._t)("devtools|empty_string")),n.createElement("button",{className:i()("mx_DevTools_button",{mx_DevTools_RoomStateExplorer_button_hasSpaces:s.length!==e.length,mx_DevTools_RoomStateExplorer_button_emptyString:!s}),onClick:t},o)},f=({eventType:e,onBack:t})=>{const s=(0,n.useContext)(a.I),[o,i]=(0,n.useState)(""),[l,m]=(0,n.useState)(null),[u,h]=(0,n.useState)(!1),[f,y]=(0,n.useState)(!0),b=s.room.currentState.events.get(e);if((0,n.useEffect)(()=>{1===b.size&&b.has("")?m(b.get("")):m(null)},[b]),l&&u){const e=()=>{h(!1)};return n.createElement(v,{mxEvent:l,onBack:e})}if(l){const e=()=>{1===(null==b?void 0:b.size)&&b.has("")?t():m(null)},s=()=>{h(!0)},o=n.createElement("button",{onClick:s},(0,r._t)("devtools|see_history"));return n.createElement(c.t2,{mxEvent:l,onBack:e,Editor:g,extraButton:o})}return n.createElement(a.A,{onBack:t},n.createElement(d.A,{query:o,onChange:i},Array.from(b.entries()).filter(([e,t])=>f||Object.keys(t.getContent()).length>0).map(([e,t])=>n.createElement(_,{key:e,label:e,onClick:()=>m(t)}))),n.createElement(p.A,{label:(0,r._t)("devtools|show_empty_content_events"),onChange:y,value:f}))},y=({onBack:e,setTool:t})=>{const s=(0,n.useContext)(a.I),[o,i]=(0,n.useState)(""),[l,c]=(0,n.useState)(null),m=s.room.currentState.events;if(null!==l){const e=()=>{c(null)};return n.createElement(f,{eventType:l,onBack:e})}return n.createElement(a.A,{onBack:e,actionLabel:(0,r.AO)("devtools|send_custom_state_event"),onAction:async()=>{t((0,r.AO)("devtools|send_custom_state_event"),g)}},n.createElement(d.A,{query:o,onChange:i},Array.from(m.keys()).map(e=>n.createElement(_,{key:e,label:e,onClick:()=>c(e)}))))}},"./src/components/views/dialogs/devtools/ServerInfo.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>h,p:()=>u});var n=s("./node_modules/react/index.js"),o=s("./src/components/views/dialogs/devtools/BaseTool.tsx"),i=s("./src/languageHandler.tsx"),r=s("./src/hooks/useAsyncMemo.ts"),a=s("./src/contexts/MatrixClientContext.tsx"),l=s("./src/components/views/elements/Spinner.tsx"),c=s("./src/components/views/elements/SyntaxHighlight.tsx"),d=s("./src/MatrixClientPeg.ts");const m=Symbol("failed-to-load");async function u(e){let t=e.getHomeserverUrl();try{const e=d.J.safeGet().getDomain(),s=await fetch(`https://${e}/.well-known/matrix/server`),n=await s.json();n["m.server"]&&(t=`https://${n["m.server"]}`)}catch(e){console.warn(e)}return(await fetch(`${t}/_matrix/federation/v1/version`)).json()}const h=({onBack:e})=>{const t=(0,n.useContext)(a.Ay),s=(0,r.e)(()=>t.fetchCapabilities().catch(()=>m),[t]),d=(0,r.e)(()=>t.getVersions().catch(()=>m),[t]),h=(0,r.e)(async()=>{try{return await u(t)}catch(e){console.warn(e)}return m},[t]);let p;return p=s&&d&&h?n.createElement(n.Fragment,null,n.createElement("h4",null,(0,i._t)("common|capabilities")),s!==m?n.createElement(c.A,{language:"json",children:JSON.stringify(s,null,4)}):n.createElement("div",null,(0,i._t)("devtools|failed_to_load")),n.createElement("h4",null,(0,i._t)("devtools|client_versions")),d!==m?n.createElement(c.A,{language:"json",children:JSON.stringify(d,null,4)}):n.createElement("div",null,(0,i._t)("devtools|failed_to_load")),n.createElement("h4",null,(0,i._t)("devtools|server_versions")),h!==m?n.createElement(c.A,{language:"json",children:JSON.stringify(h,null,4)}):n.createElement("div",null,(0,i._t)("devtools|failed_to_load"))):n.createElement(l.A,null),n.createElement(o.A,{onBack:e},p)}},"./src/components/views/dialogs/spotlight/Filter.ts":(e,t,s)=>{"use strict";s.d(t,{d:()=>n});let n=function(e){return e[e.People=0]="People",e[e.PublicRooms=1]="PublicRooms",e[e.PublicSpaces=2]="PublicSpaces",e}({})},"./src/components/views/elements/AccessibleButton.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>p});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/classnames/index.js"),a=s.n(r),l=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/Tooltip.js"),c=s("./src/KeyBindingsManager.ts"),d=s("./src/accessibility/KeyboardShortcuts.ts");const m=["element","onClick","children","kind","disabled","className","onKeyDown","onKeyUp","triggerOnMouseDown","title","caption","placement","onTooltipOpenChange","disableTooltip","role","tabIndex","ref"];function u(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function h(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?u(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):u(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const p=function(e){var t;let{element:s,onClick:n,children:r,kind:u,disabled:p,className:g,onKeyDown:v,onKeyUp:_,triggerOnMouseDown:f,title:y,caption:b,placement:E="right",onTooltipOpenChange:w,disableTooltip:x,role:A="button",tabIndex:S=0,ref:C}=e,R=(0,o.A)(e,m);const k=h(h({},R),{},{tabIndex:S,role:A,"aria-label":null!==(t=R["aria-label"])&&void 0!==t?t:y});p?(k["aria-disabled"]=!0,k.disabled=!0):(f?k.onMouseDown=null!=n?n:void 0:k.onClick=null!=n?n:void 0,k.onKeyDown=e=>{switch((0,c.zM)().getAccessibilityAction(e)){case d.bY.Enter:return e.stopPropagation(),e.preventDefault(),null==n?void 0:n(e);case d.bY.Space:e.stopPropagation(),e.preventDefault();break;default:null==v||v(e)}},k.onKeyUp=e=>{switch((0,c.zM)().getAccessibilityAction(e)){case d.bY.Enter:e.stopPropagation(),e.preventDefault();break;case d.bY.Space:return e.stopPropagation(),e.preventDefault(),null==n?void 0:n(e);default:null==_||_(e)}}),k.ref=C,k.className=a()("mx_AccessibleButton",g,{mx_AccessibleButton_hasKind:u,[`mx_AccessibleButton_kind_${u}`]:u,mx_AccessibleButton_disabled:p});const I=i.createElement(null!=s?s:"div",k,r);return y?i.createElement(l.m,{description:y,caption:b,isTriggerInteractive:!0,placement:E,onOpenChange:w,disabled:x},I):I}},"./src/components/views/elements/CopyableText.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>h,l:()=>u});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/classnames/index.js"),a=s.n(r),l=s("./src/languageHandler.tsx"),c=s("./src/utils/strings.ts"),d=s("./src/components/views/elements/AccessibleButton.tsx");const m=["children","getTextToCopy","border","className"],u=({getTextToCopy:e,className:t})=>{const[s,n]=(0,i.useState)(void 0);return i.createElement(d.A,{title:null!=s?s:(0,l._t)("action|copy"),onClick:async t=>{t.preventDefault();const s=e(),o=!!s&&await(0,c.nC)(s);n(o?(0,l._t)("common|copied"):(0,l._t)("error|failed_copy"))},className:t,onTooltipOpenChange:e=>{e||s&&n(void 0)}})},h=e=>{let{children:t,getTextToCopy:s,border:r=!0,className:l}=e,c=(0,o.A)(e,m);const d=a()("mx_CopyableText",l,{mx_CopyableText_border:r});return i.createElement("div",(0,n.A)({className:d},c),t,i.createElement(u,{getTextToCopy:s,className:"mx_CopyableText_copyButton"}))}},"./src/components/views/elements/DialPadBackspaceButton.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var n=s("./node_modules/react/index.js"),o=s("./src/languageHandler.tsx"),i=s("./src/components/views/elements/AccessibleButton.tsx");class r extends n.PureComponent{render(){return n.createElement("div",{className:"mx_DialPadBackspaceButtonWrapper"},n.createElement(i.A,{className:"mx_DialPadBackspaceButton",onClick:this.props.onBackspacePress,"aria-label":(0,o._t)("keyboard|backspace")}))}}},"./src/components/views/elements/DialogButtons.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./src/languageHandler.tsx");class r extends o.Component{constructor(...e){super(...e),(0,n.A)(this,"onCancelClick",e=>{var t,s;null===(t=(s=this.props).onCancel)||void 0===t||t.call(s,e)})}render(){let e,t,s="mx_Dialog_primary";return this.props.primaryButtonClass&&(s+=" "+this.props.primaryButtonClass),this.props.hasCancel&&(e=o.createElement("button",{type:"button",onClick:this.onCancelClick,className:this.props.cancelButtonClass,disabled:this.props.disabled},this.props.cancelButton||(0,i._t)("action|cancel"))),this.props.additive&&(t=o.createElement("div",{className:"mx_Dialog_buttons_additive"},this.props.additive)),o.createElement("div",{className:"mx_Dialog_buttons"},t,o.createElement("span",{className:"mx_Dialog_buttons_row"},e,this.props.children,o.createElement("button",{type:this.props.primaryIsSubmit?"submit":"button",className:s,onClick:this.props.onPrimaryButtonClick,autoFocus:this.props.focus,disabled:this.props.disabled||this.props.primaryDisabled},this.props.primaryButton)))}}(0,n.A)(r,"defaultProps",{hasCancel:!0,disabled:!1})},"./src/components/views/elements/Dropdown.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>h});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/classnames/index.js"),r=s.n(i),a=s("./src/components/views/elements/AccessibleButton.tsx"),l=s("./src/languageHandler.tsx"),c=s("./src/KeyBindingsManager.ts"),d=s("./src/accessibility/KeyboardShortcuts.ts"),m=s("./src/utils/objects.ts");class u extends o.Component{constructor(...e){super(...e),(0,n.A)(this,"onMouseEnter",()=>{this.props.onMouseEnter(this.props.dropdownKey)}),(0,n.A)(this,"onClick",e=>{e.preventDefault(),e.stopPropagation(),this.props.onClick(this.props.dropdownKey)})}render(){const e=r()({mx_Dropdown_option:!0,mx_Dropdown_option_highlight:this.props.highlighted});return o.createElement("li",{id:this.props.id,className:e,onClick:this.onClick,onMouseEnter:this.onMouseEnter,role:"option","aria-selected":this.props.highlighted,ref:this.props.inputRef,tabIndex:-1},this.props.children)}}(0,n.A)(u,"defaultProps",{disabled:!1});class h extends o.Component{constructor(e){super(e),(0,n.A)(this,"buttonRef",(0,o.createRef)()),(0,n.A)(this,"dropdownRootElement",null),(0,n.A)(this,"ignoreEvent",null),(0,n.A)(this,"childrenByKey",{}),(0,n.A)(this,"onDocumentClick",e=>{e!==this.ignoreEvent&&this.setState({expanded:!1})}),(0,n.A)(this,"onRootClick",e=>{this.ignoreEvent=e}),(0,n.A)(this,"onAccessibleButtonClick",e=>{if(this.props.disabled)return;const t=(0,c.zM)().getAccessibilityAction(e);this.state.expanded?t===d.bY.Enter?(this.props.onOptionChange(this.state.highlightedOption),this.close()):e.key||(this.setState({expanded:!1}),e.preventDefault()):(this.setState({expanded:!0}),e.preventDefault())}),(0,n.A)(this,"onMenuOptionClick",e=>{this.close(),this.props.onOptionChange(e)}),(0,n.A)(this,"onKeyDown",e=>{let t=!0;switch((0,c.zM)().getAccessibilityAction(e)){case d.bY.Enter:this.props.onOptionChange(this.state.highlightedOption);case d.bY.Escape:this.close();break;case d.bY.ArrowDown:if(this.state.expanded){var s;const e=this.nextOption(this.state.highlightedOption);this.setState({highlightedOption:e}),null===(s=this.dropdownRootElement)||void 0===s||null===(s=s.querySelector(`#${this.props.id}__${e}`))||void 0===s||s.focus()}else this.setState({expanded:!0});break;case d.bY.ArrowUp:if(this.state.expanded){var n;const e=this.prevOption(this.state.highlightedOption);this.setState({highlightedOption:e}),null===(n=this.dropdownRootElement)||void 0===n||null===(n=n.querySelector(`#${this.props.id}__${e}`))||void 0===n||n.focus()}else this.setState({expanded:!0});break;default:t=!1}t&&(e.preventDefault(),e.stopPropagation())}),(0,n.A)(this,"onInputChange",e=>{this.setState({searchQuery:e.currentTarget.value}),this.props.onSearchChange&&this.props.onSearchChange(e.currentTarget.value)}),(0,n.A)(this,"collectRoot",e=>{this.dropdownRootElement&&this.dropdownRootElement.removeEventListener("click",this.onRootClick,!1),e&&e.addEventListener("click",this.onRootClick,!1),this.dropdownRootElement=e}),(0,n.A)(this,"setHighlightedOption",e=>{this.setState({highlightedOption:e})}),this.reindexChildren(this.props.children);const t=e.children[0];this.state={expanded:!1,highlightedOption:t.key,searchQuery:""}}componentDidMount(){document.addEventListener("click",this.onDocumentClick,!1)}componentDidUpdate(e){var t;if((0,m.No)(this.props,e)&&null!==(t=this.props.children)&&void 0!==t&&t.length){this.reindexChildren(this.props.children);const e=this.props.children[0];this.setState({highlightedOption:e.key})}}componentWillUnmount(){document.removeEventListener("click",this.onDocumentClick,!1)}reindexChildren(e){this.childrenByKey={},o.Children.forEach(e,e=>{this.childrenByKey[e.key]=e})}close(){this.setState({expanded:!1}),this.buttonRef.current&&this.buttonRef.current.focus()}nextOption(e){const t=Object.keys(this.childrenByKey),s=t.indexOf(e);return t[(s+1)%t.length]}prevOption(e){const t=Object.keys(this.childrenByKey),s=t.indexOf(e);return t[s<=0?t.length-1:(s-1)%t.length]}scrollIntoView(e){null==e||e.scrollIntoView({block:"nearest",behavior:"auto"})}getMenuOptions(){const e=o.Children.map(this.props.children,e=>{const t=this.state.highlightedOption===e.key;return o.createElement(u,{id:`${this.props.id}__${e.key}`,key:e.key,dropdownKey:e.key,highlighted:t,onMouseEnter:this.setHighlightedOption,onClick:this.onMenuOptionClick,inputRef:t?this.scrollIntoView:void 0},e)});return null!=e&&e.length?e:[o.createElement("li",{key:"0",className:"mx_Dropdown_option",role:"option","aria-selected":!1},(0,l._t)("common|no_results"))]}render(){let e;const t={};let s;if(this.props.menuWidth&&(t.width=this.props.menuWidth),this.state.expanded&&(this.props.searchEnabled&&(e=o.createElement("input",{id:`${this.props.id}_input`,type:"text",autoFocus:!0,autoComplete:this.props.autoComplete,className:"mx_Dropdown_option",onChange:this.onInputChange,value:this.state.searchQuery,role:"combobox","aria-autocomplete":"list","aria-activedescendant":`${this.props.id}__${this.state.highlightedOption}`,"aria-expanded":this.state.expanded,"aria-controls":`${this.props.id}_listbox`,"aria-disabled":this.props.disabled,"aria-label":this.props.label,onKeyDown:this.onKeyDown})),s=o.createElement("ul",{className:"mx_Dropdown_menu",style:t,role:"listbox",id:`${this.props.id}_listbox`},this.getMenuOptions())),!e){let t;this.props.value&&(t=this.props.getShortOption?this.props.getShortOption(this.props.value):this.childrenByKey[this.props.value]),e=o.createElement("div",{className:"mx_Dropdown_option",id:`${this.props.id}_value`},t||this.props.placeholder)}const n=r()("mx_Dropdown",this.props.className,{mx_Dropdown_disabled:!!this.props.disabled});return o.createElement("div",{className:n,ref:this.collectRoot},o.createElement(a.A,{className:"mx_Dropdown_input mx_no_textinput",onClick:this.onAccessibleButtonClick,"aria-haspopup":"listbox","aria-expanded":this.state.expanded,disabled:this.props.disabled,ref:this.buttonRef,"aria-label":this.props.label,"aria-describedby":`${this.props.id}_value`,"aria-owns":`${this.props.id}_input`,onKeyDown:this.onKeyDown},e,o.createElement("span",{className:"mx_Dropdown_arrow"}),s))}}},"./src/components/views/elements/ErrorBoundary.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>h});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./src/languageHandler.tsx"),a=s("./src/MatrixClientPeg.ts"),l=s("./src/PlatformPeg.ts"),c=s("./src/Modal.tsx"),d=s("./src/SdkConfig.ts"),m=s("./src/components/views/dialogs/BugReportDialog.tsx"),u=s("./src/components/views/elements/AccessibleButton.tsx");class h extends o.PureComponent{constructor(e){super(e),(0,n.A)(this,"onClearCacheAndReload",()=>{l.A.get()&&(a.J.safeGet().stopClient(),a.J.safeGet().store.deleteAllData().then(()=>{var e;null===(e=l.A.get())||void 0===e||e.reload()}))}),(0,n.A)(this,"onBugReport",()=>{c.Ay.createDialog(m.A,{label:"react-soft-crash",error:this.state.error})}),this.state={}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,{componentStack:t}){i.vF.error(e),i.vF.error("The above error occurred while React was rendering the following components:",t)}render(){if(this.state.error){const e=d.Ay.get().feedback.new_issue_url;let t,s;return d.Ay.get().bug_report_endpoint_url&&(t=o.createElement(o.Fragment,null,o.createElement("p",null,(0,r._t)("bug_reporting|create_new_issue",{},{newIssueLink:t=>o.createElement("a",{target:"_blank",rel:"noreferrer noopener",href:e},t)})),o.createElement("p",null,(0,r._t)("bug_reporting|introduction")," ",(0,r._t)("bug_reporting|description")),o.createElement(u.A,{onClick:this.onBugReport,kind:"primary"},(0,r._t)("bug_reporting|submit_debug_logs")))),a.J.get()&&(s=o.createElement(u.A,{onClick:this.onClearCacheAndReload,kind:"danger"},(0,r._t)("setting|help_about|clear_cache_reload"))),o.createElement("div",{className:"mx_ErrorBoundary"},o.createElement("div",{className:"mx_ErrorBoundary_body"},o.createElement("h1",null,(0,r._t)("error|something_went_wrong")),t,s))}return this.props.children}}},"./src/components/views/elements/ExternalLink.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>c});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/classnames/index.js"),a=s.n(r);const l=["children","className"],c=e=>{let{children:t,className:s}=e,r=(0,o.A)(e,l);return i.createElement("a",(0,n.A)({target:"_blank",rel:"noreferrer noopener"},r,{className:a()("mx_ExternalLink",s)}),t,i.createElement("i",{className:"mx_ExternalLink_icon"}))}},"./src/components/views/elements/FacePile.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>g});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/@vector-im/compound-web/dist/components/Avatar/AvatarStack.js"),a=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/Tooltip.js"),l=s("./node_modules/classnames/index.js"),c=s.n(l),d=s("./src/components/views/avatars/MemberAvatar.tsx"),m=s("./src/components/views/elements/AccessibleButton.tsx"),u=s("./src/components/views/rooms/RoomHeader/toggle/useToggled.tsx"),h=s("./src/stores/right-panel/RightPanelStorePhases.ts");const p=["members","size","overflow","tooltipLabel","tooltipShortcut","children","viewUserOnClick","onClick"],g=e=>{let{members:t,size:s,overflow:l,tooltipLabel:g,tooltipShortcut:v,children:_,viewUserOnClick:f=!0,onClick:y}=e,b=(0,o.A)(e,p);const E=t.map(g?e=>i.createElement(d.A,{key:e.userId,member:e,size:s,hideTitle:!0}):e=>i.createElement(a.m,{key:e.userId,label:e.name,caption:v},i.createElement(d.A,{member:e,size:s,viewUserOnClick:!y&&f,hideTitle:!0}))),w=i.createElement(i.Fragment,null,E,l?i.createElement("span",{className:"mx_FacePile_more"}):null),x=(0,u.K)(h.n.MemberList),A=c()({mx_FacePile:!0,mx_FacePile_toggled:x}),S=i.createElement(m.A,(0,n.A)({},b,{className:A,onClick:null!=y?y:null}),i.createElement(r.G,null,w),_);return g?i.createElement(a.m,{label:g,caption:v},S):S}},"./src/components/views/elements/Field.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>g});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),r=s("./node_modules/react/index.js"),a=s("./node_modules/classnames/index.js"),l=s.n(a),c=s("./node_modules/lodash/lodash.js"),d=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/Tooltip.js");const m=["element","inputRef","prefixComponent","postfixComponent","className","onValidate","children","tooltipContent","forceValidity","tooltipClassName","validateOnBlur","validateOnChange","validateOnFocus","usePlaceholderAsHint","forceTooltipVisible","tooltipAlignment"];function u(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function h(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?u(Object(s),!0).forEach(function(t){(0,i.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):u(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}let p=1;class g extends r.PureComponent{constructor(e){super(e),(0,i.A)(this,"id",void 0),(0,i.A)(this,"_inputRef",(0,r.createRef)()),(0,i.A)(this,"callbackRef",e=>{this._inputRef.current=e,this.props.inputRef(e)}),(0,i.A)(this,"validateOnChange",(0,c.debounce)(()=>{this.validate({focused:!0})},200)),(0,i.A)(this,"onFocus",e=>{var t,s;this.setState({focused:!0}),this.props.validateOnFocus&&this.validate({focused:!0}),null===(t=(s=this.props).onFocus)||void 0===t||t.call(s,e)}),(0,i.A)(this,"onChange",e=>{var t,s;this.props.validateOnChange&&this.validateOnChange(),null===(t=(s=this.props).onChange)||void 0===t||t.call(s,e)}),(0,i.A)(this,"onBlur",e=>{var t,s;this.setState({focused:!1}),this.props.validateOnBlur&&this.validate({focused:!1}),null===(t=(s=this.props).onBlur)||void 0===t||t.call(s,e)}),(0,i.A)(this,"onTooltipOpenChange",e=>{this.setState({feedbackVisible:e})}),this.state={feedbackVisible:!1,focused:!1},this.id=this.props.id||"mx_Field_"+p++}focus(){var e;null===(e=this.inputRef.current)||void 0===e||e.focus(),this.setState({focused:!0})}async validate({focused:e,allowEmpty:t=!0}){var s,n;if(!this.props.onValidate)return;const o=null!==(s=null===(n=this.inputRef.current)||void 0===n?void 0:n.value)&&void 0!==s?s:null,{valid:i,feedback:r}=await this.props.onValidate({value:o,focused:!!e,allowEmpty:t});return this.state.focused&&r?this.setState({valid:i,feedback:r,feedbackVisible:!0}):this.setState({valid:i,feedbackVisible:!1}),i}get inputRef(){const e=this.props.inputRef;return"function"==typeof e?this._inputRef:null!=e?e:this._inputRef}render(){var e;const t=this.props,{element:s,inputRef:i,prefixComponent:a,postfixComponent:c,className:u,onValidate:p,children:g,tooltipContent:v,forceValidity:_,tooltipClassName:f,validateOnBlur:y,validateOnChange:b,validateOnFocus:E,usePlaceholderAsHint:w,forceTooltipVisible:x,tooltipAlignment:A}=t,S=(0,o.A)(t,m),C={};let R=!1;(v||this.state.feedback)&&(R=this.state.focused&&x||this.state.feedbackVisible,v||(C["aria-atomic"]="true",C["aria-live"]=this.state.valid?"polite":"assertive")),S.placeholder=null!==(e=S.placeholder)&&void 0!==e?e:S.label,S.id=this.id,S.onFocus=this.onFocus,S.onChange=this.onChange,S.onBlur=this.onBlur;const k=h(h({},S),{},{ref:"function"==typeof this.props.inputRef?this.callbackRef:this.inputRef}),I=r.createElement(this.props.element,k,g);let P,T;a&&(P=r.createElement("span",{className:"mx_Field_prefix"},a)),c&&(T=r.createElement("span",{className:"mx_Field_postfix"},c));const O=null!=_,M=l()("mx_Field",`mx_Field_${this.props.element}`,u,{mx_Field_labelAlwaysTopLeft:a||w,mx_Field_placeholderIsHint:w,mx_Field_valid:O?_:p&&!0===this.state.valid,mx_Field_invalid:O?!_:p&&!1===this.state.valid});return r.createElement("div",{className:M},P,r.createElement(d.m,(0,n.A)({},C,{placement:A,description:"",caption:v||this.state.feedback,open:R,onOpenChange:this.onTooltipOpenChange}),I),r.createElement("label",{htmlFor:this.id},this.props.label),T)}}(0,i.A)(g,"defaultProps",{element:"input",type:"text",validateOnFocus:!0,validateOnBlur:!0,validateOnChange:!0,tooltipAlignment:"right"})},"./src/components/views/elements/ImageView.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>k});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/react-focus-lock/dist/es2015/index.js"),a=s("./src/languageHandler.tsx"),l=s("./src/components/views/avatars/MemberAvatar.tsx"),c=s("./src/accessibility/context_menu/ContextMenuTooltipButton.tsx"),d=s("./src/components/views/context_menus/MessageContextMenu.tsx"),m=s("./src/components/structures/ContextMenu.tsx"),u=s("./src/components/views/messages/MessageTimestamp.tsx"),h=s("./src/settings/SettingsStore.ts"),p=s("./src/DateUtils.ts"),g=s("./src/dispatcher/dispatcher.ts"),v=s("./src/dispatcher/actions.ts"),_=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");const f=["deltaMode","deltaX","deltaY","deltaZ"];function y(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function b(e){let{deltaMode:t,deltaX:s,deltaY:n,deltaZ:i}=e,r=(0,_.A)(e,f);return 1===t&&(s*=18,n*=18,i*=18),new WheelEvent("syntheticWheel",function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?y(Object(s),!0).forEach(function(t){(0,o.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):y(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}({deltaMode:0,deltaY:n,deltaX:s,deltaZ:i},r))}var E=s("./src/stores/UIStore.ts"),w=s("./src/accessibility/KeyboardShortcuts.ts"),x=s("./src/KeyBindingsManager.ts"),A=s("./src/utils/FileUtils.ts"),S=s("./src/components/views/elements/AccessibleButton.tsx"),C=s("./src/hooks/useDownloadMedia.ts");const R=.95;class k extends i.Component{constructor(e){super(e),(0,o.A)(this,"contextMenuButton",(0,i.createRef)()),(0,o.A)(this,"focusLock",(0,i.createRef)()),(0,o.A)(this,"imageWrapper",(0,i.createRef)()),(0,o.A)(this,"image",(0,i.createRef)()),(0,o.A)(this,"downloadFunction",void 0),(0,o.A)(this,"initX",0),(0,o.A)(this,"initY",0),(0,o.A)(this,"previousX",0),(0,o.A)(this,"previousY",0),(0,o.A)(this,"animatingLoading",!1),(0,o.A)(this,"imageIsLoaded",!1),(0,o.A)(this,"imageLoaded",()=>{if(!this.image.current)return;const{thumbnailInfo:e}=this.props;null!=e&&e.width&&this.setState({zoom:e.width/this.image.current.naturalWidth}),this.imageIsLoaded=!0,this.animatingLoading=!0,this.setZoomAndRotation(),this.setState({translationX:0,translationY:0}),this.animatingLoading=!1}),(0,o.A)(this,"recalculateZoom",()=>{this.setZoomAndRotation()}),(0,o.A)(this,"setZoomAndRotation",e=>{const t=this.image.current,s=this.imageWrapper.current;if(!t||!s)return;const n=null!=e?e:this.state.rotation,o=n%180==0,i=o?t.naturalWidth:t.naturalHeight,r=o?t.naturalHeight:t.naturalWidth,a=s.clientWidth/i,l=s.clientHeight/r;if(a>=1&&l>=1)return void this.setState({zoom:1,minZoom:1,maxZoom:1,rotation:n});const c=Math.min(a,l)*R,d=this.state.zoom<=this.state.minZoom?c:this.state.zoom;this.setState({minZoom:c,maxZoom:1,rotation:n,zoom:d})}),(0,o.A)(this,"onWheel",e=>{if(e.target===this.image.current){e.stopPropagation(),e.preventDefault();const{deltaY:t}=b(e);this.zoomDelta(.0025*-t,e.offsetX,e.offsetY)}}),(0,o.A)(this,"onZoomInClick",()=>{this.zoomDelta(.1)}),(0,o.A)(this,"onZoomOutClick",()=>{this.zoomDelta(-.1)}),(0,o.A)(this,"onKeyDown",e=>{switch((0,x.zM)().getAccessibilityAction(e)){case w.bY.Escape:e.stopPropagation(),e.preventDefault(),this.props.onFinished();break;case w.bY.Save:e.preventDefault(),e.stopPropagation(),this.downloadFunction&&this.downloadFunction()}}),(0,o.A)(this,"onRotateCounterClockwiseClick",()=>{const e=this.state.rotation;this.setZoomAndRotation(e-90)}),(0,o.A)(this,"onRotateClockwiseClick",()=>{const e=this.state.rotation;this.setZoomAndRotation(e+90)}),(0,o.A)(this,"onOpenContextMenu",()=>{this.setState({contextMenuDisplayed:!0})}),(0,o.A)(this,"onCloseContextMenu",()=>{this.setState({contextMenuDisplayed:!1})}),(0,o.A)(this,"onDownloadFunctionReady",e=>{this.downloadFunction=e}),(0,o.A)(this,"onPermalinkClicked",e=>{var t,s;e.preventDefault(),g.A.dispatch({action:v.r.ViewRoom,event_id:null===(t=this.props.mxEvent)||void 0===t?void 0:t.getId(),highlighted:!0,room_id:null===(s=this.props.mxEvent)||void 0===s?void 0:s.getRoomId(),metricsTrigger:void 0}),this.props.onFinished()}),(0,o.A)(this,"onStartMoving",e=>{e.stopPropagation(),e.preventDefault(),0===e.button&&(this.state.zoom!==this.state.minZoom?(this.setState({moving:!0}),this.previousX=this.state.translationX,this.previousY=this.state.translationY,this.initX=e.pageX-this.state.translationX,this.initY=e.pageY-this.state.translationY):this.zoom(this.state.maxZoom===this.state.minZoom?2*this.state.maxZoom:this.state.maxZoom,e.nativeEvent.offsetX,e.nativeEvent.offsetY))}),(0,o.A)(this,"onMoving",e=>{e.stopPropagation(),e.preventDefault(),this.state.moving&&this.setState({translationX:e.pageX-this.initX,translationY:e.pageY-this.initY})}),(0,o.A)(this,"onEndMoving",()=>{this.state.moving&&Math.abs(this.state.translationX-this.previousX)<10&&Math.abs(this.state.translationY-this.previousY)<10&&(this.zoom(this.state.minZoom),this.initX=0,this.initY=0),this.setState({moving:!1})});const{thumbnailInfo:t}=this.props;let s=0,n=0;t&&(s=t.positionX+t.width/2-E.A.instance.windowWidth/2,n=t.positionY+t.height/2-E.A.instance.windowHeight/2-(()=>{const e=getComputedStyle(document.documentElement).getPropertyValue("--image-view-panel-height");return parseInt(e.slice(0,e.length-2))})()/2),this.state={zoom:0,minZoom:R,maxZoom:R,rotation:0,translationX:s,translationY:n,moving:!1,contextMenuDisplayed:!1}}componentDidMount(){var e;this.focusLock.current.addEventListener("wheel",this.onWheel,{passive:!1}),window.addEventListener("resize",this.recalculateZoom),null===(e=this.image.current)||void 0===e||e.addEventListener("load",this.imageLoaded)}componentWillUnmount(){var e;this.focusLock.current.removeEventListener("wheel",this.onWheel),window.removeEventListener("resize",this.recalculateZoom),null===(e=this.image.current)||void 0===e||e.removeEventListener("load",this.imageLoaded)}zoomDelta(e,t,s){this.zoom(this.state.zoom+e,t,s)}zoom(e,t,s){const n=this.state.zoom,o=this.state.maxZoom===this.state.minZoom?2*this.state.maxZoom:this.state.maxZoom,i=Math.min(e,o);if(i<=this.state.minZoom)this.setState({zoom:this.state.minZoom,translationX:0,translationY:0});else if("number"!=typeof t||"number"!=typeof s)this.setState({zoom:i,translationX:this.state.translationX*i/n,translationY:this.state.translationY*i/n});else if(this.image.current){let e,o;switch((this.state.rotation%360+360)%360){case 0:e=this.image.current.clientWidth/2-t,o=this.image.current.clientHeight/2-s;break;case 90:e=s-this.image.current.clientHeight/2,o=this.image.current.clientWidth/2-t;break;case 180:e=t-this.image.current.clientWidth/2,o=s-this.image.current.clientHeight/2;break;case 270:e=this.image.current.clientHeight/2-s,o=t-this.image.current.clientWidth/2}this.setState({zoom:i,translationX:this.state.translationX+(i-n)*e,translationY:this.state.translationY+(i-n)*o})}}renderContextMenu(){let e;return this.state.contextMenuDisplayed&&this.props.mxEvent&&(e=i.createElement(d.A,(0,n.A)({},(0,m.qv)(this.contextMenuButton.current.getBoundingClientRect()),{mxEvent:this.props.mxEvent,permalinkCreator:this.props.permalinkCreator,onFinished:this.onCloseContextMenu,onCloseDialog:this.props.onFinished}))),i.createElement(i.Fragment,null,e)}render(){var e;const t=!!this.props.mxEvent;let s;s=this.animatingLoading?"mx_ImageView_image_animatingLoading":this.state.moving||!this.imageIsLoaded?"":"mx_ImageView_image_animating";const n=this.state.rotation+"deg",o=this.state.zoom,d={transform:`translateX(${this.state.translationX+"px"})\n translateY(${this.state.translationY+"px"})\n scale(${o})\n rotate(${n})`};let m,g;if(this.state.moving?d.cursor="grabbing":this.state.zoom===this.state.minZoom?d.cursor="zoom-in":d.cursor="zoom-out",t){var v,_;const e=this.props.mxEvent,t=h.A.getValue("showTwelveHourTimestamps");let s="#";this.props.permalinkCreator&&(s=this.props.permalinkCreator.forEvent(e.getId()));const n=null!==(v=null===(_=e.sender)||void 0===_?void 0:_.name)&&void 0!==v?v:e.getSender(),o=i.createElement("div",{className:"mx_ImageView_info_sender"},n),r=i.createElement("a",{href:s,onClick:this.onPermalinkClicked,"aria-label":(0,p.Lu)(new Date(e.getTs()),t,!1)},i.createElement(u.A,{showFullDate:!0,showTwelveHour:t,ts:e.getTs(),showSeconds:!1})),a=i.createElement(l.A,{member:e.sender,fallbackUserId:e.getSender(),size:"32px",viewUserOnClick:!0,className:"mx_Dialog_nonDialogButton"});m=i.createElement("div",{className:"mx_ImageView_info_wrapper"},a,i.createElement("div",{className:"mx_ImageView_info"},o,r))}else m=i.createElement("div",null);this.props.mxEvent&&(g=i.createElement(c.o,{className:"mx_ImageView_button mx_ImageView_button_more",title:(0,a._t)("common|options"),onClick:this.onOpenContextMenu,ref:this.contextMenuButton,isExpanded:this.state.contextMenuDisplayed}));const f=i.createElement(S.A,{className:"mx_ImageView_button mx_ImageView_button_zoomOut",title:(0,a._t)("action|zoom_out"),onClick:this.onZoomOutClick}),y=i.createElement(S.A,{className:"mx_ImageView_button mx_ImageView_button_zoomIn",title:(0,a._t)("action|zoom_in"),onClick:this.onZoomInClick});let b;var E;null!==(e=this.props.mxEvent)&&void 0!==e&&e.getContent()&&(b=i.createElement("div",{className:"mx_ImageView_title"},(0,A.q)(null===(E=this.props.mxEvent)||void 0===E?void 0:E.getContent(),(0,a._t)("common|image"),!0)));return i.createElement(r.Ay,{returnFocus:!0,lockProps:{onKeyDown:this.onKeyDown,role:"dialog","aria-label":(0,a._t)("lightbox|title")},className:"mx_ImageView",ref:this.focusLock},i.createElement("div",{className:"mx_ImageView_panel"},m,b,i.createElement("div",{className:"mx_ImageView_toolbar"},f,y,i.createElement(S.A,{className:"mx_ImageView_button mx_ImageView_button_rotateCCW",title:(0,a._t)("lightbox|rotate_left"),onClick:this.onRotateCounterClockwiseClick}),i.createElement(S.A,{className:"mx_ImageView_button mx_ImageView_button_rotateCW",title:(0,a._t)("lightbox|rotate_right"),onClick:this.onRotateClockwiseClick}),i.createElement(I,{url:this.props.src,fileName:this.props.name,mxEvent:this.props.mxEvent,onDownloadReady:this.onDownloadFunctionReady}),g,i.createElement(S.A,{className:"mx_ImageView_button mx_ImageView_button_close",title:(0,a._t)("action|close"),onClick:this.props.onFinished}),this.renderContextMenu())),i.createElement("div",{className:"mx_ImageView_image_wrapper",ref:this.imageWrapper,onMouseDown:this.props.onFinished,onMouseMove:this.onMoving,onMouseUp:this.onEndMoving,onMouseLeave:this.onEndMoving},i.createElement("img",{src:this.props.src,style:d,alt:this.props.name,ref:this.image,className:`mx_ImageView_image ${s}`,draggable:!0,onMouseDown:this.onStartMoving})))}}const I=({url:e,fileName:t,mxEvent:s,onDownloadReady:n})=>{const{download:o,loading:r,canDownload:l}=(0,C.Q)(e,t,s);return(0,i.useEffect)(()=>{n&&n(o)},[o,n]),l?i.createElement(S.A,{className:"mx_ImageView_button mx_ImageView_button_download",title:r?(0,a._t)("timeline|download_action_downloading"):(0,a._t)("action|download"),onClick:o,disabled:r}):null}},"./src/components/views/elements/InfoTooltip.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>c,y:()=>l});var n=s("./node_modules/react/index.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/Tooltip.js"),a=s("./src/languageHandler.tsx");let l=function(e){return e.Info="info",e.Warning="warning",e}({});class c extends n.PureComponent{render(){var e;const{tooltip:t,children:s,className:o,kind:c}=this.props,d=(0,a._t)("info_tooltip_title"),m=c!==l.Warning?"mx_InfoTooltip_icon_info":"mx_InfoTooltip_icon_warning";return n.createElement(r.m,{description:t||d,placement:"right"},n.createElement("div",{className:i()("mx_InfoTooltip",o),tabIndex:null!==(e=this.props.tabIndex)&&void 0!==e?e:0},n.createElement("span",{className:i()("mx_InfoTooltip_icon",m),"aria-label":d}),s))}}},"./src/components/views/elements/InlineSpinner.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./src/languageHandler.tsx");class r extends o.PureComponent{render(){return o.createElement("div",{className:"mx_InlineSpinner"},o.createElement("div",{className:"mx_InlineSpinner_icon mx_Spinner_icon",style:{width:this.props.w,height:this.props.h},"aria-label":(0,i._t)("common|loading")},this.props.children))}}(0,n.A)(r,"defaultProps",{w:16,h:16})},"./src/components/views/elements/JoinRuleDropdown.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>a});var n=s("./node_modules/react/index.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./src/components/views/elements/Dropdown.tsx"),r=s("./res/img/element-icons/ask-to-join.svg");const a=({label:e,labelInvite:t,labelKnock:s,labelPublic:a,labelRestricted:l,value:c,width:d=448,onChange:m})=>{const u=[n.createElement("div",{key:o.JoinRule.Invite,className:"mx_JoinRuleDropdown_invite"},t)];return a&&u.push(n.createElement("div",{key:o.JoinRule.Public,className:"mx_JoinRuleDropdown_public"},a)),s&&u.unshift(n.createElement("div",{key:o.JoinRule.Knock,className:"mx_JoinRuleDropdown_knock"},n.createElement(r.I,{className:"mx_Icon mx_Icon_16 mx_JoinRuleDropdown_icon"}),s)),l&&u.unshift(n.createElement("div",{key:o.JoinRule.Restricted,className:"mx_JoinRuleDropdown_restricted"},l)),n.createElement(i.A,{id:"mx_JoinRuleDropdown",className:"mx_JoinRuleDropdown",onOptionChange:m,menuWidth:d,value:c,label:e,disabled:1===u.length},u)}},"./src/components/views/elements/LabelledCheckbox.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>a});var n=s("./node_modules/react/index.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./src/components/views/elements/StyledCheckbox.tsx");const a=({value:e,label:t,byline:s,disabled:o,onChange:a,className:l})=>n.createElement("div",{className:i()("mx_LabelledCheckbox",l)},n.createElement(r.A,{description:s,disabled:o,checked:e,onChange:e=>a(e.target.checked)},n.createElement("span",{className:"mx_LabelledCheckbox_label"},t)))},"./src/components/views/elements/LabelledToggleSwitch.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>l});var n=s("./node_modules/react/index.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./src/components/views/elements/ToggleSwitch.tsx"),a=s("./src/components/views/typography/Caption.tsx");const l=({label:e,caption:t,value:s,disabled:o,onChange:l,tooltip:c,toggleInFront:d,className:m})=>{const u=`mx_LabelledToggleSwitch_${(0,n.useId)()}`;let h=n.createElement("span",{className:"mx_SettingsFlag_label"},n.createElement("div",{id:u},e),t&&n.createElement(a.H,{id:`${u}_caption`},t)),p=n.createElement(r.A,{checked:s,disabled:o,onChange:l,tooltip:c,"aria-labelledby":u,"aria-describedby":t?`${u}_caption`:void 0});d&&([h,p]=[p,h]);const g=i()("mx_SettingsFlag",m,{mx_SettingsFlag_toggleInFront:d});return n.createElement("div",{className:g},h,p)}},"./src/components/views/elements/LazyRenderList.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js");class i{constructor(e,t,s){this.topCount=e,this.renderCount=t,this.bottomCount=s}contains(e){return!(!e.renderCount&&this.renderCount)&&(e.topCount>=this.topCount&&e.topCount+e.renderCount<=this.topCount+this.renderCount)}expand(e){if(0===this.renderCount)return this;const t=Math.min(e,this.topCount),s=Math.min(e,this.bottomCount);return new i(this.topCount-t,this.renderCount+t+s,this.bottomCount-s)}totalSize(){return this.topCount+this.renderCount+this.bottomCount}}class r extends o.Component{constructor(e){super(e),this.state=r.getDerivedStateFromProps(e,{})}static getDerivedStateFromProps(e,t){const s=r.getVisibleRangeFromProps(e),n=s.expand(e.overflowMargin),o=s.expand(e.overflowItems);return!(!!t.renderRange&&o.totalSize()!==t.renderRange.totalSize())&&t.renderRange&&t.renderRange.contains(n)?null:{renderRange:o}}static getVisibleRangeFromProps(e){const{items:t,itemHeight:s,scrollTop:n,height:o}=e,r=t?t.length:0,a=Math.min(Math.max(0,Math.floor(n/s)),r),l=r-a,c=0!==o?Math.ceil(o/s):0,d=Math.min(c,l);return new i(a,d,l-d)}render(){const{itemHeight:e,items:t,renderItem:s}=this.props,{renderRange:n}=this.state,{topCount:i,renderCount:r,bottomCount:a}=n,l=i*e,c=a*e,d=(t||[]).slice(i,i+r),m=this.props.element||"div",u={style:{paddingTop:`${l}px`,paddingBottom:`${c}px`},className:this.props.className,role:this.props.role};return o.createElement(m,u,d.map(s))}}(0,n.A)(r,"defaultProps",{overflowItems:20,overflowMargin:5})},"./src/components/views/elements/Pill.tsx":(e,t,s)=>{"use strict";s.d(t,{a:()=>k,y:()=>A});var n=s("./node_modules/react/index.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/Tooltip.js"),a=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/link.js"),l=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/user-solid.js"),c=s("./src/contexts/MatrixClientContext.tsx"),d=s("./src/utils/permalinks/Permalinks.ts"),m=s("./src/dispatcher/dispatcher.ts"),u=s("./src/dispatcher/actions.ts"),h=s("./src/languageHandler.tsx"),p=s("./src/MatrixClientPeg.ts");const g=e=>{var t;const s=p.J.safeGet();return"#"===e[0]?null!==(t=s.getRooms().find(t=>t.getCanonicalAlias()===e||t.getAltAliases().includes(e)))&&void 0!==t?t:null:s.getRoom(e)},v=(e,t,s)=>{const o=e&&[A.RoomMention,A.EventInSameRoom,A.EventInOtherRoom,"space"].includes(e),i=((e,t,s)=>{if(e===A.AtRoomMention&&s)return s;if(e===A.UserMention&&s)return s;if(null!=t&&t.roomIdOrAlias){const e=g(t.roomIdOrAlias);if(e)return e}return null})(e,t,s),[r,a]=(0,n.useState)(i);return(0,n.useEffect)(()=>{if(o&&!r&&null!=t&&t.roomIdOrAlias){const e=g(t.roomIdOrAlias);a(e)}},[null==t?void 0:t.roomIdOrAlias,o,r]),r};var _=s("./node_modules/matrix-js-sdk/src/matrix.ts");var f=s("./src/contexts/SDKContext.ts");const y=(e,t)=>{var s;const n=new _.RoomMember("",e);return n.name=null!==(s=t.displayname)&&void 0!==s?s:e,n.rawDisplayName=n.name,n.events.member={getContent:()=>({avatar_url:t.avatar_url}),getDirectionalContent:function(){return this.getContent()}},n},b=(e,t,s,o)=>{const i=(0,n.useContext)(f.A),r=e&&[A.UserMention,A.EventInSameRoom].includes(e),a=((e,t,s)=>{return null===e?null:null!=t&&t.userId?t.userId:s&&[A.EventInSameRoom,A.EventInOtherRoom].includes(e)&&null!==(n=s.getSender())&&void 0!==n?n:null;var n})(e,t,o),l=r&&a&&s?((e,t,s)=>{const n=t.getMember(e);if(n)return n;const o=s.userProfilesStore.getOnlyKnownProfile(e);return o?y(e,o):null})(a,s,i):null,[c,d]=(0,n.useState)(l);return(0,n.useEffect)(()=>{if(!r||!a||c)return;(async()=>{const e=await i.userProfilesStore.fetchOnlyKnownProfile(a);if(e){const t=y(a,e);d(t)}})()},[i,c,r,s,a]),c},E=({room:e,type:t,url:s})=>{let o=null,i=null;var r;s&&(i=(0,d.$N)(s),null!==(r=i)&&void 0!==r&&r.primaryEntityId&&(o=i.primaryEntityId));const a=((e,t,s)=>{if(e)return e;if(null!=t&&t.roomIdOrAlias&&null!=t&&t.eventId)return t.roomIdOrAlias===(null==s?void 0:s.roomId)?A.EventInSameRoom:A.EventInOtherRoom;if(null!=t&&t.primaryEntityId){const e=t.primaryEntityId[0]||"";return{"@":A.UserMention,"#":A.RoomMention,"!":A.RoomMention}[e]||null}return null})(t,i,e),l=v(a,i,e),c=((e,t,s)=>{const o=!!e&&!(null==t||!t.roomIdOrAlias)&&!(null==t||!t.eventId)&&[A.EventInSameRoom,A.EventInOtherRoom].includes(e),i=null==t?void 0:t.eventId,r=((e,t,s)=>e&&t&&null!=s&&s.eventId&&t.findEventById(s.eventId)||null)(o,s,t),[a,l]=(0,n.useState)(r);return(0,n.useEffect)(()=>{o&&i&&!a&&null!=t&&t.roomIdOrAlias&&t.eventId&&(async()=>{try{const e=await p.J.safeGet().fetchRoomEvent(t.roomIdOrAlias,t.eventId);l(new _.MatrixEvent(e))}catch{}})()},[a,i,null==t?void 0:t.eventId,null==t?void 0:t.roomIdOrAlias,o]),a})(a,i,l),g=b(a,i,l,c);let f=()=>{},y=o;return a===A.AtRoomMention&&e?y="@room":a===A.UserMention&&g?(y=g.name||o,f=e=>{e.preventDefault(),e.stopPropagation(),m.A.dispatch({action:u.r.ViewUser,member:g})}):a===A.RoomMention?l&&(y=l.name||o):a===A.EventInSameRoom?y=(null==g?void 0:g.name)||(0,h._t)("common|user"):a===A.EventInOtherRoom&&(y=(null==l?void 0:l.name)||(0,h._t)("common|room")),{event:c,member:g,onClick:f,resourceId:o,targetRoom:l,text:y,type:a}};var w=s("./src/components/views/avatars/RoomAvatar.tsx"),x=s("./src/components/views/avatars/MemberAvatar.tsx");let A=function(e){return e.UserMention="TYPE_USER_MENTION",e.RoomMention="TYPE_ROOM_MENTION",e.AtRoomMention="TYPE_AT_ROOM_MENTION",e.EventInSameRoom="TYPE_EVENT_IN_SAME_ROOM",e.EventInOtherRoom="TYPE_EVENT_IN_OTHER_ROOM",e.Keyword="TYPE_KEYWORD",e}({});const S=n.createElement(a.A,{className:"mx_Pill_LinkIcon mx_BaseAvatar"}),C=({shouldShowPillAvatar:e,room:t})=>e?t?n.createElement(w.A,{room:t,size:"16px","aria-hidden":"true"}):S:null,R=({shouldShowPillAvatar:e,member:t})=>e?t?n.createElement(x.A,{member:t,size:"16px","aria-hidden":"true",hideTitle:!0}):n.createElement(l.A,{className:"mx_Pill_UserIcon mx_BaseAvatar"}):null,k=({type:e,url:t,inMessage:s,room:o,shouldShowPillAvatar:a=!0,text:l})=>{const d=(0,n.useContext)(c.Ay),{event:m,member:u,onClick:p,resourceId:g,targetRoom:v,text:_,type:f}=E({room:o,type:e,url:t}),y=null!=l?l:_;if(!f||!y)return null;const b=i()("mx_Pill",{mx_AtRoomPill:f===A.AtRoomMention,mx_RoomPill:f===A.RoomMention,mx_SpacePill:"space"===f||(null==v?void 0:v.isSpaceRoom()),mx_UserPill:f===A.UserMention,mx_UserPill_me:g===d.getUserId(),mx_EventPill:f===A.EventInOtherRoom||f===A.EventInSameRoom,mx_KeywordPill:f===A.Keyword});let w=null,x=y;switch(f){case A.EventInOtherRoom:w=n.createElement(C,{shouldShowPillAvatar:a,room:v}),x=(0,h._t)("pill|permalink_other_room",{room:y});break;case A.EventInSameRoom:m?(w=n.createElement(R,{shouldShowPillAvatar:a,member:u}),x=(0,h._t)("pill|permalink_this_room",{user:y})):(w=S,x=(0,h._t)("common|message"));break;case A.AtRoomMention:case A.RoomMention:case"space":w=n.createElement(C,{shouldShowPillAvatar:a,room:v});break;case A.UserMention:w=n.createElement(R,{shouldShowPillAvatar:a,member:u});break;case A.Keyword:break;default:return null}const k=!!s&&!!t;return n.createElement("bdi",null,n.createElement(r.m,{description:null!=g?g:"",open:!!g&&void 0,placement:"right",isTriggerInteractive:k},k?n.createElement("a",{className:b,href:t,onClick:p},w,n.createElement("span",{className:"mx_Pill_text"},x)):n.createElement("span",{className:b},w,n.createElement("span",{className:"mx_Pill_text"},x))))}},"./src/components/views/elements/PollCreateDialog.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>f});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./node_modules/matrix-js-sdk/src/extensible_events_v1/PollStartEvent.ts"),a=s("./src/components/views/dialogs/ScrollableBaseModal.tsx"),l=s("./src/components/views/dialogs/QuestionDialog.tsx"),c=s("./src/Modal.tsx"),d=s("./src/languageHandler.tsx"),m=s("./src/utils/arrays.ts"),u=s("./src/components/views/elements/Field.tsx"),h=s("./src/components/views/elements/AccessibleButton.tsx"),p=s("./src/components/views/elements/Spinner.tsx"),g=s("./src/utils/local-room.ts"),v=function(e){return e[e.Topic=0]="Topic",e[e.NewOption=1]="NewOption",e}(v||{});function _(){return{title:(0,d._t)("poll|create_poll_title"),actionLabel:(0,d._t)("poll|create_poll_action"),canSubmit:!1,question:"",options:(0,m.DG)("",2),busy:!1,kind:i.M_POLL_KIND_DISCLOSED,autoFocusTarget:v.Topic}}class f extends a.A{constructor(e){super(e),(0,n.A)(this,"addOptionRef",(0,o.createRef)()),(0,n.A)(this,"onQuestionChange",e=>{this.setState({question:e.target.value},()=>this.checkCanSubmit())}),(0,n.A)(this,"onOptionChange",(e,t)=>{const s=(0,m.PF)(this.state.options);s[e]=t.target.value,this.setState({options:s},()=>this.checkCanSubmit())}),(0,n.A)(this,"onOptionRemove",e=>{const t=(0,m.PF)(this.state.options);t.splice(e,1),this.setState({options:t},()=>this.checkCanSubmit())}),(0,n.A)(this,"onOptionAdd",()=>{const e=(0,m.PF)(this.state.options);e.push(""),this.setState({options:e,autoFocusTarget:v.NewOption},()=>{var e,t;null===(e=this.addOptionRef.current)||void 0===e||null===(t=e.scrollIntoView)||void 0===t||t.call(e)})}),(0,n.A)(this,"onPollTypeChange",e=>{this.setState({kind:i.M_POLL_KIND_DISCLOSED.matches(e.target.value)?i.M_POLL_KIND_DISCLOSED:i.M_POLL_KIND_UNDISCLOSED})}),this.state=e.editingMxEvent?function(e){const t=e.unstableExtensibleEvent;return null!=t&&t.isEquivalentTo(i.M_POLL_START)?{title:(0,d._t)("poll|edit_poll_title"),actionLabel:(0,d._t)("action|done"),canSubmit:!0,question:t.question.text,options:t.answers.map(e=>e.text),busy:!1,kind:t.kind,autoFocusTarget:v.Topic}:_()}(e.editingMxEvent):_()}checkCanSubmit(){this.setState({canSubmit:!this.state.busy&&this.state.question.trim().length>0&&this.state.options.filter(e=>e.trim().length>0).length>=2})}createEvent(){const e=r.m.from(this.state.question.trim(),this.state.options.map(e=>e.trim()).filter(e=>!!e),this.state.kind.name).serialize();return this.props.editingMxEvent?{content:{"m.new_content":e.content,"m.relates_to":{rel_type:"m.replace",event_id:this.props.editingMxEvent.getId()}},type:e.type}:e}submit(){this.setState({busy:!0,canSubmit:!1});const e=this.createEvent();(0,g.Y)(this.props.room.roomId,t=>{var s;return this.matrixClient.sendEvent(t,null!==(s=this.props.threadId)&&void 0!==s?s:null,e.type,e.content)},this.matrixClient).then(()=>this.props.onFinished(!0)).catch(e=>{console.error("Failed to post poll:",e);const{finished:t}=c.Ay.createDialog(l.A,{title:(0,d._t)("poll|failed_send_poll_title"),description:(0,d._t)("poll|failed_send_poll_description"),button:(0,d._t)("action|try_again"),cancelButton:(0,d._t)("action|cancel")});t.then(([e])=>{e?this.setState({busy:!1,canSubmit:!0}):this.cancel()})})}cancel(){this.props.onFinished(!1)}renderContent(){return o.createElement("div",{className:"mx_PollCreateDialog"},o.createElement("h2",null,(0,d._t)("poll|type_heading")),o.createElement(u.A,{element:"select",value:this.state.kind.name,onChange:this.onPollTypeChange},o.createElement("option",{key:i.M_POLL_KIND_DISCLOSED.name,value:i.M_POLL_KIND_DISCLOSED.name},(0,d._t)("poll|type_open")),o.createElement("option",{key:i.M_POLL_KIND_UNDISCLOSED.name,value:i.M_POLL_KIND_UNDISCLOSED.name},(0,d._t)("poll|type_closed"))),o.createElement("p",null,(e=this.state.kind,i.M_POLL_KIND_DISCLOSED.matches(e.name)?(0,d._t)("poll|disclosed_notes"):(0,d._t)("poll|notes"))),o.createElement("h2",null,(0,d._t)("poll|topic_heading")),o.createElement(u.A,{id:"poll-topic-input",value:this.state.question,maxLength:340,label:(0,d._t)("poll|topic_label"),placeholder:(0,d._t)("poll|topic_placeholder"),onChange:this.onQuestionChange,usePlaceholderAsHint:!0,disabled:this.state.busy,autoFocus:this.state.autoFocusTarget===v.Topic}),o.createElement("h2",null,(0,d._t)("poll|options_heading")),this.state.options.map((e,t)=>o.createElement("div",{key:`option_${t}`,className:"mx_PollCreateDialog_option"},o.createElement(u.A,{id:`pollcreate_option_${t}`,value:e,maxLength:340,label:(0,d._t)("poll|options_label",{number:t+1}),placeholder:(0,d._t)("poll|options_placeholder"),onChange:e=>this.onOptionChange(t,e),usePlaceholderAsHint:!0,disabled:this.state.busy,autoFocus:this.state.autoFocusTarget===v.NewOption&&t===this.state.options.length-1}),o.createElement(h.A,{onClick:()=>this.onOptionRemove(t),className:"mx_PollCreateDialog_removeOption",disabled:this.state.busy}))),o.createElement(h.A,{onClick:this.onOptionAdd,disabled:this.state.busy||this.state.options.length>=20,kind:"secondary",className:"mx_PollCreateDialog_addOption",ref:this.addOptionRef},(0,d._t)("poll|options_add_button")),this.state.busy&&o.createElement("div",{className:"mx_PollCreateDialog_busy"},o.createElement(p.A,null)));var e}}},"./src/components/views/elements/PowerSelector.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>u});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./src/Roles.ts"),r=s("./src/languageHandler.tsx"),a=s("./src/components/views/elements/Field.tsx"),l=s("./src/accessibility/KeyboardShortcuts.ts"),c=s("./src/KeyBindingsManager.ts"),d=s("./src/utils/objects.ts");const m="SELECT_VALUE_CUSTOM";class u extends o.Component{constructor(e){super(e),(0,n.A)(this,"unmounted",!1),(0,n.A)(this,"onSelectChange",async e=>{if(e.target.value===m)this.setState({custom:!0});else{const t=parseInt(e.target.value);this.setState({selectValue:t});try{await this.props.onChange(t,this.props.powerLevelKey)}catch{if(this.unmounted)return;this.initStateFromProps()}}}),(0,n.A)(this,"onCustomChange",e=>{this.setState({customValue:parseInt(e.target.value)})}),(0,n.A)(this,"onCustomBlur",async e=>{if(e.preventDefault(),e.stopPropagation(),Number.isFinite(this.state.customValue))try{await this.props.onChange(this.state.customValue,this.props.powerLevelKey)}catch{if(this.unmounted)return;this.initStateFromProps()}else this.initStateFromProps()}),(0,n.A)(this,"onCustomKeyDown",e=>{if((0,c.zM)().getAccessibilityAction(e)===l.bY.Enter)e.preventDefault(),e.stopPropagation(),e.target.blur()}),this.state={levelRoleMap:{},options:[],customValue:this.props.value,selectValue:0}}componentDidMount(){this.unmounted=!1,this.initStateFromProps()}componentDidUpdate(e){(0,d.No)(this.props,e)&&this.initStateFromProps()}componentWillUnmount(){this.unmounted=!0}initStateFromProps(){const e=i.x(this.props.usersDefault),t=Object.keys(e).filter(e=>void 0===e||parseInt(e)<=this.props.maxValue||parseInt(e)==this.props.value).map(e=>parseInt(e)),s=void 0===e[this.props.value];this.setState({levelRoleMap:e,options:t,custom:s,customValue:this.props.value,selectValue:s?m:this.props.value})}render(){let e;const t=void 0===this.props.label?(0,r._t)("power_level|label"):this.props.label;if(this.state.custom)e=o.createElement(a.A,{type:"number",label:t,max:this.props.maxValue,onBlur:this.onCustomBlur,onKeyDown:this.onCustomKeyDown,onChange:this.onCustomChange,value:String(this.state.customValue),disabled:this.props.disabled});else{const s=this.state.options.map(e=>({value:String(e),text:i.X(e,this.props.usersDefault)}));s.push({value:m,text:(0,r._t)("power_level|custom_level")});const n=s.map(e=>o.createElement("option",{value:e.value,key:e.value},e.text));e=o.createElement(a.A,{element:"select",label:t,onChange:this.onSelectChange,value:String(this.state.selectValue),disabled:this.props.disabled},n)}return o.createElement("div",{className:"mx_PowerSelector"},e)}}(0,n.A)(u,"defaultProps",{maxValue:1/0,usersDefault:0})},"./src/components/views/elements/ProgressBar.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>m});var n=s("./node_modules/react/index.js"),o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./src/settings/SettingsStore.ts");const a=(...e)=>{r.A.getValue("debug_animation")&&i.vF.log.call(console,"Animation debuglog:",...e)};function l(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function c(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?l(Object(s),!0).forEach(function(t){(0,o.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):l(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}function d(e,t,s){const o=(0,n.useRef)({timestamp:null,value:e}),[l,d]=(0,n.useState)(e),[m,u]=(0,n.useState)(0);(0,n.useEffect)(()=>{const e=t-o.current.value;u(e/s),o.current=c(c({},o.current),{},{timestamp:null})},[s,t]);const h=(0,n.useCallback)(e=>{if(!o.current.timestamp)return o.current=c(c({},o.current),{},{timestamp:e}),!0;if(Math.abs(m)<Number.EPSILON)return!1;const s=e-o.current.timestamp,n=m*s,a=t-o.current.value,l=Math.sign(n)*Math.min(Math.abs(a),Math.abs(n)),u=o.current.value+l;return((...e)=>{r.A.getValue("debug_animation")&&i.vF.log.call(console,"Animation debuglog:",...e)})(`Animating to ${t} at ${u} timeDelta=${s}, valueDelta=${n}`),d(u),o.current={value:u,timestamp:e},Math.abs(a)>Number.EPSILON},[m,t]);return function(e,t){const s=(0,n.useRef)(null),o=(0,n.useCallback)(e=>{t(e)?s.current=requestAnimationFrame(o):a("Finished animation!")},[t]);(0,n.useEffect)(()=>(a("Started animation!"),e&&(s.current=requestAnimationFrame(o)),()=>{s.current&&(a("Aborted animation!"),cancelAnimationFrame(s.current),s.current=null)}),[e,o])}(s>0,h),s>0?l:t}const m=({value:e,max:t,animated:s=!0})=>{const o=d(0,e,s?300:0);return n.createElement("progress",{className:"mx_ProgressBar",max:t,value:o})}},"./src/components/views/elements/QRCode.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>g});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/qrcode/lib/browser.js"),a=s("./node_modules/classnames/index.js"),l=s.n(a),c=s("./src/languageHandler.tsx"),d=s("./src/components/views/elements/Spinner.tsx");const m=["data","className"];function u(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function h(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?u(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):u(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const p={errorCorrectionLevel:"L"},g=e=>{let{data:t,className:s}=e,n=(0,o.A)(e,m);const[a,u]=i.useState(null);return i.useEffect(()=>{if(null===t)return void u(null);let e=!1;return(0,r.dY)(t,h(h({},p),n)).then(t=>{e||u(t)}),()=>{e=!0}},[JSON.stringify(t),n]),i.createElement("div",{className:l()("mx_QRCode",s)},a?i.createElement("img",{src:a,className:"mx_VerificationQRCode",alt:(0,c._t)("common|qr_code")}):i.createElement(d.A,null))}},"./src/components/views/elements/RoomAliasField.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>d});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./src/languageHandler.tsx"),a=s("./src/components/views/elements/Validation.tsx"),l=s("./src/components/views/elements/Field.tsx"),c=s("./src/contexts/MatrixClientContext.tsx");class d extends o.PureComponent{constructor(e){super(e),(0,n.A)(this,"fieldRef",(0,o.createRef)()),(0,n.A)(this,"onChange",e=>{var t,s;null===(t=(s=this.props).onChange)||void 0===t||t.call(s,this.asFullAlias(e.target.value))}),(0,n.A)(this,"onValidate",async e=>{const t=await this.validationRules(e);return this.setState({isValid:!!t.valid}),t}),(0,n.A)(this,"validationRules",(0,a.A)({rules:[{key:"hasDomain",test:async({value:e})=>!(e&&!this.props.domain)||!(e.split(":").length<2),invalid:()=>(0,r._t)("room_settings|general|alias_field_has_domain_invalid")},{key:"hasLocalpart",test:async({value:e})=>{if(!e||this.props.domain)return!0;const t=e.split(":");return t.length<2||!(t[0].length<1)},invalid:()=>(0,r._t)("room_settings|general|alias_field_has_localpart_invalid")},{key:"safeLocalpart",test:async({value:e})=>{if(!e)return!0;if(this.props.domain){const t=this.asFullAlias(e),s=!this.props.domain||!e.includes(":");return!e.includes("#")&&s&&!e.includes(",")&&encodeURI(t)===t}return!0},invalid:()=>(0,r._t)("room_settings|general|alias_field_safe_localpart_invalid")},{key:"required",test:async({value:e,allowEmpty:t})=>t||!!e,invalid:()=>(0,r._t)("room_settings|general|alias_field_required_invalid")},this.props.roomId?{key:"matches",final:!0,test:async({value:e})=>{if(!e)return!0;const t=this.context;try{return(await t.getRoomIdForAlias(this.asFullAlias(e))).room_id===this.props.roomId}catch(e){return console.log(e),!1}},invalid:()=>(0,r._t)("room_settings|general|alias_field_matches_invalid")}:{key:"taken",final:!0,test:async({value:e})=>{if(!e)return!0;const t=this.context;try{return await t.getRoomIdForAlias(this.asFullAlias(e)),!1}catch(e){return console.log(e),e instanceof i.MatrixError}},valid:()=>(0,r._t)("room_settings|general|alias_field_taken_valid"),invalid:()=>this.props.domain?(0,r._t)("room_settings|general|alias_field_taken_invalid_domain"):(0,r._t)("room_settings|general|alias_field_taken_invalid")}]})),this.state={isValid:!0}}asFullAlias(e){const t=`#${e}`;return this.props.domain?`${t}:${this.props.domain}`:t}get domainProps(){const{domain:e}=this.props,t=o.createElement("span",null,"#"),s=e?o.createElement("span",{title:`:${e}`},`:${e}`):o.createElement("span",null),n=e?255-e.length-2:254;return{prefix:t,postfix:s,value:e?this.props.value.substring(1,this.props.value.length-e.length-1):this.props.value.substring(1),maxlength:n}}render(){const{prefix:e,postfix:t,value:s,maxlength:n}=this.domainProps;return o.createElement(l.A,{label:this.props.label||(0,r._t)("room_settings|general|alias_heading"),className:"mx_RoomAliasField",prefixComponent:e,postfixComponent:t,ref:this.fieldRef,onValidate:this.onValidate,placeholder:this.props.placeholder||(0,r._t)("room_settings|general|alias_field_placeholder_default"),onChange:this.onChange,value:s,maxLength:n,disabled:this.props.disabled,autoComplete:"off",onKeyDown:this.props.onKeyDown})}get isValid(){return this.state.isValid}async validate(e){var t;const s=await(null===(t=this.fieldRef.current)||void 0===t?void 0:t.validate(e));return null!=s&&s}focus(){var e;null===(e=this.fieldRef.current)||void 0===e||e.focus()}}(0,n.A)(d,"contextType",c.Ay)},"./src/components/views/elements/SettingsFlag.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>m});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/randomstring.ts"),r=s("./src/settings/SettingsStore.ts"),a=s("./src/languageHandler.tsx"),l=s("./src/components/views/elements/ToggleSwitch.tsx"),c=s("./src/components/views/elements/StyledCheckbox.tsx"),d=s("./src/settings/Settings.tsx");class m extends o.Component{constructor(e){super(e),(0,n.A)(this,"id",`mx_SettingsFlag_${(0,i.US)(12)}`),(0,n.A)(this,"onSettingChange",()=>{this.setState({value:this.getSettingValue()})}),(0,n.A)(this,"onChange",async e=>{var t,s;await this.save(e),this.setState({value:e}),null===(t=(s=this.props).onChange)||void 0===t||t.call(s,e)}),(0,n.A)(this,"checkBoxOnChange",e=>{this.onChange(e.target.checked)}),(0,n.A)(this,"save",async e=>{var t;await r.A.setValue(this.props.name,null!==(t=this.props.roomId)&&void 0!==t?t:null,this.props.level,void 0!==e?e:this.state.value)}),this.state={value:this.getSettingValue()}}componentDidMount(){var e;d.WA.watchSetting(this.props.name,null!==(e=this.props.roomId)&&void 0!==e?e:null,this.onSettingChange)}componentWillUnmount(){d.WA.unwatchSetting(this.onSettingChange)}getSettingValue(){var e,t;return r.A.settingIsOveriddenAtConfigLevel(this.props.name,null!==(e=this.props.roomId)&&void 0!==e?e:null,this.props.level)?!!r.A.getValue(this.props.name):!!r.A.getValueAt(this.props.level,this.props.name,null!==(t=this.props.roomId)&&void 0!==t?t:null,this.props.isExplicit)}render(){var e,t;const s=!r.A.canSetValue(this.props.name,null!==(e=this.props.roomId)&&void 0!==e?e:null,this.props.level);if(s&&this.props.hideIfCannotSet)return null;const n=null!==(t=this.props.label)&&void 0!==t?t:r.A.getDisplayName(this.props.name,this.props.level),i=r.A.getDescription(this.props.name),d=r.A.shouldHaveWarning(this.props.name);return this.props.useCheckbox?o.createElement(c.A,{checked:this.state.value,onChange:this.checkBoxOnChange,disabled:s},n):o.createElement("div",{className:"mx_SettingsFlag"},o.createElement("label",{className:"mx_SettingsFlag_label",htmlFor:this.id},o.createElement("span",{className:"mx_SettingsFlag_labelText"},n),i&&o.createElement("div",{className:"mx_SettingsFlag_microcopy"},d?(0,a._t)("settings|warning",{},{w:e=>o.createElement("span",{className:"mx_SettingsTab_microcopy_warning"},e),description:i}):i)),o.createElement(l.A,{id:this.id,checked:this.state.value,onChange:this.onChange,disabled:s,tooltip:s?r.A.disabledMessage(this.props.name):void 0,title:null!=n?n:void 0}))}}},"./src/components/views/elements/Spinner.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./src/languageHandler.tsx");class r extends o.PureComponent{render(){const{w:e,h:t,message:s}=this.props;return o.createElement("div",{className:"mx_Spinner"},s&&o.createElement(o.Fragment,null,o.createElement("div",{className:"mx_Spinner_Msg"},s)," "),o.createElement("div",{className:"mx_Spinner_icon",style:{width:e,height:t},"aria-label":(0,i._t)("common|loading"),role:"progressbar"}))}}(0,n.A)(r,"defaultProps",{w:32,h:32})},"./src/components/views/elements/StyledCheckbox.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>h});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/matrix-js-sdk/src/randomstring.ts"),a=s("./node_modules/@vector-im/compound-web/dist/components/Form/Root.js"),l=s("./node_modules/@vector-im/compound-web/dist/components/Form/Controls/Checkbox/Checkbox.js"),c=s("./node_modules/@vector-im/compound-web/dist/components/Form/Message.js"),d=s("./node_modules/@vector-im/compound-web/dist/components/Form/InlineField.js"),m=s("./node_modules/@vector-im/compound-web/dist/components/Form/Label.js");const u=["id","children","className","inputRef","description"],h=e=>{let{id:t,children:s,className:h,inputRef:p,description:g}=e,v=(0,o.A)(e,u);const _=t||"checkbox_"+(0,r.US)(10),f=(0,i.useId)(),y=(0,i.useId)();return i.createElement(a.b,null,i.createElement(d.I,{className:h,name:f,control:i.createElement(l.O,(0,n.A)({ref:p,"aria-describedby":g?y:void 0,id:_},v))},s&&i.createElement(m.J,{htmlFor:_},s),g&&i.createElement(c.po,{id:y},g)))}},"./src/components/views/elements/StyledRadioButton.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>d});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),r=s("./node_modules/react/index.js"),a=s("./node_modules/classnames/index.js"),l=s.n(a);const c=["children","className","disabled","outlined","childrenInLabel","inputRef"];class d extends r.PureComponent{render(){const e=this.props,{children:t,className:s,disabled:i,outlined:a,childrenInLabel:d,inputRef:m}=e,u=(0,o.A)(e,c),h=l()("mx_StyledRadioButton",s,{mx_StyledRadioButton_disabled:i,mx_StyledRadioButton_enabled:!i,mx_StyledRadioButton_checked:this.props.checked,mx_StyledRadioButton_outlined:a}),p=r.createElement(r.Fragment,null,r.createElement("input",(0,n.A)({ref:m,type:"radio",disabled:i},u)),r.createElement("div",null,r.createElement("div",null)));return d?r.createElement("label",{className:h},p,r.createElement("div",{className:"mx_StyledRadioButton_content"},t),r.createElement("div",{className:"mx_StyledRadioButton_spacer"})):r.createElement("div",{className:h},r.createElement("label",{className:"mx_StyledRadioButton_innerLabel"},p),r.createElement("div",{className:"mx_StyledRadioButton_content"},t),r.createElement("div",{className:"mx_StyledRadioButton_spacer"}))}}(0,i.A)(d,"defaultProps",{className:"",childrenInLabel:!0})},"./src/components/views/elements/StyledRadioGroup.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>a});var n=s("./node_modules/react/index.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./src/components/views/elements/StyledRadioButton.tsx");const a=function({name:e,definitions:t,value:s,className:o,outlined:a,disabled:l,onChange:c}){const d=e=>{c(e.target.value)};return n.createElement(n.Fragment,null,t.map(t=>{var c;const m=`${e}-${t.value}`;return n.createElement(n.Fragment,{key:t.value},n.createElement(r.A,{id:m,className:i()(o,t.className),onChange:d,checked:void 0!==t.checked?t.checked:t.value===s,name:e,value:t.value,disabled:null!==(c=t.disabled)&&void 0!==c?c:l,outlined:a,"aria-describedby":t.description?`${m}-description`:void 0},t.label),t.description?n.createElement("span",{id:`${m}-description`},t.description):null)}))}},"./src/components/views/elements/SyntaxHighlight.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>i});var n=s("./node_modules/react/index.js"),o=s("./src/hooks/useAsyncMemo.ts");function i({children:e,language:t}){const i=(0,o.e)(async()=>{const{default:n}=await s.e(458).then(s.bind(s,"./node_modules/highlight.js/es/index.js"));return t?n.highlight(e,{language:t}):n.highlightAuto(e)},[t,e]);return n.createElement("pre",{className:`mx_SyntaxHighlight hljs language-${null==i?void 0:i.language}`},i?n.createElement("code",{dangerouslySetInnerHTML:{__html:i.value}}):e)}},"./src/components/views/elements/TextWithTooltip.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>i});var n=s("./node_modules/react/index.js"),o=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/Tooltip.js");class i extends n.Component{render(){var e;const{className:t,children:s,tooltip:i,tooltipProps:r}=this.props;return n.createElement(o.m,{label:i,placement:"right"},n.createElement("span",{className:t,tabIndex:null!==(e=null==r?void 0:r.tabIndex)&&void 0!==e?e:0},s))}}},"./src/components/views/elements/ToggleSwitch.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>d});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/classnames/index.js"),a=s.n(r),l=s("./src/components/views/elements/AccessibleButton.tsx");const c=["checked","disabled","onChange","title","tooltip"],d=e=>{let{checked:t,disabled:s=!1,onChange:r,title:d,tooltip:m}=e,u=(0,o.A)(e,c);const h=a()({mx_ToggleSwitch:!0,mx_ToggleSwitch_on:t,mx_ToggleSwitch_enabled:!s});return i.createElement(l.A,(0,n.A)({},u,{className:h,onClick:()=>{s||r(!t)},role:"switch","aria-label":d,"aria-checked":t,"aria-disabled":s,title:m}),i.createElement("div",{className:"mx_ToggleSwitch_ball"}))}},"./src/components/views/elements/TruncatedList.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./src/languageHandler.tsx");class r extends o.Component{getChildren(e,t){return this.props.getChildren&&this.props.getChildCount?this.props.getChildren(e,t):o.Children.toArray(this.props.children).filter(e=>null!=e).slice(e,t)}getChildCount(){return this.props.getChildren&&this.props.getChildCount?this.props.getChildCount():o.Children.toArray(this.props.children).filter(e=>null!=e).length}render(){let e;const t=this.getChildCount();let s=t;if(this.props.truncateAt>=0){const n=t-this.props.truncateAt;n>1&&(e=this.props.createOverflowElement(n,t),s=this.props.truncateAt)}const n=this.getChildren(0,s);return o.createElement("div",{className:this.props.className,role:"list",id:this.props.id},n,e)}}(0,n.A)(r,"defaultProps",{truncateAt:2,createOverflowElement:(e,t)=>o.createElement("div",null,(0,i._t)("truncated_list_n_more",{count:e}))})},"./src/components/views/elements/Validation.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>a});var n=s("./node_modules/react/index.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./node_modules/memoize-one/dist/memoize-one.esm.js");function a({description:e,hideDescriptionIfValid:t,deriveData:s,rules:o,memoize:a}){let d=async function(e,t){const s=[];let n=!0;for(const r of o){var i;if(!r.key||!r.test)continue;if(!n&&r.final)continue;if(null!==(i=r.skip)&&void 0!==i&&i.call(this,e,t))continue;const o=await r.test.call(this,e,t);if(n=n&&o,o&&r.valid){const e=r.valid.call(this,t);if(!e)continue;s.push({key:r.key,valid:!0,text:e})}else if(!o&&r.invalid){const e=r.invalid.call(this,t);if(!e)continue;s.push({key:r.key,valid:!1,text:e})}}return[n,s]};return a&&(s&&(s=(0,r.A)(s,l)),d=(0,r.A)(d,c)),async function({value:o,focused:r,allowEmpty:a=!0}){var l;if(!o&&a)return{};const c={value:o,allowEmpty:a},m=await(null===(l=s)||void 0===l?void 0:l.call(this,c)),[u,h]=await d.call(this,c,m);if(!r)return{valid:u};let p,g,v;if(h&&h.length&&(p=n.createElement("ul",{className:"mx_Validation_details"},h.map(e=>{const t=i()({mx_Validation_detail:!0,mx_Validation_valid:e.valid,mx_Validation_invalid:!e.valid});return n.createElement("li",{key:e.key,className:t},e.text)}))),e&&(p||!t)){const t=e.call(this,m,h);g=t?n.createElement("div",{className:"mx_Validation_description"},t):void 0}return(g||p)&&(v=n.createElement("div",{className:"mx_Validation"},g,p)),{valid:u,feedback:v}}}function l([e],[t]){return e.value===t.value&&e.allowEmpty===t.allowEmpty}function c([e,t],[s,n]){return t===n&&l([e],[s])}},"./src/components/views/emojipicker/EmojiPicker.tsx":(e,t,s)=>{"use strict";s.d(t,{rE:()=>D,N2:()=>U,d2:()=>j,Ay:()=>L});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/@matrix-org/emojibase-bindings/build/emoji.js"),r=s("./src/languageHandler.tsx"),a=s("./src/emojipicker/recent.ts"),l=s("./src/components/structures/AutoHideScrollbar.tsx"),c=s("./node_modules/classnames/index.js"),d=s.n(c),m=s("./node_modules/lodash/lodash.js"),u=s("./src/KeyBindingsManager.ts"),h=s("./src/accessibility/KeyboardShortcuts.ts");class p extends o.PureComponent{constructor(...e){super(...e),(0,n.A)(this,"onKeyDown",e=>{let t=!0;switch((0,u.zM)().getAccessibilityAction(e)){case h.bY.ArrowLeft:this.changeCategoryRelative(-1);break;case h.bY.ArrowRight:this.changeCategoryRelative(1);break;case h.bY.Home:this.changeCategoryAbsolute(0);break;case h.bY.End:this.changeCategoryAbsolute(this.props.categories.length-1,-1);break;default:t=!1}t&&(e.preventDefault(),e.stopPropagation())})}findNearestEnabled(e,t){e+=this.props.categories.length;const s=[...this.props.categories,...this.props.categories,...this.props.categories];for(;e<s.length&&e>=0;){if(s[e].enabled)return e%this.props.categories.length;e+=t>0?1:-1}}changeCategoryRelative(e){let t;t=e<0?this.props.categories.findIndex(e=>e.visible):(0,m.findLastIndex)(this.props.categories,e=>e.visible),this.changeCategoryAbsolute(t+e,e)}changeCategoryAbsolute(e,t=1){const s=this.props.categories[this.findNearestEnabled(e,t)];var n;s&&(this.props.onAnchorClick(s.id),null===(n=s.ref.current)||void 0===n||n.focus())}render(){return o.createElement("nav",{className:"mx_EmojiPicker_header",role:"tablist","aria-label":(0,r._t)("emoji|categories"),onKeyDown:this.onKeyDown},this.props.categories.map(e=>{const t=d()(`mx_EmojiPicker_anchor mx_EmojiPicker_anchor_${e.id}`,{mx_EmojiPicker_anchor_visible:e.visible});return o.createElement("button",{disabled:!e.enabled,key:e.id,ref:e.ref,className:t,onClick:()=>this.props.onAnchorClick(e.id),title:e.name,role:"tab",tabIndex:e.visible?0:-1,"aria-selected":e.visible,"aria-controls":`mx_EmojiPicker_category_${e.id}`})}))}}const g=p;var v=s("./src/accessibility/RovingTabIndex.tsx");class _ extends o.PureComponent{constructor(...e){super(...e),(0,n.A)(this,"inputRef",o.createRef()),(0,n.A)(this,"onKeyDown",e=>{if((0,u.zM)().getAccessibilityAction(e)===h.bY.Enter)this.props.onEnter(),e.stopPropagation(),e.preventDefault();else this.props.onKeyDown(e)})}componentDidMount(){window.setTimeout(()=>{var e;return null===(e=this.inputRef.current)||void 0===e?void 0:e.focus()},0)}render(){var e;let t;return t=this.props.query?o.createElement("button",{onClick:()=>this.props.onChange(""),className:"mx_EmojiPicker_search_icon mx_EmojiPicker_search_clear",title:(0,r._t)("emoji_picker|cancel_search_label")}):o.createElement("span",{className:"mx_EmojiPicker_search_icon"}),o.createElement("div",{className:"mx_EmojiPicker_search"},o.createElement("input",{autoFocus:!0,type:"text",placeholder:(0,r._t)("action|search"),value:this.props.query,onChange:e=>this.props.onChange(e.target.value),onKeyDown:this.onKeyDown,ref:this.inputRef,"aria-activedescendant":null===(e=this.context.state.activeNode)||void 0===e?void 0:e.id,"aria-controls":"mx_EmojiPicker_body","aria-haspopup":"grid","aria-autocomplete":"list"}),t)}}(0,n.A)(_,"contextType",v.ui);const f=_;class y extends o.PureComponent{render(){const{unicode:e,label:t,shortcodes:[s]}=this.props.emoji;return o.createElement("div",{className:"mx_EmojiPicker_footer mx_EmojiPicker_preview"},o.createElement("div",{className:"mx_EmojiPicker_preview_emoji"},e),o.createElement("div",{className:"mx_EmojiPicker_preview_text"},o.createElement("div",{className:"mx_EmojiPicker_name mx_EmojiPicker_preview_name"},t),o.createElement("div",{className:"mx_EmojiPicker_shortcode"},s)))}}const b=y;class E extends o.PureComponent{render(){const{onClick:e,onMouseEnter:t,onMouseLeave:s,emoji:n,selectedEmojis:i}=this.props,r=null==i?void 0:i.has(n.unicode);return o.createElement(v.k,{id:this.props.id,onClick:t=>e(t,n),onMouseEnter:()=>t(n),onMouseLeave:()=>s(n),className:"mx_EmojiPicker_item_wrapper",disabled:this.props.disabled,role:this.props.role,focusOnMouseOver:!0},o.createElement("div",{className:"mx_EmojiPicker_item "+(r?"mx_EmojiPicker_item_selected":"")},n.unicode))}}const w=E;var x=s("./src/accessibility/Toolbar.tsx");const A=["👍","👎","😄","🎉","😕","❤️","🚀","👀"].map(e=>{const t=(0,i.getEmojiFromUnicode)(e);if(!t)throw new Error(`Emoji ${e} doesn't exist in emojibase`);return t});class S extends o.Component{constructor(e){super(e),(0,n.A)(this,"onMouseEnter",e=>{this.setState({hover:e})}),(0,n.A)(this,"onMouseLeave",()=>{this.setState({hover:void 0})}),this.state={}}render(){return o.createElement("section",{className:"mx_EmojiPicker_footer mx_EmojiPicker_quick mx_EmojiPicker_category"},o.createElement("h2",{className:"mx_EmojiPicker_quick_header mx_EmojiPicker_category_label"},this.state.hover?o.createElement(o.Fragment,null,o.createElement("span",{className:"mx_EmojiPicker_name"},this.state.hover.label),o.createElement("span",{className:"mx_EmojiPicker_shortcode"},this.state.hover.shortcodes[0])):(0,r._t)("emoji|quick_reactions")),o.createElement(x.A,{className:"mx_EmojiPicker_list","aria-label":(0,r._t)("emoji|quick_reactions")},A.map(e=>o.createElement(w,{key:e.hexcode,emoji:e,onClick:this.props.onClick,onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave,selectedEmojis:this.props.selectedEmojis}))))}}const C=S;var R=s("./src/components/views/elements/LazyRenderList.tsx");function k(e){let t,s,n="";for(s=0;s<e.length;s++)t=e.charCodeAt(s).toString(16),n+=("000"+t).slice(-4);return n}class I extends o.PureComponent{constructor(...e){super(...e),(0,n.A)(this,"renderEmojiRow",e=>{const{onClick:t,onMouseEnter:s,onMouseLeave:n,selectedEmojis:i,emojis:r}=this.props,a=r.slice(8*e,8*(e+1));return o.createElement("div",{key:e,role:"row"},a.map(e=>{var r,a;return o.createElement(w,{key:e.hexcode,emoji:e,selectedEmojis:i,onClick:t,onMouseEnter:s,onMouseLeave:n,disabled:null===(r=(a=this.props).isEmojiDisabled)||void 0===r?void 0:r.call(a,e.unicode),id:`mx_EmojiPicker_item_${this.props.id}_${k(e.unicode)}`,role:"gridcell"})}))})}render(){const{emojis:e,name:t,heightBefore:s,viewportHeight:n,scrollTop:i}=this.props;if(!e||0===e.length)return null;const r=new Array(Math.ceil(e.length/U));for(let e=0;e<r.length;++e)r[e]=e;const a=i,l=a+n,c=s+D,d=c+r.length*j,m=Math.max(a,c),u=Math.min(l,d),h=Math.max(0,u-m),p=Math.max(0,i-c);return o.createElement("section",{id:`mx_EmojiPicker_category_${this.props.id}`,className:"mx_EmojiPicker_category","data-category-id":this.props.id,role:"tabpanel","aria-label":t},o.createElement("h2",{className:"mx_EmojiPicker_category_label"},t),o.createElement(R.A,{className:"mx_EmojiPicker_list",itemHeight:j,items:r,scrollTop:p,height:h,overflowItems:3,overflowMargin:0,renderItem:this.renderEmojiRow,role:"grid"}))}}const P=I;var T=s("./src/utils/arrays.ts"),O=s("./src/Keyboard.ts"),M=s("./packages/shared-components/src/utils/numbers.ts");function N(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}const D=20,j=35,U=8;class F extends o.Component{constructor(e){super(e),(0,n.A)(this,"recentlyUsed",void 0),(0,n.A)(this,"memoizedDataByCategory",void 0),(0,n.A)(this,"categories",void 0),(0,n.A)(this,"scrollRef",o.createRef()),(0,n.A)(this,"onScroll",()=>{var e;const t=null===(e=this.scrollRef.current)||void 0===e?void 0:e.containerRef.current;t&&(this.setState({scrollTop:t.scrollTop,viewportHeight:t.clientHeight}),this.updateVisibility())}),(0,n.A)(this,"onKeyDown",(e,t,s)=>{t.activeNode&&[O.Uz.ARROW_DOWN,O.Uz.ARROW_RIGHT,O.Uz.ARROW_LEFT,O.Uz.ARROW_UP].includes(e.key)&&this.keyboardNavigation(e,t,s)}),(0,n.A)(this,"updateVisibility",()=>{var e;const t=null===(e=this.scrollRef.current)||void 0===e?void 0:e.containerRef.current;if(!t)return;const s=t.getBoundingClientRect();for(const e of this.categories){const o=t.querySelector(`[data-category-id="${e.id}"]`);if(!o){var n;e.visible=!1,null===(n=e.ref.current)||void 0===n||n.classList.remove("mx_EmojiPicker_anchor_visible");continue}const i=o.getBoundingClientRect(),r=i.y-s.y,a=i.y+i.height-s.y;e.visible=r<s.height&&a>0,e.ref.current&&(e.visible?(e.ref.current.classList.add("mx_EmojiPicker_anchor_visible"),e.ref.current.setAttribute("aria-selected","true"),e.ref.current.setAttribute("tabindex","0")):(e.ref.current.classList.remove("mx_EmojiPicker_anchor_visible"),e.ref.current.setAttribute("aria-selected","false"),e.ref.current.setAttribute("tabindex","-1")))}}),(0,n.A)(this,"scrollToCategory",e=>{var t;null===(t=this.scrollRef.current)||void 0===t||null===(t=t.containerRef.current)||void 0===t||null===(t=t.querySelector(`[data-category-id="${e}"]`))||void 0===t||t.scrollIntoView()}),(0,n.A)(this,"onChangeFilter",e=>{const t=e.toLowerCase().trim();for(const e of this.categories){let s;s=t.includes(this.state.filter)?this.memoizedDataByCategory[e.id]:"recent"===e.id?this.recentlyUsed:i.DATA_BY_CATEGORY[e.id],""!==t&&(s=s.filter(e=>this.emojiMatchesFilter(e,t)),s=[...s].sort((e,s)=>{const n=e.shortcodes[0].indexOf(t),o=s.shortcodes[0].indexOf(t);return-1==n||-1==o?o-n:0==n&&0==o?e.shortcodes[0].length-s.shortcodes[0].length:n-o})),this.memoizedDataByCategory[e.id]=s,e.enabled=s.length>0,e.ref.current&&(e.ref.current.disabled=!e.enabled)}this.setState({filter:e}),window.setTimeout(this.updateVisibility,0)}),(0,n.A)(this,"emojiMatchesFilter",(e,t)=>{var s;return t.includes("")&&(t=t.split("",2)[0]),e.label.toLowerCase().includes(t)||(Array.isArray(e.emoticon)?e.emoticon.some(e=>e.includes(t)):null===(s=e.emoticon)||void 0===s?void 0:s.includes(t))||e.shortcodes.some(e=>e.toLowerCase().includes(t))||e.unicode.split("").includes(t)}),(0,n.A)(this,"onEnterFilter",()=>{var e;const t=null===(e=this.scrollRef.current)||void 0===e||null===(e=e.containerRef.current)||void 0===e?void 0:e.querySelector('.mx_EmojiPicker_item_wrapper[tabindex="0"]');null==t||t.click(),this.props.onFinished()}),(0,n.A)(this,"onHoverEmoji",e=>{this.setState({previewEmoji:e})}),(0,n.A)(this,"onHoverEmojiEnd",()=>{this.setState({previewEmoji:void 0})}),(0,n.A)(this,"onClickEmoji",(e,t)=>{!1!==this.props.onChoose(t.unicode)&&a.W(t.unicode),e.key===O.Uz.ENTER&&this.props.onFinished()}),this.state={filter:"",scrollTop:0,viewportHeight:280},this.recentlyUsed=Array.from(new Set((0,T.Bo)(a.J().map(i.getEmojiFromUnicode)))),this.memoizedDataByCategory=function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?N(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):N(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}({recent:this.recentlyUsed},i.DATA_BY_CATEGORY),this.categories=[{id:"recent",name:(0,r._t)("emoji|category_frequently_used"),enabled:this.recentlyUsed.length>0,visible:this.recentlyUsed.length>0,ref:o.createRef()},{id:"people",name:(0,r._t)("emoji|category_smileys_people"),enabled:!0,visible:!0,ref:o.createRef()},{id:"nature",name:(0,r._t)("emoji|category_animals_nature"),enabled:!0,visible:!1,ref:o.createRef()},{id:"foods",name:(0,r._t)("emoji|category_food_drink"),enabled:!0,visible:!1,ref:o.createRef()},{id:"activity",name:(0,r._t)("emoji|category_activities"),enabled:!0,visible:!1,ref:o.createRef()},{id:"places",name:(0,r._t)("emoji|category_travel_places"),enabled:!0,visible:!1,ref:o.createRef()},{id:"objects",name:(0,r._t)("emoji|category_objects"),enabled:!0,visible:!1,ref:o.createRef()},{id:"symbols",name:(0,r._t)("emoji|category_symbols"),enabled:!0,visible:!1,ref:o.createRef()},{id:"flags",name:(0,r._t)("emoji|category_flags"),enabled:!0,visible:!1,ref:o.createRef()}]}keyboardNavigation(e,t,s){var n,o,i,r;const a=t.activeNode,l=null==a?void 0:a.parentElement;if(!l||!t.activeNode)return;const c=Array.from(l.children).indexOf(a),d=t.nodes.indexOf(t.activeNode);let m,u;switch(e.key){case O.Uz.ARROW_LEFT:m=t.nodes[d-1],u=null!==(n=null===(o=m)||void 0===o?void 0:o.parentElement)&&void 0!==n?n:void 0;break;case O.Uz.ARROW_RIGHT:m=t.nodes[d+1],u=null!==(i=null===(r=m)||void 0===r?void 0:r.parentElement)&&void 0!==i?i:void 0;break;case O.Uz.ARROW_UP:case O.Uz.ARROW_DOWN:{var h,p;const s=e.key===O.Uz.ARROW_UP?t.nodes[d-c-1]:t.nodes[d-c+U];u=null!==(h=null==s?void 0:s.parentElement)&&void 0!==h?h:void 0;const n=null===(p=u)||void 0===p?void 0:p.children[(0,M.qE)(c,0,u.children.length-1)];m=t.nodes.find(e=>e===n);break}}var g;m&&(s({type:v.ZU.SetFocus,payload:{node:m}}),l!==u&&(null===(g=m)||void 0===g||g.scrollIntoView({behavior:"auto",block:"center",inline:"center"})));e.preventDefault(),e.stopPropagation()}static categoryHeightForEmojiCount(e){return 0===e?0:D+Math.ceil(e/U)*j}render(){return o.createElement(v.Se,{onKeyDown:this.onKeyDown},({onKeyDownHandler:e})=>{let t=0;return o.createElement("section",{className:"mx_EmojiPicker",onKeyDown:e,"aria-label":(0,r._t)("a11y|emoji_picker")},o.createElement(g,{categories:this.categories,onAnchorClick:this.scrollToCategory}),o.createElement(f,{query:this.state.filter,onChange:this.onChangeFilter,onEnter:this.onEnterFilter,onKeyDown:e}),o.createElement(l.A,{id:"mx_EmojiPicker_body",className:"mx_EmojiPicker_body",ref:this.scrollRef,onScroll:this.onScroll},this.categories.map(e=>{const s=this.memoizedDataByCategory[e.id],n=o.createElement(P,{key:e.id,id:e.id,name:e.name,heightBefore:t,viewportHeight:this.state.viewportHeight,scrollTop:this.state.scrollTop,emojis:s,onClick:this.onClickEmoji,onMouseEnter:this.onHoverEmoji,onMouseLeave:this.onHoverEmojiEnd,isEmojiDisabled:this.props.isEmojiDisabled,selectedEmojis:this.props.selectedEmojis}),i=F.categoryHeightForEmojiCount(s.length);return t+=i,n})),this.state.previewEmoji?o.createElement(b,{emoji:this.state.previewEmoji}):o.createElement(C,{onClick:this.onClickEmoji,selectedEmojis:this.props.selectedEmojis}))})}}const L=F},"./src/components/views/emojipicker/ReactionPicker.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>u});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./src/components/views/emojipicker/EmojiPicker.tsx"),a=s("./src/MatrixClientPeg.ts"),l=s("./src/dispatcher/dispatcher.ts"),c=s("./src/dispatcher/actions.ts"),d=s("./src/contexts/RoomContext.ts");class m extends o.Component{constructor(e){super(e),(0,n.A)(this,"onReactionsChange",()=>{this.setState({selectedEmojis:new Set(Object.keys(this.getReactions()))})}),(0,n.A)(this,"onChoose",e=>{this.componentWillUnmount(),this.props.onFinished();const t=this.getReactions();return t.hasOwnProperty(e)?(this.props.mxEvent.isRedacted()||!this.context.canSelfRedact||(a.J.safeGet().redactEvent(this.props.mxEvent.getRoomId(),t[e]),l.A.dispatch({action:c.r.FocusAComposer,context:this.context.timelineRenderingType})),!1):(a.J.safeGet().sendEvent(this.props.mxEvent.getRoomId(),i.EventType.Reaction,{"m.relates_to":{rel_type:i.RelationType.Annotation,event_id:this.props.mxEvent.getId(),key:e}}),l.A.dispatch({action:"message_sent"}),l.A.dispatch({action:c.r.FocusAComposer,context:this.context.timelineRenderingType}),!0)}),(0,n.A)(this,"isEmojiDisabled",e=>!!this.getReactions()[e]&&!this.context.canSelfRedact),this.state={selectedEmojis:new Set(Object.keys(this.getReactions()))}}componentDidMount(){this.addListeners()}componentDidUpdate(e){e.reactions!==this.props.reactions&&(this.addListeners(),this.onReactionsChange())}addListeners(){this.props.reactions&&(this.props.reactions.on(i.RelationsEvent.Add,this.onReactionsChange),this.props.reactions.on(i.RelationsEvent.Remove,this.onReactionsChange),this.props.reactions.on(i.RelationsEvent.Redaction,this.onReactionsChange))}componentWillUnmount(){this.props.reactions&&(this.props.reactions.removeListener(i.RelationsEvent.Add,this.onReactionsChange),this.props.reactions.removeListener(i.RelationsEvent.Remove,this.onReactionsChange),this.props.reactions.removeListener(i.RelationsEvent.Redaction,this.onReactionsChange))}getReactions(){var e,t;if(!this.props.reactions)return{};const s=a.J.safeGet().getSafeUserId(),n=null!==(e=null===(t=this.props.reactions.getAnnotationsBySender())||void 0===t?void 0:t[s])&&void 0!==e?e:new Set;return Object.fromEntries([...n].filter(e=>!e.isRedacted()).map(e=>{var t;return[null===(t=e.getRelation())||void 0===t?void 0:t.key,e.getId()]}))}render(){return o.createElement(r.Ay,{onChoose:this.onChoose,isEmojiDisabled:this.isEmojiDisabled,onFinished:this.props.onFinished,selectedEmojis:this.state.selectedEmojis})}}(0,n.A)(m,"contextType",d.Ay);const u=m},"./src/components/views/location/MapError.tsx":(e,t,s)=>{"use strict";s.d(t,{p:()=>m});var n=s("./node_modules/react/index.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/error.js"),a=s("./src/languageHandler.tsx"),l=s("./src/utils/location/index.ts"),c=s("./src/components/views/elements/AccessibleButton.tsx"),d=s("./src/components/views/typography/Heading.tsx");const m=({error:e,isMinimised:t,className:s,onFinished:o,onClick:m})=>n.createElement("div",{className:i()("mx_MapError",s,{mx_MapError_isMinimised:t}),onClick:m},n.createElement(r.A,{className:"mx_MapError_icon"}),n.createElement(d.A,{className:"mx_MapError_heading",size:"3"},(0,a._t)("location_sharing|failed_load_map")),n.createElement("p",{className:"mx_MapError_message"},(0,l.CZ)(e)),o&&n.createElement(c.A,{element:"button",kind:"primary",onClick:o},(0,a._t)("action|ok")))},"./src/components/views/location/MapFallback.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>v});var n,o,i=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),r=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),a=s("./node_modules/react/index.js"),l=s("./node_modules/classnames/index.js"),c=s.n(l),d=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/location-pin-solid.js");function m(){return m=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)({}).hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e},m.apply(null,arguments)}var u=function(e,t){return a.createElement("svg",m({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 848 556",role:"presentation","aria-hidden":!0,ref:t},e),a.createElement("mask",{id:"map_svg__a",width:848,height:556,x:0,y:0,maskUnits:"userSpaceOnUse",style:{maskType:"alpha"}},n||(n=a.createElement("path",{fill:"currentColor",d:"M0 0h847.147v555.685H0z"}))),o||(o=a.createElement("g",{mask:"url(#map_svg__a)"},a.createElement("circle",{cx:424.936,cy:277.842,r:495.758}),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M424.935 874.689c329.63 0 596.845-267.217 596.845-596.847S754.565-319.005 424.935-319.005c-329.629 0-596.846 267.218-596.846 596.847 0 329.63 267.217 596.847 596.846 596.847M-46.544 6.905 920.48 442.347l-47.338 105.126-434.953-195.856-219.202 482.882-104.982-47.656L333.061 304.28-93.881 112.031z",clipRule:"evenodd"}))))},h=(0,a.forwardRef)(u);var p=s("./src/components/views/elements/Spinner.tsx");const g=["className","isLoading","children"],v=e=>{let{className:t,isLoading:s,children:n}=e,o=(0,r.A)(e,g);return a.createElement("div",(0,i.A)({className:c()("mx_MapFallback",t)},o),a.createElement(h,{className:"mx_MapFallback_bg"}),s?a.createElement(p.A,{h:32,w:32}):a.createElement(d.A,{className:"mx_MapFallback_icon"}),n)}},"./src/components/views/location/index.tsx":(e,t,s)=>{"use strict";s.d(t,{He:()=>u,T5:()=>r,U3:()=>l,Uo:()=>d});var n=s("./node_modules/react/index.js"),o=s("./src/components/views/elements/Spinner.tsx");const i=(0,n.lazy)(()=>Promise.all([s.e(927),s.e(395)]).then(s.bind(s,"./src/components/views/location/Map.tsx")));function r(e){return n.createElement(n.Suspense,{fallback:n.createElement(o.A,null)},n.createElement(i,e))}const a=(0,n.lazy)(()=>Promise.all([s.e(927),s.e(8227)]).then(s.bind(s,"./src/components/views/location/SmartMarker.tsx")));function l(e){return n.createElement(n.Suspense,{fallback:n.createElement(o.A,null)},n.createElement(a,e))}const c=(0,n.lazy)(()=>Promise.all([s.e(927),s.e(7766)]).then(s.bind(s,"./src/components/views/location/LocationButton.tsx")));function d(e){return n.createElement(n.Suspense,{fallback:n.createElement(o.A,null)},n.createElement(c,e))}const m=(0,n.lazy)(()=>Promise.all([s.e(927),s.e(4006)]).then(s.bind(s,"./src/components/views/location/LocationViewDialog.tsx")));function u(e){return n.createElement(n.Suspense,{fallback:n.createElement(o.A,null)},n.createElement(m,e))}},"./src/components/views/messages/DateSeparator.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>k});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/matrix-js-sdk/src/matrix.ts"),a=s("./node_modules/matrix-js-sdk/src/logger.ts"),l=s("./node_modules/lodash/lodash.js"),c=s("./src/languageHandler.tsx"),d=s("./src/DateUtils.ts"),m=s("./src/MatrixClientPeg.ts"),u=s("./src/dispatcher/dispatcher.ts"),h=s("./src/dispatcher/actions.ts"),p=s("./src/settings/SettingsStore.ts"),g=s("./src/settings/UIFeature.ts"),v=s("./src/Modal.tsx"),_=s("./src/components/views/dialogs/ErrorDialog.tsx"),f=s("./src/components/views/dialogs/BugReportDialog.tsx"),y=s("./src/components/views/elements/AccessibleButton.tsx"),b=s("./src/components/views/rooms/RoomTile.tsx"),E=s("./src/components/structures/ContextMenu.tsx"),w=s("./src/components/views/context_menus/IconizedContextMenu.tsx"),x=s("./src/components/views/elements/Field.tsx"),A=s("./src/accessibility/RovingTabIndex.tsx");const S=({ts:e,onDatePicked:t})=>{const s=new Date(e),n=(0,d.rm)(s),[o,r]=(0,i.useState)(n),[a,l,m]=(0,A.A9)(),u=e=>{e.preventDefault(),t(o)};return i.createElement("form",{className:"mx_JumpToDatePicker_form",onSubmit:u},i.createElement("span",{className:"mx_JumpToDatePicker_label"},(0,c._t)("room|jump_to_date")),i.createElement(x.A,{element:"input",type:"date",onInput:e=>r(e.target.value),value:o,max:(0,d.rm)(new Date),className:"mx_JumpToDatePicker_datePicker",label:(0,c._t)("room|jump_to_date_prompt"),onFocus:a,inputRef:m,tabIndex:l?0:-1}),i.createElement(A.k,{element:"button",type:"submit",kind:"primary",className:"mx_JumpToDatePicker_submitButton",onClick:u},(0,c._t)("action|go")))};var C=s("./src/contexts/SDKContext.ts"),R=s("./src/components/views/messages/TimelineSeparator.tsx");class k extends i.Component{constructor(e){super(e),(0,o.A)(this,"settingWatcherRef",void 0),(0,o.A)(this,"onContextMenuOpenClick",e=>{e.preventDefault(),e.stopPropagation();const t=e.target;this.setState({contextMenuPosition:t.getBoundingClientRect()})}),(0,o.A)(this,"onContextMenuCloseClick",()=>{this.closeMenu()}),(0,o.A)(this,"closeMenu",()=>{this.setState({contextMenuPosition:void 0})}),(0,o.A)(this,"pickDate",async e=>{const t=new Date(e).getTime(),s=this.props.roomId;try{const e=m.J.safeGet(),{event_id:n,origin_server_ts:o}=await e.timestampToEvent(s,t,r.Direction.Forward);a.vF.log(`/timestamp_to_event: found ${n} (${o}) for timestamp=${t} (looking forward)`);const i=C.M.instance.roomViewStore.getRoomId();i===s?u.A.dispatch({action:h.r.ViewRoom,event_id:n,highlighted:!0,room_id:s,metricsTrigger:void 0}):a.vF.debug(`No longer navigating to date in room (jump to date) because the user already switched to another room: currentRoomId=${i}, roomIdForJumpRequest=${s}`)}catch(e){a.vF.error(`Error occured while trying to find event in ${s} at timestamp=${t}:`,e);if(C.M.instance.roomViewStore.getRoomId()===s){let s="An error occured while trying to find and jump to the given date.",n=i.createElement(i.Fragment,null);e instanceof r.ConnectionError?s=(0,c._t)("room|error_jump_to_date_connection"):e instanceof r.MatrixError?s="M_NOT_FOUND"===(null==e?void 0:e.errcode)?(0,c._t)("room|error_jump_to_date_not_found",{dateString:(0,d.ej)(new Date(t))}):(0,c._t)("room|error_jump_to_date",{statusCode:(null==e?void 0:e.httpStatus)||(0,c._t)("room|unknown_status_code_for_timeline_jump"),errorCode:(null==e?void 0:e.errcode)||(0,c._t)("common|unavailable")}):e instanceof r.HTTPError?s=e.message:n=i.createElement("p",null,(0,c._t)("room|error_jump_to_date_send_logs_prompt",{},{debugLogsLink:t=>i.createElement(y.A,{element:"a",kind:"link",onClick:()=>this.onBugReport(e instanceof Error?e:void 0)},t)})),v.Ay.createDialog(_.A,{title:(0,c._t)("room|error_jump_to_date_title"),description:i.createElement("div",null,i.createElement("p",null,s),n,i.createElement("details",null,i.createElement("summary",null,(0,c._t)("room|error_jump_to_date_details")),i.createElement("p",null,String(e))))})}}}),(0,o.A)(this,"onBugReport",e=>{v.Ay.createDialog(f.A,{error:e,initialText:"Error occured while using jump to date #jump-to-date"})}),(0,o.A)(this,"onLastWeekClicked",()=>{const e=new Date;e.setDate(e.getDate()-7),this.pickDate(e),this.closeMenu()}),(0,o.A)(this,"onLastMonthClicked",()=>{const e=new Date;e.setMonth(e.getMonth()-1,1),this.pickDate(e),this.closeMenu()}),(0,o.A)(this,"onTheBeginningClicked",()=>{const e=new Date(0);this.pickDate(e),this.closeMenu()}),(0,o.A)(this,"onDatePicked",e=>{this.pickDate(e),this.closeMenu()}),this.state={jumpToDateEnabled:p.A.getValue("feature_jump_to_date")}}componentDidMount(){this.settingWatcherRef=p.A.watchSetting("feature_jump_to_date",null,(e,t,s,n,o)=>{this.setState({jumpToDateEnabled:o})})}componentWillUnmount(){p.A.unwatchSetting(this.settingWatcherRef)}get relativeTimeFormat(){return new Intl.RelativeTimeFormat((0,c.mf)(),{style:"long",numeric:"auto"})}getLabel(){try{const e=new Date(this.props.ts),t=!p.A.getValue(g.f.TimelineEnableRelativeDates);if(this.props.forExport||t)return(0,d.VG)(e);const s=new Date,n=new Date,o=(0,d.F0)("long");return n.setDate(s.getDate()-1),e.toDateString()===s.toDateString()?this.relativeTimeFormat.format(0,"day"):e.toDateString()===n.toDateString()?this.relativeTimeFormat.format(-1,"day"):s.getTime()-e.getTime()<5184e5?o[e.getDay()]:(0,d.VG)(e)}catch{return(0,c._t)("common|message_timestamp_invalid")}}renderJumpToDateMenu(){let e;if(this.state.contextMenuPosition){const t=this.relativeTimeFormat;e=i.createElement(w.Ay,(0,n.A)({},(0,b._)(this.state.contextMenuPosition),{onFinished:this.onContextMenuCloseClick}),i.createElement(w.tx,{first:!0},i.createElement(w.R$,{label:(0,l.capitalize)(t.format(-1,"week")),onClick:this.onLastWeekClicked}),i.createElement(w.R$,{label:(0,l.capitalize)(t.format(-1,"month")),onClick:this.onLastMonthClicked}),i.createElement(w.R$,{label:(0,c._t)("room|jump_to_date_beginning"),onClick:this.onTheBeginningClicked})),i.createElement(w.tx,null,i.createElement(S,{ts:this.props.ts,onDatePicked:this.onDatePicked})))}return i.createElement(E.oW,{className:"mx_DateSeparator_jumpToDateMenu mx_DateSeparator_dateContent",onClick:this.onContextMenuOpenClick,isExpanded:!!this.state.contextMenuPosition,title:(0,c._t)("room|jump_to_date")},i.createElement("h2",{className:"mx_DateSeparator_dateHeading","aria-hidden":"true"},this.getLabel()),i.createElement("div",{className:"mx_DateSeparator_chevron"}),e)}render(){const e=this.getLabel();let t;return t=this.state.jumpToDateEnabled&&!this.props.forExport?this.renderJumpToDateMenu():i.createElement("div",{className:"mx_DateSeparator_dateContent"},i.createElement("h2",{className:"mx_DateSeparator_dateHeading","aria-hidden":"true"},e)),i.createElement(R.A,{label:e},t)}}},"./src/components/views/messages/DecryptionFailureBody.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>d});var n=s("./node_modules/classnames/index.js"),o=s.n(n),i=s("./node_modules/react/index.js"),r=s("./node_modules/matrix-js-sdk/src/crypto-api/index.ts"),a=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/block.js"),l=s("./src/languageHandler.tsx"),c=s("./src/contexts/LocalDeviceVerificationStateContext.ts");const d=({mxEvent:e,ref:t})=>{const s=(0,i.useContext)(c.f),n=o()("mx_DecryptionFailureBody","mx_EventTile_content",function(e){switch(e.decryptionFailureReason){case r.RT.SENDER_IDENTITY_PREVIOUSLY_VERIFIED:case r.RT.UNSIGNED_SENDER_DEVICE:return"mx_DecryptionFailureSenderTrustRequirement";default:return null}}(e));return i.createElement("div",{className:n,ref:t},function(e,t){switch(e.decryptionFailureReason){case r.RT.MEGOLM_KEY_WITHHELD_FOR_UNVERIFIED_DEVICE:return(0,l._t)("timeline|decryption_failure|blocked");case r.RT.HISTORICAL_MESSAGE_NO_KEY_BACKUP:return(0,l._t)("timeline|decryption_failure|historical_event_no_key_backup");case r.RT.HISTORICAL_MESSAGE_BACKUP_UNCONFIGURED:if(!1===t)return(0,l._t)("timeline|decryption_failure|historical_event_unverified_device");break;case r.RT.HISTORICAL_MESSAGE_USER_NOT_JOINED:return(0,l._t)("timeline|decryption_failure|historical_event_user_not_joined");case r.RT.SENDER_IDENTITY_PREVIOUSLY_VERIFIED:return i.createElement("span",null,i.createElement(a.A,{className:"mx_Icon mx_Icon_16"}),(0,l._t)("timeline|decryption_failure|sender_identity_previously_verified"));case r.RT.UNSIGNED_SENDER_DEVICE:return i.createElement("span",null,i.createElement(a.A,{className:"mx_Icon mx_Icon_16"}),(0,l._t)("timeline|decryption_failure|sender_unsigned_device"))}return(0,l._t)("timeline|decryption_failure|unable_to_decrypt")}(e,s))}},"./src/components/views/messages/EncryptionEvent.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>u});var n=s("./node_modules/react/index.js"),o=s("./src/languageHandler.tsx"),i=s("./src/components/views/messages/EventTileBubble.tsx"),r=s("./src/contexts/MatrixClientContext.tsx"),a=s("./src/utils/DMRoomMap.ts"),l=s("./src/utils/objects.ts"),c=s("./src/utils/localRoom/isLocalRoom.ts"),d=s("./src/utils/crypto/index.ts"),m=s("./src/hooks/useIsEncrypted.ts");const u=({mxEvent:e,timestamp:t,ref:s})=>{const u=(0,r.nH)(),h=e.getRoomId(),p=(0,m.g)(u,u.getRoom(h)||void 0),g=e.getPrevContent(),v=e.getContent();if(!(0,l.No)(g,v))return null;if(v.algorithm===d.Q&&p){let e;const s=a.A.shared().getUserIdForRoomId(h),r=null==u?void 0:u.getRoom(h);if(g.algorithm===d.Q)e=(0,o._t)("timeline|m.room.encryption|parameters_changed");else if(s){var _;const t=(null==r||null===(_=r.getMember(s))||void 0===_?void 0:_.rawDisplayName)||s;e=(0,o._t)("timeline|m.room.encryption|enabled_dm",{displayName:t})}else e=r&&(0,c.F)(r)?(0,o._t)("timeline|m.room.encryption|enabled_local"):(0,o._t)("timeline|m.room.encryption|enabled");return n.createElement(i.A,{className:"mx_cryptoEvent mx_cryptoEvent_icon",title:(0,o._t)("common|encryption_enabled"),subtitle:e,timestamp:t})}return p?n.createElement(i.A,{className:"mx_cryptoEvent mx_cryptoEvent_icon",title:(0,o._t)("common|encryption_enabled"),subtitle:(0,o._t)("timeline|m.room.encryption|disable_attempt"),timestamp:t}):n.createElement(i.A,{className:"mx_cryptoEvent mx_cryptoEvent_icon mx_cryptoEvent_icon_warning",title:(0,o._t)("timeline|m.room.encryption|disabled"),subtitle:(0,o._t)("timeline|m.room.encryption|unsupported"),ref:s,timestamp:t})}},"./src/components/views/messages/EventTileBubble.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var n=s("./node_modules/react/index.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o);const r=({className:e,title:t,timestamp:s,subtitle:o,children:r,ref:a})=>n.createElement("div",{className:i()("mx_EventTileBubble",e),ref:a},n.createElement("div",{className:"mx_EventTileBubble_title"},t),o&&n.createElement("div",{className:"mx_EventTileBubble_subtitle"},o),r,s)},"./src/components/views/messages/HiddenMediaPlaceholder.tsx":(e,t,s)=>{"use strict";s.d(t,{Q:()=>i});var n=s("./node_modules/react/index.js"),o=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/visibility-on.js");const i=({onClick:e,children:t})=>n.createElement("button",{onClick:e,className:"mx_HiddenMediaPlaceholder"},n.createElement("div",null,n.createElement(o.A,null),n.createElement("span",null,t)))},"./src/components/views/messages/MAudioBody.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>H});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/matrix-js-sdk/src/logger.ts"),a=s("./src/components/views/elements/InlineSpinner.tsx"),l=s("./src/languageHandler.tsx"),c=s("./src/components/views/messages/MFileBody.tsx"),d=s("./src/audio/PlaybackManager.ts"),m=s("./src/contexts/RoomContext.ts"),u=s("./src/components/views/messages/shared/MediaProcessingError.tsx"),h=s("./src/stores/AsyncStore.ts"),p=s("./packages/shared-components/src/utils/numbers.ts"),g=s("./src/KeyBindingsManager.ts"),v=s("./src/accessibility/KeyboardShortcuts.ts"),_=s("./src/viewmodels/base/BaseViewModel.ts");class f extends _.o{constructor(e){super(e,f.computeSnapshot(e.playback,e.mediaName)),(0,o.A)(this,"error",!1),(0,o.A)(this,"setSnapshot",()=>{this.snapshot.set(f.computeSnapshot(this.props.playback,this.props.mediaName,this.error))}),(0,o.A)(this,"onKeyDown",e=>{let t=!0;switch((0,g.zM)().getAccessibilityAction(e)){case v.bY.Space:this.togglePlay();break;case v.bY.ArrowLeft:this.props.playback.skipTo(this.props.playback.timeSeconds-5);break;case v.bY.ArrowRight:this.props.playback.skipTo(this.props.playback.timeSeconds+5);break;default:t=!1}t&&e.stopPropagation()}),(0,o.A)(this,"togglePlay",async()=>{await this.props.playback.toggle()}),(0,o.A)(this,"onSeekbarChange",async e=>{await this.props.playback.skipTo(Number(e.target.value)/100*this.props.playback.durationSeconds)}),this.disposables.trackListener(e.playback,h.H,this.setSnapshot),this.props.playback.clockInfo.liveData.onUpdate(this.setSnapshot),this.preparePlayback()}async preparePlayback(){try{await this.props.playback.prepare()}catch(e){r.vF.error("Error processing audio file:",e,this.props.playback.currentState),this.error=!0,this.setSnapshot()}}}(0,o.A)(f,"computeSnapshot",(e,t,s=!1)=>{const n=100*(0,p.s5)(e.timeSeconds,0,e.durationSeconds);return{mediaName:t,sizeBytes:e.sizeBytes,playbackState:e.currentState,durationSeconds:e.durationSeconds,percentComplete:n,playedSeconds:e.timeSeconds,error:s}});var y=s("./packages/shared-components/src/useViewModel.ts"),b=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),E=s("./node_modules/classnames/index.js"),w=s.n(E),x=s("./packages/shared-components/src/message-body/MediaBody/MediaBody.module.css");const A=["as","className","children"];function S(e){let{as:t,className:s,children:o}=e,r=(0,b.A)(e,A);const a=t||"div";return i.createElement(a,(0,n.A)({className:w()("mx_MediaBody",x.A.mediaBody,s)},r),o)}var C=s("./packages/shared-components/src/utils/Flex/index.ts"),R=s("./packages/shared-components/src/audio/AudioPlayerView/AudioPlayerView.module.css"),k=s("./node_modules/@vector-im/compound-web/dist/components/Button/IconButton/IconButton.js"),I=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/play-solid.js"),P=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/pause-solid.js"),T=s("./packages/shared-components/src/audio/PlayPauseButton/PlayPauseButton.module.css"),O=s("./packages/shared-components/src/utils/i18n.tsx");const M=["disabled","playing","togglePlay"];function N(e){let{disabled:t=!1,playing:s=!1,togglePlay:o}=e,r=(0,b.A)(e,M);const a=s?(0,O._t)("action|pause"):(0,O._t)("action|play");return i.createElement(k.K,(0,n.A)({size:"32px","aria-label":a,tooltip:a,onClick:o,className:T.A.button,disabled:t},r),s?i.createElement(P.A,null):i.createElement(I.A,null))}var D=s("./packages/shared-components/src/utils/FormattingUtils.ts"),j=s("./packages/shared-components/src/audio/Clock/index.tsx"),U=s("./node_modules/lodash/lodash.js"),F=s("./packages/shared-components/src/audio/SeekBar/SeekBar.module.css");const L=["value","className"];function B(e){let{value:t=0,className:s}=e,o=(0,b.A)(e,L);const[r,a]=(0,i.useState)(t),l=(0,i.useMemo)(()=>(0,U.throttle)(a,10),[]);return(0,i.useEffect)(()=>{l(t)},[t,l]),i.createElement("input",(0,n.A)({type:"range",className:w()(F.A.seekBar,s),onMouseDown:e=>e.stopPropagation(),min:0,max:100,value:r,step:1,style:{"--fillTo":r/100},"aria-label":(0,O._t)("a11y|seek_bar_label")},o))}function V({vm:e}){const{playbackState:t,mediaName:s=(0,O._t)("timeline|m.audio|unnamed_audio"),sizeBytes:n,durationSeconds:o,playedSeconds:r,percentComplete:a,error:l}=(0,y.i)(e),c=n?`(${(0,D.z)(n)})`:null,d="decoding"===t;return i.createElement(i.Fragment,null,i.createElement(S,{className:R.A.audioPlayer,tabIndex:0,onKeyDown:e.onKeyDown,"aria-label":(0,O._t)("timeline|m.audio|audio_player"),role:"region"},i.createElement(C.s,{gap:"var(--cpd-space-2x)",align:"center"},i.createElement(N,{tabIndex:-1,disabled:d,playing:"playing"===t,togglePlay:e.togglePlay}),i.createElement(C.s,{direction:"column",className:R.A.mediaInfo},i.createElement("span",{className:R.A.mediaName},s),i.createElement(C.s,{className:R.A.byline,gap:"var(--cpd-space-1-5x)"},i.createElement(j.z,{seconds:o}),c))),i.createElement(C.s,{align:"center",gap:"var(--cpd-space-1x)"},i.createElement(B,{tabIndex:-1,disabled:d,value:a,onChange:e.onSeekbarChange}),i.createElement(j.z,{className:R.A.clock,seconds:r,role:"timer"}))),l&&i.createElement("span",{className:R.A.error},(0,O._t)("timeline|m.audio|error_downloading_audio")))}class H extends i.PureComponent{constructor(...e){super(...e),(0,o.A)(this,"state",{})}async componentDidMount(){var e;let t;try{try{const e=await this.props.mediaEventHelper.sourceBlob.value;t=await e.arrayBuffer()}catch(e){return this.setState({error:!0}),void r.vF.warn("Unable to decrypt audio message",e)}}catch(e){return this.setState({error:!0}),void r.vF.warn("Unable to decrypt/download audio message",e)}const s=this.props.mxEvent.getContent(),n=null==s||null===(e=s["org.matrix.msc1767.audio"])||void 0===e||null===(e=e.waveform)||void 0===e?void 0:e.map(e=>e/1024),o=d.T.instance.createPlaybackInstance(t,n);o.clockInfo.populatePlaceholdersFrom(this.props.mxEvent),this.setState({playback:o}),this.onMount(o)}onMount(e){}componentWillUnmount(){var e;null===(e=this.state.playback)||void 0===e||e.destroy()}get showFileBody(){return this.context.timelineRenderingType!==m.Ae.Room&&this.context.timelineRenderingType!==m.Ae.Pinned&&this.context.timelineRenderingType!==m.Ae.Search}render(){if(this.state.error)return i.createElement(u.A,{className:"mx_MAudioBody"},(0,l._t)("timeline|m.audio|error_processing_audio"));if(this.props.forExport){var e;const t=this.props.mxEvent.getContent(),s=(null===(e=t.file)||void 0===e?void 0:e.url)||t.url;return i.createElement("span",{className:"mx_MAudioBody"},i.createElement("audio",{src:s,controls:!0}))}return this.state.playback?i.createElement("span",{className:"mx_MAudioBody"},i.createElement(W,{playback:this.state.playback,mediaName:this.props.mxEvent.getContent().body}),this.showFileBody&&i.createElement(c.Ay,(0,n.A)({},this.props,{showGenericPlaceholder:!1}))):i.createElement("span",{className:"mx_MAudioBody"},i.createElement(a.A,null))}}function W({playback:e,mediaName:t}){const s=(0,i.useMemo)(()=>new f({playback:e,mediaName:t}),[e,t]);return(0,i.useEffect)(()=>()=>{s.dispose()},[s]),i.createElement(V,{vm:s})}(0,o.A)(H,"contextType",m.Ay)},"./src/components/views/messages/MFileBody.tsx":(e,t,s)=>{"use strict";s.d(t,{Ay:()=>b});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/matrix-js-sdk/src/logger.ts"),a=s("./node_modules/@vector-im/compound-web/dist/components/Button/Button.js"),l=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/download.js"),c=s("./src/languageHandler.tsx"),d=s("./src/Modal.tsx"),m=s("./src/components/views/elements/AccessibleButton.tsx"),u=s("./src/customisations/Media.ts"),h=s("./src/components/views/dialogs/ErrorDialog.tsx"),p=s("./src/utils/FileUtils.ts"),g=s("./src/utils/FileDownloader.ts"),v=s("./src/components/views/elements/TextWithTooltip.tsx"),_=s("./src/contexts/RoomContext.ts");let f;function y(e){if(!e)return"";const t=window.getComputedStyle(e,null);let s=t.cssText;if(""==s)for(const e of t)s+=e+":",s+=t.getPropertyValue(e)+";";return s}!async function(){if(f)return;const e=await fetch(s("./node_modules/@vector-im/compound-design-tokens/icons/download.svg").A).then(e=>e.text());f="data:image/svg+xml;base64,"+window.btoa(e)}();class b extends i.Component{constructor(...e){super(...e),(0,o.A)(this,"state",{}),(0,o.A)(this,"iframe",(0,i.createRef)()),(0,o.A)(this,"dummyLink",(0,i.createRef)()),(0,o.A)(this,"userDidClick",!1),(0,o.A)(this,"fileDownloader",new g.s(()=>this.iframe.current)),(0,o.A)(this,"decryptFile",async()=>{if(!this.state.decryptedBlob)try{this.userDidClick=!0,this.setState({decryptedBlob:await this.props.mediaEventHelper.sourceBlob.value})}catch(e){r.vF.warn("Unable to decrypt attachment: ",e),d.Ay.createDialog(h.A,{title:(0,c._t)("common|error"),description:(0,c._t)("timeline|m.file|error_decrypting")})}}),(0,o.A)(this,"onPlaceholderClick",async()=>{const e=this.props.mediaEventHelper;null!=e&&e.media.isEncrypted?(await this.decryptFile(),this.downloadFile(this.fileName,this.linkText)):this.fileDownloader.download({blob:await e.sourceBlob.value,name:this.fileName})})}getContentUrl(){if(this.props.forExport)return null;return(0,u.mediaFromContent)(this.props.mxEvent.getContent()).srcHttp}get content(){return this.props.mxEvent.getContent()}get fileName(){var e;return(null===(e=this.props.mediaEventHelper)||void 0===e?void 0:e.fileName)||(0,c._t)("common|attachment")}get linkText(){return(0,p.eB)(this.content,!0)}downloadFile(e,t){this.state.decryptedBlob&&this.fileDownloader.download({blob:this.state.decryptedBlob,name:e,autoDownload:this.userDidClick,opts:{imgSrc:f,imgStyle:null,style:y(this.dummyLink.current),textContent:t}})}render(){var e,t,s,o;const d=null===(e=this.props.mediaEventHelper)||void 0===e?void 0:e.media.isEncrypted,u=this.getContentUrl(),h=null!==(t=null===(s=this.content.info)||void 0===s?void 0:s.mimetype)&&void 0!==t?t:"application/octet-stream",g=null===(o=this.props.showGenericPlaceholder)||void 0===o||o;let f=!g||this.context.timelineRenderingType!==_.Ae.Room&&this.context.timelineRenderingType!==_.Ae.Search&&this.context.timelineRenderingType!==_.Ae.Pinned,y=null;if(g&&(y=i.createElement(m.A,{className:"mx_MediaBody mx_MFileBody_info",onClick:this.onPlaceholderClick},i.createElement("span",{className:"mx_MFileBody_info_icon"}),i.createElement(v.A,{tooltip:(0,p.q)(this.content,(0,c._t)("common|attachment"),!0)},i.createElement("span",{className:"mx_MFileBody_info_filename"},(0,p.q)(this.content,(0,c._t)("common|attachment"),!0,!0)))),f=!1),this.props.forExport){var b;const e=this.props.mxEvent.getContent();return i.createElement("span",{className:"mx_MFileBody"},i.createElement("a",{href:(null===(b=e.file)||void 0===b?void 0:b.url)||e.url},y))}if(this.context.timelineRenderingType===_.Ae.Thread&&(f=!1),d){if(!this.state.decryptedBlob)return i.createElement("span",{className:"mx_MFileBody"},y,f&&i.createElement("div",{className:"mx_MFileBody_download"},i.createElement(a.$,{size:"sm",kind:"secondary",Icon:l.A,onClick:this.decryptFile},this.linkText)));const e="usercontent/";return i.createElement("span",{className:"mx_MFileBody"},y,f&&i.createElement("div",{className:"mx_MFileBody_download"},i.createElement("div",{"aria-hidden":!0,style:{display:"none"}},i.createElement(a.$,{size:"sm",kind:"secondary",Icon:l.A,as:"a",ref:this.dummyLink})),i.createElement("iframe",{"aria-hidden":!0,title:(0,p.q)(this.content,(0,c._t)("common|attachment"),!0,!0),src:e,onLoad:()=>this.downloadFile(this.fileName,this.linkText),ref:this.iframe,sandbox:"allow-scripts allow-downloads"})))}if(u){const e={target:"_blank",rel:"noreferrer noopener",onClick:e=>{var t;r.vF.log(`Downloading ${h} as blob (unencrypted)`),e.preventDefault(),e.stopPropagation(),null===(t=this.props.mediaEventHelper)||void 0===t||t.sourceBlob.value.then(e=>{const t=URL.createObjectURL(e),s=document.createElement("a");s.download=this.fileName,s.href=t,document.body.appendChild(s),s.click(),s.remove()})}};return i.createElement("span",{className:"mx_MFileBody"},y,f&&i.createElement("div",{className:"mx_MFileBody_download"},i.createElement(a.$,(0,n.A)({size:"sm",kind:"secondary",Icon:l.A,as:"a"},e),this.linkText)))}return i.createElement("span",{className:"mx_MFileBody"},y,(0,c._t)("timeline|m.file|error_invalid"))}}(0,o.A)(b,"contextType",_.Ay)},"./src/components/views/messages/MImageBody.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>N,R:()=>M});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/react-blurhash/dist/esm/index.js"),a=s("./node_modules/classnames/index.js"),l=s.n(a),c=s("./node_modules/react-transition-group/esm/CSSTransition.js"),d=s("./node_modules/react-transition-group/esm/SwitchTransition.js"),m=s("./node_modules/matrix-js-sdk/src/logger.ts"),u=s("./node_modules/matrix-js-sdk/src/matrix.ts"),h=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/Tooltip.js"),p=s("./src/components/views/messages/MFileBody.tsx"),g=s("./src/Modal.tsx"),v=s("./src/languageHandler.tsx"),_=s("./src/settings/SettingsStore.ts"),f=s("./src/components/views/elements/Spinner.tsx"),y=s("./src/customisations/Media.ts"),b=s("./src/utils/image-media.ts"),E=s("./src/components/views/elements/ImageView.tsx"),w=s("./src/settings/enums/ImageSize.ts"),x=s("./src/MatrixClientPeg.ts"),A=s("./src/contexts/RoomContext.ts"),S=s("./src/utils/Image.ts"),C=s("./src/utils/FileUtils.ts"),R=s("./src/utils/connection.ts"),k=s("./src/components/views/messages/shared/MediaProcessingError.tsx"),I=s("./src/utils/DecryptFile.ts"),P=s("./src/components/views/messages/HiddenMediaPlaceholder.tsx"),T=s("./src/hooks/useMediaVisible.ts"),O=function(e){return e[e.NoImage=0]="NoImage",e[e.Blurhash=1]="Blurhash",e}(O||{});class M extends i.Component{constructor(...e){super(...e),(0,o.A)(this,"unmounted",!1),(0,o.A)(this,"image",(0,i.createRef)()),(0,o.A)(this,"placeholder",(0,i.createRef)()),(0,o.A)(this,"timeout",void 0),(0,o.A)(this,"sizeWatcher",void 0),(0,o.A)(this,"state",{contentUrl:null,thumbUrl:null,imgError:!1,imgLoaded:!1,hover:!1,focus:!1,placeholder:O.NoImage}),(0,o.A)(this,"onClick",e=>{if(0===e.button&&!e.metaKey){if(e.preventDefault(),!this.props.mediaVisible)return void this.props.setMediaVisible(!0);const t=this.props.mxEvent.getContent(),s=this.state.contentUrl;if(!s)return;const n={src:s,name:t.body&&t.body.length>0?t.body:(0,v._t)("common|attachment"),mxEvent:this.props.mxEvent,permalinkCreator:this.props.permalinkCreator};if(t.info&&(n.width=t.info.w,n.height=t.info.h,n.fileSize=t.info.size),this.image.current){const e=this.image.current.getBoundingClientRect();n.thumbnailInfo={width:e.width,height:e.height,positionX:e.x,positionY:e.y}}g.Ay.createDialog(E.A,n,"mx_Dialog_lightbox",void 0,!0)}}),(0,o.A)(this,"onImageEnter",()=>{this.setState({hover:!0})}),(0,o.A)(this,"onImageLeave",()=>{this.setState({hover:!1})}),(0,o.A)(this,"onFocus",()=>{this.setState({focus:!0})}),(0,o.A)(this,"onBlur",()=>{this.setState({focus:!1})}),(0,o.A)(this,"reconnectedListener",(0,R.x)(()=>{var e;null===(e=x.J.get())||void 0===e||e.off(u.ClientEvent.Sync,this.reconnectedListener),this.setState({imgError:!1})})),(0,o.A)(this,"onImageError",()=>{this.state.thumbUrl?this.setState({thumbUrl:null}):(this.clearBlurhashTimeout(),this.setState({imgError:!0}),x.J.safeGet().on(u.ClientEvent.Sync,this.reconnectedListener))}),(0,o.A)(this,"onImageLoad",()=>{let e;if(this.clearBlurhashTimeout(),this.image.current){const{naturalWidth:t,naturalHeight:s}=this.image.current;e={naturalWidth:t,naturalHeight:s}}this.setState({imgLoaded:!0,loadedImageDimensions:e})})}get shouldAutoplay(){return!(!this.state.contentUrl||!this.props.mediaVisible||!this.state.isAnimated||_.A.getValue("autoplayGifs"))}getContentUrl(){return this.props.forExport?this.media.srcMxc:this.media.srcHttp}get media(){return(0,y.mediaFromContent)(this.props.mxEvent.getContent())}getThumbUrl(){const e=800,t=600,s=this.props.mxEvent.getContent(),n=(0,y.mediaFromContent)(s),o=s.info;if("image/svg+xml"===(null==o?void 0:o.mimetype)&&n.hasThumbnail)return n.getThumbnailHttp(e,t,"scale");if(this.state.isAnimated||1===window.devicePixelRatio||!o||!o.w||!o.h||!o.size)return n.getThumbnailOfSourceHttp(e,t);const i=o.w>e||o.h>t;return o.size>1048576&&i?n.getThumbnailOfSourceHttp(e,t):n.srcHttp}async downloadImage(){var e,t,s,n;if(this.state.contentUrl)return;let o,i;if(null!==(e=this.props.mediaEventHelper)&&void 0!==e&&e.media.isEncrypted)try{[i,o]=await Promise.all([this.props.mediaEventHelper.sourceUrl.value,this.props.mediaEventHelper.thumbnailUrl.value])}catch(e){if(this.unmounted)return;return e instanceof I.sR?m.vF.error("Unable to decrypt attachment: ",e):e instanceof I.nV?m.vF.error("Unable to download attachment to decrypt it: ",e):m.vF.error("Error encountered when downloading encrypted attachment: ",e),void this.setState({error:e})}else o=this.getThumbUrl(),i=this.getContentUrl();const r=this.props.mxEvent.getContent();let a=null!==(t=null===(s=r.info)||void 0===s?void 0:s["org.matrix.msc4230.is_animated"])&&void 0!==t?t:(0,S.C)(null===(n=r.info)||void 0===n?void 0:n.mimetype);var l;if(a&&!_.A.getValue("autoplayGifs")&&(!o||null==r||null===(l=r.info)||void 0===l||!l.thumbnail_info||(0,S.C)(r.info.thumbnail_info.mimetype))){const e=document.createElement("img"),t=new Promise((t,s)=>{e.onload=t,e.onerror=s});e.crossOrigin="Anonymous",e.src=null!=i?i:"";try{await t}catch(e){return m.vF.error("Unable to download attachment: ",e),void this.setState({error:e})}try{var c;if(!1!==(null===(c=r.info)||void 0===c?void 0:c["org.matrix.msc4230.is_animated"])&&!1!==await(0,S.t)(await this.props.mediaEventHelper.sourceBlob.value)||(a=!1),a){var d,u;const t=await(0,b.p)(e,e.width,e.height,null!==(d=null===(u=r.info)||void 0===u?void 0:u.mimetype)&&void 0!==d?d:"image/jpeg",!1);o=URL.createObjectURL(t.thumbnail)}}catch(e){m.vF.warn("Unable to generate thumbnail for animated image: ",e)}}this.unmounted||this.setState({contentUrl:i,thumbUrl:o,isAnimated:a})}clearBlurhashTimeout(){this.timeout&&(clearTimeout(this.timeout),this.timeout=void 0)}componentDidMount(){var e;this.unmounted=!1,this.props.mediaVisible&&this.downloadImage(),null!==(e=this.props.mxEvent.getContent().info)&&void 0!==e&&e[b.f]&&(this.clearBlurhashTimeout(),this.timeout=window.setTimeout(()=>{this.state.imgLoaded&&this.state.imgError||this.setState({placeholder:O.Blurhash})},150)),this.sizeWatcher=_.A.watchSetting("Images.size",null,()=>{this.forceUpdate()})}componentDidUpdate(e){!e.mediaVisible&&this.props.mediaVisible&&this.downloadImage()}componentWillUnmount(){var e;this.unmounted=!0,null===(e=x.J.get())||void 0===e||e.off(u.ClientEvent.Sync,this.reconnectedListener),this.clearBlurhashTimeout(),_.A.unwatchSetting(this.sizeWatcher),this.state.isAnimated&&this.state.thumbUrl&&URL.revokeObjectURL(this.state.thumbUrl)}getBanner(e){return[A.Ae.ThreadsList,A.Ae.File].includes(this.context.timelineRenderingType)?null:i.createElement("span",{className:"mx_MImageBody_banner"},(0,C.q)(e,(0,v._t)("common|image"),!0,!0))}messageContent(e,t,s,o){var r,a;t||(t=e);let m=500,u=500,p=!1;if(null!==(r=s.info)&&void 0!==r&&r.w&&null!==(a=s.info)&&void 0!==a&&a.h)m=s.info.w,u=s.info.h,p="image/svg+xml"===s.info.mimetype;else if(t&&e){if(!this.state.loadedImageDimensions){let n;return n=this.props.mediaVisible?i.createElement("img",{style:{display:"none"},src:t,ref:this.image,alt:s.body,onError:this.onImageError,onLoad:this.onImageLoad}):i.createElement(P.Q,{onClick:this.onClick},(0,v._t)("timeline|m.image|show_image")),this.wrapImage(e,n)}m=this.state.loadedImageDimensions.naturalWidth,u=this.state.loadedImageDimensions.naturalHeight}const{w:g,h:f}=(0,w.P)(_.A.getValue("Images.size"),{w:m,h:u},null!=o?o:this.props.maxImageHeight);let y,E,x;if(!this.props.forExport&&!this.state.imgLoaded){var A;const e=l()("mx_MImageBody_placeholder",{"mx_MImageBody_placeholder--blurhash":null===(A=this.props.mxEvent.getContent().info)||void 0===A?void 0:A[b.f]});E=i.createElement("div",{className:e,ref:this.placeholder},this.getPlaceholder(g,f))}let S=Boolean(E);const C=this.state.hover||this.state.focus;if(t&&!this.state.imgError){let e=t;C&&this.shouldAutoplay&&(e=this.state.contentUrl),y=i.createElement("img",{className:"mx_MImageBody_thumbnail",src:e,ref:this.image,alt:s.body,onError:this.onImageError,onLoad:this.onImageLoad,onMouseEnter:this.onImageEnter,onMouseLeave:this.onImageLeave})}let R;this.props.mediaVisible||(y=i.createElement("div",{style:{width:g,height:f}},i.createElement(P.Q,{onClick:this.onClick},(0,v._t)("timeline|m.image|show_image"))),S=!1),!this.state.isAnimated||_.A.getValue("autoplayGifs")||C||(x=i.createElement("p",{className:"mx_MImageBody_gifLabel"},"GIF")),this.props.mediaVisible&&C&&(R=this.getBanner(s));const k=p?{maxHeight:f,maxWidth:g,width:g}:{maxHeight:f,maxWidth:g};this.props.forExport||(E=i.createElement(d.A,{mode:"out-in"},i.createElement(c.A,{classNames:"mx_rtg--fade",key:`img-${S}`,timeout:300,nodeRef:this.placeholder},S?E:i.createElement("div",{ref:this.placeholder}))));const I=this.getTooltipProps();let T=i.createElement("div",{className:"mx_MImageBody_thumbnail_container",style:{maxHeight:f,maxWidth:g,aspectRatio:`${m}/${u}`},tabIndex:I?0:void 0},E,i.createElement("div",{style:k},y,x,R),!this.props.forExport&&!this.state.imgLoaded&&!E&&i.createElement("div",{style:{height:f,width:g}}));return I&&(T=i.createElement(h.m,(0,n.A)({},I,{isTriggerInteractive:!0}),T)),this.wrapImage(e,T)}wrapImage(e,t){return e?i.createElement("a",{href:e,target:this.props.forExport?"_blank":void 0,onClick:this.onClick,onFocus:this.onFocus,onBlur:this.onBlur},t):t}getPlaceholder(e,t){var s;const n=null===(s=this.props.mxEvent.getContent().info)||void 0===s?void 0:s[b.f];if(n){if(this.state.placeholder===O.NoImage)return null;if(this.state.placeholder===O.Blurhash)return i.createElement(r.Q,{className:"mx_Blurhash",hash:n,width:e,height:t})}return i.createElement(f.A,{w:32,h:32})}getTooltipProps(){return null}getFileBody(){if(this.props.forExport)return null;return this.context.timelineRenderingType===A.Ae.Room||this.context.timelineRenderingType===A.Ae.Pinned||this.context.timelineRenderingType===A.Ae.Search||this.context.timelineRenderingType===A.Ae.Thread||this.context.timelineRenderingType===A.Ae.ThreadsList?void 0:i.createElement(p.Ay,(0,n.A)({},this.props,{showGenericPlaceholder:!1}))}render(){const e=this.props.mxEvent.getContent();if(this.state.error){let e=(0,v._t)("timeline|m.image|error");return this.state.error instanceof I.sR?e=(0,v._t)("timeline|m.image|error_decrypting"):this.state.error instanceof I.nV&&(e=(0,v._t)("timeline|m.image|error_downloading")),i.createElement(k.A,{className:"mx_MImageBody"},e)}let t,s=this.state.contentUrl;var n,o;if(this.props.forExport)s=null!==(n=this.props.mxEvent.getContent().url)&&void 0!==n?n:null===(o=this.props.mxEvent.getContent().file)||void 0===o?void 0:o.url,t=s;else if(this.state.isAnimated&&_.A.getValue("autoplayGifs"))t=s;else{var r;t=null!==(r=this.state.thumbUrl)&&void 0!==r?r:this.state.contentUrl}const a=this.messageContent(s,t,e),l=this.getFileBody();return i.createElement("div",{className:"mx_MImageBody"},a,l)}}(0,o.A)(M,"contextType",A.Ay);const N=e=>{const[t,s]=(0,T.E)(e.mxEvent);return i.createElement(M,(0,n.A)({mediaVisible:t,setMediaVisible:s},e))}},"./src/components/views/messages/MPollBody.tsx":(e,t,s)=>{"use strict";s.d(t,{Ay:()=>w,B0:()=>R,Ev:()=>y,Fr:()=>f,cc:()=>E,hJ:()=>C,jx:()=>S});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./node_modules/matrix-js-sdk/src/matrix.ts"),a=s("./node_modules/matrix-js-sdk/src/models/related-relations.ts"),l=s("./node_modules/matrix-js-sdk/src/extensible_events_v1/PollResponseEvent.ts"),c=s("./src/languageHandler.tsx"),d=s("./src/Modal.tsx"),m=s("./src/utils/FormattingUtils.ts"),u=s("./src/contexts/MatrixClientContext.tsx"),h=s("./src/components/views/dialogs/ErrorDialog.tsx"),p=s("./src/components/views/elements/PollCreateDialog.tsx"),g=s("./src/MatrixClientPeg.ts"),v=s("./src/components/views/elements/Spinner.tsx"),_=s("./src/components/views/polls/PollOption.tsx");function f(e,t){if(!e.getId())return i.vF.warn("findTopAnswer: Poll event needs an event ID to fetch relations in order to determine the top answer - assuming no best answer"),"";const s=e.unstableExtensibleEvent;if(null==s||!s.isEquivalentTo(r.M_POLL_START))return i.vF.warn("Failed to parse poll to determine top answer - assuming no best answer"),"";const n=R(C(S(t)),s),o=Math.max(...n.values()),a=[];for(const[e,t]of n)t==o&&a.push(e);const l=a.map(e=>{var t,n;return null!==(t=null===(n=s.answers.find(t=>t.id===e))||void 0===n?void 0:n.text)&&void 0!==t?t:""});return(0,m.ki)(l,3)}function y(e,t){const s=t.getRoom(e.getRoomId()),n=null==s?void 0:s.polls.get(e.getId());return!(!n||n.isFetchingResponses)&&n.isEnded}function b(e,t){if(!t)return!1;const s=e.getId();if(!s)return!1;const n=function(e,t){const s=[],n=e(t,"m.reference",r.M_POLL_RESPONSE.name);n&&s.push(n);const o=e(t,"m.reference",r.M_POLL_RESPONSE.altName);return o&&s.push(o),new a.T(s)}(t,s);return n.getRelations().length>0}function E(e,t){const s=g.J.safeGet().getRoom(e.getRoomId());if(b(e,t))d.Ay.createDialog(h.A,{title:(0,c._t)("poll|unable_edit_title"),description:(0,c._t)("poll|unable_edit_description")});else if(s){var n;d.Ay.createDialog(p.A,{room:s,threadId:null===(n=e.getThread())||void 0===n?void 0:n.id,editingMxEvent:e},"mx_CompoundDialog",!1,!0)}}class w extends o.Component{constructor(e){super(e),(0,n.A)(this,"seenEventIds",[]),(0,n.A)(this,"onResponsesChange",e=>{this.setState({voteRelations:e}),this.onRelationsChange()}),(0,n.A)(this,"onRelationsChange",()=>{this.unselectIfNewEventFromMe()}),this.state={selected:null,pollInitialised:!1}}componentDidMount(){var e;const t=null===(e=this.context)||void 0===e?void 0:e.getRoom(this.props.mxEvent.getRoomId()),s=null==t?void 0:t.polls.get(this.props.mxEvent.getId());s?this.setPollInstance(s):null==t||t.on(r.PollEvent.New,this.setPollInstance.bind(this))}componentWillUnmount(){this.removeListeners()}async setPollInstance(e){if(e.pollId!==this.props.mxEvent.getId())return;this.setState({poll:e},()=>{this.addListeners()});const t=await e.getResponses();this.setState({pollInitialised:!0,voteRelations:t})}addListeners(){var e,t,s;null===(e=this.state.poll)||void 0===e||e.on(r.PollEvent.Responses,this.onResponsesChange),null===(t=this.state.poll)||void 0===t||t.on(r.PollEvent.End,this.onRelationsChange),null===(s=this.state.poll)||void 0===s||s.on(r.PollEvent.UndecryptableRelations,this.render.bind(this))}removeListeners(){this.state.poll&&(this.state.poll.off(r.PollEvent.Responses,this.onResponsesChange),this.state.poll.off(r.PollEvent.End,this.onRelationsChange),this.state.poll.off(r.PollEvent.UndecryptableRelations,this.render.bind(this)))}selectOption(e){var t,s;if(null!==(t=this.state.poll)&&void 0!==t&&t.isEnded)return;const n=this.collectUserVotes(),o=this.context.getSafeUserId();if(e===(null===(s=n.get(o))||void 0===s?void 0:s.answers[0]))return;const i=l.P.from([e],this.props.mxEvent.getId()).serialize();this.context.sendEvent(this.props.mxEvent.getRoomId(),i.type,i.content).catch(e=>{console.error("Failed to submit poll response event:",e),d.Ay.createDialog(h.A,{title:(0,c._t)("poll|error_voting_title"),description:(0,c._t)("poll|error_voting_description")})}),this.setState({selected:e})}collectUserVotes(){return this.state.voteRelations&&this.context?C(S(this.state.voteRelations),this.context.getUserId(),this.state.selected):new Map}unselectIfNewEventFromMe(){var e;const t=((null===(e=this.state.voteRelations)||void 0===e?void 0:e.getRelations())||[]).filter(e=>!this.seenEventIds.includes(e.getId()));let s=this.state.selected;if(t.length>0)for(const e of t)e.getSender()===this.context.getUserId()&&(s=null);const n=t.map(e=>e.getId());this.seenEventIds=this.seenEventIds.concat(n),this.setState({selected:s})}totalVotes(e){let t=0;for(const s of e.values())t+=s;return t}render(){var e;const{poll:t,pollInitialised:s}=this.state;if(null==t||!t.pollEvent)return null;const n=t.pollEvent,i=this.props.mxEvent.getId(),a=!s||t.isFetchingResponses,l=this.collectUserVotes(),d=R(l,n),m=this.totalVotes(d),u=Math.max(...d.values()),h=this.context.getSafeUserId(),p=null==l||null===(e=l.get(h))||void 0===e?void 0:e.answers[0],g=r.M_POLL_KIND_DISCLOSED.matches(n.kind.name),f=t.isEnded||g&&void 0!==p;let y;y=f&&t.undecryptableRelationsCount?(0,c._t)("poll|total_decryption_errors"):t.isEnded?(0,c._t)("right_panel|poll|final_result",{count:m}):g?void 0===p?0===m?(0,c._t)("poll|total_no_votes"):(0,c._t)("poll|total_n_votes",{count:m}):(0,c._t)("poll|total_n_votes_voted",{count:m}):(0,c._t)("poll|total_not_ended");const b=this.props.mxEvent.replacingEvent()?o.createElement("span",{className:"mx_MPollBody_edited"}," (",(0,c._t)("common|edited"),")"):null;return o.createElement("div",{className:"mx_MPollBody"},o.createElement("h2",null,n.question.text,b),o.createElement("div",{className:"mx_MPollBody_allOptions"},n.answers.map(e=>{let s=0;var n;f&&(s=null!==(n=d.get(e.id))&&void 0!==n?n:0);const r=!t.isEnded&&p===e.id||t.isEnded&&s===u;return o.createElement(_.h,{key:e.id,pollId:i,answer:e,isChecked:r,isEnded:t.isEnded,voteCount:s,totalVoteCount:m,displayVoteCount:f,onOptionSelected:this.selectOption.bind(this)})})),o.createElement("div",{className:"mx_MPollBody_totalVotes"},y,a&&o.createElement(v.A,{w:16,h:16})))}}(0,n.A)(w,"contextType",u.Ay);class x{constructor(e,t,s){this.ts=e,this.sender=t,this.answers=s}}function A(e){const t=e.unstableExtensibleEvent;if(null==t||!t.isEquivalentTo(r.M_POLL_RESPONSE))throw new Error("Failed to parse Poll Response Event to determine user response");return new x(e.getTs(),e.getSender(),t.answerIds)}function S(e){return e?e.getRelations().filter(e=>!e.isRedacted()).map(A):[]}function C(e,t,s){const n=new Map;for(const t of e){const e=n.get(t.sender);(!e||e.ts<t.ts)&&n.set(t.sender,t)}return s&&t&&n.set(t,new x(0,t,[s])),n}function R(e,t){const s=new Map;for(const n of e.values()){const e=l.P.from(n.answers,"$irrelevant");if(e.validateAgainst(t),!e.spoiled)for(const t of e.answerIds)s.has(t)?s.set(t,s.get(t)+1):s.set(t,1)}return s}},"./src/components/views/messages/MVoiceMessageBody.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>w});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/react/index.js"),i=s("./src/components/views/elements/InlineSpinner.tsx"),r=s("./src/languageHandler.tsx"),a=s("./src/components/views/audio_messages/RecordingPlayback.tsx"),l=s("./src/components/views/messages/MAudioBody.tsx"),c=s("./src/components/views/messages/MFileBody.tsx"),d=s("./src/components/views/messages/shared/MediaProcessingError.tsx"),m=s("./src/utils/EventUtils.ts"),u=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),h=s("./node_modules/matrix-js-sdk/src/matrix.ts"),p=s("./node_modules/matrix-js-sdk/src/logger.ts"),g=s("./src/audio/Playback.ts"),v=s("./src/stores/AsyncStore.ts"),_=s("./src/MatrixClientPeg.ts"),f=s("./src/utils/arrays.ts"),y=s("./src/audio/PlaybackManager.ts"),b=s("./src/contexts/SDKContext.ts");class E{constructor(e){(0,u.A)(this,"playbacks",new Map),(0,u.A)(this,"clockStates",new Map),(0,u.A)(this,"playbackIdOrder",[]),(0,u.A)(this,"currentPlaybackId",null),(0,u.A)(this,"recentFullPlays",new Set),this.room=e,this.loadClocks(),b.M.instance.roomViewStore.addRoomListener(this.room.roomId,e=>{e&&(this.currentPlaybackId=null,this.recentFullPlays=new Set,this.playbackIdOrder=[])})}static forRoom(e){const t=_.J.safeGet().getRoom(e);if(!t)throw new Error("Unknown room");if(E.queues.has(t.roomId))return E.queues.get(t.roomId);const s=new E(t);return E.queues.set(t.roomId,s),s}persistClocks(){localStorage.setItem(`mx_voice_message_clocks_${this.room.roomId}`,JSON.stringify(Array.from(this.clockStates.entries())))}loadClocks(){const e=localStorage.getItem(`mx_voice_message_clocks_${this.room.roomId}`);if(e){this.clockStates=new Map(JSON.parse(e));for(const[e,t]of this.clockStates.entries())null==t&&this.clockStates.delete(e)}}unsortedEnqueue(e,t){this.playbacks.set(e.getId(),t),t.on(v.H,s=>this.onPlaybackStateChange(t,e,s)),t.clockInfo.liveData.onUpdate(s=>this.onPlaybackClock(t,e,s))}onPlaybackStateChange(e,t,s){const n=this.currentPlaybackId===t.getId(),o=this.clockStates.get(t.getId());if(s!==g.d.Stopped||void 0===o||n){if(s===g.d.Stopped&&(this.clockStates.delete(t.getId()),n&&this.currentPlaybackId)){this.recentFullPlays.add(this.currentPlaybackId);const e=(0,f.PF)(this.playbackIdOrder),s=e.pop();if(s===this.currentPlaybackId){const n=e.pop();if(n){const t=this.playbacks.get(n);t?(this.playbackIdOrder=e,y.T.instance.pauseAllExcept(t),t.play()):p.vF.warn(`Voice message queue desync: Missing playback for next message: Current=${this.currentPlaybackId} Last=${s} Next=${n}`)}else{const s=(0,f.PF)(this.room.getLiveTimeline().getEvents());let n,o=!1;for(const e of s){if(e.getId()===t.getId()){o=!0;continue}if(!o)continue;if(!(0,m.Mp)(e)){const t=e.getType();if(t!==h.EventType.RoomMessage&&t!==h.EventType.Sticker)continue;break}const s=this.playbacks.has(e.getId()),i=this.recentFullPlays.has(e.getId());if(s&&!i){n=e;break}}if(n){this.playbackIdOrder=e;const t=this.playbacks.get(n.getId());y.T.instance.pauseAllExcept(t),null==t||t.play()}else this.recentFullPlays=new Set,this.playbackIdOrder=[]}}else p.vF.warn(`Voice message queue desync: Expected playback stop to be last in order. Current=${this.currentPlaybackId} Last=${s} EventID=${t.getId()}`)}}else e.skipTo(o);if(s===g.d.Playing){const e=this.playbackIdOrder;if(this.currentPlaybackId!==t.getId()&&this.currentPlaybackId&&(0===e.length||e[e.length-1]!==this.currentPlaybackId)){const t=this.playbacks.get(this.currentPlaybackId);t&&[g.d.Playing,g.d.Paused].includes(t.currentState)&&e.push(this.currentPlaybackId)}this.currentPlaybackId=t.getId(),0!==e.length&&e[e.length-1]===this.currentPlaybackId||e.push(this.currentPlaybackId)}s!==g.d.Paused&&s!==g.d.Stopped||this.persistClocks()}onPlaybackClock(e,t,s){e.currentState!==g.d.Playing&&e.currentState!==g.d.Paused||this.clockStates.set(t.getId(),s[0])}}(0,u.A)(E,"queues",new Map);class w extends l.A{onMount(e){(0,m.Mp)(this.props.mxEvent)&&E.forRoom(this.props.mxEvent.getRoomId()).unsortedEnqueue(this.props.mxEvent,e)}render(){return this.state.error?o.createElement(d.A,{className:"mx_MVoiceMessageBody"},(0,r._t)("timeline|m.audio|error_processing_voice_message")):this.state.playback?o.createElement("span",{className:"mx_MVoiceMessageBody"},o.createElement(a.A,{playback:this.state.playback}),this.showFileBody&&o.createElement(c.Ay,(0,n.A)({},this.props,{showGenericPlaceholder:!1}))):o.createElement("span",{className:"mx_MVoiceMessageBody"},o.createElement(i.A,null))}}},"./src/components/views/messages/MessageEvent.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>es});var n=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),o=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),i=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),r=s("./node_modules/mime/dist/src/index.js"),a=s("./node_modules/react/index.js"),l=s("./node_modules/matrix-js-sdk/src/logger.ts"),c=s("./node_modules/matrix-js-sdk/src/matrix.ts"),d=s("./src/settings/SettingsStore.ts"),m=s("./src/mjolnir/Mjolnir.ts"),u=s("./src/components/views/messages/RedactedBody.tsx");const h=({mxEvent:e,ref:t})=>{const s=e.getContent().body;return a.createElement("div",{className:"mx_UnknownBody",ref:t},s)};var p=s("./src/utils/MediaEventHelper.ts"),g=s("./node_modules/html-react-parser/esm/index.mjs"),v=s("./node_modules/matrix-js-sdk/src/pushprocessor.ts"),_=s("./src/HtmlUtils.tsx"),f=s("./src/Linkify.tsx"),y=s("./src/PlatformPeg.ts"),b=s("./src/components/views/elements/TextWithTooltip.tsx");const E=["children","tooltip"];class w extends a.Component{render(){const e=this.props,{children:t,tooltip:s}=e,i=(0,n.A)(e,E);return a.createElement(b.A,(0,o.A)({tabIndex:-1,tooltip:s,onClick:e=>e.target.blur()},i),t)}}function x(e){if(e)return({tagName:t,attributes:s,content:n})=>{const o=new g.Hg(t,s,[new g.EY(n)],"tag"),i=e(o,0);return i||(s.class&&(s.className=s.class,delete s.class),a.createElement(t,s,n))}}const A={a:(e,{isHtml:t})=>{if(!t)return;const s=e.attribs.href;if(s&&s!==(1===(n=e).childNodes.length&&"text"===n.childNodes[0].type?n.childNodes[0].data:null)){let t=s;try{t=new URL(s,window.location.href).toString()}catch{}return a.createElement(w,{tooltip:t},(0,g.zd)([e]))}var n}};var S=s("./node_modules/domutils/lib/esm/index.js"),C=s("./node_modules/react-string-replace/index.js"),R=s.n(C),k=s("./src/components/views/elements/Pill.tsx"),I=s("./src/utils/permalinks/Permalinks.ts");const P=v.j.getPushRuleGlobRegex("@room",!0,"gmi"),T=e=>"PRE"===(null==e?void 0:e.tagName)||"CODE"===(null==e?void 0:e.tagName),O={a:(e,{room:t,shouldShowPillAvatar:s,isHtml:n})=>{if(!t)return;const o=e.attribs.href;return o&&!((e,t)=>{let s=e.parentNode;for(;s;){if(t(s))return!0;s=s.parentNode}return!1})(e,T)&&((e,t,s,n)=>{if(!s)return!1;const o=(0,S.P_)(e);return(!s.eventId||t===o)&&(t===o||n)})(e,o,(0,I.$N)(o),n)?a.createElement(k.a,{url:o,inMessage:!0,room:t,shouldShowPillAvatar:s}):void 0},[Node.TEXT_NODE]:(e,{room:t,mxEvent:s,shouldShowPillAvatar:n})=>{if(!t||!s)return;const o=t.client.pushProcessor.getPushRuleById(void 0!==s.getContent()["m.mentions"]?c.RuleId.IsRoomMention:c.RuleId.AtRoomNotification);if(o&&t.client.pushProcessor.ruleMatchesEvent(o,s)){const s=R()(e.data,P,(e,s)=>a.createElement(k.a,{key:s,type:k.y.AtRoomMention,inMessage:!0,room:t,shouldShowPillAvatar:n}));if(s.length<=1)return;return a.createElement(a.Fragment,null,s)}}},M={[Node.TEXT_NODE]:(e,{keywordRegexpPattern:t})=>{if(!t)return;const s=R()(e.data,t,(e,t)=>a.createElement(k.a,{key:t,text:e,type:k.y.Keyword}));return s.length<=1?void 0:a.createElement(a.Fragment,null,s)}};class N extends a.Component{constructor(e){super(e),(0,i.A)(this,"toggleVisible",e=>{this.state.visible||(e.preventDefault(),e.stopPropagation()),this.setState({visible:!this.state.visible})}),this.state={visible:!1}}render(){const e=this.props.reason?a.createElement("span",{className:"mx_EventTile_spoiler_reason"},"("+this.props.reason+")"):null;return a.createElement("button",{className:"mx_EventTile_spoiler"+(this.state.visible?" visible":""),onClick:this.toggleVisible},e," ",a.createElement("span",{className:"mx_EventTile_spoiler_content"},this.props.children))}}const D={span:e=>{const t=e.attribs["data-mx-spoiler"];if("string"==typeof t)return a.createElement(N,{reason:t},(0,g.zd)(e.children))}};var j=s("./node_modules/classnames/index.js"),U=s.n(j),F=s("./src/hooks/useSettings.ts"),L=s("./src/components/views/elements/CopyableText.tsx");const B=({expanded:e,onClick:t})=>a.createElement("span",{className:U()("mx_EventTile_button",{mx_EventTile_expandButton:!e,mx_EventTile_collapseButton:e}),onClick:t}),V=({preNode:e})=>{const t=(0,F.ti)("enableSyntaxHighlightLanguageDetection"),n=(0,F.ti)("showCodeLineNumbers"),o=(0,F.ti)("expandCodeByDefault"),[i,r]=(0,a.useState)(o),l=(0,S.P_)(e);let c;l.split("\n").length>=5&&(c=a.createElement(B,{expanded:i,onClick:()=>{r(!i)}}));const d=(0,S.sV)(e);let m;if(n){const e=d.replace(/\n(<\/code>)?$/,"").split(/\n/).length;m=a.createElement("span",{className:"mx_EventTile_lineNumbers"},Array.from({length:e},(e,t)=>t+1).map(e=>a.createElement("span",{key:e},e)))}let u=(0,g.zd)(e.children);return e.children.some(e=>e instanceof g.Hg&&"CODE"===e.tagName.toUpperCase())||(u=a.createElement("code",null,u)),a.createElement("div",{className:"mx_EventTile_pre_container"},a.createElement("pre",{className:U()({mx_EventTile_collapsedCodeBlock:!i})},m,a.createElement("div",{style:{display:"contents"},ref:function(e){!async function(e){const n=null==e?void 0:e.getElementsByTagName("code")[0];if(!n)return;const{default:o}=await s.e(458).then(s.bind(s,"./node_modules/highlight.js/es/index.js"));if(n.textContent&&n.textContent.length>4096)return void console.log(`Code block is bigger than highlight limit (${n.textContent.length} > 4096): not highlighting`);let i;for(const e of n.className.split(/\s+/))if(e.startsWith("language-")){const t=e.split("-",2)[1];if(o.getLanguage(t)){i=t;break}}var r;if(i)n.innerHTML=o.highlight(null!==(r=n.textContent)&&void 0!==r?r:"",{language:i}).value;else if(t){var a;n.innerHTML=o.highlightAuto(null!==(a=n.textContent)&&void 0!==a?a:"").value}}(e)}},u)),c,a.createElement(L.l,{getTextToCopy:()=>l,className:U()("mx_EventTile_button mx_EventTile_copyButton",{mx_EventTile_buttonBottom:!!c})}))},H={pre:e=>a.createElement(V,{preNode:e})};var W=s("./src/contexts/MatrixClientContext.tsx"),$=s("./src/utils/arrays.ts"),z=s("./src/hooks/useMediaVisible.ts");const K=["as","mxEvent","stripReply","content","linkify","highlights","includeDir","ref"],J=(e,t,s)=>{var n;const o=null!==(n=(0,a.useContext)(W.Ay).getRoom(null==t?void 0:t.getRoomId()))&&void 0!==n?n:void 0,i=(0,F.ti)("Pill.shouldShowPillAvatar"),r="org.matrix.custom.html"===e.format,l=(0,a.useMemo)(()=>{var e;const n=t?(e=>{var t;const s=e.getPushDetails();if(null!==(t=s.rule)&&void 0!==t&&t.enabled&&s.rule.kind===c.PushRuleKind.ContentSpecific&&s.rule.pattern)return v.j.getPushRuleGlobRegex(s.rule.pattern,!0,"gi")})(t):void 0;return((...e)=>t=>(s,n)=>{if("text"===s.type)for(const i of e){var o;const e=null===(o=i[Node.TEXT_NODE])||void 0===o?void 0:o.call(i,s,t,n);if(e)return e}if(s instanceof g.Hg){const o=s.tagName.toLowerCase();for(const r of e){var i;const e=null===(i=r[o])||void 0===i?void 0:i.call(r,s,t,n);if(e)return e}}})(...(0,$.Bo)([s.renderMentionPills?O:void 0,s.renderKeywordPills&&n?M:void 0,s.renderTooltipsForAmbiguousLinks&&null!==(e=y.A.get())&&void 0!==e&&e.needsUrlTooltips()?A:void 0,s.renderSpoilers?D:void 0,s.renderCodeBlocks?H:void 0]))({isHtml:r,mxEvent:t,room:o,shouldShowPillAvatar:i,keywordRegexpPattern:n})},[t,s.renderMentionPills,s.renderKeywordPills,s.renderTooltipsForAmbiguousLinks,s.renderSpoilers,s.renderCodeBlocks,r,o,i]);return l},G=(0,a.memo)(e=>{let{as:t,mxEvent:s,stripReply:o,content:i,linkify:r,highlights:l,includeDir:d=!0,ref:m}=e,u=(0,n.A)(e,K);const h=(0,F.ti)("TextualBody.enableBigEmoji"),[p]=(0,z.E)(s),v=J(i,s,u),y=(0,a.useMemo)(()=>({render:x(v)}),[v]),b=i.msgtype===c.MsgType.Emote,{strippedBody:E,formattedBody:w,emojiBodyElements:A,className:S}=(0,a.useMemo)(()=>(0,_.qy)(i,l,{disableBigEmoji:b||!h,stripReplyFallback:o,mediaIsVisible:p}),[i,p,h,l,b,o]);"div"===t&&(d=!0);const C=t,R=w?a.createElement(C,{ref:m,className:S,dir:d?"auto":void 0},(0,g.Ay)(w,{replace:v})):a.createElement(C,{ref:m,className:S,dir:d?"auto":void 0},function(e,t){return t?(Array.isArray(e)?e:[e]).map((e,s)=>"string"==typeof e?a.createElement(a.Fragment,{key:s},t(new g.EY(e),0)||e):e):e}(A||E,v));return r?a.createElement(f.XZ,{options:y},R):R});var q=s("./src/DateUtils.ts"),Y=s("./src/Modal.tsx"),Z=s("./src/dispatcher/dispatcher.ts"),Q=s("./src/languageHandler.tsx"),X=s("./src/integrations/IntegrationManagers.ts"),ee=s("./src/dispatcher/actions.ts"),te=s("./src/components/views/dialogs/QuestionDialog.tsx"),se=s("./src/MatrixClientPeg.ts"),ne=s("./src/components/views/dialogs/BaseDialog.tsx"),oe=s("./src/components/structures/ScrollPanel.tsx"),ie=s("./src/components/views/elements/Spinner.tsx"),re=s("./node_modules/diff-match-patch/index.js"),ae=s.n(re),le=s("./node_modules/diff-dom/dist/module.js"),ce=s("./node_modules/lodash/lodash.js");function de(e){const t={stripReplyFallback:!0};return"org.matrix.custom.html"===e.format?(0,_.rR)(e,null,t):function(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}((0,_.rR)(e,null,t))}function me(e){const t=document.createElement((0,_.aA)(e)?"div":"span");return t.className="mx_EditHistoryMessage_insertion",t.appendChild(e),t}function ue(e){const t=document.createElement((0,_.aA)(e)?"div":"span");return t.className="mx_EditHistoryMessage_deletion",t.appendChild(e),t}function he(e){if("#text"===e.nodeName)return _e(e.data);{const t=document.createElement(e.nodeName);for(const[s,n]of Object.entries(e.attributes))t.setAttribute(s,n.value);if(e.childNodes)for(const s of e.childNodes)t.appendChild(he(s));return t}}function pe(e,t,s){t?e.insertBefore(s,t):e.appendChild(s)}function ge(e,t){for(let s=0;s<e.length-1;++s)if(e[s]!==t[s])return!1;const s=e.length-1;return t[s]>=e[s]}function ve(e,t){if("removeTextElement"===e.action||"removeElement"===e.action){const s=1;for(const n of t)ge(e.route,n.route)&&(n.route[e.route.length-1]+=s)}}function _e(e){return document.createTextNode((0,ce.unescape)(e))}function fe(e,t,s){const{refNode:n,refParentNode:o}=function(e,t,s=!1){let n,o=e;const i=s?t.length-1:t.length;for(let e=0;e<i;++e){var r;n=o,o=null===(r=o)||void 0===r?void 0:r.childNodes[t[e]]}return{refNode:o,refParentNode:n}}(e,t.route);switch(t.action){case"replaceElement":{if(!n)return void console.warn("Unable to apply replaceElement operation due to missing node");const e=document.createElement("span"),s=ue(he(t.oldValue)),o=me(he(t.newValue));e.appendChild(s),e.appendChild(o),n.parentNode.replaceChild(e,n);break}case"removeTextElement":{if(!n)return void console.warn("Unable to apply removeTextElement operation due to missing node");const e=ue(_e(t.value));n.parentNode.replaceChild(e,n);break}case"removeElement":{if(!n)return void console.warn("Unable to apply removeElement operation due to missing node");const e=ue(he(t.element));n.parentNode.replaceChild(e,n);break}case"modifyTextElement":{if(!n)return void console.warn("Unable to apply modifyTextElement operation due to missing node");const e=s.diff_main(t.oldValue,t.newValue);s.diff_cleanupSemantic(e);const o=document.createElement("span");for(const[t,s]of e){let e=_e(s);t<0?e=ue(e):t>0&&(e=me(e)),o.appendChild(e)}n.parentNode.replaceChild(o,n);break}case"addElement":if(!o)return void console.warn("Unable to apply addElement operation due to missing node");pe(o,n,me(he(t.element)));break;case"addTextElement":if(!o)return void console.warn("Unable to apply addTextElement operation due to missing node");pe(o,n,me(_e("\n"!==t.value?t.value:"")));break;case"removeAttribute":case"addAttribute":case"modifyAttribute":{if(!n)return void console.warn(`Unable to apply ${t.action} operation due to missing node`);const e=ue(n.cloneNode(!0)),s=n.cloneNode(!0);"addAttribute"===t.action||"modifyAttribute"===t.action?s.setAttribute(t.name,t.newValue):s.removeAttribute(t.name);const o=me(s),i=document.createElement((0,_.aA)(n)?"div":"span");i.appendChild(e),i.appendChild(o),n.parentNode.replaceChild(i,n);break}default:l.vF.warn("MessageDiffUtils::editBodyDiffToHtml: diff action not supported atm",t)}}var ye=s("./src/components/views/elements/AccessibleButton.tsx"),be=s("./src/components/views/dialogs/ConfirmRedactDialog.tsx"),Ee=s("./src/components/views/dialogs/ErrorDialog.tsx");class we extends a.PureComponent{constructor(e){super(e),(0,i.A)(this,"onParentFinished",async e=>{if(e){this.setState({isRedacting:!0});try{await this.props.redact(),this.props.onFinished(!0)}catch(e){let t;e instanceof c.MatrixError?t=e.errcode:e instanceof c.HTTPError&&(t=e.httpStatus),void 0!==t?this.setState({redactionErrorCode:t}):this.props.onFinished(!0)}}else this.props.onFinished(!1)}),this.state={isRedacting:!1,redactionErrorCode:null}}render(){if(this.state.isRedacting){if(this.state.redactionErrorCode){const e=this.state.redactionErrorCode;return a.createElement(Ee.A,{onFinished:this.props.onFinished,title:(0,Q._t)("common|error"),description:(0,Q._t)("redact|error",{code:e})})}return a.createElement(ne.A,{onFinished:this.props.onFinished,hasCancel:!1,title:(0,Q._t)("redact|ongoing")},a.createElement(ie.A,null))}return a.createElement(be.A,{event:this.props.event,onFinished:this.onParentFinished})}}var xe=s("./src/components/structures/ViewSource.tsx");function Ae(e){const t=e.getOriginalContent();return t["m.new_content"]||t}class Se extends a.PureComponent{constructor(e,t){var s,n;super(e,t),(0,i.A)(this,"content",(0,a.createRef)()),(0,i.A)(this,"onAssociatedStatusChanged",()=>{this.setState({sendStatus:this.props.mxEvent.getAssociatedStatus()})}),(0,i.A)(this,"onRedactClick",async()=>{const e=this.props.mxEvent,t=this.context;Y.Ay.createDialog(we,{event:e,redact:async()=>{await t.redactEvent(e.getRoomId(),e.getId())}},"mx_Dialog_confirmredact")}),(0,i.A)(this,"onViewSourceClick",()=>{Y.Ay.createDialog(xe.A,{mxEvent:this.props.mxEvent,ignoreEdits:!0},"mx_Dialog_viewsource")});const o=this.context,r=o.getSafeUserId(),l=this.props.mxEvent,d=o.getRoom(l.getRoomId());null===(s=l.localRedactionEvent())||void 0===s||s.on(c.MatrixEventEvent.Status,this.onAssociatedStatusChanged);const m=null!==(n=null==d?void 0:d.currentState.maySendRedactionForEvent(l,r))&&void 0!==n&&n;this.state={canRedact:m,sendStatus:l.getAssociatedStatus()}}componentWillUnmount(){var e;null===(e=this.props.mxEvent.localRedactionEvent())||void 0===e||e.off(c.MatrixEventEvent.Status,this.onAssociatedStatusChanged)}renderActionBar(){let e,t;return this.props.mxEvent.isRedacted()||this.props.isBaseEvent||!this.state.canRedact||(e=a.createElement(ye.A,{onClick:this.onRedactClick},(0,Q._t)("action|remove"))),d.A.getValue("developerMode")&&(t=a.createElement(ye.A,{onClick:this.onViewSourceClick},(0,Q._t)("action|view_source"))),e||t?a.createElement("div",{className:"mx_MessageActionBar"},e,t):null}render(){const{mxEvent:e}=this.props,t=Ae(e);let s;if(e.isRedacted())s=a.createElement(u.A,{mxEvent:this.props.mxEvent});else{let n;if(n=this.props.previousEdit?function(e,t){const s=`<div>${de(e)}</div>`,n=`<div>${de(t)}</div>`,o=(new le.ad).diff(s,n),i=new(ae()),r=(new DOMParser).parseFromString(s,"text/html").body.children[0];for(let e=0;e<o.length;++e){const t=o[e];fe(r,t,i),ve(t,o.slice(e+1))}const l=r.innerHTML,c=U()({mx_EventTile_body:!0,"markdown-body":!0});return a.createElement("span",{key:"body",className:c,dangerouslySetInnerHTML:{__html:l},dir:"auto"})}(Ae(this.props.previousEdit),t):a.createElement(G,{as:"span",mxEvent:e,content:t,highlights:[],stripReply:!0,renderTooltipsForAmbiguousLinks:!0,renderMentionPills:!0,renderCodeBlocks:!0,renderSpoilers:!0,linkify:!0}),e.getContent().msgtype===c.MsgType.Emote){const t=e.sender?e.sender.name:e.getSender();s=a.createElement("div",{className:"mx_EventTile_content",ref:this.content},"* ",a.createElement("span",{className:"mx_MEmoteBody_sender"},t)," ",n)}else s=a.createElement("div",{className:"mx_EventTile_content",ref:this.content},n)}const n=(0,q.fU)(new Date(e.getTs()),this.props.isTwelveHour),o=["sending","queued","encrypting"].includes(this.state.sendStatus),i=U()("mx_EventTile",{mx_EventTile_sending:o});return a.createElement("li",null,a.createElement("div",{className:i},a.createElement("div",{className:"mx_EventTile_line"},a.createElement("span",{className:"mx_MessageTimestamp"},n),s,this.renderActionBar())))}}(0,i.A)(Se,"contextType",W.Ay);var Ce=s("./src/components/views/messages/DateSeparator.tsx");class Re extends a.PureComponent{constructor(e){super(e),(0,i.A)(this,"loadMoreEdits",async e=>{var t,s,n,o;if(e||!this.state.nextBatch&&!this.state.isLoading)return!1;const i={from:null!==(t=this.state.nextBatch)&&void 0!==t?t:void 0},r=this.props.mxEvent.getRoomId(),a=this.props.mxEvent.getId(),d=se.J.safeGet(),{resolve:m,reject:u,promise:h}=Promise.withResolvers();let p;try{p=await d.relations(r,a,c.RelationType.Replace,c.EventType.RoomMessage,i)}catch(e){return e instanceof c.MatrixError&&e.errcode&&l.vF.error("fetching /relations failed with error",e),this.setState({error:e},()=>u(e)),h}const g=p.events;return this.locallyRedactEventsIfNeeded(g),this.setState({originalEvent:null!==(s=null!==(n=this.state.originalEvent)&&void 0!==n?n:p.originalEvent)&&void 0!==s?s:null,events:this.state.events.concat(g),nextBatch:null!==(o=p.nextBatch)&&void 0!==o?o:null,isLoading:!1},()=>{const e=!!this.state.nextBatch;m(e)}),h}),this.state={originalEvent:null,error:null,events:[],nextBatch:null,isLoading:!0,isTwelveHour:d.A.getValue("showTwelveHourTimestamps")}}locallyRedactEventsIfNeeded(e){const t=this.props.mxEvent.getRoomId(),s=se.J.safeGet().getRoom(t);if(!s)return;const n=s.getPendingEvents();for(const t of e){const e=n.find(e=>e.getType()===c.EventType.RoomRedaction&&e.getAssociatedId()===t.getId());e&&t.markLocallyRedacted(e)}}componentDidMount(){this.loadMoreEdits()}renderEdits(){const e=[];let t,s=this.state.events;this.state.originalEvent&&!this.state.nextBatch&&(s=s.concat(this.state.originalEvent));const n=this.props.mxEvent.getId();return s.forEach((o,i)=>{t&&!(0,q.fq)(t.getDate()||void 0,o.getDate()||void 0)||e.push(a.createElement("li",{key:o.getTs()+"~"},a.createElement(Ce.A,{roomId:o.getRoomId(),ts:o.getTs()})));const r=o.getId()===n;e.push(a.createElement(Se,{key:o.getId(),previousEdit:r?void 0:s[i+1],isBaseEvent:r,mxEvent:o,isTwelveHour:this.state.isTwelveHour})),t=o}),e}render(){let e;if(this.state.error){const{error:t}=this.state;e="M_UNRECOGNIZED"===t.errcode?a.createElement("p",{className:"mx_MessageEditHistoryDialog_error"},(0,Q._t)("error|edit_history_unsupported")):t.errcode?a.createElement("p",{className:"mx_MessageEditHistoryDialog_error"},(0,Q._t)("error|something_went_wrong")):a.createElement("p",{className:"mx_MessageEditHistoryDialog_error"},(0,Q._t)("cannot_reach_homeserver"),a.createElement("br",null),(0,Q._t)("cannot_reach_homeserver_detail"))}else e=this.state.isLoading?a.createElement(ie.A,null):a.createElement(oe.A,{className:"mx_MessageEditHistoryDialog_scrollPanel",onFillRequest:this.loadMoreEdits,stickyBottom:!1,startAtBottom:!1},a.createElement("ul",{className:"mx_MessageEditHistoryDialog_edits"},this.renderEdits()));return a.createElement(ne.A,{className:"mx_MessageEditHistoryDialog",hasCancel:!0,onFinished:this.props.onFinished,title:(0,Q._t)("message_edit_dialog_title")},e)}}var ke=s("./src/editor/model.ts"),Ie=s("./src/editor/dom.ts"),Pe=s("./src/editor/serialize.ts"),Te=s("./src/utils/EventUtils.ts"),Oe=s("./src/editor/deserialize.ts"),Me=s("./src/editor/parts.ts"),Ne=s("./src/components/views/rooms/BasicMessageComposer.tsx"),De=s("./src/SlashCommands.tsx"),je=s("./src/KeyBindingsManager.ts"),Ue=s("./src/SendHistoryManager.ts"),Fe=s("./src/contexts/RoomContext.ts"),Le=s("./src/dispatcher/payloads/ComposerInsertPayload.ts"),Be=s("./src/editor/commands.tsx"),Ve=s("./src/accessibility/KeyboardShortcuts.ts"),He=s("./src/PosthogAnalytics.ts"),We=s("./src/Editing.ts"),$e=s("./src/components/views/rooms/SendMessageComposer.tsx");function ze(e,t,s){const n=(0,Pe.ID)(e);n&&(e=(0,Pe.k$)(e));const o=(0,Pe.OA)(e),i={msgtype:n?c.MsgType.Emote:c.MsgType.Text,body:o},r={msgtype:i.msgtype,body:`* ${o}`,"m.new_content":i},a=(0,Pe.MN)(e,{useMarkdown:d.A.getValue("MessageComposerInput.useMarkdown")});return a&&(i.format="org.matrix.custom.html",i.formatted_body=a,r.format=i.format,r.formatted_body=`* ${a}`),(0,$e.LO)(t.sender.userId,r,e,s,t.getContent()),(0,$e.gV)(r,{rel_type:"m.replace",event_id:t.getId()}),r}class Ke extends a.Component{constructor(e,t){var s;super(e,t),(0,i.A)(this,"editorRef",(0,a.createRef)()),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"replyToEvent",void 0),(0,i.A)(this,"model",void 0),(0,i.A)(this,"onKeyDown",e=>{var t;if(null!==(t=this.editorRef.current)&&void 0!==t&&t.isComposing(e))return;switch((0,je.zM)().getMessageComposerAction(e)){case Ve.bY.SendMessage:this.sendEdit(),e.stopPropagation(),e.preventDefault();break;case Ve.bY.CancelReplyOrEdit:e.stopPropagation(),this.cancelEdit();break;case Ve.bY.EditPrevMessage:{var s,n;if(null!==(s=this.editorRef.current)&&void 0!==s&&s.isModified()||null===(n=this.editorRef.current)||void 0===n||!n.isCaretAtStart())return;const t=(0,Te.Iy)({events:this.events,isForward:!1,fromEventId:this.props.editState.getEvent().getId(),matrixClient:se.J.safeGet()});t&&(Z.A.dispatch({action:ee.r.EditEvent,event:t,timelineRenderingType:this.context.timelineRenderingType}),e.preventDefault());break}case Ve.bY.EditNextMessage:{var o,i;if(null!==(o=this.editorRef.current)&&void 0!==o&&o.isModified()||null===(i=this.editorRef.current)||void 0===i||!i.isCaretAtEnd())return;const t=(0,Te.Iy)({events:this.events,isForward:!0,fromEventId:this.props.editState.getEvent().getId(),matrixClient:se.J.safeGet()});t?Z.A.dispatch({action:ee.r.EditEvent,event:t,timelineRenderingType:this.context.timelineRenderingType}):this.cancelEdit(),e.preventDefault();break}}}),(0,i.A)(this,"cancelEdit",()=>{this.endEdit()}),(0,i.A)(this,"saveStoredEditorState",()=>{const e=Ue.A.createItem(this.model);this.clearPreviousEdit(),localStorage.setItem(this.editorRoomKey,this.props.editState.getEvent().getId()),localStorage.setItem(this.editorStateKey,JSON.stringify(e))}),(0,i.A)(this,"sendEdit",async()=>{if(this.state.saveDisabled)return;const e=this.props.editState.getEvent();if(He.Vo.instance.trackEvent({eventName:"Composer",isEditing:!0,messageType:"Text",inThread:!(null==e||!e.getThread()),isReply:!!e.replyEventId}),d.A.getValue("MessageComposerInput.autoReplaceEmoji")&&this.editorRef.current){const e=this.editorRef.current.getCaret(),t=this.model.positionForOffset(e.offset,e.atNodeEnd);this.editorRef.current.replaceEmoticon(t,Ne.v)}const t=ze(this.model,e,this.replyToEvent),s=t["m.new_content"];let n=!0;if(""===(null==s?void 0:s.body))return this.cancelPreviousPendingEdit(),void(0,be.Q)({mxEvent:e,onCloseDialog:()=>{this.cancelEdit()}});if(this.isContentModified(s)){const s=e.getRoomId();if(!(0,Pe.ID)(this.model)&&(0,Be.nU)(this.model)){const[i,r,a]=(0,Be.Dr)(this.model);if(i){var o;const a=(null==e||null===(o=e.getThread())||void 0===o?void 0:o.id)||null,[l,c]=await(0,Be.m8)(se.J.safeGet(),i,r,s,a);if(!c)return;i.category===De.ge.messages||i.category===De.ge.effects?t["m.new_content"]=l:n=!1}else{const e=await(0,Be.d8)(a);if(Z.A.dispatch({action:ee.r.FocusAComposer,context:this.context.timelineRenderingType}),!e)return}}if(n){this.cancelPreviousPendingEdit();const e=this.props.editState.getEvent().threadRootId||null;this.props.mxClient.sendMessage(s,e,t),Z.A.dispatch({action:"message_sent"})}}this.endEdit()}),(0,i.A)(this,"onChange",()=>{var e;this.state.saveDisabled&&null!==(e=this.editorRef.current)&&void 0!==e&&e.isModified()&&this.setState({saveDisabled:!1})}),(0,i.A)(this,"onAction",e=>{if(this.editorRef.current)if(e.action===ee.r.ComposerInsert){if(e.timelineRenderingType!==this.context.timelineRenderingType)return;if(e.composerType!==Le.D.Edit)return;var t;if(e.userId)null===(t=this.editorRef.current)||void 0===t||t.insertMention(e.userId);else if(e.event){var s;null===(s=this.editorRef.current)||void 0===s||s.insertQuotedMessage(e.event)}else if(e.text){var n;null===(n=this.editorRef.current)||void 0===n||n.insertPlaintext(e.text)}}else e.action===ee.r.FocusEditMessageComposer&&this.editorRef.current.focus()});const n=this.createEditorModel(),o=this.props.editState.getEvent();this.replyToEvent=o.replyEventId?null===(s=this.context.room)||void 0===s?void 0:s.findEventById(o.replyEventId):void 0;const r=ze(this.model,o,this.replyToEvent);this.state={saveDisabled:!n||!this.isContentModified(r["m.new_content"])}}componentDidMount(){window.addEventListener("beforeunload",this.saveStoredEditorState),this.dispatcherRef=Z.A.register(this.onAction)}getRoom(){if(!this.context.room)throw new Error("Cannot render without room");return this.context.room}endEdit(){localStorage.removeItem(this.editorRoomKey),localStorage.removeItem(this.editorStateKey),Z.A.dispatch({action:ee.r.EditEvent,event:null,timelineRenderingType:this.context.timelineRenderingType}),Z.A.dispatch({action:ee.r.FocusSendMessageComposer,context:this.context.timelineRenderingType})}get editorRoomKey(){return(0,We.O)(this.props.editState.getEvent().getRoomId(),this.context.timelineRenderingType)}get editorStateKey(){return(0,We.S)(this.props.editState.getEvent().getId())}get events(){var e;const t=null===(e=this.context.liveTimeline)||void 0===e?void 0:e.getEvents(),s=this.getRoom();if(!t||!s)return[];const n=s.getPendingEvents(),o=Boolean(this.props.editState.getEvent().getThread());return t.concat(o?[]:n)}get shouldSaveStoredEditorState(){return null!==localStorage.getItem(this.editorRoomKey)}restoreStoredEditorState(e){const t=localStorage.getItem(this.editorStateKey);if(t)try{const{parts:s}=JSON.parse(t);return s.map(t=>e.deserializePart(t))}catch(e){l.vF.error("Error parsing editing state: ",e)}}clearPreviousEdit(){localStorage.getItem(this.editorRoomKey)&&localStorage.removeItem(`mx_edit_state_${localStorage.getItem(this.editorRoomKey)}`)}isContentModified(e){const t=this.props.editState.getEvent().getContent();return t.msgtype!==e.msgtype||t.body!==e.body||t.format!==e.format||t.formatted_body!==e.formatted_body}cancelPreviousPendingEdit(){const e=this.props.editState.getEvent().replacingEvent();!e||e.status!==c.EventStatus.QUEUED&&e.status!==c.EventStatus.NOT_SENT||this.props.mxClient.cancelPendingEvent(e)}componentWillUnmount(){var e;const t=document.getSelection();let s;t.focusNode&&null!==(e=this.editorRef.current)&&void 0!==e&&e.editorRef.current&&(s=(0,Ie.xo)(this.editorRef.current.editorRef.current,t).caret);const n=this.model.serializeParts();this.props.editState.setEditorState(null!=s?s:null,n),window.removeEventListener("beforeunload",this.saveStoredEditorState),this.shouldSaveStoredEditorState&&this.saveStoredEditorState(),Z.A.unregister(this.dispatcherRef)}createEditorModel(){const{editState:e}=this.props,t=this.getRoom(),s=new Me.dK(t,this.props.mxClient);let n,o=!1;if(e.hasEditorState())n=(0,$.Bo)(e.getSerializedParts().map(e=>s.deserializePart(e)));else{const t=this.restoreStoredEditorState(s);n=t||(0,Oe.wj)(e.getEvent(),s,{shouldEscape:d.A.getValue("MessageComposerInput.useMarkdown")}),o=!!t}return this.model=new ke.A(n,s),this.saveStoredEditorState(),o}render(){var e,t;const s=this.getRoom();return s?a.createElement("div",{className:U()("mx_EditMessageComposer",this.props.className),onKeyDown:this.onKeyDown},a.createElement(Ne.A,{ref:this.editorRef,model:this.model,room:s,threadId:null===(e=this.props.editState)||void 0===e||null===(e=e.getEvent())||void 0===e||null===(e=e.getThread())||void 0===e?void 0:e.id,initialCaret:null!==(t=this.props.editState.getCaret())&&void 0!==t?t:void 0,label:(0,Q._t)("composer|edit_composer_label"),onChange:this.onChange}),a.createElement("div",{className:"mx_EditMessageComposer_buttons"},a.createElement(ye.A,{kind:"secondary",onClick:this.cancelEdit},(0,Q._t)("action|cancel")),a.createElement(ye.A,{kind:"primary",onClick:this.sendEdit,disabled:this.state.saveDisabled},(0,Q._t)("action|save")))):null}}(0,i.A)(Ke,"contextType",Fe.Ay);const Je=(0,W.dt)(Ke);var Ge=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/close.js"),qe=s("./src/hooks/useStateToggle.ts"),Ye=s("./node_modules/html-entities/dist/esm/index.js");var Ze=s("./src/customisations/Media.ts"),Qe=s("./src/components/views/elements/ImageView.tsx");class Xe extends a.Component{constructor(...e){super(...e),(0,i.A)(this,"image",(0,a.createRef)()),(0,i.A)(this,"onImageClick",e=>{var t;const s=this.props.preview;if(0!=e.button||e.metaKey)return;e.preventDefault();let n=s["og:image"];if(null!==(t=n)&&void 0!==t&&t.startsWith("mxc://")&&(n=(0,Ze.mediaFromMxc)(n).srcHttp),!n)return;const o={src:n,width:s["og:image:width"],height:s["og:image:height"],name:s["og:title"]||s["og:description"]||this.props.link,fileSize:s["matrix:image:size"],link:this.props.link};if(this.image.current){const e=this.image.current.getBoundingClientRect();o.thumbnailInfo={width:e.width,height:e.height,positionX:e.x,positionY:e.y}}Y.Ay.createDialog(Qe.A,o,"mx_Dialog_lightbox",void 0,!0)})}render(){var e,t,s,n,o;const i=this.props.preview;let r=null!==(e=i["og:image"])&&void 0!==e?e:null;this.props.mediaVisible||(r=null);const l=100;r&&r.startsWith("mxc://")&&(r=(0,Ze.mediaFromMxc)(r).getThumbnailOfSourceHttp(100,l,"scale"));const c=null!==(t=function(e,t,s,n){if(!e||!t)return null;if(e<s&&t<n)return t;const o=s/e,i=n/t;return o<i?Math.floor(o*t):Math.floor(i*t)}(i["og:image:width"],i["og:image:height"],100,l))&&void 0!==t?t:l;let d;r&&(d=a.createElement("div",{className:"mx_LinkPreviewWidget_image",style:{height:c}},a.createElement("img",{ref:this.image,style:{maxWidth:100,maxHeight:l},src:r,onClick:this.onImageClick,alt:""})));const m=(0,Ye.D4)(i["og:description"]||""),u=null!==(s=null===(n=i["og:title"])||void 0===n?void 0:n.trim())&&void 0!==s?s:"",h=a.createElement("a",{href:this.props.link,target:"_blank",rel:"noreferrer noopener"},u),p=(null===(o=y.A.get())||void 0===o?void 0:o.needsUrlTooltips())&&this.props.link!==u;return a.createElement("div",{className:"mx_LinkPreviewWidget"},a.createElement("div",{className:"mx_LinkPreviewWidget_wrapImageCaption"},d,a.createElement("div",{className:"mx_LinkPreviewWidget_caption"},a.createElement("div",{className:"mx_LinkPreviewWidget_title"},p?a.createElement(w,{tooltip:new URL(this.props.link,window.location.href).toString()},h):h,i["og:site_name"]&&a.createElement("span",{className:"mx_LinkPreviewWidget_siteName"}," - "+i["og:site_name"])),a.createElement("div",{className:"mx_LinkPreviewWidget_description"},a.createElement(_.XZ,null,m)))),this.props.children)}}var et=s("./src/hooks/useAsyncMemo.ts");const tt=(e,t,s)=>Promise.all(t.map(async t=>{try{var n;const o=await e.getUrlPreview(t,s);if(null!=o&&null!==(n=o["og:image"])&&void 0!==n&&n.startsWith("mxc://")||null!=o&&o["og:description"]||null!=o&&o["og:title"])return[t,o]}catch(e){e instanceof c.MatrixError&&404===e.httpStatus?l.vF.debug("Failed to get URL preview: ",e):l.vF.error("Failed to get URL preview: ",e)}})).then(e=>e.filter(Boolean)),st=({links:e,mxEvent:t,onCancelClick:s})=>{const n=(0,a.useContext)(W.Ay),[o,i]=(0,qe.X)(),[r]=(0,z.E)(t),l=t.getTs(),c=(0,et.e)(async()=>tt(n,e,l),[e,l],[]),d=o?c:c.slice(0,2);let m;return c.length>2&&(m=a.createElement(ye.A,{onClick:i},o?(0,Q._t)("action|collapse"):(0,Q._t)("timeline|url_preview|show_n_more",{count:c.length-d.length}))),a.createElement("div",{className:"mx_LinkPreviewGroup"},d.map(([e,n],o)=>a.createElement(Xe,{mediaVisible:r,key:e,link:e,preview:n,mxEvent:t},0===o?a.createElement(ye.A,{className:"mx_LinkPreviewGroup_hide",onClick:s,"aria-label":(0,Q._t)("timeline|url_preview|close")},a.createElement(Ge.A,{width:"20px",height:"20px"})):void 0)),m)};var nt=s("./src/linkify-matrix.ts"),ot=s("./src/utils/Reply.ts"),it=s("./src/components/views/rooms/wysiwyg_composer/index.ts");class rt extends a.Component{constructor(...e){super(...e),(0,i.A)(this,"contentRef",(0,a.createRef)()),(0,i.A)(this,"state",{links:[],widgetHidden:!1}),(0,i.A)(this,"onCancelClick",()=>{this.setState({widgetHidden:!0}),s.g.localStorage&&s.g.localStorage.setItem("hide_preview_"+this.props.mxEvent.getId(),"1"),this.forceUpdate()}),(0,i.A)(this,"onEmoteSenderClick",()=>{const e=this.props.mxEvent;Z.A.dispatch({action:ee.r.ComposerInsert,userId:e.getSender(),timelineRenderingType:this.context.timelineRenderingType})}),(0,i.A)(this,"onBodyLinkClick",e=>{let t=e.target;if(t.classList.contains(nt.fF.className))return;if("A"!==t.nodeName&&(t=t.closest("a")),!t)return;const s=(0,I.uK)(t.href);s!==t.href&&(e.preventDefault(),window.location.hash=s)}),(0,i.A)(this,"getEventTileOps",()=>({isWidgetHidden:()=>this.state.widgetHidden,unhideWidget:()=>{this.setState({widgetHidden:!1}),s.g.localStorage&&s.g.localStorage.removeItem("hide_preview_"+this.props.mxEvent.getId())}})),(0,i.A)(this,"onStarterLinkClick",(e,t)=>{t.preventDefault();const s=X.J.sharedInstance();if(!s.hasManager())return void s.openNoManagerDialog();const n=s.getPrimaryManager(),o=null==n?void 0:n.getScalarClient();null==o||o.connect().then(()=>{const t=o.getStarterLink(e),s=n.uiUrl,{finished:i}=Y.Ay.createDialog(te.A,{title:(0,Q._t)("timeline|scalar_starter_link|dialog_title"),description:a.createElement("div",null,(0,Q._t)("timeline|scalar_starter_link|dialog_description",{integrationsUrl:s})),button:(0,Q._t)("action|continue")});i.then(([e])=>{if(!e)return;const s=window.screen.width>1024?1024:window.screen.width,n=window.screen.height>800?800:window.screen.height,o=(window.screen.width-s)/2,i=`height=${n}, width=${s}, top=${(window.screen.height-n)/2}, left=${o},`;window.open(t,"_blank",i).opener=null})})}),(0,i.A)(this,"openHistoryDialog",async()=>{Y.Ay.createDialog(Re,{mxEvent:this.props.mxEvent})})}componentDidMount(){this.props.editState||this.applyFormatting()}applyFormatting(){this.calculateUrlPreview()}componentDidUpdate(e){if(!this.props.editState){const t=e.editState&&!this.props.editState,s=e.replacingEventId!==this.props.replacingEventId,n=e.showUrlPreview!==this.props.showUrlPreview;(s||t||n)&&this.applyFormatting()}}shouldComponentUpdate(e,t){return e.mxEvent.getId()!==this.props.mxEvent.getId()||e.highlights!==this.props.highlights||e.replacingEventId!==this.props.replacingEventId||e.highlightLink!==this.props.highlightLink||e.showUrlPreview!==this.props.showUrlPreview||e.editState!==this.props.editState||t.links!==this.state.links||t.widgetHidden!==this.state.widgetHidden||e.isSeeingThroughMessageHiddenForModeration!==this.props.isSeeingThroughMessageHiddenForModeration}calculateUrlPreview(){if(this.props.showUrlPreview&&this.contentRef.current){let e=this.findLinks([this.contentRef.current]);if(e.length){if(e=Array.from(new Set(e)),this.setState({links:e}),window.localStorage){const e=!!window.localStorage.getItem("hide_preview_"+this.props.mxEvent.getId());this.setState({widgetHidden:e})}}else this.state.links.length&&this.setState({links:[]})}}findLinks(e){let t=[];for(let s=0;s<e.length;s++){const n=e[s];if("A"===n.tagName&&n.getAttribute("href"))this.isLinkPreviewable(n)&&t.push(n.getAttribute("href"));else{if("PRE"===n.tagName||"CODE"===n.tagName||"BLOCKQUOTE"===n.tagName)continue;n.children&&n.children.length&&(t=t.concat(this.findLinks(n.children)))}}return t}isLinkPreviewable(e){var t,s,n,o;const i=null!==(t=e.getAttribute("href"))&&void 0!==t?t:"";if(!i.startsWith("http://")&&!i.startsWith("https://"))return!1;const r=e.getAttribute("href"),a=null==r||null===(s=r.match(/^https?:\/\/(.*?)(\/|$)/))||void 0===s?void 0:s[1];return!(!a||(0,I.aW)(a))&&(!(null===(n=e.textContent)||void 0===n||!n.includes("/"))||(null===(o=e.textContent)||void 0===o||!o.toLowerCase().trim().startsWith(a.toLowerCase())))}renderEditedMarker(){const e=this.props.mxEvent.replacingEventDate(),t=e&&(0,q.Yq)(e);return a.createElement(ye.A,{className:"mx_EventTile_edited",onClick:this.openHistoryDialog,"aria-label":(0,Q._t)("timeline|edits|tooltip_label",{date:t}),title:(0,Q._t)("timeline|edits|tooltip_title",{date:t}),caption:(0,Q._t)("timeline|edits|tooltip_sub")},a.createElement("span",null,`(${(0,Q._t)("common|edited")})`))}renderPendingModerationMarker(){let e;const t=this.props.mxEvent.messageVisibility();switch(t.visible){case!0:throw new Error("renderPendingModerationMarker should only be applied to hidden messages");case!1:e=t.reason?(0,Q._t)("timeline|pending_moderation_reason",{reason:t.reason}):(0,Q._t)("timeline|pending_moderation")}return a.createElement("span",{className:"mx_EventTile_pendingModeration"},`(${e})`)}render(){if(this.props.editState){return d.A.getValue("feature_wysiwyg_composer")?a.createElement(it.q_,{editorStateTransfer:this.props.editState,className:"mx_EventTile_content"}):a.createElement(Je,{editState:this.props.editState,className:"mx_EventTile_content"})}const e=this.props.mxEvent,t=e.getContent(),s=t.msgtype===c.MsgType.Notice,n=t.msgtype===c.MsgType.Emote,o=[c.MsgType.Image,c.MsgType.File,c.MsgType.Audio,c.MsgType.Video].includes(t.msgtype),i=this.props.replacingEventId||this.props.isSeeingThroughMessageHiddenForModeration||n,r=!e.replacingEvent()&&!!(0,ot.Ul)(e);let l,m=a.createElement(G,{as:i?"span":"div",includeDir:!1,mxEvent:e,content:t,stripReply:r,linkify:!0,highlights:this.props.highlights,ref:this.contentRef,renderTooltipsForAmbiguousLinks:!0,renderKeywordPills:!0,renderMentionPills:!0,renderCodeBlocks:!0,renderSpoilers:!0});return this.props.replacingEventId&&(m=a.createElement("div",{dir:"auto",className:"mx_EventTile_annotated"},m,this.renderEditedMarker())),this.props.isSeeingThroughMessageHiddenForModeration&&(m=a.createElement("div",{dir:"auto",className:"mx_EventTile_annotated"},m,this.renderPendingModerationMarker())),this.props.highlightLink?m=a.createElement("a",{href:this.props.highlightLink},m):t.data&&"string"==typeof t.data["org.matrix.neb.starter_link"]&&(m=a.createElement(ye.A,{kind:"link_inline",onClick:this.onStarterLinkClick.bind(this,t.data["org.matrix.neb.starter_link"])},m)),this.state.links.length&&!this.state.widgetHidden&&this.props.showUrlPreview&&(l=a.createElement(st,{links:this.state.links,mxEvent:this.props.mxEvent,onCancelClick:this.onCancelClick})),n?a.createElement("div",{id:this.props.id,className:"mx_MEmoteBody mx_EventTile_content",onClick:this.onBodyLinkClick,dir:"auto"},"* ",a.createElement("span",{className:"mx_MEmoteBody_sender",onClick:this.onEmoteSenderClick},e.sender?e.sender.name:e.getSender())," ",m,l):s?a.createElement("div",{id:this.props.id,className:"mx_MNoticeBody mx_EventTile_content",onClick:this.onBodyLinkClick},m,l):o?a.createElement("div",{id:this.props.id,className:"mx_MTextBody mx_EventTile_caption",onClick:this.onBodyLinkClick},m,l):a.createElement("div",{id:this.props.id,className:"mx_MTextBody mx_EventTile_content",onClick:this.onBodyLinkClick},m,l)}}(0,i.A)(rt,"contextType",Fe.Ay);var at=s("./src/components/views/messages/MImageBody.tsx"),lt=s("./src/components/views/messages/MFileBody.tsx"),ct=s("./src/components/views/messages/MAudioBody.tsx"),dt=s("./src/components/views/messages/MVoiceMessageBody.tsx");class mt extends a.PureComponent{render(){return!this.props.forExport&&(0,Te.Mp)(this.props.mxEvent)?a.createElement(dt.A,this.props):a.createElement(ct.A,this.props)}}var ut=s("./node_modules/blurhash/dist/esm/index.js"),ht=s("./src/components/views/elements/InlineSpinner.tsx"),pt=s("./src/utils/image-media.ts"),gt=s("./src/settings/enums/ImageSize.ts"),vt=s("./src/components/views/messages/shared/MediaProcessingError.tsx"),_t=s("./src/components/views/messages/HiddenMediaPlaceholder.tsx");class ft extends a.PureComponent{constructor(...e){super(...e),(0,i.A)(this,"videoRef",a.createRef()),(0,i.A)(this,"sizeWatcher",void 0),(0,i.A)(this,"state",{fetchingData:!1,decryptedUrl:null,decryptedThumbnailUrl:null,decryptedBlob:null,error:null,posterLoading:!1,blurhashUrl:null}),(0,i.A)(this,"onClick",()=>{this.props.setMediaVisible(!0)}),(0,i.A)(this,"videoOnPlay",async()=>{this.hasContentUrl()||this.state.fetchingData||this.state.error||(this.setState({fetchingData:!0}),this.props.mediaEventHelper.media.isEncrypted?this.setState({decryptedUrl:await this.props.mediaEventHelper.sourceUrl.value,decryptedBlob:await this.props.mediaEventHelper.sourceBlob.value,fetchingData:!1},()=>{this.videoRef.current&&this.videoRef.current.play()}):this.setState({error:"No file given in content"}))}),(0,i.A)(this,"getFileBody",()=>this.props.forExport?null:this.showFileBody&&a.createElement(lt.Ay,(0,o.A)({},this.props,{showGenericPlaceholder:!1})))}getContentUrl(){var e,t;const s=this.props.mxEvent.getContent();if(this.props.forExport)return null!==(e=null===(t=s.file)||void 0===t?void 0:t.url)&&void 0!==e?e:s.url;const n=(0,Ze.mediaFromContent)(s);var o,i;return n.isEncrypted?null!==(o=this.state.decryptedUrl)&&void 0!==o?o:void 0:null!==(i=n.srcHttp)&&void 0!==i?i:void 0}hasContentUrl(){const e=this.getContentUrl();return!!e&&!e.startsWith("data:")}getThumbUrl(){if(this.props.forExport)return null;const e=this.props.mxEvent.getContent(),t=(0,Ze.mediaFromContent)(e);return t.isEncrypted&&this.state.decryptedThumbnailUrl?this.state.decryptedThumbnailUrl:this.state.posterLoading?this.state.blurhashUrl:t.hasThumbnail?t.thumbnailHttp:null}loadBlurhash(){var e;const t=null===(e=this.props.mxEvent.getContent())||void 0===e?void 0:e.info;if(!t[pt.f])return;const s=document.createElement("canvas"),{w:n,h:o}=(0,gt.P)(d.A.getValue("Images.size"),{w:t.w,h:t.h});s.width=n,s.height=o;const i=(0,ut.D4)(t[pt.f],n,o),r=s.getContext("2d"),a=r.createImageData(n,o);a.data.set(i),r.putImageData(a,0,0),this.setState({blurhashUrl:s.toDataURL(),posterLoading:!0});const l=this.props.mxEvent.getContent(),c=(0,Ze.mediaFromContent)(l);if(c.hasThumbnail){const e=new Image;e.onload=()=>{this.setState({posterLoading:!1})},e.src=c.thumbnailHttp}}async downloadVideo(){var e;try{this.loadBlurhash()}catch(e){l.vF.error("Failed to load blurhash",e)}if(null!==(e=this.props.mediaEventHelper)&&void 0!==e&&e.media.isEncrypted&&null===this.state.decryptedUrl)try{const e=d.A.getValue("autoplayVideo"),s=await this.props.mediaEventHelper.thumbnailUrl.value;if(e)l.vF.log("Preloading video"),this.setState({decryptedUrl:await this.props.mediaEventHelper.sourceUrl.value,decryptedThumbnailUrl:s,decryptedBlob:await this.props.mediaEventHelper.sourceBlob.value});else{var t;l.vF.log("NOT preloading video");const e=this.props.mxEvent.getContent();let n=null==e||null===(t=e.info)||void 0===t?void 0:t.mimetype;"video/quicktime"==n&&(n="video/mp4"),this.setState({decryptedUrl:`data:${n},`,decryptedThumbnailUrl:s||`data:${n},`,decryptedBlob:null})}}catch(e){l.vF.warn("Unable to decrypt attachment: ",e),this.setState({error:e})}}async componentDidMount(){this.sizeWatcher=d.A.watchSetting("Images.size",null,()=>{this.forceUpdate()}),this.props.mediaVisible&&await this.downloadVideo()}async componentDidUpdate(e){!e.mediaVisible&&this.props.mediaVisible&&await this.downloadVideo()}componentWillUnmount(){d.A.unwatchSetting(this.sizeWatcher)}get showFileBody(){return this.context.timelineRenderingType!==Fe.Ae.Room&&this.context.timelineRenderingType!==Fe.Ae.Pinned&&this.context.timelineRenderingType!==Fe.Ae.Search}render(){var e,t,s,n;const o=this.props.mxEvent.getContent(),i=!this.props.inhibitInteraction&&d.A.getValue("autoplayVideo");let r;null!==(e=o.info)&&void 0!==e&&e.w&&null!==(t=o.info)&&void 0!==t&&t.h&&(r=`${o.info.w}/${o.info.h}`);const{w:l,h:c}=(0,gt.P)(d.A.getValue("Images.size"),{w:null===(s=o.info)||void 0===s?void 0:s.w,h:null===(n=o.info)||void 0===n?void 0:n.h}),m=a.createElement("div",{style:{width:l,height:c}});if(null!==this.state.error)return a.createElement(vt.A,{className:"mx_MVideoBody"},(0,Q._t)("timeline|m.video|error_decrypting"));if(!this.props.mediaVisible)return a.createElement("span",{className:"mx_MVideoBody"},a.createElement("div",{className:"mx_MVideoBody_container",style:{width:l,height:c,aspectRatio:r}},a.createElement(_t.Q,{onClick:this.onClick},(0,Q._t)("timeline|m.video|show_video"))));if(!this.props.forExport&&void 0!==o.file&&null===this.state.decryptedUrl&&i)return a.createElement("span",{className:"mx_MVideoBody"},a.createElement("div",{className:"mx_MVideoBody_container",style:{maxWidth:l,maxHeight:c,aspectRatio:r}},a.createElement(ht.A,null)),m);const u=this.getContentUrl(),h=this.getThumbUrl();let p,g="metadata";o.info&&h&&(p=h,g="none");const v=this.getFileBody();return a.createElement("span",{className:"mx_MVideoBody"},a.createElement("div",{className:"mx_MVideoBody_container",style:{maxWidth:l,maxHeight:c,aspectRatio:r}},a.createElement("video",{className:"mx_MVideoBody",ref:this.videoRef,src:u,title:o.body,controls:!this.props.inhibitInteraction,controlsList:"nodownload",preload:g,muted:i,autoPlay:i,poster:p,onPlay:this.videoOnPlay}),m),v)}}(0,i.A)(ft,"contextType",Fe.Ay);const yt=e=>{const[t,s]=(0,z.E)(e.mxEvent);return a.createElement(ft,(0,o.A)({mediaVisible:t,setMediaVisible:s},e))};class bt extends at.R{constructor(...e){super(...e),(0,i.A)(this,"onClick",e=>{e.preventDefault(),this.props.mediaVisible||this.props.setMediaVisible(!0)})}wrapImage(e,t){let s;return this.props.mediaVisible||(s=this.onClick),a.createElement("div",{className:"mx_MStickerBody_wrapper",onClick:s}," ",t," ")}getPlaceholder(e,t){var s;return null!==(s=this.props.mxEvent.getContent().info)&&void 0!==s&&s[pt.f]?super.getPlaceholder(e,t):a.createElement("img",{"aria-hidden":!0,alt:"",className:"mx_MStickerBody_placeholder",src:"img/icons-show-stickers.f790079.svg",width:"80",height:"80",onMouseEnter:this.onImageEnter,onMouseLeave:this.onImageLeave})}getTooltipProps(){var e;const t=this.props.mxEvent&&this.props.mxEvent.getContent();return null!=t&&t.body&&null!==(e=t.info)&&void 0!==e&&e.w?{placement:"right",description:t.body}:null}getFileBody(){return null}getBanner(e){return null}}const Et=e=>{const[t,s]=(0,z.E)(e.mxEvent);return a.createElement(bt,(0,o.A)({mediaVisible:t,setMediaVisible:s},e))};var wt=s("./src/components/views/messages/MPollBody.tsx"),xt=s("./res/img/element-icons/room/composer/poll.svg"),At=s("./src/TextForEvent.tsx"),St=s("./src/components/views/typography/Caption.tsx");const Ct=["mxEvent","ref"],Rt=e=>{const t=(0,a.useContext)(W.Ay),[s,n]=(0,a.useState)(),[o,i]=(0,a.useState)(!1),r=(e=>{const t=e.getRelation();return null==t?void 0:t.event_id})(e);return(0,a.useEffect)(()=>{var o;const a=t.getRoom(e.getRoomId());if(s||!a||!r)return;const d=a.getUnfilteredTimelineSet(),m=null==d||null===(o=d.getTimelineForEvent(r))||void 0===o?void 0:o.getEvents().find(e=>e.getId()===r);m?m.getSender()===e.getSender()&&n(m):(async(s,o)=>{i(!0);try{const i=await t.fetchRoomEvent(s,o),r=new c.MatrixEvent(i);null==a||a.processPollEvents([r,e]),r.getSender()===e.getSender()&&n(r)}catch(e){l.vF.error("Failed to fetch related poll start event",e)}finally{i(!1)}})(a.roomId,r)},[e,r,s,t]),{pollStartEvent:s,isLoadingPollStartEvent:o}},kt=e=>{let{mxEvent:t,ref:s}=e,i=(0,n.A)(e,Ct);const r=(0,W.nH)(),{pollStartEvent:l,isLoadingPollStartEvent:d}=Rt(t);if(!l){const e=c.M_TEXT.findIn(t.getContent())||(0,At.Rd)(t,r);return a.createElement(a.Fragment,null,a.createElement(xt.I,{className:"mx_MPollEndBody_icon"}),!d&&e)}return a.createElement("div",{className:"mx_MPollEndBody",ref:s},a.createElement(St.H,null,(0,Q._t)("timeline|m.poll.end|ended")),a.createElement(wt.Ay,(0,o.A)({mxEvent:l},i)))};var It=s("./node_modules/matrix-js-sdk/src/randomstring.ts"),Pt=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/Tooltip.js"),Tt=s("./src/utils/location/index.ts"),Ot=s("./src/components/views/location/index.tsx"),Mt=s("./src/utils/connection.ts");class Nt extends a.Component{constructor(e){super(e),(0,i.A)(this,"unmounted",!1),(0,i.A)(this,"mapId",void 0),(0,i.A)(this,"reconnectedListener",void 0),(0,i.A)(this,"onClick",()=>{Y.Ay.createDialog(Ot.He,{matrixClient:this.context,mxEvent:this.props.mxEvent},"mx_LocationViewDialog_wrapper",!1,!0)}),(0,i.A)(this,"clearError",()=>{this.context.off(c.ClientEvent.Sync,this.reconnectedListener),this.setState({error:void 0})}),(0,i.A)(this,"onError",e=>{this.unmounted||(this.setState({error:e}),this.context.off(c.ClientEvent.Sync,this.reconnectedListener),this.context.on(c.ClientEvent.Sync,this.reconnectedListener))});const t=`${e.mxEvent.getId()}_${(0,It.US)(8)}`;this.mapId=`mx_MLocationBody_${t}`,this.reconnectedListener=(0,Mt.x)(this.clearError),this.state={}}componentDidMount(){this.unmounted=!1}componentWillUnmount(){this.unmounted=!0,this.context.off(c.ClientEvent.Sync,this.reconnectedListener)}render(){return this.state.error?a.createElement(Dt,{error:this.state.error,event:this.props.mxEvent}):a.createElement(jt,{mxEvent:this.props.mxEvent,mapId:this.mapId,onError:this.onError,tooltip:(0,Q._t)("location_sharing|expand_map"),onClick:this.onClick})}}(0,i.A)(Nt,"contextType",W.Ay);const Dt=({error:e,event:t})=>{var s,n;const o=null==e?void 0:e.message,i=`${(0,Q._t)("location_sharing|failed_load_map")}: ${(0,Tt.CZ)(o)}`,r=(0,Tt.qy)(t.getContent())?(0,Q._t)("timeline|m.location|self_location")+(null===(s=t.getContent())||void 0===s?void 0:s.body):(0,Q._t)("timeline|m.location|location")+(null===(n=t.getContent())||void 0===n?void 0:n.body);return a.createElement("div",{className:"mx_EventTile_body mx_MLocationBody"},a.createElement("span",{className:o!==Tt.$X.MapStyleUrlNotConfigured?"mx_EventTile_tileError":""},i),a.createElement("br",null),r)},jt=({mxEvent:e,mapId:t,tooltip:s,onError:n,onClick:o})=>{const i=(0,Tt.qy)(e.getContent())?e.sender:void 0,r=(0,Tt.jm)(e),l=a.createElement(Ot.T5,{id:t,centerGeoUri:r,onClick:o,onError:n,className:"mx_MLocationBody_map"},({map:e})=>a.createElement(Ot.U3,{map:e,id:`${t}-marker`,geoUri:r,roomMember:null!=i?i:void 0}));return a.createElement("div",{className:"mx_MLocationBody"},a.createElement(Pt.m,{label:s},a.createElement("div",{className:"mx_MLocationBody_map"},l)))};class Ut extends a.Component{constructor(...e){super(...e),(0,i.A)(this,"onAllowClick",e=>{var t,s;e.preventDefault(),e.stopPropagation();const n=`mx_mjolnir_render_${this.props.mxEvent.getRoomId()}__${this.props.mxEvent.getId()}`;localStorage.setItem(n,"true"),null===(t=(s=this.props).onMessageAllowed)||void 0===t||t.call(s)})}render(){return a.createElement("div",{className:"mx_MjolnirBody"},a.createElement("i",null,(0,Q._t)("timeline|mjolnir|message_hidden",{},{a:e=>a.createElement(ye.A,{kind:"link_inline",onClick:this.onAllowClick},e)})))}}var Ft=s("./src/hooks/useEventEmitter.ts"),Lt=s("./src/utils/beacon/index.ts"),Bt=s("./src/components/views/beacon/displayStatus.ts"),Vt=s("./src/components/views/beacon/BeaconStatus.tsx"),Ht=s("./src/components/views/beacon/OwnBeaconStatus.tsx"),Wt=s("./src/components/views/location/MapError.tsx"),$t=s("./src/components/views/location/MapFallback.tsx");const zt=(0,a.lazy)(()=>Promise.all([s.e(927),s.e(9963)]).then(s.bind(s,"./src/components/views/beacon/BeaconViewDialog.tsx")));function Kt(e){return a.createElement(a.Suspense,{fallback:a.createElement(ie.A,null)},a.createElement(zt,e))}const Jt=({mxEvent:e,getRelationsForEvent:t,ref:s})=>{const{beacon:n,isLive:o,latestLocationState:i,waitingToStart:r}=(e=>{const t=(0,Lt.dK)(e),s=(0,Ft.dF)(t,c.BeaconEvent.LivenessChange,()=>null==t?void 0:t.isLive),n=(0,Ft.dF)(t,c.BeaconEvent.LocationUpdate,()=>null==t?void 0:t.latestLocationState);if(!t)return{};const o=!!t&&(0,Lt.R$)(t),{description:i}=t.beaconInfo;return{beacon:t,description:i,isLive:s,waitingToStart:o,latestLocationState:n}})(e),l=(e=>{const[t,s]=(0,a.useState)(`${e}_${(0,It.US)(8)}`);return(0,a.useEffect)(()=>{s(`${e}_${(0,It.US)(8)}`)},[e]),t})(e.getId()),d=(0,a.useContext)(W.Ay),[m,u]=(0,a.useState)(),h=(null==m?void 0:m.message)===Tt.$X.MapStyleUrlNotConfigured||(null==m?void 0:m.message)===Tt.$X.MapStyleUrlNotReachable,p=(0,Bt.n)(!!o,i,h?void 0:m,r),g=(0,Tt.qy)(e.getContent())?e.sender:void 0,v=(null==n?void 0:n.beaconInfoOwner)===d.getUserId();((e,t,s)=>{const n=(0,a.useCallback)((n,o)=>{var i;const r=s?s(e.getId(),c.RelationType.Reference,c.M_BEACON.name):void 0;null==r||null===(i=r.getRelations())||void 0===i||i.forEach(e=>{t.redactEvent(e.getRoomId(),e.getId(),void 0,o.getContent())})},[e,t,s]);(0,a.useEffect)(()=>(e.addListener(c.MatrixEventEvent.BeforeRedaction,n),()=>{e.removeListener(c.MatrixEventEvent.BeforeRedaction,n)}),[e,n])})(e,d,t);const _=()=>{p===Bt.T.Active&&Y.Ay.createDialog(Kt,{roomId:e.getRoomId(),matrixClient:d,initialFocusedBeacon:n},"mx_BeaconViewDialog_wrapper",!1,!0)};let f;return f=p===Bt.T.Active&&!h&&null!=i&&i.uri?a.createElement(Ot.T5,{id:l,centerGeoUri:i.uri,onError:u,onClick:_,className:"mx_MBeaconBody_map"},({map:e})=>a.createElement(Ot.U3,{map:e,id:`${l}-marker`,geoUri:i.uri,roomMember:null!=g?g:void 0,useMemberColor:!0})):h?a.createElement(Wt.p,{error:m.message,onClick:_,className:U()("mx_MBeaconBody_mapError",{mx_MBeaconBody_mapErrorInteractive:p===Bt.T.Active}),isMinimised:!0}):a.createElement($t.A,{isLoading:p===Bt.T.Loading,className:"mx_MBeaconBody_map mx_MBeaconBody_mapFallback"}),a.createElement("div",{className:"mx_MBeaconBody",ref:s},f,v?a.createElement(Ht.A,{className:"mx_MBeaconBody_chin",beacon:n,displayStatus:p,withIcon:!0}):a.createElement(Vt.A,{className:"mx_MBeaconBody_chin",beacon:n,displayStatus:p,label:(0,Q._t)("timeline|m.beacon_info|view_live_location"),withIcon:!0}))};var Gt=s("./src/components/views/messages/DecryptionFailureBody.tsx");const qt=["WrappedBodyType"];function Yt(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function Zt(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Yt(Object(s),!0).forEach(function(t){(0,i.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Yt(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const Qt=new Map([[c.MsgType.Text,rt],[c.MsgType.Notice,rt],[c.MsgType.Emote,rt],[c.MsgType.Image,at.A],[c.MsgType.File,lt.Ay],[c.MsgType.Audio,mt],[c.MsgType.Video,yt]]),Xt=new Map([[c.EventType.Sticker,Et],[c.M_POLL_START.name,wt.Ay],[c.M_POLL_START.altName,wt.Ay],[c.M_POLL_END.name,kt],[c.M_POLL_END.altName,kt],[c.M_BEACON_INFO.name,Jt],[c.M_BEACON_INFO.altName,Jt]]);class es extends a.Component{constructor(e){super(e),(0,i.A)(this,"body",(0,a.createRef)()),(0,i.A)(this,"mediaHelper",void 0),(0,i.A)(this,"bodyTypes",new Map(Qt.entries())),(0,i.A)(this,"evTypes",new Map(Xt.entries())),(0,i.A)(this,"getEventTileOps",()=>{var e,t;return(null===(e=this.body.current)||void 0===e||null===(t=e.getEventTileOps)||void 0===t?void 0:t.call(e))||null}),(0,i.A)(this,"onDecrypted",()=>{var e;p.j.isEligible(this.props.mxEvent)&&(null===(e=this.mediaHelper)||void 0===e||e.destroy(),this.mediaHelper=new p.j(this.props.mxEvent))}),(0,i.A)(this,"onTileUpdate",()=>{this.forceUpdate()}),(0,i.A)(this,"validateImageOrVideoMimetype",e=>{var t,s,n;const o=null!==(t=e.filename)&&void 0!==t?t:e.body;if(!o)return l.vF.log("Failed to validate image/video content, filename null"),!1;if(!this.validateThumbnailMimetype(e))return l.vF.log("Failed to validate file/image thumbnail"),!1;const i=null!==(s=r.A.getType(o))&&void 0!==s?s:void 0,a=this.parseMajorMimetype(i);if(!i||!this.validateAllowedMimetype(i,["image","video"]))return l.vF.log("Failed to validate image/video content, invalid or missing extension"),!1;const c=null===(n=e.info)||void 0===n?void 0:n.mimetype;if(c){const e=this.parseMajorMimetype(c);if(!this.validateAllowedMimetype(c,["image","video"])||a!==e)return l.vF.log("Failed to validate image/video content, invalid or missing mimetype"),!1}return!0}),(0,i.A)(this,"validateStickerMimetype",e=>{var t;if(!this.validateThumbnailMimetype(e))return l.vF.log("Failed to validate sticker thumbnail"),!1;const s=null===(t=e.info)||void 0===t?void 0:t.mimetype;return!(s&&!this.validateAllowedMimetype(s,["image"]))||(l.vF.log("Failed to validate image/video content, invalid or missing mimetype/extensions"),!1)}),(0,i.A)(this,"validateThumbnailMimetype",e=>{var t;const s=null===(t=e.info)||void 0===t||null===(t=t.thumbnail_info)||void 0===t?void 0:t.mimetype;return!s||this.validateAllowedMimetype(s,["image"])}),(0,i.A)(this,"validateAllowedMimetype",(e,t)=>{const s=this.parseMajorMimetype(e);return!!s&&t.includes(s)}),p.j.isEligible(this.props.mxEvent)&&(this.mediaHelper=new p.j(this.props.mxEvent)),this.updateComponentMaps()}componentDidMount(){this.props.mxEvent.addListener(c.MatrixEventEvent.Decrypted,this.onDecrypted)}componentWillUnmount(){var e;this.props.mxEvent.removeListener(c.MatrixEventEvent.Decrypted,this.onDecrypted),null===(e=this.mediaHelper)||void 0===e||e.destroy()}componentDidUpdate(e){var t;this.props.mxEvent!==e.mxEvent&&p.j.isEligible(this.props.mxEvent)&&(null===(t=this.mediaHelper)||void 0===t||t.destroy(),this.mediaHelper=new p.j(this.props.mxEvent));this.updateComponentMaps()}updateComponentMaps(){this.bodyTypes=new Map(Qt.entries());for(const[t,s]of Object.entries(null!==(e=this.props.overrideBodyTypes)&&void 0!==e?e:{})){var e;this.bodyTypes.set(t,s)}this.evTypes=new Map(Xt.entries());for(const[e,s]of Object.entries(null!==(t=this.props.overrideEventTypes)&&void 0!==t?t:{})){var t;this.evTypes.set(e,s)}}getMediaHelper(){return this.mediaHelper}parseMajorMimetype(e){return null==e?void 0:e.split("/")[0]}render(){const e=this.props.mxEvent.getContent(),t=this.props.mxEvent.getType(),s=e.msgtype;let n=u.A;if(this.props.mxEvent.isRedacted()||(n=this.props.mxEvent.isDecryptionFailure()?Gt.A:t&&this.evTypes.has(t)?this.evTypes.get(t):s&&this.bodyTypes.has(s)?this.bodyTypes.get(s):e.url?this.bodyTypes.get(c.MsgType.File):h,(n!==at.A&&n!=yt||this.validateImageOrVideoMimetype(e))&&(n!==Et||this.validateStickerMimetype(e))||(n=this.bodyTypes.get(c.MsgType.File)),(c.M_LOCATION.matches(t)||t===c.EventType.RoomMessage&&s===c.MsgType.Location)&&(n=Nt)),d.A.getValue("feature_mjolnir")){const e=`mx_mjolnir_render_${this.props.mxEvent.getRoomId()}__${this.props.mxEvent.getId()}`;if(!("true"===localStorage.getItem(e))){var i;const e=null===(i=this.props.mxEvent.getSender())||void 0===i?void 0:i.split(":").slice(1).join(":"),t=m.u.sharedInstance().isUserBanned(this.props.mxEvent.getSender()),s=e&&m.u.sharedInstance().isServerBanned(e);(t||s)&&(n=Ut)}}const r=[c.MsgType.Image,c.MsgType.File,c.MsgType.Audio,c.MsgType.Video].includes(s)&&e.filename&&e.filename!==e.body,l={ref:this.body,mxEvent:this.props.mxEvent,highlights:this.props.highlights,highlightLink:this.props.highlightLink,showUrlPreview:this.props.showUrlPreview,forExport:this.props.forExport,maxImageHeight:this.props.maxImageHeight,replacingEventId:this.props.replacingEventId,editState:this.props.editState,onMessageAllowed:this.onTileUpdate,permalinkCreator:this.props.permalinkCreator,mediaEventHelper:this.mediaHelper,getRelationsForEvent:this.props.getRelationsForEvent,isSeeingThroughMessageHiddenForModeration:this.props.isSeeingThroughMessageHiddenForModeration,inhibitInteraction:this.props.inhibitInteraction,id:this.props.id};return r?a.createElement(ts,(0,o.A)({},l,{WrappedBodyType:n})):n?a.createElement(n,l):null}}const ts=e=>{let{WrappedBodyType:t}=e,s=(0,n.A)(e,qt);return a.createElement("div",{className:"mx_EventTile_content"},a.createElement(t,s),a.createElement(rt,Zt(Zt({},s),{},{ref:void 0})))}},"./src/components/views/messages/MessageTimestamp.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>m});var n,o=s("./node_modules/react/index.js"),i=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/Tooltip.js"),r=s("./src/DateUtils.ts"),a=s("./src/languageHandler.tsx");function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)({}).hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e},l.apply(null,arguments)}var c=function(e,t){return o.createElement("svg",l({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 12 12",role:"presentation","aria-hidden":!0,ref:t},e),n||(n=o.createElement("path",{fill:"currentColor",d:"M2.638 9.363a4.7 4.7 0 0 1-1.033-1.507 4.6 4.6 0 0 1-.374-1.848q0-.998.372-1.859a5 5 0 0 1 1.022-1.524l.588.587a4.1 4.1 0 0 0-.838 1.258 3.8 3.8 0 0 0-.306 1.525q0 .81.306 1.527t.85 1.253zM3.9 8.1a3.2 3.2 0 0 1-.633-.944 2.8 2.8 0 0 1-.236-1.15q0-.626.235-1.16A3.2 3.2 0 0 1 3.9 3.9l.588.587a2.3 2.3 0 0 0-.453.682q-.165.386-.166.833 0 .448.166.832.165.384.453.679zm2.097-1.081q-.422 0-.719-.3a1 1 0 0 1-.297-.722q0-.422.3-.719a1 1 0 0 1 .722-.297q.422 0 .719.3t.297.722-.3.719a1 1 0 0 1-.722.297m2.09 1.069-.574-.575a2.14 2.14 0 0 0 .618-1.515 2.1 2.1 0 0 0-.618-1.51L8.1 3.9q.4.412.634.947.235.534.235 1.161 0 .615-.236 1.15a2.9 2.9 0 0 1-.645.93m1.276 1.275-.588-.588a3.84 3.84 0 0 0 1.156-2.77q0-.824-.31-1.533a4.3 4.3 0 0 0-.833-1.26l.587-.587q.65.663 1.022 1.524a4.6 4.6 0 0 1 .372 1.859q0 .986-.374 1.848a4.7 4.7 0 0 1-1.032 1.507"})))},d=(0,o.forwardRef)(c);class m extends o.Component{render(){const e=new Date(this.props.ts);let t;t=this.props.showRelative?(0,r.fw)(e,this.props.showTwelveHour):this.props.showFullDate?(0,r.Lu)(e,this.props.showTwelveHour,this.props.showSeconds):this.props.showSeconds?(0,r.GX)(e,this.props.showTwelveHour):(0,r.fU)(e,this.props.showTwelveHour);let s,n,l=(0,r.Lu)(e,this.props.showTwelveHour);if(void 0!==this.props.receivedTs){l=(0,a._t)("timeline|message_timestamp_sent_at",{dateTime:l});const e=new Date(this.props.receivedTs);s=(0,a._t)("timeline|message_timestamp_received_at",{dateTime:(0,r.Lu)(e,this.props.showTwelveHour)}),n=o.createElement(d,{className:"mx_MessageTimestamp_lateIcon",width:"16",height:"16"})}return o.createElement(i.m,{description:l,caption:s},o.createElement("span",{className:"mx_MessageTimestamp","aria-hidden":!0,"aria-live":"off"},n,t))}}},"./src/components/views/messages/RedactedBody.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>l});var n=s("./node_modules/react/index.js"),o=s("./src/languageHandler.tsx"),i=s("./src/contexts/MatrixClientContext.tsx"),r=s("./src/DateUtils.ts"),a=s("./src/settings/SettingsStore.ts");const l=({mxEvent:e,ref:t})=>{const s=(0,n.useContext)(i.Ay);let l=(0,o._t)("timeline|self_redaction");const c=e.getUnsigned(),d=c&&c.redacted_because&&c.redacted_because.sender;if(d&&d!==e.getSender()){const t=s.getRoom(e.getRoomId()),n=t&&t.getMember(d);l=(0,o._t)("timeline|redaction",{name:n?n.name:d})}const m=a.A.getValue("showTwelveHourTimestamps"),u=c.redacted_because?(0,r.Lu)(new Date(c.redacted_because.origin_server_ts),m):void 0,h=u?(0,o._t)("timeline|redacted|tooltip",{date:u}):void 0;return n.createElement("span",{className:"mx_RedactedBody",ref:t,title:h},l)}},"./src/components/views/messages/TimelineSeparator.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>i,W:()=>o});var n=s("./node_modules/react/index.js");let o=function(e){return e[e.None=0]="None",e[e.Date=1]="Date",e[e.LateEvent=2]="LateEvent",e}({});const i=({label:e,children:t})=>n.createElement("div",{className:"mx_TimelineSeparator",role:"separator","aria-label":e},n.createElement("hr",{role:"none"}),t,n.createElement("hr",{role:"none"}))},"./src/components/views/messages/shared/MediaProcessingError.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>i});var n=s("./node_modules/react/index.js"),o=s("./res/img/warning.svg");const i=({className:e,children:t})=>n.createElement("span",{className:e},n.createElement(o.I,{className:"mx_MediaProcessingError_Icon",width:"16",height:"16"}),t)},"./src/components/views/polls/PollOption.tsx":(e,t,s)=>{"use strict";s.d(t,{h:()=>g});var n,o=s("./node_modules/react/index.js"),i=s("./node_modules/classnames/index.js"),r=s.n(i),a=s("./src/languageHandler.tsx");function l(){return l=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var n in s)({}).hasOwnProperty.call(s,n)&&(e[n]=s[n])}return e},l.apply(null,arguments)}var c=function(e,t){return o.createElement("svg",l({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 12 12",role:"presentation","aria-hidden":!0,ref:t},e),n||(n=o.createElement("path",{fill:"currentColor",d:"M10.667 1.333H9.333V.667C9.333.3 9.033 0 8.667 0H3.333c-.366 0-.666.3-.666.667v.666H1.333C.6 1.333 0 1.933 0 2.667v.666c0 1.7 1.28 3.087 2.927 3.294A3.34 3.34 0 0 0 5.333 8.6v2.067h-2c-.366 0-.666.3-.666.666s.3.667.666.667h5.334c.366 0 .666-.3.666-.667 0-.366-.3-.666-.666-.666h-2V8.6a3.34 3.34 0 0 0 2.406-1.973C10.72 6.42 12 5.033 12 3.333v-.666c0-.734-.6-1.334-1.333-1.334m-9.334 2v-.666h1.334v2.546a2.01 2.01 0 0 1-1.334-1.88m9.334 0c0 .867-.56 1.6-1.334 1.88V2.667h1.334z"})))},d=(0,o.forwardRef)(c);var m=s("./src/components/views/elements/StyledRadioButton.tsx");const u=({isWinner:e,answer:t,voteCount:s,displayVoteCount:n})=>{const i=n?(0,a._t)("timeline|m.poll|count_of_votes",{count:s}):"";return o.createElement("div",{className:"mx_PollOption_content"},o.createElement("div",{className:"mx_PollOption_optionText"},t.text),o.createElement("div",{className:"mx_PollOption_optionVoteCount"},e&&o.createElement(d,{className:"mx_PollOption_winnerIcon"}),i))},h=({isChecked:e,children:t,answer:s})=>o.createElement("div",{className:r()("mx_PollOption_endedOption",{mx_PollOption_endedOptionWinner:e}),"data-value":s.id},t),p=({pollId:e,isChecked:t,children:s,answer:n,onOptionSelected:i})=>o.createElement(m.A,{className:"mx_PollOption_live-option",name:`poll_answer_select-${e}`,value:n.id,checked:t,onChange:()=>null==i?void 0:i(n.id)},s),g=({pollId:e,answer:t,voteCount:s,totalVoteCount:n,displayVoteCount:i,isEnded:a,isChecked:l,onOptionSelected:c})=>{const d=r()({mx_PollOption:!0,mx_PollOption_checked:l,mx_PollOption_ended:a}),m=a&&l,g=0===n?0:Math.round(100*s/n),v=a?h:p;return o.createElement("div",{className:d,onClick:()=>null==c?void 0:c(t.id)},o.createElement(v,{pollId:e,answer:t,isChecked:l,onOptionSelected:c},o.createElement(u,{isWinner:m,answer:t,voteCount:s,displayVoteCount:i})),o.createElement("div",{className:"mx_PollOption_popularityBackground"},o.createElement("div",{className:"mx_PollOption_popularityAmount",style:{width:`${g}%`}})))}},"./src/components/views/polls/pollHistory/PollHistory.tsx":(e,t,s)=>{"use strict";s.d(t,{a:()=>H});var n=s("./node_modules/react/index.js"),o=s("./src/languageHandler.tsx"),i=s("./node_modules/classnames/index.js"),r=s.n(i),a=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),l=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js");const c=["name","value","tabs","onFilterChange"],d=e=>{let{name:t,value:s,tabs:o,onFilterChange:i}=e,r=(0,l.A)(e,c);return n.createElement("fieldset",(0,a.A)({},r,{className:"mx_FilterTabGroup"}),o.map(({label:e,id:o})=>n.createElement("label",{key:o},n.createElement("input",{type:"radio",name:t,value:o,onChange:()=>i(o),checked:s===o}),n.createElement("span",null,e))))};var m=s("./src/components/views/elements/InlineSpinner.tsx"),u=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/Tooltip.js"),h=s("./res/img/element-icons/room/composer/poll.svg"),p=s("./src/DateUtils.ts");const g=({event:e,onClick:t})=>{const s=e.unstableExtensibleEvent;if(!s)return null;const i=(0,p.Pr)(e.getTs());return n.createElement("li",{className:"mx_PollListItem",onClick:t},n.createElement(u.m,{label:(0,o._t)("right_panel|poll|view_poll"),placement:"top",isTriggerInteractive:!1},n.createElement("div",{className:"mx_PollListItem_content"},n.createElement("span",null,i),n.createElement(h.I,{className:"mx_PollListItem_icon"}),n.createElement("span",{className:"mx_PollListItem_question"},s.question.text))))};var v=s("./node_modules/matrix-js-sdk/src/matrix.ts"),_=s("./src/components/views/messages/MPollBody.tsx"),f=s("./src/components/views/polls/PollOption.tsx"),y=s("./src/components/views/typography/Caption.tsx");const b=(e,t)=>{const s=(0,_.hJ)((0,_.jx)(t)),n=(0,_.B0)(s,e.pollEvent),o=[...n.values()].reduce((e,t)=>e+t,0),i=Math.max(...n.values());return{totalVoteCount:o,winningAnswers:e.pollEvent.answers.filter(e=>n.get(e.id)===i).map(e=>({answer:e,voteCount:n.get(e.id)||0}))}},E=({event:e,poll:t,onClick:s})=>{const i=t.pollEvent,{winningAnswers:r,totalVoteCount:a}=(e=>{const[t,s]=(0,n.useState)({totalVoteCount:0});return(0,n.useEffect)(()=>{const t=t=>s(b(e,t));return e.on(v.PollEvent.Responses,t),(async()=>{const t=await e.getResponses();s(b(e,t))})(),()=>{e.off(v.PollEvent.Responses,t)}},[e]),t})(t);if(!i)return null;const l=(0,p.Pr)(e.getTs());return n.createElement("li",{className:"mx_PollListItemEnded",onClick:s},n.createElement(u.m,{label:(0,o._t)("right_panel|poll|view_poll"),placement:"top",isTriggerInteractive:!1},n.createElement("div",{className:"mx_PollListItemEnded_content"},n.createElement("div",{className:"mx_PollListItemEnded_title"},n.createElement(h.I,{className:"mx_PollListItemEnded_icon"}),n.createElement("span",{className:"mx_PollListItemEnded_question"},i.question.text),n.createElement(y.H,null,l)),!(null==r||!r.length)&&n.createElement("div",{className:"mx_PollListItemEnded_answers"},null==r?void 0:r.map(({answer:e,voteCount:s})=>n.createElement(f.h,{key:e.id,answer:e,voteCount:s,totalVoteCount:a,pollId:t.pollId,displayVoteCount:!0,isChecked:!0,isEnded:!0}))),n.createElement("div",{className:"mx_PollListItemEnded_voteCount"},n.createElement(y.H,null,(0,o._t)("right_panel|poll|final_result",{count:a}))))))};var w=s("./src/components/views/elements/AccessibleButton.tsx");const x=({noResultsYet:e})=>n.createElement("div",{className:r()("mx_PollHistoryList_loading",{mx_PollHistoryList_noResultsYet:e})},n.createElement(m.A,null),(0,o._t)("right_panel|poll|loading")),A=({isLoading:e,loadMorePolls:t})=>t?n.createElement(w.A,{className:"mx_PollHistoryList_loadMorePolls",kind:"link_inline",onClick:()=>t()},(0,o._t)("right_panel|poll|load_more"),e&&n.createElement(m.A,null)):null,S=({filter:e,isLoading:t,oldestFetchedEventTimestamp:s,loadMorePolls:i})=>!i&&t?n.createElement(x,{noResultsYet:!0}):n.createElement("span",{className:"mx_PollHistoryList_noResults"},((e,t,s)=>{if(!s)return"ACTIVE"===e?(0,o._t)("right_panel|poll|empty_active"):(0,o._t)("right_panel|poll|empty_past");if(!t)return"ACTIVE"===e?(0,o._t)("right_panel|poll|empty_active_load_more"):(0,o._t)("right_panel|poll|empty_past_load_more");const n=Math.ceil((Date.now()-t)/864e5);return"ACTIVE"===e?(0,o._t)("right_panel|poll|empty_active_load_more_n_days",{count:n}):(0,o._t)("right_panel|poll|empty_past_load_more_n_days",{count:n})})(e,s,i),!!i&&n.createElement(A,{loadMorePolls:i,isLoading:t})),C=({pollStartEvents:e,polls:t,filter:s,isLoading:i,oldestFetchedEventTimestamp:a,onFilterChange:l,loadMorePolls:c,onItemClick:m})=>n.createElement("div",{className:"mx_PollHistoryList"},n.createElement(d,{name:"PollHistory_filter",value:s,onFilterChange:l,tabs:[{id:"ACTIVE",label:(0,o._t)("right_panel|poll|active_heading")},{id:"ENDED",label:(0,o._t)("right_panel|poll|past_heading")}]}),!!e.length&&n.createElement("ol",{className:r()("mx_PollHistoryList_list",`mx_PollHistoryList_list_${s}`)},e.map(e=>"ACTIVE"===s?n.createElement(g,{key:e.getId(),event:e,onClick:()=>m(e.getId())}):n.createElement(E,{key:e.getId(),event:e,poll:t.get(e.getId()),onClick:()=>m(e.getId())})),i&&!c&&n.createElement(x,null),!!c&&n.createElement(A,{loadMorePolls:c,isLoading:i})),!e.length&&n.createElement(S,{oldestFetchedEventTimestamp:a,isLoading:i,filter:s,loadMorePolls:c}));var R=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/chevron-left.js");const k=({filter:e,onNavigateBack:t})=>n.createElement(w.A,{kind:"content_inline",onClick:t,className:"mx_PollDetailHeader"},n.createElement(R.A,{className:"mx_PollDetailHeader_icon"}),"ACTIVE"===e?(0,o._t)("right_panel|poll|active_heading"):(0,o._t)("right_panel|poll|past_heading"));var I=s("./src/dispatcher/dispatcher.ts"),P=s("./src/dispatcher/actions.ts");const T=({poll:e,permalinkCreator:t,requestModalClose:s})=>{const i=e.isEnded?e.endEventId:e.pollId,r=t.forEvent(i);return n.createElement(n.Fragment,null,n.createElement(_.Ay,{mxEvent:e.rootEvent,permalinkCreator:t,mediaEventHelper:{}}),n.createElement("br",null),n.createElement("div",null,n.createElement(w.A,{kind:"link_inline",element:"a",href:r,onClick:t=>{t.ctrlKey||t.metaKey||(t.preventDefault(),I.A.dispatch({action:P.r.ViewRoom,event_id:i,highlighted:!0,room_id:e.roomId,metricsTrigger:void 0}),s())},rel:"noreferrer noopener"},(0,o._t)("right_panel|poll|view_in_timeline"))))};var O=s("./src/hooks/useEventEmitter.ts");const M=(e,t)=>{const{polls:s}=((e,t)=>{const s=t.getRoom(e);if(!s)throw new Error("Cannot find room");return{polls:(0,O.dF)(s,v.PollEvent.New,()=>new Map(s.polls))}})(e,t),[o,i]=(0,n.useState)(s);return(0,n.useEffect)(()=>{const e=async()=>{i(new Map(s))};if(s){for(const t of s.values())t.on(v.PollEvent.End,e),t.on(v.PollEvent.Responses,e),t.getResponses();i(s)}return()=>{if(s)for(const t of s.values())t.off(v.PollEvent.End,e),t.off(v.PollEvent.Responses,e)}},[s,i]),{polls:o}};var N=s("./node_modules/matrix-js-sdk/src/logger.ts");const D=e=>{var t;if(!e)return;return null===(t=(null==e?void 0:e.getLiveTimeline()).getEvents()[0])||void 0===t?void 0:t.getTs()},j=async(e,t)=>{if(!e)return{canPageBackward:!1};const s=e.getLiveTimeline();return await t.paginateEventTimeline(s,{backwards:!0}),{oldestEventTimestamp:D(e),canPageBackward:!!s.getPaginationToken(v.EventTimeline.BACKWARDS)}},U=async(e,t,s,n,o)=>{if(!e||!n||o&&o<s)return;const i=await j(e,t);return U(e,t,s,i.canPageBackward,i.oldestEventTimestamp)},F={room:{timeline:{types:[v.M_POLL_START.name,v.M_POLL_START.altName]}}},L=(e,t,s=30)=>{const[o,i]=(0,n.useState)(void 0);(0,n.useEffect)(()=>{const s=new v.Filter(t.getSafeUserId());s.setDefinition(F);(async()=>{const n=await t.getOrCreateFilter(`POLL_HISTORY_FILTER_${e.roomId}}`,s);s.filterId=n;const o=e.getOrCreateFilteredTimelineSet(s);i(o)})()},[e,t]);const{isLoading:r,oldestEventTimestamp:a,loadMorePolls:l,loadTimelineHistory:c}=((e,t,s)=>{const[o,i]=(0,n.useState)(!0),[r,a]=(0,n.useState)(void 0),[l,c]=(0,n.useState)(!1),d=(0,n.useCallback)(async()=>{const n=Date.now()-864e5*s;i(!0);try{var o;const s=null==e?void 0:e.getLiveTimeline(),i=!(null==s||!s.getPaginationToken(v.Direction.Backward)),r=D(e);await U(e,t,n,i,r),c(!(null==e||null===(o=e.getLiveTimeline())||void 0===o||!o.getPaginationToken(v.EventTimeline.BACKWARDS))),a(D(e))}catch(e){N.vF.error("Failed to fetch room polls history",e)}finally{i(!1)}},[s,e,t]),m=(0,n.useCallback)(async()=>{if(e){i(!0);try{const s=await j(e,t);c(s.canPageBackward),a(s.oldestEventTimestamp)}catch(e){N.vF.error("Failed to fetch room polls history",e)}finally{i(!1)}}},[e,t]);return{isLoading:o,oldestEventTimestamp:r,loadTimelineHistory:d,loadMorePolls:l?m:void 0}})(o,t,s);return(0,n.useEffect)(()=>{c()},[c]),{isLoading:r,oldestEventTimestamp:a,loadMorePolls:l}};var B=s("./src/components/views/typography/Heading.tsx");const V=(e,t)=>t.getTs()-e.getTs(),H=({room:e,matrixClient:t,permalinkCreator:s,onFinished:i})=>{const{polls:r}=M(e.roomId,t),{isLoading:a,loadMorePolls:l,oldestEventTimestamp:c}=L(e,t),[d,m]=(0,n.useState)("ACTIVE"),[u,h]=(0,n.useState)(null),p=((e,t)=>[...e.values()].filter((e=>t=>!t.isFetchingResponses&&"ACTIVE"===e!==t.isEnded)(t)).map(e=>e.rootEvent).sort(V))(r,d),g=[...r.values()].some(e=>e.isFetchingResponses),v=u?r.get(u):void 0,_=v?n.createElement(k,{filter:d,onNavigateBack:()=>h(null)}):(0,o._t)("right_panel|polls_button");return n.createElement("div",{className:"mx_PollHistory_content"},n.createElement(B.A,{className:"mx_PollHistory_header",size:"2"},_),v?n.createElement(T,{poll:v,permalinkCreator:s,requestModalClose:i}):n.createElement(C,{onItemClick:h,pollStartEvents:p,isLoading:a||g,oldestFetchedEventTimestamp:c,polls:r,filter:d,onFilterChange:m,loadMorePolls:l}))}},"./src/components/views/right_panel/BaseCard.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>v});var n=s("./node_modules/react/index.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./node_modules/@vector-im/compound-web/dist/components/Typography/Text.js"),a=s("./node_modules/@vector-im/compound-web/dist/components/Button/IconButton/IconButton.js"),l=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/close.js"),c=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/chevron-left.js"),d=s("./src/components/structures/AutoHideScrollbar.tsx"),m=s("./src/languageHandler.tsx"),u=s("./src/stores/right-panel/RightPanelStore.ts"),h=s("./src/stores/right-panel/RightPanelStorePhases.ts"),p=s("./src/components/views/right_panel/context.ts");function g(e){e.preventDefault(),e.stopPropagation(),u.A.instance.popCard()}const v=({closeLabel:e,onClose:t,onBack:s,className:o,id:v,ariaLabelledBy:_,role:f,hideHeaderButtons:y,header:b,footer:E,withoutScrollContainer:w,children:x,onKeyDown:A,closeButtonRef:S,ref:C})=>{let R;const k=u.A.instance.roomPhaseHistory;if(k.length>1&&!y){var I;const e=k[k.length-2],t=e=>{null==s||s(e),u.A.instance.popCard()},o=null!==(I=(0,h.s)(e.phase))&&void 0!==I?I:(0,m._t)("action|back");R=n.createElement(a.K,{size:"28px",onClick:t,tooltip:o,kind:"secondary"},n.createElement(c.A,null))}let P;y||(P=n.createElement(a.K,{size:"28px",onClick:null!=t?t:g,ref:S,tooltip:null!=e?e:(0,m._t)("action|close"),kind:"secondary"},n.createElement(l.A,null))),w||(x=n.createElement(d.A,null,x));const T=b||!y;return n.createElement(p.E.Provider,{value:{isCard:!0}},n.createElement("div",{id:v,"aria-labelledby":_,role:f,className:i()("mx_BaseCard",o),ref:C,onKeyDown:A},T&&n.createElement("div",{className:"mx_BaseCard_header"},R,"string"==typeof b?n.createElement("div",{className:"mx_BaseCard_header_title"},n.createElement(r.E,{size:"md",weight:"medium",className:"mx_BaseCard_header_title_heading",role:"heading"},b)):null!=b?b:n.createElement("div",{className:"mx_BaseCard_header_spacer"}),P),x,E&&n.createElement("div",{className:"mx_BaseCard_footer"},E)))}},"./src/components/views/right_panel/EncryptionInfo.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>l,Z:()=>a});var n=s("./node_modules/react/index.js"),o=s("./src/languageHandler.tsx"),i=s("./src/components/views/elements/AccessibleButton.tsx"),r=s("./src/components/views/elements/Spinner.tsx");const a=({text:e})=>n.createElement("div",{className:"mx_EncryptionInfo_spinner"},n.createElement(r.A,null),e),l=({waitingForOtherParty:e,waitingForNetwork:t,member:s,onStartVerification:r,isRoomEncrypted:l,inDialog:c,isSelfVerification:d})=>{let m,u;if(e&&d)m=n.createElement("div",null,(0,o._t)("encryption|verification|once_accepted_can_continue"));else if(e||t){let t;t=e?(0,o._t)("encryption|verification|waiting_for_user_accept",{displayName:s.displayName||s.name||s.userId}):(0,o._t)("encryption|verification|accepting"),m=n.createElement(a,{text:t})}else m=n.createElement(i.A,{kind:"primary",className:"mx_UserInfo_wideButton mx_UserInfo_startVerification",onClick:r},(0,o._t)("encryption|verification|start_button"));return u=l?n.createElement("div",null,n.createElement("p",null,(0,o._t)("user_info|room_encrypted")),n.createElement("p",null,(0,o._t)("user_info|room_encrypted_detail"))):n.createElement("div",null,n.createElement("p",null,(0,o._t)("user_info|room_unencrypted")),n.createElement("p",null,(0,o._t)("user_info|room_unencrypted_detail"))),c?m:n.createElement(n.Fragment,null,n.createElement("div",{className:"mx_UserInfo_container"},n.createElement("h3",null,(0,o._t)("settings|security|encryption_section")),u),n.createElement("div",{className:"mx_UserInfo_container"},n.createElement("h3",null,(0,o._t)("user_info|verify_button")),n.createElement("div",null,n.createElement("p",null,(0,o._t)("user_info|verify_explainer")),n.createElement("p",null,(0,o._t)("encryption|verification|in_person")),m)))}},"./src/components/views/right_panel/EncryptionPanel.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>P});var n=s("./node_modules/react/index.js"),o=s("./node_modules/matrix-js-sdk/src/crypto-api/index.ts"),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./src/components/views/right_panel/EncryptionInfo.tsx"),a=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),l=s("./node_modules/matrix-js-sdk/src/types.ts"),c=s("./src/MatrixClientPeg.ts"),d=s("./src/components/views/elements/QRCode.tsx");class m extends n.PureComponent{render(){return n.createElement(d.A,{data:void 0===this.props.qrCodeBytes?null:[{data:this.props.qrCodeBytes,mode:"byte"}],className:"mx_VerificationQRCode",width:196})}}var u=s("./src/languageHandler.tsx"),h=s("./src/SdkConfig.ts"),p=s("./src/components/views/rooms/E2EIcon.tsx"),g=s("./src/components/views/elements/Spinner.tsx"),v=s("./src/components/views/elements/AccessibleButton.tsx"),_=s("./src/components/views/verification/VerificationShowSas.tsx"),f=s("./src/utils/crypto/deviceInfo.ts"),y=s("./src/utils/ShieldUtils.ts");class b extends n.PureComponent{constructor(e){super(e),(0,a.A)(this,"hasVerifier",void 0),(0,a.A)(this,"haveCheckedDevice",!1),(0,a.A)(this,"haveFetchedQRCode",!1),(0,a.A)(this,"onReciprocateYesClick",()=>{var e;this.state.reciprocateQREvent&&(this.setState({reciprocateButtonClicked:!0}),null===(e=this.state.reciprocateQREvent)||void 0===e||e.confirm())}),(0,a.A)(this,"onReciprocateNoClick",()=>{var e;this.state.reciprocateQREvent&&(this.setState({reciprocateButtonClicked:!0}),null===(e=this.state.reciprocateQREvent)||void 0===e||e.cancel())}),(0,a.A)(this,"startSAS",async()=>{this.setState({emojiButtonClicked:!0}),await this.props.request.startVerification(l.V.Sas)}),(0,a.A)(this,"onSasMatchesClick",()=>{var e;null===(e=this.state.sasEvent)||void 0===e||e.confirm()}),(0,a.A)(this,"onSasMismatchesClick",()=>{var e;null===(e=this.state.sasEvent)||void 0===e||e.mismatch()}),(0,a.A)(this,"updateVerifierState",()=>{const e=this.props.request.verifier,t=e.getShowSasCallbacks(),s=e.getReciprocateQrCodeCallbacks();e.off(o.Ji.ShowSas,this.updateVerifierState),e.off(o.Ji.ShowReciprocateQr,this.updateVerifierState),this.setState({sasEvent:t,reciprocateQREvent:s})}),(0,a.A)(this,"onRequestChange",async()=>{const{request:e}=this.props;this.maybeGetOtherDevice(),e.phase!==o.X9.Ready||this.haveFetchedQRCode||(this.haveFetchedQRCode=!0,e.generateQRCode().then(e=>{this.setState({qrCodeBytes:e})},e=>{console.error("Error generating QR code:",e)}));const t=this.hasVerifier;if(this.hasVerifier=!!e.verifier,!t&&this.hasVerifier){var s,n;null===(s=e.verifier)||void 0===s||s.on(o.Ji.ShowSas,this.updateVerifierState),null===(n=e.verifier)||void 0===n||n.on(o.Ji.ShowReciprocateQr,this.updateVerifierState);try{var r;await(null===(r=e.verifier)||void 0===r?void 0:r.verify())}catch(e){i.vF.error("error verify",e)}}}),this.state={qrCodeBytes:void 0,sasEvent:null,reciprocateQREvent:null},this.hasVerifier=!1}renderQRPhase(){const{member:e,request:t}=this.props,s=t.otherPartySupportsMethod(l.V.Sas),o=t.otherPartySupportsMethod(l.V.ScanQrCode),i=h.Ay.get().brand,r=s||o?null:n.createElement("p",null,(0,u._t)("encryption|verification|no_support_qr_emoji",{brand:i}));if("dialog"===this.props.layout){let e,t;o&&(e=n.createElement("div",{className:"mx_VerificationPanel_QRPhase_startOption"},n.createElement("p",null,(0,u._t)("encryption|verification|qr_prompt")),n.createElement(m,{qrCodeBytes:this.state.qrCodeBytes}))),s&&(t=n.createElement("div",{className:"mx_VerificationPanel_QRPhase_startOption"},n.createElement("p",null,(0,u._t)("encryption|verification|sas_prompt")),n.createElement("span",{className:"mx_VerificationPanel_QRPhase_helpText"},(0,u._t)("encryption|verification|sas_description")),n.createElement(v.A,{disabled:this.state.emojiButtonClicked,onClick:this.startSAS,kind:"primary"},(0,u._t)("action|start"))));const i=e&&t?n.createElement("div",{className:"mx_VerificationPanel_QRPhase_betweenText"},(0,u._t)("encryption|verification|qr_or_sas",{emojiCompare:"",qrCode:""})):null;return n.createElement("div",null,(0,u._t)("encryption|verification|verify_by_completing_one_of"),n.createElement("div",{className:"mx_VerificationPanel_QRPhase_startOptions"},e,i,t,r))}let a,c;if(o&&(a=n.createElement("div",{className:"mx_UserInfo_container"},n.createElement("h3",null,(0,u._t)("encryption|verification|scan_qr")),n.createElement("p",null,(0,u._t)("encryption|verification|scan_qr_explainer",{displayName:e.displayName||e.name||e.userId})),n.createElement("div",{className:"mx_VerificationPanel_qrCode"},n.createElement(m,{qrCodeBytes:this.state.qrCodeBytes})))),s){const e=this.state.emojiButtonClicked,t=o?(0,u._t)("encryption|verification|verify_emoji_prompt_qr"):(0,u._t)("encryption|verification|verify_emoji_prompt");c=n.createElement("div",{className:"mx_UserInfo_container"},n.createElement("h3",null,(0,u._t)("encryption|verification|verify_emoji")),n.createElement("p",null,t),n.createElement(v.A,{disabled:e,kind:"primary",className:"mx_UserInfo_wideButton mx_VerificationPanel_verifyByEmojiButton",onClick:this.startSAS},(0,u._t)("encryption|verification|verify_emoji")))}const d=r?n.createElement("div",{className:"mx_UserInfo_container"},r):null;return n.createElement(n.Fragment,null,a,c,d)}async maybeGetOtherDevice(){var e;if(this.haveCheckedDevice)return;const t=c.J.safeGet(),s=null===(e=this.props.request)||void 0===e?void 0:e.otherDeviceId,n=t.getUserId();s&&n&&(this.haveCheckedDevice=!0,this.setState({otherDeviceDetails:await(0,f.G)(t,n,s)}))}renderQRReciprocatePhase(){const{member:e,request:t}=this.props,s=t.isSelfVerification?(0,u._t)("encryption|verification|qr_reciprocate_check_again_device"):(0,u._t)("encryption|verification|qr_reciprocate_same_shield_user",{displayName:e.displayName||e.name||e.userId});let o;return o=this.state.reciprocateQREvent?n.createElement(n.Fragment,null,n.createElement("p",null,s),n.createElement(p.A,{isUser:!0,status:y.z.Verified,size:128,hideTooltip:!0}),n.createElement("div",{className:"mx_VerificationPanel_reciprocateButtons"},n.createElement(v.A,{kind:"primary",disabled:this.state.reciprocateButtonClicked,onClick:this.onReciprocateYesClick},(0,u._t)("encryption|verification|qr_reciprocate_yes")),n.createElement(v.A,{disabled:this.state.reciprocateButtonClicked,onClick:this.onReciprocateNoClick},(0,u._t)("encryption|verification|qr_reciprocate_no")))):n.createElement("p",null,n.createElement(g.A,null)),n.createElement("div",{className:"mx_UserInfo_container mx_VerificationPanel_reciprocate_section"},o)}renderVerifiedPhase(){const{member:e,request:t}=this.props;let s,o;return t.isSelfVerification||(s=this.props.isRoomEncrypted?(0,u._t)("encryption|verification|prompt_encrypted"):(0,u._t)("encryption|verification|prompt_unencrypted")),o=t.isSelfVerification?(0,u._t)("encryption|verification|now_you_can"):(0,u._t)("encryption|verification|successful_user",{displayName:e.displayName||e.name||e.userId}),n.createElement("div",{className:"mx_UserInfo_container mx_VerificationPanel_verified_section"},n.createElement("p",null,o),n.createElement(p.A,{isUser:!0,status:y.z.Verified,size:128,hideTooltip:!0}),s?n.createElement("p",null,s):null,n.createElement(v.A,{kind:"primary",className:"mx_UserInfo_wideButton",onClick:this.props.onClose},(0,u._t)("action|got_it")))}renderCancelledPhase(){return n.createElement("div",{className:"mx_UserInfo_container"},n.createElement("p",null,(0,u._t)("encryption|verification|cancelled_verification")),n.createElement(v.A,{kind:"primary",className:"mx_UserInfo_wideButton",onClick:this.props.onClose},(0,u._t)("action|got_it")))}render(){const{member:e,phase:t,request:s}=this.props,r=e.displayName||e.name||e.userId;switch(t){case o.X9.Ready:return this.renderQRPhase();case o.X9.Started:switch(s.chosenMethod){case l.V.Reciprocate:return this.renderQRReciprocatePhase();case l.V.Sas:{const e=this.state.sasEvent?n.createElement(_.A,{displayName:r,otherDeviceDetails:this.state.otherDeviceDetails,sas:this.state.sasEvent.sas,onCancel:this.onSasMismatchesClick,onDone:this.onSasMatchesClick,inDialog:this.props.inDialog,isSelf:s.isSelfVerification}):n.createElement(g.A,null);return n.createElement("div",{className:"mx_UserInfo_container"},e)}default:return null}case o.X9.Done:return this.renderVerifiedPhase();case o.X9.Cancelled:return this.renderCancelledPhase()}return i.vF.error("VerificationPanel unhandled phase:",t),null}componentDidMount(){const{request:e}=this.props;if(e.on(o.FM.Change,this.onRequestChange),e.verifier){const t=e.verifier.getShowSasCallbacks(),s=e.verifier.getReciprocateQrCodeCallbacks();this.setState({sasEvent:t,reciprocateQREvent:s})}this.onRequestChange()}componentWillUnmount(){const{request:e}=this.props;e.verifier&&(e.verifier.off(o.Ji.ShowSas,this.updateVerifierState),e.verifier.off(o.Ji.ShowReciprocateQr,this.updateVerifierState)),e.off(o.FM.Change,this.onRequestChange)}}var E=s("./src/createRoom.ts"),w=s("./src/hooks/useEventEmitter.ts"),x=s("./src/Modal.tsx"),A=s("./src/stores/right-panel/RightPanelStorePhases.ts"),S=s("./src/stores/right-panel/RightPanelStore.ts"),C=s("./src/components/views/dialogs/ErrorDialog.tsx"),R=s("./src/contexts/MatrixClientContext.tsx");var k=s("./res/img/e2e/warning.svg");const I=["m.key_mismatch","m.user_error","m.mismatched_sas"],P=e=>{const t=(0,R.nH)(),{verificationRequest:s,verificationRequestPromise:a,member:l,onClose:c,layout:d,isRoomEncrypted:m}=e,[h,p]=(0,n.useState)(s),[g,v]=(0,n.useState)(!1),[_,f]=(0,n.useState)(null==h?void 0:h.phase),y=e=>{i.vF.debug(`EncryptionPanel: phase now ${void 0===e?e:o.X9[e]}`),f(e)};(0,n.useEffect)(()=>{p(s),s&&(v(!1),y(s.phase))},[s]),(0,n.useEffect)(()=>{a&&async function(){v(!0);const e=await a;v(!1),p(e),y(null==e?void 0:e.phase)}()},[a]);const P=(0,n.useRef)(!1),T=(0,n.useCallback)(()=>{var e;if(!P.current&&(null==h?void 0:h.phase)===o.X9.Cancelled&&I.includes(null!==(e=h.cancellationCode)&&void 0!==e?e:""))return P.current=!0,void x.Ay.createDialog(C.A,{headerImage:"img/e2e/warning-deprecated.b45047c.svg",title:(0,u._t)("encryption|messages_not_secure|title"),description:n.createElement("div",null,(0,u._t)("encryption|messages_not_secure|heading"),n.createElement("ul",null,n.createElement("li",null,(0,u._t)("encryption|messages_not_secure|cause_1")),n.createElement("li",null,(0,u._t)("encryption|messages_not_secure|cause_2")),n.createElement("li",null,(0,u._t)("encryption|messages_not_secure|cause_3")),n.createElement("li",null,(0,u._t)("encryption|messages_not_secure|cause_4")))),onFinished:c});h&&y(h.phase)},[c,h]);(0,w.YK)(h,o.FM.Change,T);const O=(0,n.useCallback)(async()=>{let e;v(!0);try{const s=await(0,E.EP)(t,l.userId);if(!s)throw new Error("Unable to create Room for verification");e=await t.getCrypto().requestVerificationDM(l.userId,s)}catch(e){return console.error("Error starting verification",e),v(!1),void x.Ay.createDialog(C.A,{headerImage:k.A,title:(0,u._t)("encryption|verification|error_starting_title"),description:(0,u._t)("encryption|verification|error_starting_description")})}p(e),y(e.phase),S.A.instance.currentCard.phase!=A.n.EncryptionPanel&&S.A.instance.pushCard({phase:A.n.EncryptionPanel,state:{member:l,verificationRequest:e}}),S.A.instance.isOpen||S.A.instance.togglePanel(null)},[t,l]),M=!h&&g||!!h&&(_===o.X9.Requested||_===o.X9.Unsent||void 0===_),N=h?h.isSelfVerification:l.userId===t.getUserId();if(!h||M){const e=!h&&g||!!h&&h.initiatedByMe;return n.createElement(r.A,{isRoomEncrypted:m,onStartVerification:O,member:l,isSelfVerification:N,waitingForOtherParty:M&&e,waitingForNetwork:M&&!e,inDialog:"dialog"===d})}return n.createElement(b,{isRoomEncrypted:m,layout:d,onClose:c,member:l,request:h,key:h.transactionId,inDialog:"dialog"===d,phase:_})}},"./src/components/views/right_panel/UserInfo.tsx":(e,t,s)=>{"use strict";s.d(t,{mc:()=>Ze,Ay:()=>nt,lr:()=>Ye});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/classnames/index.js"),a=s.n(r),l=s("./node_modules/matrix-js-sdk/src/matrix.ts"),c=s("./node_modules/matrix-js-sdk/src/types.ts"),d=s("./node_modules/matrix-js-sdk/src/crypto-api/index.ts"),m=s("./node_modules/matrix-js-sdk/src/logger.ts"),u=s("./node_modules/@vector-im/compound-web/dist/components/Menu/MenuItem.js"),h=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/chat.js"),p=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/check.js"),g=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/share.js"),v=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/mention.js"),_=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/user-add.js"),f=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/block.js"),y=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/delete.js"),b=s("./src/dispatcher/dispatcher.ts"),E=s("./src/Modal.tsx"),w=s("./src/languageHandler.tsx"),x=s("./src/utils/DMRoomMap.ts"),A=s("./src/utils/MultiInviter.ts"),S=s("./src/hooks/useEventEmitter.ts"),C=s("./src/contexts/MatrixClientContext.tsx"),R=s("./src/stores/right-panel/RightPanelStorePhases.ts"),k=s("./src/components/views/right_panel/EncryptionPanel.tsx"),I=s("./src/hooks/useAsyncMemo.ts"),P=s("./src/dispatcher/actions.ts"),T=s("./src/hooks/useIsEncrypted.ts"),O=s("./src/components/views/right_panel/BaseCard.tsx"),M=s("./src/components/views/elements/Spinner.tsx"),N=s("./src/components/views/dialogs/ShareDialog.tsx"),D=s("./src/components/views/dialogs/ErrorDialog.tsx"),j=s("./src/components/views/dialogs/QuestionDialog.tsx"),U=s("./src/customisations/helpers/UIComponents.ts"),F=s("./src/settings/UIFeature.ts"),L=s("./src/contexts/RoomContext.ts"),B=s("./src/stores/right-panel/RightPanelStore.ts"),V=s("./src/PosthogTrackers.ts"),H=s("./src/utils/direct-messages.ts"),W=s("./src/contexts/SDKContext.ts"),$=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/close.js"),z=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/chat-problem.js"),K=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/visibility-off.js"),J=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/leave.js");var G=s("./node_modules/@sentry/core/build/esm/logs/public-api.js");var q=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),Y=s("./src/utils/space.tsx"),Z=s("./src/components/views/dialogs/ConfirmUserActionDialog.tsx"),Q=s("./src/stores/spaces/SpaceStore.ts"),X=s("./src/components/views/spaces/SpaceChildrenPicker.tsx");const ee=["space","spaceChildFilter","allLabel","specificLabel","noneLabel","warningMessage","onFinished"],te=e=>{let{space:t,spaceChildFilter:s,allLabel:r,specificLabel:a,noneLabel:l,warningMessage:c,onFinished:d}=e,m=(0,o.A)(e,ee);const u=(0,i.useMemo)(()=>{const e=Q.Ay.instance.getChildren(t.roomId);return s?e.filter(s):e},[t.roomId,s]),[h,p]=(0,i.useState)([]),g=(0,i.useMemo)(()=>new Set(h),[h]);let v;return c&&(v=i.createElement("div",{className:"mx_ConfirmSpaceUserActionDialog_warning"},c)),i.createElement(Z.A,(0,n.A)({},m,{onFinished:(e,t)=>{d(e,t,h)},className:"mx_ConfirmSpaceUserActionDialog",roomId:t.roomId}),v,i.createElement(X.A,{space:t,spaceChildren:u,selected:g,allLabel:r,specificLabel:a,noneLabel:l,onChange:p}))};function se(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function ne(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?se(Object(s),!0).forEach(function(t){(0,q.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):se(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const oe=e=>{const{isUpdating:t,startUpdating:s,stopUpdating:n,room:o,member:i}=e,r=(0,C.nH)(),a=i.membership===c.O.Ban;let l=o.isSpaceRoom()?(0,w._t)("user_info|ban_button_space"):(0,w._t)("user_info|ban_button_room");a&&(l=o.isSpaceRoom()?(0,w._t)("user_info|unban_button_space"):(0,w._t)("user_info|unban_button_room"));return{onBanOrUnbanClick:async()=>{if(t)return;s();const e={member:i,action:o.isSpaceRoom()?a?(0,w._t)("user_info|unban_button_space"):(0,w._t)("user_info|ban_button_space"):a?(0,w._t)("user_info|unban_button_room"):(0,w._t)("user_info|ban_button_room"),title:a?(0,w._t)("user_info|unban_room_confirm_title",{roomName:o.name}):(0,w._t)("user_info|ban_room_confirm_title",{roomName:o.name}),askReason:!a,danger:!a};let l;o.isSpaceRoom()?({finished:l}=E.Ay.createDialog(te,ne(ne({},e),{},{space:o,spaceChildFilter:a?e=>{const t=e.getMember(r.credentials.userId||""),s=e.getMember(i.userId);return!!t&&!!s&&s.membership===c.O.Ban&&t.powerLevel>s.powerLevel&&e.currentState.hasSufficientPowerLevelFor("ban",t.powerLevel)}:e=>{const t=e.getMember(r.credentials.userId||""),s=e.getMember(i.userId);return!!t&&!!s&&s.membership!==c.O.Ban&&t.powerLevel>s.powerLevel&&e.currentState.hasSufficientPowerLevelFor("ban",t.powerLevel)},allLabel:a?(0,w._t)("user_info|unban_space_everything"):(0,w._t)("user_info|ban_space_everything"),specificLabel:a?(0,w._t)("user_info|unban_space_specific"):(0,w._t)("user_info|ban_space_specific"),warningMessage:a?(0,w._t)("user_info|unban_space_warning"):(0,w._t)("user_info|kick_space_warning")}),"mx_ConfirmSpaceUserActionDialog_wrapper")):({finished:l}=E.Ay.createDialog(Z.A,e));const[d,m,u=[]]=await l;if(!d)return void n();(0,Y.Yt)(o,u,e=>{return t=e.roomId,a?r.unban(t,i.userId):r.ban(t,i.userId,m||void 0);var t}).then(()=>{G.pq("Ban success")},function(e){G.z3("Ban error: "+e),E.Ay.createDialog(D.A,{title:(0,w._t)("common|error"),description:(0,w._t)("user_info|error_ban_user")})}).finally(()=>{n()})},banLabel:l}};function ie(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function re(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?ie(Object(s),!0).forEach(function(t){(0,q.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):ie(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}var ae=s("./src/components/views/dialogs/BaseDialog.tsx"),le=s("./src/components/views/dialogs/InfoDialog.tsx"),ce=s("./src/components/views/elements/DialogButtons.tsx"),de=s("./src/components/views/elements/StyledCheckbox.tsx");const me=e=>{const{matrixClient:t,room:s,member:n,onFinished:o}=e,[r,a]=(0,i.useState)(!0);let c=s.getLiveTimeline(),d=[];for(;c;)d=[...d,...c.getEvents().filter(e=>e.getSender()===n.userId&&!e.isRedacted()&&!e.isRedaction()&&e.getType()!==l.EventType.RoomCreate&&e.getType()!==l.EventType.RoomServerAcl&&e.getType()!==l.EventType.RoomEncryption)],c=c.getNeighbouringTimeline(l.EventTimeline.BACKWARDS);if(0===d.length)return i.createElement(le.A,{onFinished:o,title:(0,w._t)("user_info|redact|no_recent_messages_title",{user:n.name}),description:i.createElement("div",null,i.createElement("p",null,(0,w._t)("user_info|redact|no_recent_messages_description")))});{d=d.filter(e=>!(r&&e.isState()));const e=d.length,l=n.name,c=async()=>{m.vF.info(`Started redacting recent ${e} messages for ${n.userId} in ${s.roomId}`),b.A.dispatch({action:P.r.BulkRedactStart,room_id:s.roomId}),await Promise.resolve(),await Promise.all(d.reverse().map(async e=>{try{await t.redactEvent(s.roomId,e.getId())}catch(t){m.vF.error("Could not redact",e.getId()),m.vF.error(t)}})),m.vF.info(`Finished redacting recent ${e} messages for ${n.userId} in ${s.roomId}`),b.A.dispatch({action:P.r.BulkRedactEnd,room_id:s.roomId})};return i.createElement(ae.A,{className:"mx_BulkRedactDialog",onFinished:o,title:(0,w._t)("user_info|redact|confirm_title",{user:l}),contentId:"mx_Dialog_content"},i.createElement("div",{className:"mx_Dialog_content",id:"mx_Dialog_content"},i.createElement("p",null,(0,w._t)("user_info|redact|confirm_description_1",{count:e,user:l})),i.createElement("p",null,(0,w._t)("user_info|redact|confirm_description_2")),i.createElement(de.A,{description:(0,w._t)("user_info|redact|confirm_keep_state_explainer"),checked:r,onChange:e=>a(e.target.checked)},(0,w._t)("user_info|redact|confirm_keep_state_label"))),i.createElement(ce.A,{primaryButton:(0,w._t)("user_info|redact|confirm_button",{count:e}),primaryButtonClass:"danger",primaryDisabled:0===e,onPrimaryButtonClick:()=>{setTimeout(c,0),o(!0)},onCancel:()=>o(!1)}))}},ue=({children:e,className:t})=>{const s=a()("mx_UserInfo_container",t);return i.createElement("div",{className:s},e)},he=({room:e,member:t,isUpdating:s,startUpdating:n,stopUpdating:o})=>{const r=function(e){const{isUpdating:t,startUpdating:s,stopUpdating:n,room:o,member:i}=e,r=(0,C.nH)();return{onKickClick:async()=>{if(t)return;s();const e={member:i,action:o.isSpaceRoom()?i.membership===c.O.Invite?(0,w._t)("user_info|disinvite_button_space"):(0,w._t)("user_info|kick_button_space"):i.membership===c.O.Invite?(0,w._t)("user_info|disinvite_button_room"):(0,w._t)("user_info|kick_button_room"),title:i.membership===c.O.Invite?(0,w._t)("user_info|disinvite_button_room_name",{roomName:o.name}):(0,w._t)("user_info|kick_button_room_name",{roomName:o.name}),askReason:i.membership===c.O.Join,danger:!0};let a;o.isSpaceRoom()?({finished:a}=E.Ay.createDialog(te,re(re({},e),{},{space:o,spaceChildFilter:e=>{const t=e.getMember(r.credentials.userId||""),s=e.getMember(i.userId);return!!t&&!!s&&s.membership===i.membership&&t.powerLevel>s.powerLevel&&e.currentState.hasSufficientPowerLevelFor("kick",t.powerLevel)},allLabel:(0,w._t)("user_info|kick_button_space_everything"),specificLabel:(0,w._t)("user_info|kick_space_specific"),warningMessage:(0,w._t)("user_info|kick_space_warning")}),"mx_ConfirmSpaceUserActionDialog_wrapper")):({finished:a}=E.Ay.createDialog(Z.A,e));const[l,d,m=[]]=await a;l?(0,Y.Yt)(o,m,e=>r.kick(e.roomId,i.userId,d||void 0)).then(()=>{G.pq("Kick success")},function(e){var t;G.z3("Kick error: "+e),E.Ay.createDialog(D.A,{title:(0,w._t)("user_info|error_kicking_user"),description:null!==(t=null==e?void 0:e.message)&&void 0!==t?t:"Operation failed"})}).finally(()=>{n()}):n()},canUserBeKicked:i.membership===c.O.Invite||i.membership===c.O.Join,kickLabel:o.isSpaceRoom()?i.membership===c.O.Invite?(0,w._t)("user_info|disinvite_button_space"):(0,w._t)("user_info|kick_button_space"):i.membership===c.O.Invite?(0,w._t)("user_info|disinvite_button_room"):(0,w._t)("user_info|kick_button_room")}}({room:e,member:t,isUpdating:s,startUpdating:n,stopUpdating:o});return r.canUserBeKicked?i.createElement(u.D,{role:"button",onSelect:async e=>{e.preventDefault(),r.onKickClick()},disabled:s,label:r.kickLabel,kind:"critical",Icon:J.A}):i.createElement(i.Fragment,null)},pe=({member:e})=>{const t=(e=>{const t=(0,C.nH)();return{onRedactAllMessagesClick:()=>{const s=t.getRoom(e.roomId);s&&E.Ay.createDialog(me,{matrixClient:t,room:s,member:e})}}})(e);return i.createElement(u.D,{role:"button",onSelect:async e=>{e.preventDefault(),t.onRedactAllMessagesClick()},label:(0,w._t)("user_info|redact_button"),kind:"critical",Icon:$.A})},ge=({room:e,member:t,isUpdating:s,startUpdating:n,stopUpdating:o})=>{const r=oe({room:e,member:t,isUpdating:s,startUpdating:n,stopUpdating:o});return i.createElement(u.D,{role:"button",onSelect:async e=>{e.preventDefault(),r.onBanOrUnbanClick()},disabled:s,label:r.banLabel,kind:"critical",Icon:z.A})},ve=({member:e,room:t,powerLevels:s,isUpdating:n,startUpdating:o,stopUpdating:r})=>{const a=(e=>{var t;const{isUpdating:s,startUpdating:n,stopUpdating:o,room:i,member:r}=e,a=(0,C.nH)(),l=((e,t)=>{if(!t||!e)return!1;const s=(t.events?t.events["m.room.message"]:null)||t.events_default;return void 0!==s&&e.powerLevel<s})(r,(null===(t=i.currentState.getStateEvents("m.room.power_levels",""))||void 0===t?void 0:t.getContent())||{}),d=l?(0,w._t)("common|unmute"):(0,w._t)("common|mute");return{isMemberInTheRoom:r.membership==c.O.Join,onMuteButtonClick:async()=>{var e,t;if(s)return;n();const c=r.roomId,d=r.userId,m=i.currentState.getStateEvents("m.room.power_levels",""),u=null==m?void 0:m.getContent(),h=null!==(e=null==u||null===(t=u.events)||void 0===t?void 0:t["m.room.message"])&&void 0!==e?e:null==u?void 0:u.events_default;let p;p=l?h:h-1,p=parseInt(p),console.log("level",p),isNaN(p)?o():a.setPowerLevel(c,d,p).then(()=>{G.pq("Mute toggle success")},function(e){G.z3("Mute error: "+e),E.Ay.createDialog(D.A,{title:(0,w._t)("common|error"),description:(0,w._t)("user_info|error_mute_user")})}).finally(()=>{o()})},muteLabel:d}})({room:t,member:e,isUpdating:n,startUpdating:o,stopUpdating:r});return a.isMemberInTheRoom?i.createElement(u.D,{role:"button",onSelect:async e=>{e.preventDefault(),a.onMuteButtonClick()},disabled:n,label:a.muteLabel,kind:"critical",Icon:K.A}):null},_e=({room:e,children:t,member:s,isUpdating:n,startUpdating:o,stopUpdating:r,powerLevels:a})=>{let l,c,d,m;const u=(e=>{const t=(0,C.nH)(),{room:s,member:n,powerLevels:o}=e,i=(o.events?o.events["m.room.power_levels"]:null)||o.state_default,{ban:r=50,kick:a=50,redact:l=50}=o,c=s.getMember(t.getUserId()||""),d=null!==c;if(!d)return{shouldShowKickButton:!1,shouldShowBanButton:!1,shouldShowMuteButton:!1,shouldShowRedactButton:!1,isCurrentUserInTheRoom:!1};const m=c.userId===n.userId,u=n.powerLevel<c.powerLevel||m;return{shouldShowKickButton:!m&&u&&c.powerLevel>=a,shouldShowRedactButton:c.powerLevel>=l&&!s.isSpaceRoom(),shouldShowBanButton:!m&&u&&c.powerLevel>=r,shouldShowMuteButton:!m&&u&&c.powerLevel>=Number(i)&&!s.isSpaceRoom(),isCurrentUserInTheRoom:d}})({room:e,member:s,powerLevels:a});return u.isCurrentUserInTheRoom?(u.shouldShowKickButton&&(l=i.createElement(he,{room:e,member:s,isUpdating:n,startUpdating:o,stopUpdating:r})),u.shouldShowRedactButton&&(m=i.createElement(pe,{member:s,isUpdating:n,startUpdating:o,stopUpdating:r})),u.shouldShowBanButton&&(c=i.createElement(ge,{room:e,member:s,isUpdating:n,startUpdating:o,stopUpdating:r})),u.shouldShowMuteButton&&(d=i.createElement(ve,{member:s,room:e,powerLevels:a,isUpdating:n,startUpdating:o,stopUpdating:r})),l||c||d||m||t?i.createElement(ue,null,d,m,l,c,t):i.createElement("div",null)):i.createElement("div",null)};var fe=s("./src/Roles.ts"),ye=s("./src/components/views/elements/PowerSelector.tsx");const be=({user:e,room:t,roomPermissions:s})=>{const n=((e,t)=>{const[s,n]=(0,i.useState)(e.powerLevel);(0,i.useEffect)(()=>{n(e.powerLevel)},[e]);const o=(0,i.useContext)(C.Ay),r=(0,i.useCallback)(async s=>{n(s);const r=e.roomId,a=e.userId,l=t.currentState.getStateEvents("m.room.power_levels","");if(!l)return;const c=o.getUserId(),d=l.getContent().users[c||""];if(d&&parseInt(d)<=s&&c!==a){const{finished:e}=E.Ay.createDialog(j.A,{title:(0,w._t)("common|warning"),description:i.createElement("div",null,(0,w._t)("user_info|promote_warning"),i.createElement("br",null),(0,w._t)("common|are_you_sure")),button:(0,w._t)("action|continue")}),[t]=await e;if(!t)return}else if(c===a&&d&&parseInt(d)>s)try{if(!await Ye(null==t?void 0:t.isSpaceRoom()))return}catch(e){G.z3("Failed to warn about self demotion: "+e)}await((e,t,s)=>o.setPowerLevel(e,t,s).then(function(){G.pq("Power change success")},function(e){G.z3("Failed to change power level "+e),E.Ay.createDialog(D.A,{title:(0,w._t)("common|error"),description:(0,w._t)("error|update_power_level")})}))(r,a,s)},[e.roomId,e.userId,o,t]),a=t.currentState.getStateEvents("m.room.power_levels","");return{powerLevelUsersDefault:a?a.getContent().users_default:0,onPowerChange:r,selectedPowerLevel:s}})(e,t);if(s.canEdit)return i.createElement(Ee,{vm:n,roomPermissions:s});const o=e.powerLevel,r=(0,fe.X)(o,n.powerLevelUsersDefault);return i.createElement("div",{className:"mx_UserInfo_profileField"},i.createElement("div",{className:"mx_UserInfo_roleDescription"},r))},Ee=({vm:e,roomPermissions:t})=>i.createElement("div",{className:"mx_UserInfo_profileField"},i.createElement(ye.A,{label:void 0,value:e.selectedPowerLevel,maxValue:t.modifyLevelMax,usersDefault:e.powerLevelUsersDefault,onChange:e.onPowerChange}));var we=s("./node_modules/@vector-im/compound-web/dist/components/Typography/Heading.js"),xe=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/Tooltip.js"),Ae=s("./node_modules/@vector-im/compound-web/dist/components/Typography/Text.js"),Se=s("./src/customisations/Media.ts"),Ce=s("./src/components/views/elements/ImageView.tsx"),Re=s("./src/SdkConfig.ts"),ke=s("./src/DateUtils.ts"),Ie=s("./src/hooks/useSettings.ts");function Pe(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function Te(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?Pe(Object(s),!0).forEach(function(t){(0,q.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):Pe(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const Oe=m.vF.getChild("useUserTimezone");var Me=s("./src/customisations/UserIdentifier.ts");function Ne({member:e,roomId:t}){var s;const n=(0,i.useContext)(C.Ay);let o=!0;const r={lastActiveAgo:void 0,currentlyActive:void 0,state:void 0},a=Re.Ay.get("enable_presence_by_hs_url"),c=((e,t)=>{const[s,n]=(0,i.useState)(),[o,r]=(0,i.useState)(),[a,c]=(0,i.useState)(),[d,m]=(0,i.useState)(),u=(0,Ie.ti)("showTwelveHourTimestamps");return(0,i.useEffect)(()=>{e&&void 0===d&&e.doesServerSupportExtendedProfiles().then(m).catch(e=>{console.warn("Unable to determine if extended profiles are supported",e)})},[d,e]),(0,i.useEffect)(()=>()=>{o&&clearInterval(o)},[o]),(0,i.useEffect)(()=>{!0===d&&(async()=>{Oe.debug("Trying to fetch TZ for",t);try{var s;const o=await e.getExtendedProfile(t),i=null!==(s=o[l.ProfileKeyTimezone])&&void 0!==s?s:o[l.ProfileKeyMSC4175Timezone];if("string"!=typeof i)throw Error("Timezone value was not a string");Intl.DateTimeFormat(void 0,{timeZone:i});const a=()=>{const e=new Date,t=e.toLocaleString(void 0,Te(Te({},(0,ke.Ak)(u)),{},{timeZone:i,hour:"2-digit",minute:"2-digit",timeZoneName:"shortOffset"}));n(i),c(t),r(setTimeout(a,1e3*(60-e.getSeconds())))};a()}catch(e){if(n(void 0),c(void 0),r(void 0),e instanceof l.MatrixError&&"M_NOT_FOUND"===e.errcode)return;Oe.warn(`Could not render current timezone for ${t}`,e)}})()},[d,t,e,u]),s&&a?{friendly:a,timezone:s}:null})(n,e.userId),d=null===(s=Me.A.getDisplayUserIdentifier)||void 0===s?void 0:s.call(Me.A,e.userId,{roomId:t,withDisplayName:!0}),m=(0,i.useCallback)(()=>{const t=e.getMxcAvatarUrl?e.getMxcAvatarUrl():e.avatarUrl,s=(0,Se.mediaFromMxc)(t).srcHttp;if(!s)return;const n={src:s,name:e.name||e.displayName};E.Ay.createDialog(Ce.A,n,"mx_Dialog_lightbox",void 0,!0)},[e]);return e instanceof l.RoomMember&&e.user&&(r.state=e.user.presence,r.lastActiveAgo=e.user.lastActiveAgo,r.currentlyActive=e.user.currentlyActive),a&&void 0!==a[n.baseUrl]&&(o=a[n.baseUrl]),{onMemberAvatarClick:m,showPresence:o,precenseInfo:r,timezoneInfo:c,userIdentifier:d}}var De=s("./src/components/views/avatars/MemberAvatar.tsx"),je=s("./packages/shared-components/src/utils/Flex/index.ts"),Ue=s("./src/components/views/rooms/PresenceLabel.tsx"),Fe=s("./src/components/views/elements/CopyableText.tsx"),Le=s("./node_modules/@vector-im/compound-web/dist/components/Badge/Badge.js"),Be=s("./node_modules/@vector-im/compound-web/dist/components/InlineSpinner/InlineSpinner.js"),Ve=s("./node_modules/@vector-im/compound-web/dist/components/Button/Button.js"),He=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/verified.js"),We=s("./src/verification.ts");const $e=(e,t)=>{const s=(0,i.useContext)(C.Ay),n=(e=>(0,I.e)(async()=>e.doesServerSupportUnstableFeature("org.matrix.e2e_cross_signing"),[e],!1))(s),o=(0,I.e)(async()=>{var t;return null===(t=s.getCrypto())||void 0===t?void 0:t.getUserVerificationStatus(e.userId)},[e.userId],void 0),r=Boolean(o),a=Boolean(null==o?void 0:o.isVerified()),l=e.userId===s.getUserId(),c=r&&n&&!a&&!l&&t&&t.length>0,d=((e,t,s)=>(0,I.e)(async()=>{var n;if(s)return null===(n=e.getCrypto())||void 0===n?void 0:n.userHasCrossSigningKeys(t.userId,!0)},[e,t,s]))(s,e,c);return{canVerify:c,hasCrossSigningKeys:d,isUserVerified:a,verifySelectedUser:()=>(0,We.F)(s,e)}},ze=({member:e,devices:t})=>{let s;const n=$e(e,t);return s=n.isUserVerified?i.createElement(Le.E,{kind:"green",className:"mx_UserInfo_verified_badge"},i.createElement(He.A,{className:"mx_UserInfo_verified_icon",height:"16px",width:"16px"}),i.createElement(Ae.E,{size:"sm",weight:"medium",className:"mx_UserInfo_verified_label"},(0,w._t)("common|verified"))):void 0===n.hasCrossSigningKeys?i.createElement(Be.Z,{size:24}):n.canVerify&&n.hasCrossSigningKeys?i.createElement("div",{className:"mx_UserInfo_container_verifyButton"},i.createElement(Ve.$,{className:"mx_UserInfo_verify_button",kind:"tertiary",size:"sm",onClick:()=>n.verifySelectedUser()},(0,w._t)("user_info|verify_button"))):i.createElement(Ae.E,{className:"mx_UserInfo_verification_unavailable",size:"sm"},"(",(0,w._t)("user_info|verification_unavailable"),")"),i.createElement(je.s,{justify:"center",align:"center",className:"mx_UserInfo_verification"},s)},Ke=({member:e,devices:t,roomId:s,hideVerificationSection:n})=>{var o,r,a,l;const c=Ne({member:e,roomId:s}),d=e.avatarUrl,m=e.rawDisplayName;let u;return c.showPresence&&(u=i.createElement(Ue.A,{activeAgo:c.precenseInfo.lastActiveAgo,currentlyActive:c.precenseInfo.currentlyActive,presenceState:c.precenseInfo.state,className:"mx_UserInfo_profileStatus",coloured:!0})),i.createElement(i.Fragment,null,i.createElement("div",{className:"mx_UserInfo_avatar"},i.createElement("div",{className:"mx_UserInfo_avatar_transition"},i.createElement("div",{className:"mx_UserInfo_avatar_transition_child"},i.createElement(De.A,{key:e.userId,member:e,size:"120px",resizeMethod:"scale",fallbackUserId:e.userId,onClick:c.onMemberAvatarClick,urls:d?[d]:void 0})))),i.createElement(Ze,{className:"mx_UserInfo_header"},i.createElement(je.s,{direction:"column",align:"center",className:"mx_UserInfo_profile"},i.createElement(we.D,{size:"sm",weight:"semibold",as:"h1",dir:"auto"},i.createElement(je.s,{className:"mx_UserInfo_profile_name",direction:"row-reverse",align:"center"},m)),u,c.timezoneInfo&&i.createElement(xe.m,{label:null!==(o=null===(r=c.timezoneInfo)||void 0===r?void 0:r.timezone)&&void 0!==o?o:""},i.createElement(je.s,{align:"center",className:"mx_UserInfo_timezone"},i.createElement(Ae.E,{size:"sm",weight:"regular"},null!==(a=null===(l=c.timezoneInfo)||void 0===l?void 0:l.friendly)&&void 0!==a?a:""))),i.createElement(Ae.E,{size:"sm",weight:"semibold",className:"mx_UserInfo_profile_mxid"},i.createElement(Fe.A,{getTextToCopy:()=>c.userIdentifier,border:!1},c.userIdentifier))),!n&&i.createElement(ze,{member:e,devices:t})))},Je=["user","room","onClose","phase"];const Ge=({member:e})=>{const t=(0,i.useContext)(C.Ay),[s,n]=(0,i.useState)(!1);return i.createElement(u.D,{role:"button",onSelect:async o=>{o.preventDefault(),s||(n(!0),await async function(e,t){const s=t instanceof l.User?t.avatarUrl:t.getMxcAvatarUrl(),n=new H.qv({user_id:t.userId,display_name:t.rawDisplayName,avatar_url:s});await(0,H.UZ)(e,[n])}(t,e),n(!1))},disabled:s,label:(0,w._t)("user_info|send_message"),Icon:h.A})},qe=({member:e,canInvite:t,isSpace:s,children:n})=>{const o=(0,i.useContext)(C.Ay);let r,a,d;const m=e.userId===o.getUserId();if(!m){var h;const n=function(t){b.A.dispatch({action:P.r.ViewRoom,highlighted:!0,event_id:t.getEventReadUpTo(e.userId)||void 0,room_id:t.roomId,metricsTrigger:void 0})},m=e instanceof l.RoomMember?o.getRoom(e.roomId):null,g=s||!(null!=m&&m.getEventReadUpTo(e.userId));if(d=i.createElement(u.D,{role:"button",onSelect:async e=>{e.preventDefault(),m&&!g&&n(m)},label:(0,w._t)("user_info|jump_to_rr_button"),disabled:g,Icon:p.A}),e instanceof l.RoomMember&&e.roomId&&!s){const t=function(){b.A.dispatch({action:P.r.ComposerInsert,userId:e.userId,timelineRenderingType:L.Ae.Room})};r=i.createElement(u.D,{role:"button",onSelect:async e=>{e.preventDefault(),t()},label:(0,w._t)("action|mention"),Icon:v.A})}if(e instanceof l.RoomMember&&t&&(null!==(h=null==e?void 0:e.membership)&&void 0!==h?h:c.O.Leave)===c.O.Leave&&(0,U.g)(F.C.InviteUsers)){const t=e&&e.roomId?e.roomId:W.M.instance.roomViewStore.getRoomId(),s=async s=>{try{const s=new A.Ay(o,t||"");await s.invite([e.userId]).then(()=>{if("invited"!==s.getCompletionState(e.userId)){const n=s.getErrorText(e.userId);throw n?new Error(n):new w.P7("slash_command|invite_failed",{user:e.userId,roomId:t,cause:void 0})}})}catch(e){const t=e instanceof Error?e.message:(0,w._t)("invite|failed_generic");E.Ay.createDialog(D.A,{title:(0,w._t)("invite|failed_title"),description:t})}V.A.trackInteraction("WebRightPanelRoomUserInfoInviteButton",s)};a=i.createElement(u.D,{role:"button",onSelect:async e=>{e.preventDefault(),s(e)},label:(0,w._t)("action|invite"),Icon:_.A})}}const f=i.createElement(u.D,{role:"button",onSelect:async t=>{t.preventDefault(),E.Ay.createDialog(N.G,{target:e})},label:(0,w._t)("user_info|share_button"),Icon:g.A}),y=m||!(0,U.g)(F.C.CreateRooms)?null:i.createElement(Ge,{member:e});return i.createElement(Ze,null,n,y,a,d,f,r)},Ye=async e=>{const{finished:t}=E.Ay.createDialog(j.A,{title:(0,w._t)("user_info|demote_self_confirm_title"),description:i.createElement("div",null,e?(0,w._t)("user_info|demote_self_confirm_description_space"):(0,w._t)("user_info|demote_self_confirm_room")),button:(0,w._t)("user_info|demote_button")}),[s]=await t;return!!s},Ze=({children:e,className:t})=>{const s=a()("mx_UserInfo_container",t);return i.createElement("div",{className:s},e)},Qe=e=>{var t;return(null==e||null===(t=e.currentState)||void 0===t||null===(t=t.getStateEvents(l.EventType.RoomPowerLevels,""))||void 0===t?void 0:t.getContent())||{}},Xe=({member:e})=>{const t=(0,i.useContext)(C.Ay),s=(0,i.useCallback)(()=>{const s=t.getIgnoredUsers(),n=s.indexOf(e.userId);-1!==n&&s.splice(n,1),t.setIgnoredUsers(s)},[t,e]),n=(0,i.useCallback)(async()=>{const s=(e instanceof l.User?e.displayName:e.name)||e.userId,{finished:n}=E.Ay.createDialog(j.A,{title:(0,w._t)("user_info|ignore_confirm_title",{user:s}),description:i.createElement("div",null,(0,w._t)("user_info|ignore_confirm_description")),button:(0,w._t)("action|ignore")}),[o]=await n;if(o){const s=t.getIgnoredUsers();s.push(e.userId),t.setIgnoredUsers(s)}},[t,e]),[o,r]=(0,i.useState)(t.isUserIgnored(e.userId));(0,i.useEffect)(()=>{r(t.isUserIgnored(e.userId))},[t,e.userId]);const a=(0,i.useCallback)(s=>{"m.ignored_user_list"===s.getType()&&r(t.isUserIgnored(e.userId))},[t,e.userId]);return(0,S.YK)(t,l.ClientEvent.AccountData,a),i.createElement(u.D,{role:"button",onSelect:async e=>{e.preventDefault(),o?s():n()},label:o?(0,w._t)("user_info|unignore_button"):(0,w._t)("user_info|ignore_button"),kind:"critical",Icon:f.A})};async function et(e,t,s=!1){var n;const o=await(null===(n=t.getCrypto())||void 0===n?void 0:n.getUserDeviceInfo([e],s)),i=null==o?void 0:o.get(e);if(i)return Array.from(i.values())}const tt=e=>{const t=(0,i.useContext)(C.Ay),[s,n]=(0,i.useState)(void 0);return(0,i.useEffect)(()=>{n(void 0);let s=!1;return async function(){try{const o=await et(e,t,!0);if(s||!o)return;(e=>{const t=Object.create(null);for(let n=0;n<e.length;n++){var s;const o=null!==(s=e[n].displayName)&&void 0!==s?s:"",i=t[o]||[];i.push(n),t[o]=i}for(const s in t)t[s].length>1&&t[s].forEach(t=>{e[t].ambiguous=!0})})(o),n(o)}catch{n(null)}}(),()=>{s=!0}},[t,e]),(0,i.useEffect)(()=>{let s=!1;const o=async()=>{const o=await et(e,t);!s&&o&&n(o)},i=t=>{t.includes(e)&&o()},r=(t,s)=>{t===e&&o()};return t.on(d.cr.DevicesUpdated,i),t.on(d.cr.UserTrustStatusChanged,r),()=>{s=!0,t.removeListener(d.cr.DevicesUpdated,i),t.removeListener(d.cr.UserTrustStatusChanged,r)}},[t,e]),s},st=({room:e,member:t})=>{const s=(0,i.useContext)(C.Ay),n=((e,t)=>{const[s,n]=(0,i.useState)(Qe(t)),o=(0,i.useCallback)(e=>{t&&(e&&e.getType()!==l.EventType.RoomPowerLevels||n(Qe(t)))},[t]);return(0,S.YK)(e,l.RoomStateEvent.Events,o),(0,i.useEffect)(()=>(o(),()=>{n({})}),[o]),s})(s,e),o=(e=>(0,I.e)(async()=>!!e&&e.isSynapseAdministrator().catch(()=>!1),[e],!1))(s),[r,a]=(0,i.useState)(0),c=(0,i.useCallback)(()=>{a(r+1)},[r]),d=(0,i.useCallback)(()=>{a(r-1)},[r]),h=function(e,t,s){const[n,o]=(0,i.useState)({modifyLevelMax:-1,canEdit:!1,canInvite:!1}),r=(0,i.useCallback)(()=>{var n,i;const r=null==t||null===(n=t.currentState.getStateEvents(l.EventType.RoomPowerLevels,""))||void 0===n?void 0:n.getContent();if(!r)return;const a=t.getMember(e.getUserId()||"");if(!a)return;const c=s,d=a.userId===c.userId;let m=-1;if(c.powerLevel<a.powerLevel||d){var u,h,p;const e=null!==(u=null!==(h=null===(p=r.events)||void 0===p?void 0:p[l.EventType.RoomPowerLevels])&&void 0!==h?h:r.state_default)&&void 0!==u?u:50;a.powerLevel>=e&&(m=a.powerLevel)}o({canInvite:a.powerLevel>=(null!==(i=r.invite)&&void 0!==i?i:0),canEdit:m>=0,modifyLevelMax:m})},[e,s,t]);return(0,S.YK)(e,l.RoomStateEvent.Update,r),(0,i.useEffect)(()=>(r(),()=>{o({modifyLevelMax:-1,canEdit:!1,canInvite:!1})}),[r]),n}(s,e,t),p=(0,i.useCallback)(async()=>{const{finished:e}=E.Ay.createDialog(j.A,{title:(0,w._t)("user_info|deactivate_confirm_title"),description:i.createElement("div",null,(0,w._t)("user_info|deactivate_confirm_description")),button:(0,w._t)("user_info|deactivate_confirm_action"),danger:!0}),[n]=await e;if(n)try{await s.deactivateSynapseUser(t.userId)}catch(e){m.vF.error("Failed to deactivate user"),m.vF.error(e);const t=e instanceof Error?e.message:(0,w._t)("invite|failed_generic");E.Ay.createDialog(D.A,{title:(0,w._t)("user_info|error_deactivate"),description:t})}},[s,t.userId]);let g,v,_,f;o&&t.userId.endsWith(`:${s.getDomain()}`)&&(g=i.createElement(u.D,{role:"button",onSelect:async e=>{e.preventDefault(),p()},label:(0,w._t)("user_info|deactivate_confirm_action"),kind:"critical",Icon:y.A})),e&&t.roomId?(x.A.shared().getUserIdForRoomId(t.roomId)||(_=i.createElement(be,{user:t,room:e,roomPermissions:h})),f=i.createElement(_e,{powerLevels:n,member:t,room:e,isUpdating:r>0,startUpdating:c,stopUpdating:d},g)):g&&(f=i.createElement(Ze,null,g)),r>0&&(v=i.createElement(M.A,null));const b=t.userId===s.getUserId();return i.createElement(i.Fragment,null,i.createElement(qe,{canInvite:h.canInvite,member:t,isSpace:null==e?void 0:e.isSpaceRoom()},_),f,!b&&i.createElement(Ze,null,i.createElement(Xe,{member:t})),v)},nt=e=>{var t;let{user:s,room:r,onClose:a,phase:l=R.n.MemberInfo}=e,c=(0,o.A)(e,Je);const d=(0,i.useContext)(C.Ay),m=(0,i.useMemo)(()=>r&&r.getMember(s.userId)||s,[r,s]),u=(0,T.g)(d,r),h=null!==(t=tt(s.userId))&&void 0!==t?t:[],p=["mx_UserInfo"];let g={};r&&l===R.n.EncryptionPanel&&(g={member:m});const v=()=>{B.A.instance.popCard()};let _,f;switch(l){case R.n.MemberInfo:_=i.createElement(st,{room:r,member:m});break;case R.n.EncryptionPanel:p.push("mx_UserInfo_smallAvatar"),_=i.createElement(k.A,(0,n.A)({},c,{member:m,onClose:v,isRoomEncrypted:Boolean(u)}))}if(l===R.n.EncryptionPanel){const e=c.verificationRequest;e&&e.pending&&(f=(0,w._t)("action|cancel"))}const y=i.createElement(i.Fragment,null,i.createElement(Ke,{hideVerificationSection:l===R.n.EncryptionPanel,member:m,devices:h,roomId:null==r?void 0:r.roomId}));return i.createElement(O.A,{className:p.join(" "),header:(0,w._t)("common|profile"),onClose:a,closeLabel:f,cardState:g,onBack:e=>{B.A.instance.previousCard.phase===R.n.MemberList&&V.A.trackInteraction("WebRightPanelRoomUserInfoBackButton",e)}},y,_)}},"./src/components/views/right_panel/context.ts":(e,t,s)=>{"use strict";s.d(t,{E:()=>n});const n=s("./node_modules/react/index.js").createContext({isCard:!1})},"./src/components/views/right_panel/types.ts":(e,t,s)=>{"use strict";s.d(t,{M:()=>n});const n="im.vector.room.read_pins"},"./src/components/views/room_settings/AliasSettings.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>x});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./node_modules/matrix-js-sdk/src/logger.ts"),a=s("./src/languageHandler.tsx"),l=s("./src/components/views/elements/Field.tsx"),c=s("./src/components/views/elements/AccessibleButton.tsx");class d extends o.Component{constructor(...e){super(...e),(0,n.A)(this,"state",{verifyRemove:!1}),(0,n.A)(this,"onRemove",e=>{e.stopPropagation(),e.preventDefault(),this.setState({verifyRemove:!0})}),(0,n.A)(this,"onDontRemove",e=>{e.stopPropagation(),e.preventDefault(),this.setState({verifyRemove:!1})}),(0,n.A)(this,"onActuallyRemove",e=>{e.stopPropagation(),e.preventDefault(),this.props.onRemove&&this.props.onRemove(this.props.index),this.setState({verifyRemove:!1})})}render(){return this.state.verifyRemove?o.createElement("div",{className:"mx_EditableItem"},o.createElement("span",{className:"mx_EditableItem_promptText"},(0,a._t)("common|are_you_sure")),o.createElement(c.A,{onClick:this.onActuallyRemove,kind:"primary_sm",className:"mx_EditableItem_confirmBtn"},(0,a._t)("action|yes")),o.createElement(c.A,{onClick:this.onDontRemove,kind:"danger_sm",className:"mx_EditableItem_confirmBtn"},(0,a._t)("action|no"))):o.createElement("div",{className:"mx_EditableItem"},o.createElement("div",{onClick:this.onRemove,className:"mx_EditableItem_delete",title:(0,a._t)("action|remove"),role:"button"}),o.createElement("span",{className:"mx_EditableItem_item"},this.props.value))}}class m extends o.PureComponent{constructor(...e){super(...e),(0,n.A)(this,"onItemAdded",e=>{var t,s;e.stopPropagation(),e.preventDefault(),null===(t=(s=this.props).onItemAdded)||void 0===t||t.call(s,this.props.newItem)}),(0,n.A)(this,"onItemRemoved",e=>{var t,s;null===(t=(s=this.props).onItemRemoved)||void 0===t||t.call(s,e)}),(0,n.A)(this,"onNewItemChanged",e=>{var t,s;null===(t=(s=this.props).onNewItemChanged)||void 0===t||t.call(s,e.target.value)})}renderNewItemField(){return o.createElement("form",{onSubmit:this.onItemAdded,autoComplete:"off",noValidate:!0,className:"mx_EditableItemList_newItem"},o.createElement(l.A,{label:this.props.placeholder,type:"text",autoComplete:"off",value:this.props.newItem||"",onChange:this.onNewItemChanged,list:this.props.suggestionsListId}),o.createElement(c.A,{onClick:this.onItemAdded,kind:"primary",disabled:!this.props.newItem},(0,a._t)("action|add")))}render(){const e=this.props.items.map((e,t)=>this.props.canRemove?o.createElement(d,{key:e,index:t,value:e,onRemove:this.onItemRemoved}):o.createElement("li",{key:e},e)),t=this.props.canRemove?e:o.createElement("ul",null,e),s=this.props.items.length>0?this.props.itemsLabel:this.props.noItemsLabel;return o.createElement("div",{className:"mx_EditableItemList",id:this.props.id},o.createElement("div",{className:"mx_EditableItemList_label"},s),t,this.props.canEdit?this.renderNewItemField():o.createElement("div",null))}}var u=s("./src/components/views/elements/Spinner.tsx"),h=s("./src/components/views/dialogs/ErrorDialog.tsx"),p=s("./src/Modal.tsx"),g=s("./src/components/views/elements/LabelledToggleSwitch.tsx"),v=s("./src/MatrixClientPeg.ts"),_=s("./src/customisations/Directory.ts");class f extends o.PureComponent{constructor(e){super(e),(0,n.A)(this,"onRoomPublishChange",()=>{const e=this.state.isRoomPublished,t=!e;this.setState({isRoomPublished:t});v.J.safeGet().setRoomDirectoryVisibility(this.props.roomId,t?i.Visibility.Public:i.Visibility.Private).catch(()=>{this.showError(),this.setState({isRoomPublished:e})})}),this.state={isRoomPublished:!1}}showError(){p.Ay.createDialog(h.A,{title:(0,a._t)("room_settings|general|error_publishing"),description:(0,a._t)("room_settings|general|error_publishing_detail")})}componentDidMount(){v.J.safeGet().getRoomDirectoryVisibility(this.props.roomId).then(e=>{this.setState({isRoomPublished:"public"===e.visibility})})}render(){var e;const t=v.J.safeGet(),s=t.getRoom(this.props.roomId),n=s&&s.getJoinRule()!==i.JoinRule.Invite,r=(!1===(null===(e=_.A.requireCanonicalAliasAccessToPublish)||void 0===e?void 0:e.call(_.A))||this.props.canSetCanonicalAlias)&&(n||this.state.isRoomPublished);return o.createElement(g.A,{value:this.state.isRoomPublished,onChange:this.onRoomPublishChange,disabled:!r,label:(0,a._t)("room_settings|general|publish_toggle",{domain:t.getDomain()})})}}var y=s("./src/components/views/elements/RoomAliasField.tsx"),b=s("./src/contexts/MatrixClientContext.tsx"),E=s("./src/components/views/settings/SettingsFieldset.tsx");class w extends m{constructor(...e){super(...e),(0,n.A)(this,"aliasField",(0,o.createRef)()),(0,n.A)(this,"onAliasAdded",async e=>{e.preventDefault(),this.aliasField.current&&(await this.aliasField.current.validate({allowEmpty:!1}),this.aliasField.current.isValid?this.props.onItemAdded&&this.props.onItemAdded(this.props.newItem):(this.aliasField.current.focus(),this.aliasField.current.validate({allowEmpty:!1,focused:!0})))})}renderNewItemField(){return o.createElement("form",{onSubmit:this.onAliasAdded,autoComplete:"off",noValidate:!0,className:"mx_EditableItemList_newItem"},o.createElement(y.A,{ref:this.aliasField,onChange:e=>{var t,s;return null===(t=(s=this.props).onNewItemChanged)||void 0===t?void 0:t.call(s,e)},value:this.props.newItem||"",domain:this.props.domain,roomId:this.props.roomId}),o.createElement(c.A,{onClick:this.onAliasAdded,kind:"primary"},(0,a._t)("action|add")))}}class x extends o.Component{constructor(e){super(e),(0,n.A)(this,"onNewAliasChanged",e=>{this.setState({newAlias:e})}),(0,n.A)(this,"onLocalAliasAdded",e=>{if(!e||0===e.length)return;const t=this.context.getDomain();e.includes(":")||(e+=":"+t),this.context.createAlias(e,this.props.roomId).then(()=>{this.setState({localAliases:this.state.localAliases.concat(e),newAlias:void 0}),this.state.canonicalAlias||this.changeCanonicalAlias(e)}).catch(e=>{r.vF.error(e),p.Ay.createDialog(h.A,{title:(0,a._t)("room_settings|general|error_creating_alias_title"),description:(0,a._t)("room_settings|general|error_creating_alias_description")})})}),(0,n.A)(this,"onLocalAliasDeleted",e=>{const t=this.state.localAliases[e];this.context.deleteAlias(t).then(()=>{const e=this.state.localAliases.filter(e=>e!==t);this.setState({localAliases:e}),this.state.canonicalAlias===t&&this.changeCanonicalAlias(null)}).catch(e=>{let t;r.vF.error(e),t="M_FORBIDDEN"===e.errcode?(0,a._t)("room_settings|general|error_deleting_alias_description_forbidden"):(0,a._t)("room_settings|general|error_deleting_alias_description"),p.Ay.createDialog(h.A,{title:(0,a._t)("room_settings|general|error_deleting_alias_title"),description:t})})}),(0,n.A)(this,"onLocalAliasesToggled",e=>{e.currentTarget.open&&(this.props.canSetCanonicalAlias||0!==this.state.localAliases.length||this.loadLocalAliases()),this.setState({detailsOpen:e.currentTarget.open})}),(0,n.A)(this,"onCanonicalAliasChange",e=>{this.changeCanonicalAlias(e.target.value)}),(0,n.A)(this,"onNewAltAliasChanged",e=>{this.setState({newAltAlias:e})}),(0,n.A)(this,"onAltAliasAdded",e=>{const t=this.state.altAliases.slice();t.some(t=>t.trim()===e.trim())||(t.push(e.trim()),this.changeAltAliases(t),this.setState({newAltAlias:""}))}),(0,n.A)(this,"onAltAliasDeleted",e=>{const t=this.state.altAliases.slice();t.splice(e,1),this.changeAltAliases(t)});const t={altAliases:[],localAliases:[],canonicalAlias:null,updatingCanonicalAlias:!1,localAliasesLoading:!1,detailsOpen:!1};if(e.canonicalAliasEvent){const s=e.canonicalAliasEvent.getContent(),n=s.alt_aliases;Array.isArray(n)&&(t.altAliases=n.slice()),t.canonicalAlias=s.alias}this.state=t}componentDidMount(){this.props.canSetCanonicalAlias&&this.loadLocalAliases()}async loadLocalAliases(){this.setState({localAliasesLoading:!0});try{const e=this.context;let t=[];const s=await e.getLocalAliases(this.props.roomId);Array.isArray(null==s?void 0:s.aliases)&&(t=s.aliases),this.setState({localAliases:t}),0===t.length&&this.setState({detailsOpen:!0})}finally{this.setState({localAliasesLoading:!1})}}changeCanonicalAlias(e){if(!this.props.canSetCanonicalAlias)return;const t=this.state.canonicalAlias;this.setState({canonicalAlias:e,updatingCanonicalAlias:!0});const s={alt_aliases:this.state.altAliases};e&&(s.alias=e),this.context.sendStateEvent(this.props.roomId,i.EventType.RoomCanonicalAlias,s,"").catch(e=>{r.vF.error(e),p.Ay.createDialog(h.A,{title:(0,a._t)("room_settings|general|error_updating_canonical_alias_title"),description:(0,a._t)("room_settings|general|error_updating_canonical_alias_description")}),this.setState({canonicalAlias:t})}).finally(()=>{this.setState({updatingCanonicalAlias:!1})})}changeAltAliases(e){if(!this.props.canSetCanonicalAlias)return;this.setState({updatingCanonicalAlias:!0});const t={};this.state.canonicalAlias&&(t.alias=this.state.canonicalAlias),e&&(t.alt_aliases=e),this.context.sendStateEvent(this.props.roomId,i.EventType.RoomCanonicalAlias,t,"").then(()=>{this.setState({altAliases:e})}).catch(e=>{r.vF.error(e),p.Ay.createDialog(h.A,{title:(0,a._t)("room_settings|general|error_updating_canonical_alias_title"),description:(0,a._t)("room_settings|general|error_updating_alias_description")})}).finally(()=>{this.setState({updatingCanonicalAlias:!1})})}getAliases(){return this.state.altAliases.concat(this.getLocalNonAltAliases())}getLocalNonAltAliases(){const{altAliases:e}=this.state;return this.state.localAliases.filter(t=>!e.includes(t))}render(){var e;const t=this.context,s=t.getDomain(),n=null===(e=t.getRoom(this.props.roomId))||void 0===e?void 0:e.isSpaceRoom();let i=!1;const r=this.state.canonicalAlias||"",c=o.createElement(l.A,{onChange:this.onCanonicalAliasChange,value:r,disabled:this.state.updatingCanonicalAlias||!this.props.canSetCanonicalAlias,element:"select",id:"canonicalAlias",label:(0,a._t)("room_settings|general|canonical_alias_field_label")},o.createElement("option",{value:"",key:"unset"},(0,a._t)("room_settings|alias_not_specified")),this.getAliases().map((e,t)=>(e===this.state.canonicalAlias&&(i=!0),o.createElement("option",{value:e,key:t},e))),i||!this.state.canonicalAlias?"":o.createElement("option",{value:this.state.canonicalAlias,key:"arbitrary"},this.state.canonicalAlias));let d;return d=this.state.localAliasesLoading?o.createElement(u.A,null):o.createElement(w,{id:"roomAliases",items:this.state.localAliases,newItem:this.state.newAlias,onNewItemChanged:this.onNewAliasChanged,canRemove:this.props.canSetAliases,canEdit:this.props.canSetAliases,onItemAdded:this.onLocalAliasAdded,onItemRemoved:this.onLocalAliasDeleted,noItemsLabel:n?(0,a._t)("room_settings|general|no_aliases_space"):(0,a._t)("room_settings|general|no_aliases_room"),placeholder:(0,a._t)("room_settings|general|local_alias_field_label"),domain:s}),o.createElement(o.Fragment,null,o.createElement(E.A,{legend:(0,a._t)("room_settings|general|published_aliases_section"),description:o.createElement(o.Fragment,null,n?(0,a._t)("room_settings|general|published_aliases_explainer_space"):(0,a._t)("room_settings|general|published_aliases_explainer_room")," ",(0,a._t)("room_settings|general|published_aliases_description"))},c,this.props.hidePublishSetting?null:o.createElement(f,{roomId:this.props.roomId,canSetCanonicalAlias:this.props.canSetCanonicalAlias}),o.createElement("datalist",{id:"mx_AliasSettings_altRecommendations"},this.getLocalNonAltAliases().map(e=>o.createElement("option",{value:e,key:e})),";"),o.createElement(w,{id:"roomAltAliases",items:this.state.altAliases,newItem:this.state.newAltAlias,onNewItemChanged:this.onNewAltAliasChanged,canRemove:this.props.canSetCanonicalAlias,canEdit:this.props.canSetCanonicalAlias,onItemAdded:this.onAltAliasAdded,onItemRemoved:this.onAltAliasDeleted,suggestionsListId:"mx_AliasSettings_altRecommendations",itemsLabel:(0,a._t)("room_settings|general|aliases_items_label"),noItemsLabel:(0,a._t)("room_settings|general|aliases_no_items_label"),placeholder:(0,a._t)("room_settings|general|new_alias_placeholder"),roomId:this.props.roomId})),o.createElement(E.A,{legend:(0,a._t)("room_settings|general|local_aliases_section"),description:n?(0,a._t)("room_settings|general|local_aliases_explainer_space",{localDomain:s}):(0,a._t)("room_settings|general|local_aliases_explainer_room",{localDomain:s})},o.createElement("details",{onToggle:this.onLocalAliasesToggled,open:this.state.detailsOpen},o.createElement("summary",{className:"mx_AliasSettings_localAddresses"},this.state.detailsOpen?(0,a._t)("room_list|show_less"):(0,a._t)("common|show_more")),d)))}}(0,n.A)(x,"contextType",b.Ay),(0,n.A)(x,"defaultProps",{canSetAliases:!1,canSetCanonicalAlias:!1})},"./src/components/views/rooms/Autocomplete.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>U,D:()=>j});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/classnames/index.js"),r=s.n(i),a=s("./node_modules/lodash/lodash.js"),l=s("./src/autocomplete/CommandProvider.tsx"),c=s("./src/languageHandler.tsx"),d=s("./src/autocomplete/AutocompleteProvider.tsx"),m=s("./src/MatrixClientPeg.ts"),u=s("./src/autocomplete/QueryMatcher.ts"),h=s("./src/autocomplete/Components.tsx"),p=s("./src/utils/permalinks/Permalinks.ts"),g=s("./src/components/views/avatars/RoomAvatar.tsx"),v=s("./src/settings/SettingsStore.ts");const _=/\B#\S*/g;function f(e,t,s=""){return{room:e,matchName:s,displayedAlias:t}}class y extends d.A{constructor(e,t){super({commandRegex:_,renderingType:t}),(0,n.A)(this,"matcher",void 0),this.room=e,this.matcher=new u.A([],{keys:["displayedAlias","matchName"]})}getRooms(){return m.J.safeGet().getVisibleRooms(v.A.getValue("feature_dynamic_room_predecessors")).filter(e=>!e.isSpaceRoom())}async getCompletions(e,t,s=!1,n=-1){const{command:i,range:r}=this.getCurrentCommand(e,t,s);if(i){let e=this.getRooms().reduce((e,t)=>{if(t.getCanonicalAlias()&&(e=e.concat(f(t,t.getCanonicalAlias(),t.name))),t.getAltAliases().length){const s=t.getAltAliases().map(e=>f(t,e));e=e.concat(s)}return e},[]);e=e.filter(t=>{const s=t.room.currentState.getStateEvents("m.room.tombstone","");if(s&&s.getContent()&&s.getContent().replacement_room){return!e.some(e=>e.room.roomId===s.getContent().replacement_room)}return!0}),this.matcher.setObjects(e);const t=i[0];let s=this.matcher.match(t,n);return s=(0,a.sortBy)(s,[e=>{return t=e.displayedAlias,s=e.room,t===s.getCanonicalAlias()?0:1;var t,s},e=>e.displayedAlias.length]),s=(0,a.uniqBy)(s,e=>e.room),s.map(e=>({completion:e.displayedAlias,completionId:e.room.roomId,type:"room",suffix:" ",href:(0,p.B4)(this.room.client,e.displayedAlias),component:o.createElement(h.i,{title:e.room.name,description:e.displayedAlias},o.createElement(g.A,{size:"24px",room:e.room})),range:r})).filter(e=>!!e.completion&&e.completion.length>0)}return[]}getName(){return(0,c._t)("common|rooms")}renderCompletions(e){return o.createElement("div",{className:"mx_Autocomplete_Completion_container_pill mx_Autocomplete_Completion_container_truncate",role:"presentation","aria-label":(0,c._t)("composer|autocomplete|room_a11y")},e)}}var b=s("./src/autocomplete/UserProvider.tsx"),E=s("./node_modules/emojibase-regex/emoticon.js"),w=s.n(E),x=s("./node_modules/@matrix-org/emojibase-bindings/build/emoji.js"),A=s("./src/emojipicker/recent.ts"),S=s("./src/utils/arrays.ts");const C=new RegExp("("+w().source+"|(?:^|\\s):[+-\\w]*:?)$","g"),R=x.EMOJI.sort((e,t)=>e.group===t.group?e.order-t.order:e.group-t.group).map((e,t)=>({emoji:e,_orderBy:t}));function k(e,t){if(Array.isArray(t))return Math.min(...t.map(t=>k(e,t)));const s=t.indexOf(e);return-1===s?1/0:s}class I extends d.A{constructor(e,t){super({commandRegex:C,renderingType:t}),(0,n.A)(this,"matcher",void 0),(0,n.A)(this,"nameMatcher",void 0),(0,n.A)(this,"recentlyUsed",void 0),this.matcher=new u.A(R,{keys:[],funcs:[e=>e.emoji.shortcodes.map(e=>`:${e}:`)],shouldMatchWordsOnly:!1}),this.nameMatcher=new u.A(R,{keys:["emoji.label"],shouldMatchWordsOnly:!0}),this.recentlyUsed=Array.from(new Set((0,S.Bo)(A.J().map(x.getEmojiFromUnicode))))}async getCompletions(e,t,s,n=-1){if(!v.A.getValue("MessageComposerInput.suggestEmoji"))return[];let i=[];const{command:r,range:l}=this.getCurrentCommand(e,t);if(r&&r[0].length>2){const e=r[0];i=this.matcher.match(e,n),i=i.concat(this.nameMatcher.match(e));const t=[];t.push(t=>k(e,t.emoji.emoticon||"")),t.push(t=>k(e,t.emoji.shortcodes[0]));const s=e.replace(/^:(.*?):?$/,"$1");t.push(e=>Math.min(...e.emoji.shortcodes.map(e=>k(s,e)))),e.length>1&&t.push(e=>e.emoji.shortcodes[0].length),t.push(e=>e._orderBy),i=(0,a.sortBy)((0,a.uniq)(i),t),i=i.slice(0,20);const c=[];this.recentlyUsed.forEach(e=>{0===e.shortcodes[0].indexOf(s)&&c.push({emoji:e,_orderBy:0})});for(let e=0;e<c.length;e++)if(c[e].emoji.shortcodes[0]===s){const t=c[e];for(let t=e;t>0;t--)c[t]=c[t-1];c[0]=t;break}return i=c.concat(i),i=(0,a.uniqBy)(i,"emoji"),i.map(e=>({completion:e.emoji.unicode,component:o.createElement(h.i,{title:`:${e.emoji.shortcodes[0]}:`,"aria-label":e.emoji.unicode},o.createElement("span",null,e.emoji.unicode)),range:l}))}return[]}getName(){return"😃 "+(0,c._t)("common|emoji")}renderCompletions(e){return o.createElement("div",{className:"mx_Autocomplete_Completion_container_pill",role:"presentation","aria-label":(0,c._t)("composer|autocomplete|emoji_a11y")},e)}}const P=/@\S*/g;class T extends d.A{constructor(e,t){super({commandRegex:P,renderingType:t}),this.room=e}async getCompletions(e,t,s=!1,n=-1){const i=m.J.safeGet();if(!this.room.currentState.mayTriggerNotifOfType("room",i.getSafeUserId()))return[];const{command:r,range:a}=this.getCurrentCommand(e,t,s);return null!=r&&r[0]&&r[0].length>1&&["@room","@channel","@everyone","@here"].some(e=>e.startsWith(r[0]))?[{completion:"@room",completionId:"@room",type:"at-room",suffix:" ",component:o.createElement(h.i,{title:"@room",description:(0,c._t)("composer|autocomplete|@room_description")},o.createElement(g.A,{size:"24px",room:this.room})),range:a}]:[]}getName(){return"❗️ "+(0,c._t)("composer|autocomplete|notification_description")}renderCompletions(e){return o.createElement("div",{className:"mx_Autocomplete_Completion_container_pill mx_Autocomplete_Completion_container_truncate",role:"presentation","aria-label":(0,c._t)("composer|autocomplete|notification_a11y")},e)}}var O=s("./src/utils/promise.ts");var M=s("./src/contexts/RoomContext.ts");const N=[b.A,y,I,T,l.A,class extends y{getRooms(){return m.J.safeGet().getVisibleRooms(v.A.getValue("feature_dynamic_room_predecessors")).filter(e=>e.isSpaceRoom())}getName(){return(0,c._t)("common|spaces")}renderCompletions(e){return o.createElement("div",{className:"mx_Autocomplete_Completion_container_pill mx_Autocomplete_Completion_container_truncate",role:"listbox","aria-label":(0,c._t)("composer|autocomplete|space_a11y")},e)}}];class D{constructor(e,t=M.Ae.Room){(0,n.A)(this,"room",void 0),(0,n.A)(this,"providers",void 0),this.room=e,this.providers=N.map(s=>new s(e,t))}destroy(){this.providers.forEach(e=>{e.destroy()})}async getCompletions(e,t,s=!1,n=-1){const o=await Promise.all(this.providers.map(async o=>(0,O.wR)(o.getCompletions(e,t,s,n),null,3e3)));return(0,S.Bo)(o.map((n,o)=>{if(n&&n.length)return{completions:n,provider:this.providers[o],command:this.providers[o].getCurrentCommand(e,t,s)}}))}}const j=e=>`mx_Autocomplete_Completion_${e}`;class U extends o.PureComponent{constructor(e){super(e),(0,n.A)(this,"autocompleter",void 0),(0,n.A)(this,"queryRequested",void 0),(0,n.A)(this,"debounceCompletionsRequest",void 0),(0,n.A)(this,"containerRef",(0,o.createRef)()),(0,n.A)(this,"completionRefs",{}),(0,n.A)(this,"hide",()=>{this.setState({hide:!0,selectionOffset:1,completions:[],completionList:[]})}),(0,n.A)(this,"onConfirmCompletion",()=>{this.onCompletionClicked(this.state.selectionOffset)}),(0,n.A)(this,"onCompletionClicked",e=>{const t=this.countCompletions();return!(0===t||e<1||e>t)&&(this.props.onConfirm(this.state.completionList[e-1]),this.hide(),!0)}),this.state={completions:[],completionList:[],selectionOffset:1,shouldShowCompletions:!0,hide:!1,forceComplete:!1}}componentDidMount(){this.autocompleter=new D(this.props.room,this.context.timelineRenderingType),this.applyNewProps()}applyNewProps(e,t){var s;t&&this.props.room.roomId!==t.roomId&&(null===(s=this.autocompleter)||void 0===s||s.destroy(),this.autocompleter=new D(this.props.room));e!==this.props.query&&this.complete(this.props.query,this.props.selection)}componentWillUnmount(){var e;null===(e=this.autocompleter)||void 0===e||e.destroy()}complete(e,t){if(this.queryRequested=e,this.debounceCompletionsRequest&&clearTimeout(this.debounceCompletionsRequest),""===e)return this.setState({completions:[],completionList:[],selectionOffset:1,hide:!0}),Promise.resolve();let s=v.A.getValue("autocompleteDelay");return(this.state.completions.length>0||this.state.forceComplete)&&(s=0),new Promise(n=>{this.debounceCompletionsRequest=window.setTimeout(()=>{n(this.processQuery(e,t))},s)})}async processQuery(e,t){if(!this.autocompleter)return;const s=await this.autocompleter.getCompletions(e,t,this.state.forceComplete,20);e===this.queryRequested&&await this.processCompletions(s)}async processCompletions(e){const t=(0,a.flatMap)(e,e=>e.completions);let s=1;if(t.length>0){const e=this.state.selectionOffset<=1?null:this.state.completionList[this.state.selectionOffset-1].completion;s=t.findIndex(t=>t.completion===e),-1===s?s=1:s++}let n=!0;e.some(e=>!!e.command.command)&&(n=!1,this.props.onSelectionChange&&this.props.onSelectionChange(s-1));const o=Promise.withResolvers();this.setState({completions:e,completionList:t,selectionOffset:s,hide:n,forceComplete:!1},o.resolve),await o.promise}hasSelection(){return this.countCompletions()>0&&0!==this.state.selectionOffset}countCompletions(){return this.state.completionList.length}moveSelection(e){const t=this.countCompletions();if(0===t)return;const s=(this.state.selectionOffset+e+t-1)%t;this.setSelection(1+s)}onEscape(e){0!==this.countCompletions()&&(e.preventDefault(),this.hide())}forceComplete(){return new Promise(e=>{this.setState({forceComplete:!0,hide:!1},()=>{this.complete(this.props.query,this.props.selection).then(()=>{e(this.countCompletions())})})})}setSelection(e){this.setState({selectionOffset:e,hide:!1}),this.props.onSelectionChange&&this.props.onSelectionChange(e-1)}componentDidUpdate(e){var t;this.applyNewProps(e.query,e.room);const s=null===(t=this.completionRefs[`completion${this.state.selectionOffset}`])||void 0===t?void 0:t.current;s?s.scrollIntoView({behavior:"auto",block:"nearest"}):this.containerRef.current&&this.containerRef.current.scrollTo({top:0})}render(){let e=1;const t=this.state.completions.map((t,s)=>{const n=t.completions.map((t,s)=>{const n=e===this.state.selectionOffset,i=r()("mx_Autocomplete_Completion",{selected:n}),a=e;e++;const l=`completion${a}`;return this.completionRefs[l]||(this.completionRefs[l]=(0,o.createRef)()),o.cloneElement(t.component,{key:s,ref:this.completionRefs[l],id:j(a-1),className:i,onClick:()=>{this.onCompletionClicked(a)},"aria-selected":n})});return n.length>0?o.createElement("div",{key:s,className:"mx_Autocomplete_ProviderSection",role:"presentation"},o.createElement("div",{className:"mx_Autocomplete_provider_name"},t.provider.getName()),t.provider.renderCompletions(n)):null}).filter(e=>!!e);return!this.state.hide&&t.length>0?o.createElement("div",{id:"mx_Autocomplete",className:"mx_Autocomplete",ref:this.containerRef,role:"listbox"},t):null}}(0,n.A)(U,"contextType",M.Ay)},"./src/components/views/rooms/BasicMessageComposer.tsx":(e,t,s)=>{"use strict";s.d(t,{v:()=>K,A:()=>Z});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./node_modules/react/index.js"),a=s("./node_modules/emojibase-regex/emoticon.js"),l=s.n(a),c=s("./node_modules/matrix-js-sdk/src/logger.ts"),d=s("./node_modules/@matrix-org/emojibase-bindings/build/emoji.js");class m{constructor(){(0,n.A)(this,"stack",[]),(0,n.A)(this,"newlyTypedCharCount",0),(0,n.A)(this,"currentIndex",-1),(0,n.A)(this,"changedSinceLastPush",!1),(0,n.A)(this,"lastCaret",void 0),(0,n.A)(this,"nonWordBoundarySinceLastPush",!1),(0,n.A)(this,"addedSinceLastPush",!1),(0,n.A)(this,"removedSinceLastPush",!1)}clear(){this.stack=[],this.newlyTypedCharCount=0,this.currentIndex=-1,this.changedSinceLastPush=!1,this.lastCaret=void 0,this.nonWordBoundarySinceLastPush=!1,this.addedSinceLastPush=!1,this.removedSinceLastPush=!1}shouldPush(e,t){if(t&&("insertText"===e||"deleteContentForward"===e||"deleteContentBackward"===e)){if(t.added&&(this.addedSinceLastPush=!0),t.removed&&(this.removedSinceLastPush=!0),this.addedSinceLastPush!==this.removedSinceLastPush){const e=t.added?t.added:t.removed,s=" "===e||"\t"===e||"\n"===e;return!(!this.nonWordBoundarySinceLastPush||!s)||(s||(this.nonWordBoundarySinceLastPush=!0),this.newlyTypedCharCount+=e.length,this.newlyTypedCharCount>10)}return!0}return!0}pushState(e,t){for(;this.currentIndex<this.stack.length-1;)this.stack.pop();const s=e.serializeParts();this.stack.push({parts:s,caret:t}),this.currentIndex=this.stack.length-1,this.lastCaret=void 0,this.changedSinceLastPush=!1,this.newlyTypedCharCount=0,this.nonWordBoundarySinceLastPush=!1,this.addedSinceLastPush=!1,this.removedSinceLastPush=!1}tryPush(e,t,s,n){if("historyUndo"===s||"historyRedo"===s)return!1;const o=this.shouldPush(s,n);return o?this.pushState(e,t):(this.lastCaret=t,this.changedSinceLastPush=!0),o}ensureLastChangesPushed(e){this.changedSinceLastPush&&this.lastCaret&&this.pushState(e,this.lastCaret)}canUndo(){return this.currentIndex>=1||this.changedSinceLastPush}canRedo(){return this.currentIndex<this.stack.length-1}undo(e){if(this.canUndo())return this.ensureLastChangesPushed(e),this.currentIndex-=1,this.stack[this.currentIndex]}redo(){if(this.canRedo())return this.changedSinceLastPush=!1,this.currentIndex+=1,this.stack[this.currentIndex]}}var u=s("./src/editor/render.ts"),h=s("./src/editor/range.ts"),p=s("./src/editor/parts.ts");function g(e,t,s){s instanceof h.A?function(e,t,s){const n=document.getSelection();n.removeAllRanges();const o=document.createRange(),i=v(e,t,s.start);o.setStart(i.node,i.offset);const r=v(e,t,s.end);o.setEnd(r.node,r.offset),n.addRange(o)}(e,t,s):function(e,t,s){if(t.isEmpty)return;const n=document.createRange(),{node:o,offset:i}=v(e,t,s);n.setStart(o,i),n.collapse(!0);const r=document.getSelection();if(1===r.rangeCount){const e=r.getRangeAt(0);if(e.startContainer===n.startContainer&&e.startOffset===n.startOffset&&e.collapsed===n.collapsed)return}r.removeAllRanges(),r.addRange(n)}(e,t,s)}function v(e,t,s){const{offset:n,lineIndex:o,nodeIndex:i}=function(e,t){const{parts:s}=e,n=t.index;let{offset:o}=t;const i=function(e,t,s){let n,o=0,i=-1;for(let r=0;r<=t;++r){const a=e[r];if(a.type===p.ZU.Newline){if(r==t&&0===s)continue;o+=1,i=-1,n=void 0}else{if(i+=1,(0,u.UE)(a,n)&&(i+=1),r<t){const t=e[r+1],s=!t||t.type===p.ZU.Newline;(0,u.dO)(a,s)&&(i+=1)}n=a}}return{lineIndex:o,nodeIndex:i}}(s,n,o),{lineIndex:r}=i;let{nodeIndex:a}=i;-1===a?o=0:({nodeIndex:a,offset:o}=function(e,t,s,n){const o=e[t];if(o&&!o.acceptsCaret)if(0===n){s-=1;const i=e[t-1];(0,u.UE)(o,i)||(n=i.text.length)}else s+=1,n=0;return{nodeIndex:s,offset:n}}(s,n,a,o));return{lineIndex:r,nodeIndex:a,offset:o}}(t,s),r=e.childNodes[o];let a;return-1===i?a=r:(a=r.childNodes[i],a.nodeType===Node.ELEMENT_NODE&&a.firstChild&&(a=a.firstChild)),{node:a,offset:n}}var _=s("./src/languageHandler.tsx"),f=s("./src/accessibility/RovingTabIndex.tsx"),y=s("./src/accessibility/Toolbar.tsx");let b=function(e){return e.Bold="bold",e.Italics="italics",e.Strikethrough="strikethrough",e.Code="code",e.Quote="quote",e.InsertLink="insert_link",e}({});class E extends r.PureComponent{constructor(e){super(e),(0,n.A)(this,"formatBarRef",(0,r.createRef)()),(0,n.A)(this,"BAR_HEIGHT",34),this.state={visible:!1}}render(){const e=i()("mx_MessageComposerFormatBar",{mx_MessageComposerFormatBar_shown:this.state.visible});return r.createElement(y.A,{className:e,ref:this.formatBarRef,"aria-label":(0,_._t)("composer|formatting_toolbar_label")},r.createElement(w,{label:(0,_._t)("composer|format_bold"),onClick:()=>this.props.onAction(b.Bold),icon:"Bold",shortcut:this.props.shortcuts.bold,visible:this.state.visible}),r.createElement(w,{label:(0,_._t)("composer|format_italics"),onClick:()=>this.props.onAction(b.Italics),icon:"Italic",shortcut:this.props.shortcuts.italics,visible:this.state.visible}),r.createElement(w,{label:(0,_._t)("composer|format_strikethrough"),onClick:()=>this.props.onAction(b.Strikethrough),icon:"Strikethrough",visible:this.state.visible}),r.createElement(w,{label:(0,_._t)("composer|format_code_block"),onClick:()=>this.props.onAction(b.Code),icon:"Code",shortcut:this.props.shortcuts.code,visible:this.state.visible}),r.createElement(w,{label:(0,_._t)("action|quote"),onClick:()=>this.props.onAction(b.Quote),icon:"Quote",shortcut:this.props.shortcuts.quote,visible:this.state.visible}),r.createElement(w,{label:(0,_._t)("composer|format_insert_link"),onClick:()=>this.props.onAction(b.InsertLink),icon:"InsertLink",shortcut:this.props.shortcuts.insert_link,visible:this.state.visible}))}showAt(e){var t;if(null===(t=this.formatBarRef.current)||void 0===t||!t.parentElement)return;this.setState({visible:!0});const s=this.formatBarRef.current.parentElement.getBoundingClientRect();this.formatBarRef.current.style.left=e.left-s.left+"px";const n=this.BAR_HEIGHT/2,o=n+(n+2),i=Math.max(e.top-s.top-o,-o);this.formatBarRef.current.style.top=`${i}px`}hide(){this.setState({visible:!1})}}class w extends r.PureComponent{render(){const e=`mx_MessageComposerFormatBar_button mx_MessageComposerFormatBar_buttonIcon${this.props.icon}`;return r.createElement(f.k,{element:"button",type:"button",onClick:this.props.onClick,"aria-label":this.props.label,title:this.props.label,caption:this.props.shortcut,className:e})}}var x=s("./src/editor/deserialize.ts");function A(e,t){if(e.wasInitializedEmpty()?function(e){e.expandForwardsWhile(R),e.expandBackwardsWhile(R),e.trim()}(e):e.trim(),0!==e.length)switch(t){case b.Bold:M(e,"**");break;case b.Italics:M(e,"*");break;case b.Strikethrough:M(e,"<del>","</del>");break;case b.Code:!function(e){const{model:t,parts:s}=e,{partCreator:n}=t,o=e.length>0&&e.text.startsWith("```")&&e.text.endsWith("```")&&e.text.includes("\n"),i=s.some(e=>e.type===p.ZU.Newline);if(o){var r,a;s.shift(),s.pop(),"\n"===(null===(r=s[0])||void 0===r?void 0:r.text)&&"\n"===(null===(a=s[s.length-1])||void 0===a?void 0:a.text)&&(s.shift(),s.pop())}else{if(!i){const t=(0,x.SL)(e.text),s=e.text.startsWith("`")&&e.text.endsWith("`");return void M(e,"`".repeat(s?t:t+1))}s.unshift(n.plain("```"),n.newline()),k(e)||s.unshift(n.newline()),s.push(n.newline(),n.plain("```")),I(e)||s.push(n.newline())}S(e,s)}(e);break;case b.Quote:!function(e){const{model:t,parts:s}=e,{partCreator:n}=t;for(let e=0;e<s.length;++e){s[e].type===p.ZU.Newline&&s.splice(e+1,0,n.plain("> "))}s.unshift(n.plain("> ")),k(e)||s.unshift(n.newline());I(e)||s.push(n.newline());s.push(n.newline()),S(e,s)}(e);break;case b.InsertLink:P(e)}}function S(e,t){const{model:s}=e;s.transform(()=>{const n=e.length,o=e.replace(t),i=e.start.asOffset(s),r=i.add(n+o);return s.startRange(i.asPosition(s),r.asPosition(s))})}function C(e,t,s=0,n=!1){const{model:o}=e;o.transform(()=>{const i=e.length,r=e.replace(t);return e.start.asOffset(o).add(i+r+s,n).asPosition(o)})}const R=(e,t,s)=>" "!==s.text[t]&&s.type===p.ZU.Plain;function k(e){const{model:t}=e,s=0!==e.start.offset,n=0===e.start.index,o=!n&&t.parts[e.start.index-1].type===p.ZU.Newline;return!s&&(n||o)}function I(e){const{model:t}=e,s=t.parts[e.end.index],n=e.end.offset!==s.text.length,o=e.end.index===t.parts.length-1,i=!o&&t.parts[e.end.index+1].type===p.ZU.Newline;return!n&&(o||i)}function P(e,t){const{model:s}=e,{partCreator:n}=s,o=/\[(.*?)]\(.*?\)/g;if(o.test(e.text)){const t=e.text.replace(o,"$1");C(e,[n.plain(t)],0)}else C(e,[n.plain("["+e.text+"]("+(null!=t?t:"")+")")],-1)}const T=e=>!e.text||!/\S/.test(e.text),O=e=>e.type===p.ZU.Newline;function M(e,t,s=t){const{model:n,parts:o}=e,{partCreator:i}=n,r=[];let a=0;for(let e=2;e<o.length;e++)T(o[e-2])&&O(o[e-1])&&!O(o[e])&&!T(o[e])&&(a=e),O(o[e-1])&&O(o[e])?(r.push([a,e-1]),a=e+1):O(o[e-2])&&T(o[e-1])&&O(o[e])&&(r.push([a,e-2]),a=e+1);const l=o.map(T).lastIndexOf(!1);a<=l&&r.push([a,l+1]);let c=0;if(r.forEach(([e,n])=>{const r=e+c,a=n+c;if(a-r>0&&o[r].text.startsWith(t)&&o[a-1].text.endsWith(s)){const e=o[r].serialize();e.text=e.text.slice(t.length);let n=i.deserializePart(e);n&&(o[r]=n);const l=o[a-1].serialize(),c=l.text;l.text=c.substring(0,c.length-s.length),n=i.deserializePart(l),n&&(o[a-1]=n)}else o.splice(a,0,i.plain(s)),o.splice(r,0,i.plain(t)),c+=2}),e.wasInitializedEmpty()&&t===s){const n=e.text.startsWith(t)&&e.text.endsWith(s);!function(e,t,s=!1,n,o=n){const{model:i}=e,r=e.getLastStartingPosition(),a=r.offset-e.start.offset,l=e.length-a;if(s){if(a<n)return void C(e,t,-(e.length-2*o));if(l<o)return void C(e,t,0,!0)}i.transform(()=>{const s=Math.sign(e.replace(t)),a=l===o;return r.asOffset(i).add(s*n,a).asPosition(i)})}(e,o,n,t.length)}else S(e,o)}var N=s("./src/editor/dom.ts"),D=s("./src/components/views/rooms/Autocomplete.tsx"),j=s("./src/settings/SettingsStore.ts"),U=s("./src/Keyboard.ts"),F=s("./src/SlashCommands.tsx"),L=s("./src/KeyBindingsManager.ts"),B=s("./src/accessibility/KeyboardShortcuts.ts"),V=s("./src/linkify-matrix.ts"),H=s("./src/contexts/SDKContext.ts"),W=s("./src/MatrixClientPeg.ts"),$=s("./src/accessibility/LandmarkNavigation.ts");const z=new RegExp("(?:^|\\s)("+l().source+")\\s|:^$"),K=new RegExp("(?:^|\\s)("+l().source+")$"),J=['"',"_","`","'","*","~","$"],G=new Map([["(",")"],["[","]"],["{","}"],["<",">"]]);function q(e,t=!1,s=!1){return(U.vL?"⌘":(0,_._t)(B.hm[U.Uz.CONTROL]))+(t?"+"+(0,_._t)(B.hm[U.Uz.SHIFT]):"")+(s?"+"+(0,_._t)(B.hm[U.Uz.ALT]):"")+"+"+e}function Y(e){return{anchorNode:e.anchorNode,anchorOffset:e.anchorOffset,focusNode:e.focusNode,focusOffset:e.focusOffset,isCollapsed:e.isCollapsed,rangeCount:e.rangeCount,type:e.type}}class Z extends r.Component{constructor(e){super(e),(0,n.A)(this,"editorRef",(0,r.createRef)()),(0,n.A)(this,"autocompleteRef",(0,r.createRef)()),(0,n.A)(this,"formatBarRef",(0,r.createRef)()),(0,n.A)(this,"modifiedFlag",!1),(0,n.A)(this,"isIMEComposing",!1),(0,n.A)(this,"hasTextSelected",!1),(0,n.A)(this,"isSafari",void 0),(0,n.A)(this,"_isCaretAtEnd",!1),(0,n.A)(this,"lastCaret",void 0),(0,n.A)(this,"lastSelection",null),(0,n.A)(this,"useMarkdownHandle",void 0),(0,n.A)(this,"emoticonSettingHandle",void 0),(0,n.A)(this,"shouldShowPillAvatarSettingHandle",void 0),(0,n.A)(this,"surroundWithHandle",void 0),(0,n.A)(this,"historyManager",new m),(0,n.A)(this,"updateEditorState",(e,t,s)=>{var n,o,i,r;if(!this.editorRef.current)return;if((0,u.e7)(this.editorRef.current,this.props.model),e){try{g(this.editorRef.current,this.props.model,e)}catch(e){c.vF.error(e)}const t=e instanceof h.A?e.end:e;this.setLastCaretFromPosition(t)}const{isEmpty:a}=this.props.model;var l;(this.props.placeholder&&(a?this.showPlaceholder():this.hidePlaceholder()),a)&&(null===(l=this.formatBarRef.current)||void 0===l||l.hide());this.setState({autoComplete:null!==(n=this.props.model.autoComplete)&&void 0!==n?n:void 0,showVisualBell:!s&&this.state.showVisualBell}),this.historyManager.tryPush(this.props.model,e,t,s);let d=!this.props.model.isEmpty&&!!t;if(d&&"command"===this.props.model.parts[0].type){const{cmd:e}=(0,F.SY)(this.props.model.parts[0].text),t=F.yc.get(e);null!=t&&t.isEnabled(W.J.get())&&t.category===F.ge.messages||(d=!1)}H.M.instance.typingStore.setSelfTyping(this.props.room.roomId,null!==(o=this.props.threadId)&&void 0!==o?o:null,d),null===(i=(r=this.props).onChange)||void 0===i||i.call(r,e,t,s)}),(0,n.A)(this,"onCompositionStart",()=>{this.isIMEComposing=!0,this.hidePlaceholder()}),(0,n.A)(this,"onCompositionEnd",()=>{this.isIMEComposing=!1,this.isSafari?this.onInput({inputType:"insertCompositionText"}):Promise.resolve().then(()=>{this.onInput({inputType:"insertCompositionText"})})}),(0,n.A)(this,"onCutCopy",(e,t)=>{const s=document.getSelection(),n=s.toString();if(n&&this.editorRef.current){const{model:o}=this.props,i=(0,N.Bh)(this.editorRef.current,o,s),r=i.parts.map(e=>e.serialize());e.clipboardData.setData("application/x-element-composer",JSON.stringify(r)),e.clipboardData.setData("text/plain",n),"cut"===t&&(this.modifiedFlag=!0,C(i,[])),e.preventDefault()}}),(0,n.A)(this,"onCopy",e=>{this.onCutCopy(e,"copy")}),(0,n.A)(this,"onCut",e=>{this.onCutCopy(e,"cut")}),(0,n.A)(this,"onPasteHandler",(e,t)=>{var s,n;if(e.preventDefault(),!this.editorRef.current)return;if(null!==(s=(n=this.props).onPaste)&&void 0!==s&&s.call(n,e,t,this.props.model))return!0;const{model:o}=this.props,{partCreator:i}=o,r=t.getData("text/plain"),a=t.getData("application/x-element-composer");let l;if(a){l=JSON.parse(a).map(e=>i.deserializePart(e))}else l=(0,x.OZ)(r,i,{shouldEscape:!1});this.modifiedFlag=!0;const c=(0,N.Bh)(this.editorRef.current,o,document.getSelection());r&&c.length>0&&V.Bu.test(r)&&!V.Bu.test(c.text)?P(c,r):C(c,l)}),(0,n.A)(this,"onPaste",e=>this.onPasteHandler(e,e.clipboardData)),(0,n.A)(this,"onBeforeInput",e=>{this.isIMEComposing||"insertFromPaste"===e.inputType&&e.dataTransfer&&this.onPasteHandler(e,e.dataTransfer)}),(0,n.A)(this,"onInput",e=>{if(!this.editorRef.current)return;if(this.isIMEComposing)return;this.modifiedFlag=!0;const t=document.getSelection(),{caret:s,text:n}=(0,N.xo)(this.editorRef.current,t);this.props.model.update(n,e.inputType,s)}),(0,n.A)(this,"onBlur",()=>{document.removeEventListener("selectionchange",this.onSelectionChange)}),(0,n.A)(this,"onFocus",()=>{document.addEventListener("selectionchange",this.onSelectionChange),this.lastSelection=null,this.refreshLastCaretIfNeeded()}),(0,n.A)(this,"onSelectionChange",()=>{if(!this.editorRef.current)return;const{isEmpty:e}=this.props.model;this.refreshLastCaretIfNeeded();const t=document.getSelection();var s;if(this.hasTextSelected&&t.isCollapsed)this.hasTextSelected=!1,null===(s=this.formatBarRef.current)||void 0===s||s.hide();else if(!t.isCollapsed&&!e){this.hasTextSelected=!0;const e=(0,N.Bh)(this.editorRef.current,this.props.model,t);if(this.formatBarRef.current&&this.state.useMarkdown&&e.text.trim()){const e=t.getRangeAt(0).getBoundingClientRect();this.formatBarRef.current.showAt(e)}}}),(0,n.A)(this,"onKeyDown",e=>{var t;if(!this.editorRef.current)return;if(this.isSafari&&229==e.which)return void e.stopPropagation();const s=this.props.model;let n=!1;if(this.state.surroundWith&&"Caret"!==document.getSelection().type){const t=(0,N.Bh)(this.editorRef.current,this.props.model,document.getSelection());t.trim(),[...G.keys(),...J].includes(e.key)&&(this.historyManager.ensureLastChangesPushed(this.props.model),this.modifiedFlag=!0,M(t,e.key,G.get(e.key)),n=!0)}const o=(0,L.zM)().getNavigationAction(e);o!==B.bY.NextLandmark&&o!==B.bY.PreviousLandmark||($.r.findAndFocusNextLandmark($.H.MESSAGE_COMPOSER_OR_HOME,o===B.bY.PreviousLandmark),n=!0);const i=(0,L.zM)().getAutocompleteAction(e),r=(0,L.zM)().getAccessibilityAction(e);if(null!==(t=s.autoComplete)&&void 0!==t&&t.hasCompletions()){const t=s.autoComplete;switch(i){case B.bY.ForceCompleteAutocomplete:case B.bY.CompleteAutocomplete:this.historyManager.ensureLastChangesPushed(this.props.model),this.modifiedFlag=!0,t.confirmCompletion(),n=!0;break;case B.bY.PrevSelectionInAutocomplete:t.selectPreviousSelection(),n=!0;break;case B.bY.NextSelectionInAutocomplete:t.selectNextSelection(),n=!0;break;case B.bY.CancelAutocomplete:t.onEscape(e),n=!0}}else if(i!==B.bY.ForceCompleteAutocomplete||this.state.showVisualBell){if([B.bY.Delete,B.bY.Backspace].includes(r)){var a;null===(a=this.formatBarRef.current)||void 0===a||a.hide()}}else this.tabCompleteName(),n=!0;if(n)return e.preventDefault(),void e.stopPropagation();switch((0,L.zM)().getMessageComposerAction(e)){case B.bY.FormatBold:this.onFormatAction(b.Bold),n=!0;break;case B.bY.FormatItalics:this.onFormatAction(b.Italics),n=!0;break;case B.bY.FormatCode:this.onFormatAction(b.Code),n=!0;break;case B.bY.FormatQuote:this.onFormatAction(b.Quote),n=!0;break;case B.bY.FormatLink:this.onFormatAction(b.InsertLink),n=!0;break;case B.bY.EditRedo:{const e=this.historyManager.redo();if(e){const{parts:t,caret:n}=e;s.reset(t,n,"historyRedo")}n=!0;break}case B.bY.EditUndo:{const e=this.historyManager.undo(this.props.model);if(e){const{parts:t,caret:n}=e;s.reset(t,n,"historyUndo")}n=!0;break}case B.bY.NewLine:this.insertText("\n"),n=!0;break;case B.bY.MoveCursorToStart:g(this.editorRef.current,s,{index:0,offset:0}),n=!0;break;case B.bY.MoveCursorToEnd:g(this.editorRef.current,s,{index:s.parts.length-1,offset:s.parts[s.parts.length-1].text.length}),n=!0}n&&(e.preventDefault(),e.stopPropagation())}),(0,n.A)(this,"onAutoCompleteConfirm",e=>{var t;this.modifiedFlag=!0,null===(t=this.props.model.autoComplete)||void 0===t||t.onComponentConfirm(e)}),(0,n.A)(this,"onAutoCompleteSelectionChange",e=>{this.modifiedFlag=!0,this.setState({completionIndex:e})}),(0,n.A)(this,"configureUseMarkdown",()=>{const e=j.A.getValue("MessageComposerInput.useMarkdown");this.setState({useMarkdown:e}),!e&&this.formatBarRef.current&&this.formatBarRef.current.hide()}),(0,n.A)(this,"configureEmoticonAutoReplace",()=>{this.props.model.setTransformCallback(this.transform)}),(0,n.A)(this,"configureShouldShowPillAvatar",()=>{const e=j.A.getValue("Pill.shouldShowPillAvatar");this.setState({showPillAvatar:e})}),(0,n.A)(this,"surroundWithSettingChanged",()=>{const e=j.A.getValue("MessageComposerInput.surroundWith");this.setState({surroundWith:e})}),(0,n.A)(this,"transform",e=>{j.A.getValue("MessageComposerInput.autoReplaceEmoji")&&this.replaceEmoticon(e,z)}),(0,n.A)(this,"onFormatAction",e=>{if(!this.state.useMarkdown||!this.editorRef.current)return;const t=(0,N.Bh)(this.editorRef.current,this.props.model,document.getSelection());this.historyManager.ensureLastChangesPushed(this.props.model),this.modifiedFlag=!0,A(t,e)}),this.state={showPillAvatar:j.A.getValue("Pill.shouldShowPillAvatar"),useMarkdown:j.A.getValue("MessageComposerInput.useMarkdown"),surroundWith:j.A.getValue("MessageComposerInput.surroundWith"),showVisualBell:!1};const t=navigator.userAgent.toLowerCase();this.isSafari=t.includes("safari/")&&!t.includes("chrome/"),this.configureEmoticonAutoReplace()}componentDidUpdate(e){const t=this.props.disabled!==e.disabled,s=this.props.placeholder!==e.placeholder;if(this.props.placeholder&&(s||t)){const{isEmpty:e}=this.props.model;e?this.showPlaceholder():this.hidePlaceholder()}}replaceEmoticon(e,t){const{model:s}=this.props,n=s.startRange(e);let o=9;n.expandBackwardsWhile((e,t)=>{const n=s.parts[e];return o-=1,o>=0&&[p.ZU.Plain,p.ZU.PillCandidate,p.ZU.Newline].includes(n.type)});const i=t.exec(n.text);if(i&&(o>=0||0!==i.index)){const e=i[1],t=d.EMOTICON_TO_EMOJI.get(e);if(t){const{partCreator:e}=s,o=i[0],r=" "===o[0]?1:0;return n.moveStartForwards(i.index+r),["\n"," "].includes(o[o.length-1])&&n.moveEndBackwards(1),n.replace([e.emoji(t.unicode)])}}}showPlaceholder(){var e,t,s;null===(e=this.editorRef.current)||void 0===e||e.style.setProperty("--placeholder",`'${CSS.escape(null!==(t=this.props.placeholder)&&void 0!==t?t:"")}'`),null===(s=this.editorRef.current)||void 0===s||s.classList.add("mx_BasicMessageComposer_inputEmpty")}hidePlaceholder(){var e,t;null===(e=this.editorRef.current)||void 0===e||e.classList.remove("mx_BasicMessageComposer_inputEmpty"),null===(t=this.editorRef.current)||void 0===t||t.style.removeProperty("--placeholder")}isComposing(e){return!!(this.isIMEComposing||e.nativeEvent&&e.nativeEvent.isComposing)}insertText(e,t="insertText"){if(!this.editorRef.current)return;const s=document.getSelection(),{caret:n,text:o}=(0,N.xo)(this.editorRef.current,s),i=o.slice(0,n.offset)+e+o.slice(n.offset);n.offset+=e.length,this.modifiedFlag=!0,this.props.model.update(i,t,n)}setLastCaretFromPosition(e){const{model:t}=this.props;this._isCaretAtEnd=e.isAtEnd(t),this.lastCaret=e.asOffset(t),this.lastSelection=Y(document.getSelection())}refreshLastCaretIfNeeded(){if(!this.editorRef.current)return;const e=document.getSelection();if(!this.lastSelection||(t=this.lastSelection,s=e,t.anchorNode!==s.anchorNode||t.anchorOffset!==s.anchorOffset||t.focusNode!==s.focusNode||t.focusOffset!==s.focusOffset||t.isCollapsed!==s.isCollapsed||t.rangeCount!==s.rangeCount||t.type!==s.type)){this.lastSelection=Y(e);const{caret:t,text:s}=(0,N.xo)(this.editorRef.current,e);this.lastCaret=t,this._isCaretAtEnd=t.offset===s.length}var t,s;return this.lastCaret}clearUndoHistory(){this.historyManager.clear()}getCaret(){return this.lastCaret}isSelectionCollapsed(){return!this.lastSelection||!!this.lastSelection.isCollapsed}isCaretAtStart(){return 0===this.getCaret().offset}isCaretAtEnd(){return this._isCaretAtEnd}async tabCompleteName(){try{await new Promise(e=>this.setState({showVisualBell:!1},e));const{model:e}=this.props,t=this.getCaret(),s=e.positionForOffset(t.offset,t.atNodeEnd),n=e.startRange(s);n.expandBackwardsWhile((e,t,s)=>" "!==s.text[t]&&"+"!==s.text[t]&&(s.type===p.ZU.Plain||s.type===p.ZU.PillCandidate||s.type===p.ZU.Command));const{partCreator:o}=e;await e.transform(()=>{const s=n.replace([o.pillCandidate(n.text)]);return e.positionForOffset(t.offset+s,!0)}),e.autoComplete?(await e.autoComplete.startSelection(),e.autoComplete.hasSelection()||(this.setState({showVisualBell:!0}),e.autoComplete.close())):this.setState({showVisualBell:!0})}catch(e){c.vF.error(e)}}isModified(){return this.modifiedFlag}componentWillUnmount(){var e,t,s,n;document.removeEventListener("selectionchange",this.onSelectionChange),null===(e=this.editorRef.current)||void 0===e||e.removeEventListener("beforeinput",this.onBeforeInput,!0),null===(t=this.editorRef.current)||void 0===t||t.removeEventListener("input",this.onInput,!0),null===(s=this.editorRef.current)||void 0===s||s.removeEventListener("compositionstart",this.onCompositionStart,!0),null===(n=this.editorRef.current)||void 0===n||n.removeEventListener("compositionend",this.onCompositionEnd,!0),j.A.unwatchSetting(this.useMarkdownHandle),j.A.unwatchSetting(this.emoticonSettingHandle),j.A.unwatchSetting(this.shouldShowPillAvatarSettingHandle),j.A.unwatchSetting(this.surroundWithHandle)}componentDidMount(){var e,t,s,n,o;this.useMarkdownHandle=j.A.watchSetting("MessageComposerInput.useMarkdown",null,this.configureUseMarkdown),this.emoticonSettingHandle=j.A.watchSetting("MessageComposerInput.autoReplaceEmoji",null,this.configureEmoticonAutoReplace),this.shouldShowPillAvatarSettingHandle=j.A.watchSetting("Pill.shouldShowPillAvatar",null,this.configureShouldShowPillAvatar),this.surroundWithHandle=j.A.watchSetting("MessageComposerInput.surroundWith",null,this.surroundWithSettingChanged);const i=this.props.model;i.setUpdateCallback(this.updateEditorState);i.partCreator.setAutoCompleteCreator((0,p.NY)(()=>this.autocompleteRef.current,e=>new Promise(t=>this.setState({query:e},t)))),this.updateEditorState(this.getInitialCaretPosition()),null===(e=this.editorRef.current)||void 0===e||e.addEventListener("beforeinput",this.onBeforeInput,!0),null===(t=this.editorRef.current)||void 0===t||t.addEventListener("input",this.onInput,!0),null===(s=this.editorRef.current)||void 0===s||s.addEventListener("compositionstart",this.onCompositionStart,!0),null===(n=this.editorRef.current)||void 0===n||n.addEventListener("compositionend",this.onCompositionEnd,!0),null===(o=this.editorRef.current)||void 0===o||o.focus()}getInitialCaretPosition(){let e;if(this.props.initialCaret){const t=this.props.initialCaret;e=this.props.model.positionForOffset(t.offset,t.atNodeEnd)}else e=this.props.model.getPositionAtEnd();return e}render(){var e;let t;if(this.state.autoComplete&&this.state.query){const e=this.state.query,s=e.length;t=r.createElement("div",{className:"mx_BasicMessageComposer_AutoCompleteWrapper"},r.createElement(D.A,{ref:this.autocompleteRef,query:e,onConfirm:this.onAutoCompleteConfirm,onSelectionChange:this.onAutoCompleteSelectionChange,selection:{beginning:!0,end:s,start:s},room:this.props.room}))}const s=i()("mx_BasicMessageComposer",{mx_BasicMessageComposer_input_error:this.state.showVisualBell}),n=i()("mx_BasicMessageComposer_input",{mx_BasicMessageComposer_input_shouldShowPillAvatar:this.state.showPillAvatar,mx_BasicMessageComposer_input_disabled:this.props.disabled}),o={[b.Bold]:q("B"),[b.Italics]:q("I"),[b.Code]:q("E"),[b.Quote]:q(">",!0),[b.InsertLink]:q("L",!0)},{completionIndex:a}=this.state,l=!!this.state.autoComplete;let c;return l&&a>=0&&(c=(0,D.D)(a)),r.createElement("div",{className:s},t,r.createElement(E,{ref:this.formatBarRef,onAction:this.onFormatAction,shortcuts:o}),r.createElement("div",{className:n,contentEditable:!this.props.disabled||void 0,tabIndex:0,onBlur:this.onBlur,onFocus:this.onFocus,onCopy:this.onCopy,onCut:this.onCut,onPaste:this.onPaste,onKeyDown:this.onKeyDown,ref:this.editorRef,"aria-label":this.props.label,role:"textbox","aria-multiline":"true","aria-autocomplete":"list","aria-haspopup":"listbox","aria-expanded":l?!(null!==(e=this.autocompleteRef.current)&&void 0!==e&&e.state.hide):void 0,"aria-owns":l?"mx_Autocomplete":void 0,"aria-activedescendant":c,dir:"auto","aria-disabled":this.props.disabled,translate:"no"}))}focus(){var e;null===(e=this.editorRef.current)||void 0===e||e.focus()}insertMention(e){this.modifiedFlag=!0;const{model:t}=this.props,{partCreator:s}=t,n=this.props.room.getMember(e),o=n?n.rawDisplayName:e,i=this.getCaret(),r=t.positionForOffset(i.offset,i.atNodeEnd),a=s.createMentionParts(0===i.offset,o,e);t.transform(()=>{const e=t.insert(a,r);return t.positionForOffset(i.offset+e,!0)}),this.focus()}insertQuotedMessage(e){this.modifiedFlag=!0;const{model:t}=this.props,{partCreator:s}=t,n=(0,x.wj)(e,s,{isQuotedMessage:!0});n.push(s.newline()),n.push(s.newline()),t.transform(()=>{const e=t.insert(n,t.positionForOffset(0));return t.positionForOffset(e,!0)}),this.focus()}insertPlaintext(e){this.modifiedFlag=!0;const{model:t}=this.props,{partCreator:s}=t,n=this.getCaret(),o=t.positionForOffset(n.offset,n.atNodeEnd);t.transform(()=>{const i=t.insert(s.plainWithEmoji(e),o);return t.positionForOffset(n.offset+i,!0)})}}},"./src/components/views/rooms/E2EIcon.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>u,g:()=>d});var n=s("./node_modules/react/index.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/Tooltip.js"),a=s("./src/languageHandler.tsx"),l=s("./src/components/views/elements/AccessibleButton.tsx"),c=s("./src/utils/ShieldUtils.ts");const d={[c.z.Warning]:(0,a.AO)("encryption|cross_signing_user_warning"),[c.z.Normal]:(0,a.AO)("encryption|cross_signing_user_normal"),[c.z.Verified]:(0,a.AO)("encryption|cross_signing_user_verified")},m={[c.z.Warning]:(0,a.AO)("encryption|cross_signing_room_warning"),[c.z.Normal]:(0,a.AO)("encryption|cross_signing_room_normal"),[c.z.Verified]:(0,a.AO)("encryption|cross_signing_room_verified")},u=({isUser:e,status:t,className:s,size:o,onClick:u,hideTooltip:h,tooltipPlacement:p,bordered:g})=>{const v=i()({mx_E2EIcon:!0,mx_E2EIcon_bordered:g,mx_E2EIcon_warning:t===c.z.Warning,mx_E2EIcon_normal:t===c.z.Normal,mx_E2EIcon_verified:t===c.z.Verified},s);let _,f;_=e?d[t]:m[t],o&&(f={width:`${o}px`,height:`${o}px`});const y=_?(0,a._t)(_):"";let b;return b=u?n.createElement(l.A,{onClick:u,className:v,style:f}):t===c.z.Verified||t===c.z.Warning?n.createElement("div",{className:v,style:f},n.createElement("div",{className:"mx_E2EIcon_normal"})):n.createElement("div",{className:v,style:f}),!_||h?b:n.createElement(r.m,{label:y,placement:p,isTriggerInteractive:!!u},b)}},"./src/components/views/rooms/LegacyRoomList.tsx":(e,t,s)=>{"use strict";s.d(t,{Q:()=>W,A:()=>J});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./node_modules/react/index.js"),a=s("./src/accessibility/RovingTabIndex.tsx"),l=s("./src/contexts/MatrixClientContext.tsx"),c=s("./src/customisations/helpers/UIComponents.ts"),d=s("./src/dispatcher/actions.ts"),m=s("./src/dispatcher/dispatcher.ts"),u=s("./src/hooks/useEventEmitter.ts"),h=s("./src/languageHandler.tsx"),p=s("./src/MatrixClientPeg.ts"),g=s("./src/PosthogTrackers.ts"),v=s("./src/settings/SettingsStore.ts"),_=s("./src/hooks/useSettings.ts"),f=s("./src/settings/UIFeature.ts"),y=s("./src/stores/notifications/RoomNotificationStateStore.ts"),b=s("./src/stores/room-list/models.ts"),E=s("./src/stores/AsyncStore.ts"),w=s("./src/stores/room-list/RoomListStore.ts"),x=s("./src/stores/spaces/index.ts"),A=s("./src/stores/spaces/SpaceStore.ts"),S=s("./src/utils/arrays.ts"),C=s("./src/utils/objects.ts"),R=s("./src/utils/space.tsx"),k=s("./src/components/structures/ContextMenu.tsx"),I=s("./src/components/views/avatars/RoomAvatar.tsx"),P=s("./src/components/views/beta/BetaCard.tsx"),T=s("./src/components/views/context_menus/IconizedContextMenu.tsx"),O=s("./node_modules/classnames/index.js"),M=s.n(O),N=s("./src/components/views/rooms/NotificationBadge.tsx");function D({isSelected:e,isMinimized:t,notificationState:s,displayName:n,onClick:o,avatar:i}){const[,{onMouseOver:l,onMouseLeave:c}]=function(e){const[t,s]=(0,r.useState)(!1);return[t,{onMouseOver:()=>s(!0),onMouseLeave:()=>s(!1),onMouseMove:t=>{s(!e(t))}}]}(()=>!1),d=M()({mx_ExtraTile:!0,mx_RoomTile:!0,mx_RoomTile_selected:e,mx_RoomTile_minimized:t});let m=null;s&&(m=r.createElement(N.A,{notification:s}));let u=n;"string"!=typeof u&&(u=""),u=u.replace(":",":");const h=M()({mx_RoomTile_title:!0,mx_RoomTile_titleHasUnreadEvents:null==s?void 0:s.isUnread});let p=r.createElement("div",{className:"mx_RoomTile_titleContainer"},r.createElement("div",{title:u,className:h,tabIndex:-1,dir:"auto"},u));return t&&(p=null),r.createElement(a.k,{className:d,onMouseEnter:l,onMouseLeave:c,onClick:o,role:"treeitem",title:u,disableTooltip:!t},r.createElement("div",{className:"mx_RoomTile_avatarContainer"},i),r.createElement("div",{className:"mx_RoomTile_details"},r.createElement("div",{className:"mx_RoomTile_primaryDetails"},p,r.createElement("div",{className:"mx_RoomTile_badgeContainer"},m))))}var j=s("./src/components/views/rooms/RoomSublist.tsx"),U=s("./src/contexts/SDKContext.ts"),F=s("./src/accessibility/KeyboardShortcuts.ts"),L=s("./src/KeyBindingsManager.ts"),B=s("./src/components/views/elements/AccessibleButton.tsx"),V=s("./src/accessibility/LandmarkNavigation.ts"),H=s("./src/LegacyCallHandler.tsx");const W=[b.zO.Invite,b.zO.Favourite,b.zO.DM,b.zO.Untagged,b.zO.Conference,b.zO.LowPriority,b.zO.ServerNotice,b.zO.Suggested],$=[b.zO.DM,b.zO.Untagged],z=e=>{const t=e.getBoundingClientRect();return{chevronFace:k.t4.None,left:t.left-7,top:t.top+t.height}},K={[b.zO.Invite]:{sectionLabel:(0,h.AO)("action|invites_list"),isInvite:!0,defaultHidden:!1},[b.zO.Favourite]:{sectionLabel:(0,h.AO)("common|favourites"),isInvite:!1,defaultHidden:!1},[b.zO.DM]:{sectionLabel:(0,h.AO)("common|people"),isInvite:!1,defaultHidden:!1,AuxButtonComponent:({tabIndex:e,dispatcher:t=m.A})=>{const[s,n,i,a]=(0,k.EF)(),l=(0,u.dF)(A.Ay.instance,x.tw,()=>A.Ay.instance.activeSpaceRoom),p=(0,c.g)(f.C.CreateRooms),v=(0,c.g)(f.C.InviteUsers);if(l&&(p||v)){let t;if(s&&n.current){const e=(0,R.MI)(l);t=r.createElement(T.Ay,(0,o.A)({},z(n.current),{onFinished:a,compact:!0}),r.createElement(T.tx,{first:!0},p&&r.createElement(T.R$,{label:(0,h._t)("action|start_new_chat"),iconClassName:"mx_LegacyRoomList_iconStartChat",onClick:e=>{e.preventDefault(),e.stopPropagation(),a(),m.A.dispatch({action:d.r.CreateChat}),g.A.trackInteraction("WebRoomListRoomsSublistPlusMenuCreateChatItem",e)}}),v&&r.createElement(T.R$,{label:(0,h._t)("action|invite_to_space"),iconClassName:"mx_LegacyRoomList_iconInvite",onClick:e=>{e.preventDefault(),e.stopPropagation(),a(),(0,R.Lo)(l)},disabled:!e,title:e?void 0:(0,h._t)("spaces|error_no_permission_invite")})))}return r.createElement(r.Fragment,null,r.createElement(k.oW,{tabIndex:e,onClick:i,className:"mx_RoomSublist_auxButton","aria-label":(0,h._t)("action|add_people"),title:(0,h._t)("action|add_people"),isExpanded:s,ref:n}),t)}return!l&&p?r.createElement(B.A,{tabIndex:e,onClick:e=>{t.dispatch({action:d.r.CreateChat}),g.A.trackInteraction("WebRoomListRoomsSublistPlusMenuCreateChatItem",e)},className:"mx_RoomSublist_auxButton","aria-label":(0,h._t)("action|start_chat"),title:(0,h._t)("action|start_chat")}):null}},[b.zO.Conference]:{sectionLabel:(0,h.AO)("voip|metaspace_video_rooms|conference_room_section"),isInvite:!1,defaultHidden:!1},[b.zO.Untagged]:{sectionLabel:(0,h.AO)("common|rooms"),isInvite:!1,defaultHidden:!1,AuxButtonComponent:({tabIndex:e})=>{const[t,s,n,a]=(0,k.EF)(),l=(0,u.dF)(A.Ay.instance,x.tw,()=>A.Ay.instance.activeSpaceRoom),v=(0,c.g)(f.C.CreateRooms),y=(0,c.g)(f.C.ExploreRooms),b=(0,_.ny)("feature_video_rooms"),E=(0,_.ny)("feature_element_call_video_rooms");let w;if(t&&l){const e=l.currentState.maySendStateEvent(i.EventType.SpaceChild,p.J.safeGet().getSafeUserId());w=r.createElement(T.tx,{first:!0},r.createElement(T.R$,{label:(0,h._t)("action|explore_rooms"),iconClassName:"mx_LegacyRoomList_iconExplore",onClick:e=>{e.preventDefault(),e.stopPropagation(),a(),m.A.dispatch({action:d.r.ViewRoom,room_id:l.roomId,metricsTrigger:void 0}),g.A.trackInteraction("WebRoomListRoomsSublistPlusMenuExploreRoomsItem",e)}}),v?r.createElement(r.Fragment,null,r.createElement(T.R$,{label:(0,h._t)("action|new_room"),iconClassName:"mx_LegacyRoomList_iconNewRoom",onClick:e=>{e.preventDefault(),e.stopPropagation(),a(),(0,R.PT)(l),g.A.trackInteraction("WebRoomListRoomsSublistPlusMenuCreateRoomItem",e)},disabled:!e,title:e?void 0:(0,h._t)("spaces|error_no_permission_create_room")}),b&&r.createElement(T.R$,{label:(0,h._t)("action|new_video_room"),iconClassName:"mx_LegacyRoomList_iconNewVideoRoom",onClick:e=>{e.preventDefault(),e.stopPropagation(),a(),(0,R.PT)(l,E?i.RoomType.UnstableCall:i.RoomType.ElementVideo)},disabled:!e,title:e?void 0:(0,h._t)("spaces|error_no_permission_create_room")},r.createElement(P.s,null)),r.createElement(T.R$,{label:(0,h._t)("action|add_existing_room"),iconClassName:"mx_LegacyRoomList_iconAddExistingRoom",onClick:e=>{e.preventDefault(),e.stopPropagation(),a(),(0,R.yV)(l)},disabled:!e,title:e?void 0:(0,h._t)("spaces|error_no_permission_add_room")})):null)}else t&&(w=r.createElement(T.tx,{first:!0},v&&r.createElement(r.Fragment,null,r.createElement(T.R$,{label:(0,h._t)("action|new_room"),iconClassName:"mx_LegacyRoomList_iconNewRoom",onClick:e=>{e.preventDefault(),e.stopPropagation(),a(),m.A.dispatch({action:d.r.CreateRoom}),g.A.trackInteraction("WebRoomListRoomsSublistPlusMenuCreateRoomItem",e)}}),b&&r.createElement(T.R$,{label:(0,h._t)("action|new_video_room"),iconClassName:"mx_LegacyRoomList_iconNewVideoRoom",onClick:e=>{e.preventDefault(),e.stopPropagation(),a(),m.A.dispatch({action:d.r.CreateRoom,type:E?i.RoomType.UnstableCall:i.RoomType.ElementVideo})}},r.createElement(P.s,null))),y?r.createElement(T.R$,{label:(0,h._t)("action|explore_public_rooms"),iconClassName:"mx_LegacyRoomList_iconExplore",onClick:e=>{e.preventDefault(),e.stopPropagation(),a(),g.A.trackInteraction("WebRoomListRoomsSublistPlusMenuExploreRoomsItem",e),m.A.fire(d.r.ViewRoomDirectory)}}):null));let S=null;return t&&s.current&&(S=r.createElement(T.Ay,(0,o.A)({},z(s.current),{onFinished:a,compact:!0}),w)),v||y?r.createElement(r.Fragment,null,r.createElement(k.oW,{tabIndex:e,onClick:n,className:"mx_RoomSublist_auxButton","aria-label":(0,h._t)("room_list|add_room_label"),title:(0,h._t)("room_list|add_room_label"),isExpanded:t,ref:s}),S):null}},[b.zO.LowPriority]:{sectionLabel:(0,h.AO)("common|low_priority"),isInvite:!1,defaultHidden:!1},[b.zO.ServerNotice]:{sectionLabel:(0,h.AO)("common|system_alerts"),isInvite:!1,defaultHidden:!1},[b.zO.Archived]:{sectionLabel:(0,h.AO)("common|historical"),isInvite:!1,defaultHidden:!0},[b.zO.Suggested]:{sectionLabel:(0,h.AO)("room_list|suggested_rooms_heading"),isInvite:!1,defaultHidden:!1}};class J extends r.PureComponent{constructor(e){super(e),(0,n.A)(this,"dispatcherRef",void 0),(0,n.A)(this,"treeRef",(0,r.createRef)()),(0,n.A)(this,"updateProtocolSupport",()=>{this.updateLists()}),(0,n.A)(this,"onRoomViewStoreUpdate",()=>{var e;this.setState({currentRoomId:null!==(e=U.M.instance.roomViewStore.getRoomId())&&void 0!==e?e:void 0})}),(0,n.A)(this,"onAction",e=>{if(e.action===d.r.ViewRoomDelta){const t=e,s=U.M.instance.roomViewStore.getRoomId();if(!s)return;const n=this.getRoomDelta(s,t.delta,t.unread);n&&m.A.dispatch({action:d.r.ViewRoom,room_id:n.roomId,show_room_tile:!0,metricsTrigger:"WebKeyboardShortcut",metricsViaKeyboard:!0})}}),(0,n.A)(this,"getRoomDelta",(e,t,s=!1)=>{const n=w.Ay.instance.orderedLists,o=[];W.forEach(t=>{let i=n[t];s&&(i=i.filter(t=>{const s=y.n.instance.getRoomState(t);return s.room.roomId===e||s.isUnread})),o.push(...i)});const i=o.findIndex(t=>t.roomId===e),[r]=o.slice((i+t)%o.length);return r}),(0,n.A)(this,"updateSuggestedRooms",e=>{this.setState({suggestedRooms:e})}),(0,n.A)(this,"updateLists",()=>{const e=w.Ay.instance.orderedLists,t=Object.keys(this.state.sublists),s=Object.keys(e);let n=(0,S.dc)(t,s);if(!n)for(const t of s){const s=this.state.sublists[t],o=e[t];if(s.length!==o.length){n=!0;break}}if(n){const t=(0,C.aG)(e,s),n=(0,C.tn)(t,(e,t)=>(0,S.PF)(t));this.setState({sublists:n},()=>{this.props.onResize()})}}),this.state={sublists:{},suggestedRooms:A.Ay.instance.suggestedRooms}}componentDidMount(){this.dispatcherRef=m.A.register(this.onAction),U.M.instance.roomViewStore.on(E.H,this.onRoomViewStoreUpdate),A.Ay.instance.on(x.b4,this.updateSuggestedRooms),w.Ay.instance.on(w.lA,this.updateLists),H.Ay.instance.on(H.uv.ProtocolSupport,this.updateProtocolSupport),this.updateLists()}componentWillUnmount(){A.Ay.instance.off(x.b4,this.updateSuggestedRooms),w.Ay.instance.off(w.lA,this.updateLists),m.A.unregister(this.dispatcherRef),U.M.instance.roomViewStore.off(E.H,this.onRoomViewStoreUpdate),H.Ay.instance.off(H.uv.ProtocolSupport,this.updateProtocolSupport)}renderSuggestedRooms(){return this.state.suggestedRooms.map(e=>{var t;const s=e.name||e.canonical_alias||(null===(t=e.aliases)||void 0===t?void 0:t[0])||(0,h._t)("empty_room"),n=r.createElement(I.A,{oobData:{name:s,avatarUrl:e.avatar_url},size:"32px"});return r.createElement(D,{isMinimized:this.props.isMinimized,isSelected:this.state.currentRoomId===e.room_id,displayName:s,avatar:n,onClick:t=>{var n;m.A.dispatch({action:d.r.ViewRoom,room_alias:e.canonical_alias||(null===(n=e.aliases)||void 0===n?void 0:n[0]),room_id:e.room_id,via_servers:e.viaServers,oob_data:{avatarUrl:e.avatar_url,name:s},metricsTrigger:"RoomList",metricsViaKeyboard:"click"!==t.type})},key:`suggestedRoomTile_${e.room_id}`})})}renderSublists(){var e;const t=!(null!==(e=this.state.suggestedRooms)&&void 0!==e&&e.length)&&Object.values(w.Ay.instance.orderedLists).every(e=>!(null!=e&&e.length));return W.map(e=>{let s;e===b.zO.Suggested&&(s=this.renderSuggestedRooms());const n=K[e];if(!n)throw new Error(`Tag ${e} does not have aesthetics`);let o=$.includes(e);(this.props.activeSpace===x._b.Favourites&&e!==b.zO.Favourite||this.props.activeSpace===x._b.People&&e!==b.zO.DM||this.props.activeSpace===x._b.Orphans&&e===b.zO.DM||this.props.activeSpace===x._b.VideoRooms&&e===b.zO.DM||!(0,x.ww)(this.props.activeSpace)&&e===b.zO.DM&&!v.A.getValue("Spaces.showPeopleInSpace",this.props.activeSpace))&&(o=!1);let i=!1;return(this.props.activeSpace===x._b.Favourites&&e===b.zO.Favourite||this.props.activeSpace===x._b.People&&e===b.zO.DM)&&(i=!0),r.createElement(j.A,{key:`sublist-${e}`,tagId:e,forRooms:!0,startAsHidden:n.defaultHidden,label:n.sectionLabelRaw?n.sectionLabelRaw:(0,h._t)(n.sectionLabel),AuxButtonComponent:n.AuxButtonComponent,isMinimized:this.props.isMinimized,showSkeleton:t,extraTiles:s,resizeNotifier:this.props.resizeNotifier,alwaysVisible:o,onListCollapse:this.props.onListCollapse,forceExpanded:i})})}focus(){var e,t;const s=null===(e=this.treeRef.current)||void 0===e?void 0:e.querySelectorAll('[role="treeitem"]');s&&(null===(t=[...s].find(e=>null!==e.offsetParent))||void 0===t||t.focus())}render(){const e=this.renderSublists();return r.createElement(a.Se,{handleHomeEnd:!0,handleUpDown:!0,onKeyDown:this.props.onKeyDown},({onKeyDownHandler:t})=>r.createElement("div",{onFocus:this.props.onFocus,onBlur:this.props.onBlur,onKeyDown:e=>{const s=(0,L.zM)().getNavigationAction(e);if(s===F.bY.NextLandmark||s===F.bY.PreviousLandmark)return V.r.findAndFocusNextLandmark(V.H.ROOM_LIST,s===F.bY.PreviousLandmark),e.stopPropagation(),void e.preventDefault();t(e)},className:"mx_LegacyRoomList",role:"tree","aria-label":(0,h._t)("common|rooms"),ref:this.treeRef},e))}}(0,n.A)(J,"contextType",l.Ay)},"./src/components/views/rooms/LiveContentSummary.tsx":(e,t,s)=>{"use strict";s.d(t,{In:()=>l,eg:()=>d,m_:()=>c});var n=s("./node_modules/react/index.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./src/languageHandler.tsx"),a=s("./src/hooks/useCall.ts");let l=function(e){return e[e.Video=0]="Video",e}({});const c=({type:e,text:t,active:s,participantCount:o})=>n.createElement("span",{className:"mx_LiveContentSummary"},n.createElement("span",{className:i()("mx_LiveContentSummary_text",{mx_LiveContentSummary_text_video:e===l.Video,mx_LiveContentSummary_text_active:s})},t),o>0&&n.createElement(n.Fragment,null," • ",n.createElement("span",{className:"mx_LiveContentSummary_participants","aria-label":(0,r._t)("voip|n_people_joined",{count:o})},o))),d=({call:e})=>n.createElement(c,{type:l.Video,text:(0,r._t)("common|video"),active:!1,participantCount:(0,a.q0)(e)})},"./src/components/views/rooms/NotificationBadge.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>u});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/@vector-im/compound-web/dist/components/Tooltip/Tooltip.js"),a=s("./src/settings/SettingsStore.ts"),l=s("./src/stores/notifications/NotificationState.ts"),c=s("./src/languageHandler.tsx"),d=s("./src/stores/notifications/NotificationLevel.ts"),m=s("./src/components/views/rooms/NotificationBadge/StatelessNotificationBadge.tsx");class u extends i.PureComponent{constructor(e){super(e),(0,o.A)(this,"countWatcherRef",void 0),(0,o.A)(this,"countPreferenceChanged",()=>{this.setState({showCounts:a.A.getValue("Notifications.alwaysShowBadgeCounts",this.roomId)})}),(0,o.A)(this,"onNotificationUpdate",()=>{this.forceUpdate()}),this.state={showCounts:a.A.getValue("Notifications.alwaysShowBadgeCounts",this.roomId)}}get roomId(){return this.props.roomId||null}componentDidMount(){this.props.notification.on(l.ce.Update,this.onNotificationUpdate),this.countWatcherRef=a.A.watchSetting("Notifications.alwaysShowBadgeCounts",this.roomId,this.countPreferenceChanged)}componentWillUnmount(){a.A.unwatchSetting(this.countWatcherRef),this.props.notification.off(l.ce.Update,this.onNotificationUpdate)}componentDidUpdate(e){e.notification&&e.notification.off(l.ce.Update,this.onNotificationUpdate),this.props.notification.on(l.ce.Update,this.onNotificationUpdate)}render(){const{notification:e,showUnsentTooltip:t,hideIfDot:s,onClick:o,tabIndex:a}=this.props;if(e.isIdle&&!e.knocked)return null;if(s&&e.level<d.S.Notification)return null;const l={symbol:e.symbol,count:e.count,level:e.level,knocked:e.knocked};let u;return u=o?i.createElement(m.V,(0,n.A)({},l,{onClick:o,tabIndex:a})):i.createElement(m.V,l),t&&e.level===d.S.Unsent?i.createElement(r.m,{label:(0,c._t)("notifications|message_didnt_send"),placement:"right"},u):u}}},"./src/components/views/rooms/NotificationBadge/StatelessNotificationBadge.tsx":(e,t,s)=>{"use strict";s.d(t,{V:()=>h});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/classnames/index.js"),a=s.n(r),l=s("./src/utils/FormattingUtils.ts"),c=s("./src/components/views/elements/AccessibleButton.tsx"),d=s("./src/stores/notifications/NotificationLevel.ts"),m=s("./src/hooks/useSettings.ts");const u=["symbol","count","level","knocked","forceDot"],h=e=>{let{symbol:t,count:s,level:r,knocked:h,forceDot:p=!1}=e,g=(0,o.A)(e,u);const v=(0,m.ti)("feature_hidebold");if((r===d.S.None||v&&r==d.S.Activity)&&!h)return i.createElement(i.Fragment,null);const _=r>=d.S.Notification&&(!!s||!!t),f=null===t&&0===s;null===t&&s>0&&(t=(0,l.B4)(s));const y=p||r<=d.S.Activity&&!h?"dot":!t||t.length<3?"badge_2char":"badge_3char",b=a()({mx_NotificationBadge:!0,mx_NotificationBadge_visible:!(!f&&!h)||_,mx_NotificationBadge_level_notification:r==d.S.Notification,mx_NotificationBadge_level_highlight:r>=d.S.Highlight,mx_NotificationBadge_knocked:h,mx_NotificationBadge_dot:"dot"===y,mx_NotificationBadge_2char:"badge_2char"===y,mx_NotificationBadge_3char:"badge_3char"===y,"cpd-theme-light":"dot"!==y});return g.onClick?i.createElement(c.A,(0,n.A)({},g,{className:b,onClick:g.onClick,ref:g.ref}),i.createElement("span",{className:"mx_NotificationBadge_count"},t),g.children):i.createElement("div",{className:b,ref:g.ref},i.createElement("span",{className:"mx_NotificationBadge_count"},t))}},"./src/components/views/rooms/PresenceLabel.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>m,I:()=>d});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/NamespacedValue.ts"),r=s("./node_modules/classnames/index.js"),a=s.n(r),l=s("./src/languageHandler.tsx"),c=s("./src/DateUtils.ts");const d=new i.qr("busy","org.matrix.msc3026.busy");class m extends o.Component{getPrettyPresence(e,t,s){if(e&&d.matches(e))return(0,l._t)("presence|busy");if("io.element.unreachable"===e)return(0,l._t)("presence|unreachable");if(!s&&void 0!==t&&t>0){const s=(0,c.a3)(t);return"online"===e?(0,l._t)("presence|online_for",{duration:s}):"unavailable"===e?(0,l._t)("presence|idle_for",{duration:s}):"offline"===e?(0,l._t)("presence|offline_for",{duration:s}):(0,l._t)("presence|unknown_for",{duration:s})}return"online"===e?(0,l._t)("presence|online"):"unavailable"===e?(0,l._t)("presence|idle"):"offline"===e?(0,l._t)("presence|offline"):(0,l._t)("presence|unknown")}render(){return o.createElement("div",{className:a()("mx_PresenceLabel",this.props.className,{mx_PresenceLabel_online:this.props.coloured&&"online"===this.props.presenceState})},this.getPrettyPresence(this.props.presenceState,this.props.activeAgo,this.props.currentlyActive))}}(0,n.A)(m,"defaultProps",{activeAgo:-1})},"./src/components/views/rooms/RoomHeader/toggle/useToggled.tsx":(e,t,s)=>{"use strict";s.d(t,{K:()=>i});var n=s("./node_modules/react/index.js"),o=s("./src/contexts/CurrentRightPanelPhaseContext.tsx");function i(e){const t=(0,n.useContext)(o.I);if(!t)return!1;const{currentPhase:s,isPanelOpen:i}=t;return!(!i||s!==e)}},"./src/components/views/rooms/RoomSublist.tsx":(e,t,s)=>{"use strict";s.d(t,{u:()=>S,A:()=>R});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./node_modules/re-resizable/lib/index.js"),a=s("./node_modules/react/index.js");var l=s("./src/accessibility/KeyboardShortcuts.ts"),c=s("./src/accessibility/RovingTabIndex.tsx"),d=s("./src/dispatcher/actions.ts"),m=s("./src/dispatcher/dispatcher.ts"),u=s("./src/KeyBindingsManager.ts"),h=s("./src/languageHandler.tsx"),p=s("./src/stores/notifications/RoomNotificationStateStore.ts"),g=s("./src/stores/room-list/algorithms/models.ts"),v=s("./src/stores/room-list/models.ts"),_=s("./src/stores/room-list/RoomListLayoutStore.ts"),f=s("./src/stores/room-list/RoomListStore.ts"),y=s("./src/utils/arrays.ts"),b=s("./src/utils/objects.ts"),E=s("./src/components/structures/ContextMenu.tsx"),w=s("./src/components/views/elements/AccessibleButton.tsx"),x=s("./src/components/views/rooms/NotificationBadge.tsx"),A=s("./src/components/views/rooms/RoomTile.tsx");const S=32;function C(e){return`mx_RoomSublist_label_${e}`}window.TouchEvent||(window.TouchEvent=class extends UIEvent{get altKey(){return!1}get changedTouches(){return[]}get ctrlKey(){return!1}get metaKey(){return!1}get shiftKey(){return!1}get targetTouches(){return[]}get touches(){return[]}get rotation(){return 0}get scale(){return 0}constructor(e,t){super(e,t)}});class R extends a.Component{constructor(e){super(e),(0,n.A)(this,"headerButton",(0,a.createRef)()),(0,n.A)(this,"sublistRef",(0,a.createRef)()),(0,n.A)(this,"tilesRef",(0,a.createRef)()),(0,n.A)(this,"dispatcherRef",void 0),(0,n.A)(this,"layout",void 0),(0,n.A)(this,"heightAtStart",void 0),(0,n.A)(this,"notificationState",void 0),(0,n.A)(this,"onListsLoading",(e,t)=>{this.props.tagId===e&&this.setState({roomsLoading:t})}),(0,n.A)(this,"onListsUpdated",()=>{const e={},t=this.state.rooms,s=(0,y.PF)(f.Ay.instance.orderedLists[this.props.tagId]||[]);(0,y.Oj)(t,s)&&(e.rooms=s),Object.keys(e).length>0&&this.setState(e)}),(0,n.A)(this,"onAction",e=>{e.action===d.r.ViewRoom&&e.show_room_tile&&this.state.rooms&&setTimeout(()=>{const t=this.state.rooms.findIndex(t=>t.roomId===e.room_id);!this.state.isExpanded&&t>-1&&this.toggleCollapsed(),t>=this.numVisibleTiles&&(this.layout.visibleTiles=this.layout.tilesWithPadding(t+1,32),this.forceUpdate())},0)}),(0,n.A)(this,"onResize",(e,t,s,n)=>{const o=this.heightAtStart+n.height;this.applyHeightChange(o),this.setState({height:o})}),(0,n.A)(this,"onResizeStart",()=>{this.heightAtStart=this.state.height,this.setState({isResizing:!0})}),(0,n.A)(this,"onResizeStop",(e,t,s,n)=>{const o=this.heightAtStart+n.height;this.applyHeightChange(o),this.setState({isResizing:!1,height:o})}),(0,n.A)(this,"onShowAllClick",async()=>{const e=this.numVisibleTiles,t=this.layout.tilesToPixelsWithPadding(this.numTiles,this.padding);this.applyHeightChange(t),this.setState({height:t},()=>{this.focusRoomTile(e)})}),(0,n.A)(this,"onShowLessClick",()=>{const e=this.layout.tilesToPixelsWithPadding(this.layout.defaultVisibleTiles,this.padding);this.applyHeightChange(e),this.setState({height:e})}),(0,n.A)(this,"focusRoomTile",e=>{if(!this.sublistRef.current)return;const t=this.sublistRef.current.querySelectorAll(".mx_RoomTile"),s=t&&t[e];s&&s.focus()}),(0,n.A)(this,"onOpenMenuClick",e=>{e.preventDefault(),e.stopPropagation();const t=e.target;this.setState({contextMenuPosition:t.getBoundingClientRect()})}),(0,n.A)(this,"onContextMenu",e=>{e.preventDefault(),e.stopPropagation(),this.setState({contextMenuPosition:{left:e.clientX,top:e.clientY,height:0}})}),(0,n.A)(this,"onCloseMenu",()=>{this.setState({contextMenuPosition:void 0})}),(0,n.A)(this,"onUnreadFirstChanged",()=>{const e=f.Ay.instance.getListOrder(this.props.tagId)===g.K.Importance?g.K.Natural:g.K.Importance;f.Ay.instance.setListOrder(this.props.tagId,e),this.forceUpdate()}),(0,n.A)(this,"onTagSortChanged",async e=>{f.Ay.instance.setTagSorting(this.props.tagId,e),this.forceUpdate()}),(0,n.A)(this,"onMessagePreviewChanged",()=>{this.layout.showPreviews=!this.layout.showPreviews,this.forceUpdate()}),(0,n.A)(this,"onBadgeClick",e=>{let t;e.preventDefault(),e.stopPropagation(),t=this.props.tagId===v.zO.Invite?this.state.rooms&&this.state.rooms[0]:f.Ay.instance.orderedLists[this.props.tagId].find(e=>{const t=this.notificationState.getForRoom(e);return t.count>0&&t.level===this.notificationState.level}),t&&m.A.dispatch({action:d.r.ViewRoom,room_id:t.roomId,show_room_tile:!0,metricsTrigger:"WebRoomListNotificationBadge",metricsViaKeyboard:"click"!==e.type})}),(0,n.A)(this,"onHeaderClick",()=>{var e,t,s;const n=null===(e=this.headerButton.current)||void 0===e?void 0:e.parentElement,o=null==n||null===(t=n.parentElement)||void 0===t?void 0:t.parentElement,i=null==o||null===(s=o.parentElement)||void 0===s?void 0:s.parentElement;if(!n||!i)return;const r=Math.round(i.scrollTop),a=r<=Math.round(S),l=r>=Math.round(i.scrollHeight-i.offsetHeight),c=n.classList.contains("mx_RoomSublist_headerContainer_stickyTop"),d=n.classList.contains("mx_RoomSublist_headerContainer_stickyBottom");if(d&&!l||c&&!a)o.scrollIntoView({behavior:"smooth"});else{const e=this.state.isExpanded;this.toggleCollapsed(),!e&&d&&setTimeout(()=>{o.scrollIntoView({behavior:"smooth"})},0)}}),(0,n.A)(this,"toggleCollapsed",()=>{this.props.forceExpanded||(this.layout.isCollapsed=this.state.isExpanded,this.setState({isExpanded:!this.layout.isCollapsed}),this.props.onListCollapse&&this.props.onListCollapse(!this.layout.isCollapsed))}),(0,n.A)(this,"onHeaderKeyDown",e=>{switch((0,u.zM)().getRoomListAction(e)){case l.bY.CollapseRoomListSection:e.stopPropagation(),this.state.isExpanded&&this.toggleCollapsed();break;case l.bY.ExpandRoomListSection:if(e.stopPropagation(),this.state.isExpanded){if(this.sublistRef.current){const e=this.sublistRef.current.querySelector(".mx_RoomTile");e&&e.focus()}}else this.toggleCollapsed()}}),(0,n.A)(this,"onKeyDown",e=>{var t;switch((0,u.zM)().getAccessibilityAction(e)){case l.bY.ArrowLeft:e.stopPropagation(),null===(t=this.headerButton.current)||void 0===t||t.focus();break;case l.bY.ArrowRight:e.stopPropagation()}}),this.layout=_.A.instance.getLayoutFor(this.props.tagId),this.heightAtStart=0,this.notificationState=p.n.instance.getListState(this.props.tagId),this.state={isResizing:!1,isExpanded:!this.layout.isCollapsed,height:0,rooms:(0,y.PF)(f.Ay.instance.orderedLists[this.props.tagId]||[]),roomsLoading:!1},this.state=Object.assign(this.state,{height:this.calculateInitialHeight()})}calculateInitialHeight(){const e=Math.max(Math.floor(this.layout.visibleTiles),this.layout.minVisibleTiles),t=Math.min(this.numTiles,e);return this.layout.tilesToPixelsWithPadding(t,this.padding)}get padding(){let e=4;const t=this.numTiles>this.numVisibleTiles,s=this.numTiles>this.layout.defaultVisibleTiles;return(t||s)&&(e+=28),e}get extraTiles(){var e;return null!==(e=this.props.extraTiles)&&void 0!==e?e:null}get numTiles(){return R.calcNumTiles(this.state.rooms,this.extraTiles)}static calcNumTiles(e,t){return(e||[]).length+(t||[]).length}get numVisibleTiles(){const e=Math.ceil(this.layout.visibleTiles);return Math.min(e,this.numTiles)}componentDidUpdate(e,t){const s=e.extraTiles;R.calcNumTiles(t.rooms,s)!==this.numTiles&&this.setState({height:this.calculateInitialHeight()})}shouldComponentUpdate(e,t){if((0,b.No)(this.props,e))return!0;const s=(0,b.hn)(this.state,["rooms"]),n=(0,b.hn)(t,["rooms"]);if((0,b.No)(s,n))return!0;const o=this.props.extraTiles||[],i=e.extraTiles||[];if(o.length>0||i.length>0)return!0;if(R.calcNumTiles(t.rooms,i)!==this.numTiles)return!0;if(!t.isExpanded)return!1;if(this.state.rooms.length!==t.rooms.length)return!0;const r=this.state.rooms.slice(0,this.numVisibleTiles),a=t.rooms.slice(0,this.numVisibleTiles);return!!(0,y.Oj)(r,a)}componentDidMount(){var e;this.dispatcherRef=m.A.register(this.onAction),f.Ay.instance.on(f.lA,this.onListsUpdated),f.Ay.instance.on(f.Ov,this.onListsLoading),null===(e=this.tilesRef.current)||void 0===e||e.addEventListener("scroll",this.onScrollPrevent,{passive:!0})}componentWillUnmount(){var e;m.A.unregister(this.dispatcherRef),f.Ay.instance.off(f.lA,this.onListsUpdated),f.Ay.instance.off(f.Ov,this.onListsLoading),null===(e=this.tilesRef.current)||void 0===e||e.removeEventListener("scroll",this.onScrollPrevent)}applyHeightChange(e){const t=Math.ceil(this.layout.pixelsToTiles(e-this.padding));this.layout.visibleTiles=Math.min(this.numTiles,t)}renderVisibleTiles(){if(!this.state.isExpanded&&!this.props.forceExpanded)return[];const e=[];if(this.state.rooms){let t=this.state.rooms;this.props.forceExpanded||(t=t.slice(0,this.numVisibleTiles));for(const s of t)e.push(a.createElement(A.A,{room:s,key:`room-${s.roomId}`,showMessagePreview:this.layout.showPreviews,isMinimized:this.props.isMinimized,tag:this.props.tagId}))}return this.extraTiles&&e.push(...this.extraTiles),e.length>this.numVisibleTiles&&!this.props.forceExpanded?e.slice(0,this.numVisibleTiles):e}renderMenu(){if(this.props.tagId===v.zO.Suggested)return null;let e;if(this.state.contextMenuPosition){const t=f.Ay.instance.getTagSorting(this.props.tagId)===g.G.Alphabetic,s=f.Ay.instance.getListOrder(this.props.tagId)===g.K.Importance;let n;this.props.tagId!==v.zO.Invite&&(n=a.createElement(a.Fragment,null,a.createElement("hr",null),a.createElement("fieldset",null,a.createElement("legend",{className:"mx_RoomSublist_contextMenu_title"},(0,h._t)("common|appearance")),a.createElement(E.HQ,{onClose:this.onCloseMenu,onChange:this.onUnreadFirstChanged,checked:s},(0,h._t)("room_list|sort_unread_first")),a.createElement(E.HQ,{onClose:this.onCloseMenu,onChange:this.onMessagePreviewChanged,checked:this.layout.showPreviews},(0,h._t)("room_list|show_previews"))))),e=a.createElement(E.Ay,{chevronFace:E.t4.None,left:this.state.contextMenuPosition.left,top:this.state.contextMenuPosition.top+this.state.contextMenuPosition.height,onFinished:this.onCloseMenu},a.createElement("div",{className:"mx_RoomSublist_contextMenu"},a.createElement("fieldset",null,a.createElement("legend",{className:"mx_RoomSublist_contextMenu_title"},(0,h._t)("room_list|sort_by")),a.createElement(E.P$,{onClose:this.onCloseMenu,onChange:()=>this.onTagSortChanged(g.G.Recent),checked:!t,name:`mx_${this.props.tagId}_sortBy`},(0,h._t)("room_list|sort_by_activity")),a.createElement(E.P$,{onClose:this.onCloseMenu,onChange:()=>this.onTagSortChanged(g.G.Alphabetic),checked:t,name:`mx_${this.props.tagId}_sortBy`},(0,h._t)("room_list|sort_by_alphabet"))),n))}return a.createElement(a.Fragment,null,a.createElement(E.oW,{className:"mx_RoomSublist_menuButton",onClick:this.onOpenMenuClick,title:(0,h._t)("room_list|sublist_options"),isExpanded:!!this.state.contextMenuPosition}),e)}renderHeader(){return a.createElement(c.Ix,{inputRef:this.headerButton},({onFocus:e,isActive:t,ref:s})=>{const n=t?0:-1;let o=(0,h._t)("a11y_jump_first_unread_room");this.props.tagId===v.zO.Invite&&(o=(0,h._t)("a11y|jump_first_invite"));const r=a.createElement(x.A,{hideIfDot:!0,notification:this.notificationState,onClick:this.onBadgeClick,tabIndex:n,"aria-label":o,showUnsentTooltip:!0});let l;if(this.props.AuxButtonComponent){const e=this.props.AuxButtonComponent;l=a.createElement(e,{tabIndex:n})}const c=i()({mx_RoomSublist_collapseBtn:!0,mx_RoomSublist_collapseBtn_collapsed:!this.state.isExpanded&&!this.props.forceExpanded}),d=i()({mx_RoomSublist_headerContainer:!0,mx_RoomSublist_headerContainer_withAux:!!l}),m=a.createElement("div",{className:"mx_RoomSublist_badgeContainer"},r);return a.createElement("div",{className:d,onKeyDown:this.onHeaderKeyDown,onFocus:e,"aria-label":this.props.label,role:"treeitem","aria-expanded":this.state.isExpanded,"aria-level":1,"aria-selected":"false"},a.createElement("div",{className:"mx_RoomSublist_stickableContainer"},a.createElement("div",{className:"mx_RoomSublist_stickable"},a.createElement(w.A,{onFocus:e,ref:s,tabIndex:n,className:"mx_RoomSublist_headerText","aria-expanded":this.state.isExpanded,onClick:this.onHeaderClick,onContextMenu:this.onContextMenu,title:this.props.isMinimized?this.props.label:void 0},a.createElement("span",{className:c}),a.createElement("span",{id:C(this.props.tagId)},this.props.label)),this.renderMenu(),this.props.isMinimized?null:m,this.props.isMinimized?null:l)),this.props.isMinimized?m:null,this.props.isMinimized?l:null)})}onScrollPrevent(e){e.target.scrollTop=0}render(){var e;const t=this.renderVisibleTiles(),s=!(this.state.rooms.length||null!==(e=this.props.extraTiles)&&void 0!==e&&e.length||!0===this.props.alwaysVisible),n=i()({mx_RoomSublist:!0,mx_RoomSublist_hasMenuOpen:!!this.state.contextMenuPosition,mx_RoomSublist_minimized:this.props.isMinimized,mx_RoomSublist_hidden:s});let o;if(this.state.roomsLoading)o=a.createElement("div",{className:"mx_RoomSublist_skeletonUI"});else if(t.length>0&&this.props.forceExpanded)o=a.createElement("div",{className:"mx_RoomSublist_resizeBox mx_RoomSublist_resizeBox_forceExpanded"},a.createElement("div",{className:"mx_RoomSublist_tiles",ref:this.tilesRef},t));else if(t.length>0){const e=this.layout,s=Math.min(e.minVisibleTiles,this.numTiles),n=4+(s<this.numTiles?28:0),l=e.tilesToPixelsWithPadding(s,n),d=e.tilesToPixelsWithPadding(this.numTiles,this.padding),m=i()({mx_RoomSublist_showNButton:!0});let u;if(d>this.state.height){const e=this.state.height-4-28,t=Math.floor(e/this.layout.tileHeight),s=this.numTiles-t,n=(0,h._t)("room_list|show_n_more",{count:s});let o=a.createElement("span",{className:"mx_RoomSublist_showNButtonText"},n);this.props.isMinimized&&(o=null),u=a.createElement(c.k,{role:"treeitem",onClick:this.onShowAllClick,className:m,"aria-label":n},a.createElement("span",{className:"mx_RoomSublist_showMoreButtonChevron mx_RoomSublist_showNButtonChevron"}),o)}else if(this.numTiles>this.layout.defaultVisibleTiles){const e=(0,h._t)("room_list|show_less");let t=a.createElement("span",{className:"mx_RoomSublist_showNButtonText"},e);this.props.isMinimized&&(t=null),u=a.createElement(c.k,{role:"treeitem",onClick:this.onShowLessClick,className:m,"aria-label":e},a.createElement("span",{className:"mx_RoomSublist_showLessButtonChevron mx_RoomSublist_showNButtonChevron"}),t)}const p={bottom:!0,bottomLeft:!1,bottomRight:!1,left:!1,right:!1,top:!1,topLeft:!1,topRight:!1};e.visibleTiles>=this.numTiles&&this.numTiles<=e.minVisibleTiles&&(p.bottom=!1);const g=i()({mx_RoomSublist_resizerHandles:!0,mx_RoomSublist_resizerHandles_showNButton:!!u});o=a.createElement(a.Fragment,null,a.createElement(r.c,{size:{height:this.state.height},minHeight:l,maxHeight:d,onResizeStart:this.onResizeStart,onResizeStop:this.onResizeStop,onResize:this.onResize,handleWrapperClass:g,handleClasses:{bottom:"mx_RoomSublist_resizerHandle"},className:"mx_RoomSublist_resizeBox",enable:p},a.createElement("div",{className:"mx_RoomSublist_tiles",ref:this.tilesRef},t),u))}else this.props.showSkeleton&&this.state.isExpanded&&(o=a.createElement("div",{className:"mx_RoomSublist_skeletonUI"}));return a.createElement("div",{ref:this.sublistRef,className:n,role:"group","aria-hidden":s,"aria-labelledby":C(this.props.tagId),onKeyDown:this.onKeyDown},this.renderHeader(),o)}}},"./src/components/views/rooms/RoomTile.tsx":(e,t,s)=>{"use strict";s.d(t,{_:()=>z,A:()=>J});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/matrix-js-sdk/src/matrix.ts"),a=s("./node_modules/matrix-js-sdk/src/types.ts"),l=s("./node_modules/classnames/index.js"),c=s.n(l),d=s("./src/accessibility/RovingTabIndex.tsx"),m=s("./src/components/views/elements/AccessibleButton.tsx"),u=s("./src/dispatcher/dispatcher.ts"),h=s("./src/dispatcher/actions.ts"),p=s("./src/languageHandler.tsx"),g=s("./src/components/structures/ContextMenu.tsx"),v=s("./src/stores/room-list/models.ts"),_=s("./src/stores/room-list/MessagePreviewStore.ts"),f=s("./src/components/views/avatars/DecoratedRoomAvatar.tsx"),y=s("./src/RoomNotifs.ts"),b=s("./src/MatrixClientPeg.ts"),E=s("./src/components/views/context_menus/RoomNotificationContextMenu.tsx"),w=s("./src/components/views/rooms/NotificationBadge.tsx"),x=s("./src/stores/notifications/RoomNotificationStateStore.ts"),A=s("./src/stores/notifications/NotificationState.ts"),S=s("./src/stores/local-echo/EchoChamber.ts"),C=s("./src/stores/local-echo/RoomEchoChamber.ts"),R=s("./src/stores/local-echo/GenericEchoChamber.ts"),k=s("./src/PosthogTrackers.ts"),I=s("./src/accessibility/KeyboardShortcuts.ts"),P=s("./src/KeyBindingsManager.ts"),T=s("./src/components/views/context_menus/RoomGeneralContextMenu.tsx"),O=s("./src/stores/CallStore.ts"),M=s("./src/contexts/SDKContext.ts"),N=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/threads.js"),D=s("./src/hooks/useCall.ts"),j=s("./src/models/Call.ts"),U=s("./src/components/views/rooms/LiveContentSummary.tsx");const F=({call:e})=>{let t,s;switch((0,D.jd)(e)){case j.KN.Disconnected:t=(0,p._t)("common|video"),s=!1;break;case j.KN.Connected:case j.KN.Disconnecting:t=(0,p._t)("common|joined"),s=!0}return i.createElement(U.m_,{type:U.In.Video,text:t,active:s,participantCount:(0,D.q0)(e)})},L=e=>`mx_RoomTile_messagePreview_${e}`,B=({call:e,messagePreview:t,roomId:s,showMessagePreview:n})=>{if(e)return i.createElement("div",{className:"mx_RoomTile_subtitle"},i.createElement(F,{call:e}));if(n&&t){const e=c()("mx_RoomTile_subtitle",{"mx_RoomTile_subtitle--thread-reply":t.isThreadReply}),n=t.isThreadReply?i.createElement(N.A,{className:"mx_Icon mx_Icon_12"}):null;return i.createElement("div",{className:e,id:L(s),title:t.text},n,i.createElement("span",{className:"mx_RoomTile_subtitle_text"},t.text))}return null};var V=s("./src/customisations/helpers/UIComponents.ts"),H=s("./src/settings/UIFeature.ts"),W=s("./src/utils/membership.ts"),$=s("./src/settings/SettingsStore.ts");const z=e=>({left:e.left+window.scrollX-9,top:e.bottom+window.scrollY+17,chevronFace:g.t4.None});class K extends i.PureComponent{constructor(e){super(e),(0,o.A)(this,"dispatcherRef",void 0),(0,o.A)(this,"roomTileRef",(0,i.createRef)()),(0,o.A)(this,"notificationState",void 0),(0,o.A)(this,"roomProps",void 0),(0,o.A)(this,"onRoomNameUpdate",e=>{this.forceUpdate()}),(0,o.A)(this,"onNotificationUpdate",()=>{this.forceUpdate()}),(0,o.A)(this,"onRoomPropertyUpdate",e=>{e===C.Z.NotificationVolume&&this.onNotificationUpdate()}),(0,o.A)(this,"onAction",e=>{e.action===h.r.ViewRoom&&e.room_id===this.props.room.roomId&&e.show_room_tile&&setTimeout(()=>{this.scrollIntoView()})}),(0,o.A)(this,"onRoomPreviewChanged",e=>{this.props.room&&e.roomId===this.props.room.roomId&&this.generatePreview()}),(0,o.A)(this,"onCallChanged",(e,t)=>{var s;t===(null===(s=this.props.room)||void 0===s?void 0:s.roomId)&&this.setState({call:e})}),(0,o.A)(this,"scrollIntoView",()=>{this.roomTileRef.current&&this.roomTileRef.current.scrollIntoView({block:"nearest",behavior:"auto"})}),(0,o.A)(this,"onTileClick",async e=>{e.preventDefault(),e.stopPropagation();const t=(0,P.zM)().getAccessibilityAction(e),s=[I.bY.Enter,I.bY.Space].includes(t);u.A.dispatch({action:h.r.ViewRoom,show_room_tile:!0,room_id:this.props.room.roomId,clear_search:s,metricsTrigger:"RoomList",metricsViaKeyboard:"click"!==e.type})}),(0,o.A)(this,"onActiveRoomUpdate",e=>{this.setState({selected:e})}),(0,o.A)(this,"onNotificationsMenuOpenClick",e=>{e.preventDefault(),e.stopPropagation();const t=e.target;this.setState({notificationsMenuPosition:t.getBoundingClientRect()}),k.A.trackInteraction("WebRoomListRoomTileNotificationsMenu",e)}),(0,o.A)(this,"onCloseNotificationsMenu",()=>{this.setState({notificationsMenuPosition:null})}),(0,o.A)(this,"onGeneralMenuOpenClick",e=>{e.preventDefault(),e.stopPropagation();const t=e.target;this.setState({generalMenuPosition:t.getBoundingClientRect()})}),(0,o.A)(this,"onContextMenu",e=>{this.showContextMenu&&(e.preventDefault(),e.stopPropagation(),this.setState({generalMenuPosition:{left:e.clientX,bottom:e.clientY}}))}),(0,o.A)(this,"onCloseGeneralMenu",()=>{this.setState({generalMenuPosition:null})}),this.state={selected:M.M.instance.roomViewStore.getRoomId()===this.props.room.roomId,notificationsMenuPosition:null,generalMenuPosition:null,call:O.e.instance.getCall(this.props.room.roomId),messagePreview:null},this.notificationState=x.n.instance.getRoomState(this.props.room),this.roomProps=S.s.forRoom(this.props.room)}get showContextMenu(){return this.props.tag!==v.zO.Invite&&this.props.room.getMyMembership()!==a.O.Knock&&!(0,W.yE)(this.props.room)&&(0,V.g)(H.C.RoomOptionsMenu)}get showMessagePreview(){return!this.props.isMinimized&&this.props.showMessagePreview}componentDidUpdate(e,t){var s,n;const o=e.showMessagePreview!==this.props.showMessagePreview,i=e.isMinimized!==this.props.isMinimized;var a,l;((o||i)&&this.generatePreview(),(null===(s=e.room)||void 0===s?void 0:s.roomId)!==(null===(n=this.props.room)||void 0===n?void 0:n.roomId))&&(_.X.instance.off(_.X.getPreviewChangedEventName(e.room),this.onRoomPreviewChanged),_.X.instance.on(_.X.getPreviewChangedEventName(this.props.room),this.onRoomPreviewChanged),null===(a=e.room)||void 0===a||a.off(r.RoomEvent.Name,this.onRoomNameUpdate),null===(l=this.props.room)||void 0===l||l.on(r.RoomEvent.Name,this.onRoomNameUpdate))}componentDidMount(){this.generatePreview(),this.state.selected&&this.scrollIntoView(),M.M.instance.roomViewStore.addRoomListener(this.props.room.roomId,this.onActiveRoomUpdate),this.dispatcherRef=u.A.register(this.onAction),_.X.instance.on(_.X.getPreviewChangedEventName(this.props.room),this.onRoomPreviewChanged),this.notificationState.on(A.ce.Update,this.onNotificationUpdate),this.roomProps.on(R.Qj,this.onRoomPropertyUpdate),this.props.room.on(r.RoomEvent.Name,this.onRoomNameUpdate),O.e.instance.on(O.s.Call,this.onCallChanged),this.setState({call:O.e.instance.getCall(this.props.room.roomId)})}componentWillUnmount(){M.M.instance.roomViewStore.removeRoomListener(this.props.room.roomId,this.onActiveRoomUpdate),_.X.instance.off(_.X.getPreviewChangedEventName(this.props.room),this.onRoomPreviewChanged),this.props.room.off(r.RoomEvent.Name,this.onRoomNameUpdate),u.A.unregister(this.dispatcherRef),this.notificationState.off(A.ce.Update,this.onNotificationUpdate),this.roomProps.off(R.Qj,this.onRoomPropertyUpdate),O.e.instance.off(O.s.Call,this.onCallChanged)}async generatePreview(){var e;if(!this.showMessagePreview)return;const t=null!==(e=await _.X.instance.getPreviewForRoom(this.props.room,this.props.tag))&&void 0!==e?e:null;this.setState({messagePreview:t})}renderNotificationsMenu(e){if(b.J.safeGet().isGuest()||this.props.tag===v.zO.Archived||!this.showContextMenu||this.props.isMinimized)return null;const t=this.roomProps.notificationVolume,s=c()("mx_RoomTile_notificationsButton",{mx_RoomNotificationContextMenu_iconBell:t===y.dC.AllMessages,mx_RoomNotificationContextMenu_iconBellDot:t===y.dC.AllMessagesLoud,mx_RoomNotificationContextMenu_iconBellMentions:t===y.dC.MentionsOnly,mx_RoomNotificationContextMenu_iconBellCrossed:t===y.dC.Mute,mx_RoomTile_notificationsButton_show:t===y.dC.Mute});return i.createElement(i.Fragment,null,i.createElement(g.oW,{className:s,onClick:this.onNotificationsMenuOpenClick,title:(0,p._t)("room_list|notification_options"),isExpanded:!!this.state.notificationsMenuPosition,tabIndex:e?0:-1}),this.state.notificationsMenuPosition&&i.createElement(E.f,(0,n.A)({},z(this.state.notificationsMenuPosition),{onFinished:this.onCloseNotificationsMenu,room:this.props.room})))}renderGeneralMenu(){return this.showContextMenu?i.createElement(i.Fragment,null,i.createElement(g.oW,{className:"mx_RoomTile_menuButton",onClick:this.onGeneralMenuOpenClick,title:(0,p._t)("room|context_menu|title"),isExpanded:!!this.state.generalMenuPosition}),this.state.generalMenuPosition&&i.createElement(T.e,(0,n.A)({},z(this.state.generalMenuPosition),{onFinished:this.onCloseGeneralMenu,room:this.props.room,onPostFavoriteClick:e=>k.A.trackInteraction("WebRoomListRoomTileContextMenuFavouriteToggle",e),onPostInviteClick:e=>k.A.trackInteraction("WebRoomListRoomTileContextMenuInviteItem",e),onPostSettingsClick:e=>k.A.trackInteraction("WebRoomListRoomTileContextMenuSettingsItem",e),onPostLeaveClick:e=>k.A.trackInteraction("WebRoomListRoomTileContextMenuLeaveItem",e),onPostMarkAsReadClick:e=>k.A.trackInteraction("WebRoomListRoomTileContextMenuMarkRead",e),onPostMarkAsUnreadClick:e=>k.A.trackInteraction("WebRoomListRoomTileContextMenuMarkUnread",e)}))):null}get shouldRenderSubtitle(){return!!this.state.call||this.props.showMessagePreview&&!!this.state.messagePreview}render(){const e=c()({mx_RoomTile:!0,mx_RoomTile_sticky:$.A.getValue("feature_ask_to_join")&&(this.props.room.getMyMembership()===a.O.Knock||(0,W.yE)(this.props.room)),mx_RoomTile_selected:this.state.selected,mx_RoomTile_hasMenuOpen:!(!this.state.generalMenuPosition&&!this.state.notificationsMenuPosition),mx_RoomTile_minimized:this.props.isMinimized});let t,s=this.props.room.name;"string"!=typeof s&&(s=""),s=s.replace(":",":"),!this.props.isMinimized&&this.notificationState&&(t=i.createElement("div",{className:"mx_RoomTile_badgeContainer","aria-hidden":"true"},i.createElement(w.A,{notification:this.notificationState,roomId:this.props.room.roomId})));const n=this.shouldRenderSubtitle?i.createElement(B,{call:this.state.call,messagePreview:this.state.messagePreview,roomId:this.props.room.roomId,showMessagePreview:this.props.showMessagePreview}):null,o=c()({mx_RoomTile_title:!0,mx_RoomTile_titleWithSubtitle:!!n,mx_RoomTile_titleHasUnreadEvents:this.notificationState.isUnread}),r=this.props.isMinimized?null:i.createElement("div",{className:"mx_RoomTile_titleContainer"},i.createElement("div",{title:s,className:o,tabIndex:-1},i.createElement("span",{dir:"auto"},s)),n);let l,u=s;var h;return this.props.tag===v.zO.Invite||(this.notificationState.hasMentions?u+=" "+(0,p._t)("a11y|n_unread_messages_mentions",{count:this.notificationState.count}):this.notificationState.hasUnreadCount?u+=" "+(0,p._t)("a11y|n_unread_messages",{count:this.notificationState.count}):this.notificationState.isUnread&&(u+=" "+(0,p._t)("a11y|unread_messages"))),this.showMessagePreview&&(h=this.props.room.roomId,l=`mx_RoomTile_messagePreview_${h}`),i.createElement(i.Fragment,null,i.createElement(d.Ix,{inputRef:this.roomTileRef},({onFocus:n,isActive:o,ref:a})=>i.createElement(m.A,{onFocus:n,tabIndex:o?0:-1,ref:a,className:e,onClick:this.onTileClick,onContextMenu:this.onContextMenu,role:"treeitem","aria-label":u,"aria-selected":this.state.selected,"aria-describedby":l,title:this.props.isMinimized&&!this.state.generalMenuPosition?s:void 0},i.createElement(f.A,{room:this.props.room,size:"32px",displayBadge:this.props.isMinimized,tooltipProps:{tabIndex:o?0:-1}}),r,t,this.renderGeneralMenu(),this.renderNotificationsMenu(o))))}}const J=K},"./src/components/views/rooms/SendMessageComposer.tsx":(e,t,s)=>{"use strict";s.d(t,{Ay:()=>V,LO:()=>F,gV:()=>L,hE:()=>U});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./node_modules/lodash/lodash.js"),a=s("./node_modules/matrix-js-sdk/src/logger.ts"),l=s("./src/dispatcher/dispatcher.ts"),c=s("./src/editor/model.ts"),d=s("./src/editor/serialize.ts"),m=s("./src/components/views/rooms/BasicMessageComposer.tsx"),u=s("./src/editor/parts.ts"),h=s("./src/utils/EventUtils.ts"),p=s("./src/SendHistoryManager.ts"),g=s("./src/SlashCommands.tsx"),v=s("./src/ContentMessages.ts"),_=s("./src/contexts/MatrixClientContext.tsx"),f=s("./src/dispatcher/actions.ts"),y=s("./src/effects/utils.ts"),b=s("./src/effects/index.ts"),E=s("./src/MatrixClientPeg.ts"),w=s("./src/KeyBindingsManager.ts"),x=s("./src/settings/SettingsStore.ts"),A=s("./src/sendTimePerformanceMetrics.ts"),S=s("./src/contexts/RoomContext.ts"),C=s("./src/editor/position.ts"),R=s("./src/dispatcher/payloads/ComposerInsertPayload.ts"),k=s("./src/editor/commands.tsx"),I=s("./src/accessibility/KeyboardShortcuts.ts"),P=s("./src/PosthogAnalytics.ts"),T=s("./src/utils/Reply.ts"),O=s("./src/utils/local-room.ts"),M=s("./src/utils/blobs.ts"),N=s("./src/HtmlUtils.tsx");function D(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function j(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?D(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):D(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const U="mx_cider_state_";function F(e,t,s,n,o=null){const i=t["m.mentions"]={},r=new Set;let a=!1;if(n&&r.add(n.sender.userId),s)for(const e of s.parts)e.type===u.ZU.UserPill?r.add(e.resourceId):e.type===u.ZU.AtRoomPill&&(a=!0);if(r.delete(e),o){const e=t["m.new_content"]["m.mentions"]={};r.size&&(e.user_ids=[...r]),a&&(e.room=!0);const s=o["m.mentions"];Array.isArray(null==s?void 0:s.user_ids)&&s.user_ids.forEach(e=>r.delete(e)),null!=s&&s.room&&(a=!1)}r.size&&(i.user_ids=[...r]),a&&(i.room=!0)}function L(e,t){t&&(e["m.relates_to"]=j(j({},e["m.relates_to"]||{}),t))}class B extends o.Component{constructor(e,t){super(e,t),(0,n.A)(this,"prepareToEncrypt",void 0),(0,n.A)(this,"editorRef",(0,o.createRef)()),(0,n.A)(this,"model",void 0),(0,n.A)(this,"currentlyComposedEditorState",null),(0,n.A)(this,"dispatcherRef",void 0),(0,n.A)(this,"sendHistoryManager",void 0),(0,n.A)(this,"onKeyDown",e=>{var t,s,n,o;if(null!==(t=this.editorRef.current)&&void 0!==t&&t.isComposing(e))return;const r=(null===(s=this.props.relation)||void 0===s?void 0:s.key)===i.THREAD_RELATION_TYPE.name,a=(0,w.zM)().getMessageComposerAction(e);switch(a){case I.bY.SendMessage:this.sendMessage(),e.preventDefault();break;case I.bY.SelectPrevSendHistory:case I.bY.SelectNextSendHistory:this.selectSendHistory(a===I.bY.SelectPrevSendHistory)&&e.preventDefault();break;case I.bY.ShowStickerPicker:if(!x.A.getValue("MessageComposerInput.showStickersButton"))return;this.props.toggleStickerPickerOpen(),e.preventDefault();break;case I.bY.EditPrevMessage:if(null!==(n=this.editorRef.current)&&void 0!==n&&n.isSelectionCollapsed()&&null!==(o=this.editorRef.current)&&void 0!==o&&o.isCaretAtStart()){var c;const t=null===(c=this.context.liveTimeline)||void 0===c?void 0:c.getEvents().concat(r?[]:this.props.room.getPendingEvents()),s=t?(0,h.Iy)({events:t,isForward:!1,matrixClient:E.J.safeGet()}):void 0;s&&(e.preventDefault(),l.A.dispatch({action:f.r.EditEvent,event:s,timelineRenderingType:this.context.timelineRenderingType}))}break;case I.bY.CancelReplyOrEdit:this.context.replyToEvent&&(l.A.dispatch({action:"reply_to_event",event:null,context:this.context.timelineRenderingType}),e.preventDefault(),e.stopPropagation())}}),(0,n.A)(this,"shouldSaveStoredEditorState",()=>!this.model.isEmpty||!!this.props.replyToEvent),(0,n.A)(this,"saveStoredEditorState",()=>{if(this.shouldSaveStoredEditorState()){const e=p.A.createItem(this.model,this.props.replyToEvent);localStorage.setItem(this.editorStateKey,JSON.stringify(e))}else this.clearStoredEditorState()}),(0,n.A)(this,"onAction",e=>{var t;if(!this.props.disabled)switch(e.action){case"reply_to_event":case f.r.FocusSendMessageComposer:var s;if((null!==(t=e.context)&&void 0!==t?t:S.Ae.Room)===this.context.timelineRenderingType)null===(s=this.editorRef.current)||void 0===s||s.focus();break;case f.r.ComposerInsert:if(e.timelineRenderingType!==this.context.timelineRenderingType)break;if(e.composerType!==R.D.Send)break;var n;if(e.userId)null===(n=this.editorRef.current)||void 0===n||n.insertMention(e.userId);else if(e.event){var o;null===(o=this.editorRef.current)||void 0===o||o.insertQuotedMessage(e.event)}else if(e.text){var i;null===(i=this.editorRef.current)||void 0===i||i.insertPlaintext(e.text)}}}),(0,n.A)(this,"onPaste",(e,t)=>{if(t.files.length&&!t.types.includes("text/rtf"))return v.Ay.sharedInstance().sendContentListToRoom(Array.from(t.files),this.props.room.roomId,this.props.relation,this.props.mxClient,this.context.timelineRenderingType),!0;if(t.types.includes("text/html")){var s;const e=t.getData("text/html"),n=(new DOMParser).parseFromString(e,"text/html");if(1!==n.getElementsByTagName("img").length||null===(s=n.querySelector("img"))||void 0===s||!s.src.startsWith("blob:")||1!==n.childNodes.length)return console.log("Failed to handle pasted content as Safari inserted content"),!1;const o=n.querySelector("img").src;return fetch(o).then(e=>{e.blob().then(t=>{const s=t.type,n=(0,M.F)(s),o=s.split("/")[1],i=e.url.split("/"),r=i[i.length-1],a=new File([t],r+"."+o,{type:n});v.Ay.sharedInstance().sendContentToRoom(a,this.props.room.roomId,this.props.relation,this.props.mxClient,this.context.replyToEvent)},e=>{console.log(e)})},e=>{console.log(e)}),!0}return!1}),(0,n.A)(this,"onChange",(e,t,s)=>{var n,o,i;s&&(null===(i=this.prepareToEncrypt)||void 0===i||i.call(this));null===(n=(o=this.props).onChange)||void 0===n||n.call(o,this.model)}),(0,n.A)(this,"focusComposer",()=>{var e;null===(e=this.editorRef.current)||void 0===e||e.focus()}),this.props.mxClient.getCrypto()&&this.props.mxClient.isRoomEncrypted(this.props.room.roomId)&&(this.prepareToEncrypt=(0,r.throttle)(()=>{var e;null===(e=this.props.mxClient.getCrypto())||void 0===e||e.prepareToEncrypt(this.props.room)},6e4,{leading:!0,trailing:!1}));const s=new u.dK(this.props.room,this.props.mxClient),a=this.restoreStoredEditorState(s)||[];this.model=new c.A(a,s),this.sendHistoryManager=new p.A(this.props.room.roomId,"mx_cider_history_")}componentDidMount(){window.addEventListener("beforeunload",this.saveStoredEditorState),this.dispatcherRef=l.A.register(this.onAction)}componentDidUpdate(e){var t,s,n;const o=(null===(t=this.props.relation)||void 0===t?void 0:t.key)===i.THREAD_RELATION_TYPE.name,r=(null===(s=this.props.relation)||void 0===s?void 0:s.event_id)!==(null===(n=e.relation)||void 0===n?void 0:n.event_id);if(o&&r){var a;const e=new u.dK(this.props.room,this.props.mxClient),t=this.restoreStoredEditorState(e)||[];this.model.reset(t),null===(a=this.editorRef.current)||void 0===a||a.focus()}}selectSendHistory(e){const t=e?-1:1;if(this.sendHistoryManager.currentIndex===this.sendHistoryManager.history.length){if(!e)return!1;this.currentlyComposedEditorState=this.model.serializeParts()}else if(this.currentlyComposedEditorState&&this.sendHistoryManager.currentIndex+t===this.sendHistoryManager.history.length)return this.model.reset(this.currentlyComposedEditorState),this.sendHistoryManager.currentIndex=this.sendHistoryManager.history.length,!0;const{parts:s,replyEventId:n}=this.sendHistoryManager.getItem(t);var o;(l.A.dispatch({action:"reply_to_event",event:n?this.props.room.findEventById(n):null,context:this.context.timelineRenderingType}),s)&&(this.model.reset(s),null===(o=this.editorRef.current)||void 0===o||o.focus());return!0}sendQuickReaction(){const e=this.context.liveTimeline;if(!e)return;const t=e.getEvents(),s=this.model.parts[1].text;for(let e=t.length-1;e>=0;e--)if(t[e].getType()===i.EventType.RoomMessage){let o=!0;const r=t[e],a=E.J.safeGet().getSafeUserId(),c=this.props.room.relations.getChildEventsForEvent(r.getId(),i.RelationType.Annotation,i.EventType.Reaction);if(c){var n;o=![...(null===(n=c.getAnnotationsBySender())||void 0===n?void 0:n[a])||new Set].filter(e=>!e.isRedacted()).map(e=>{var t;return null===(t=e.getRelation())||void 0===t?void 0:t.key}).includes(s)}o&&(E.J.safeGet().sendEvent(r.getRoomId(),i.EventType.Reaction,{"m.relates_to":{rel_type:i.RelationType.Annotation,event_id:r.getId(),key:s}}),l.A.dispatch({action:"message_sent"}));break}}async sendMessage(){var e,t,s;const n=this.model;if(n.isEmpty)return;const o={eventName:"Composer",isEditing:!1,messageType:"Text",isReply:!!this.props.replyToEvent,inThread:(null===(e=this.props.relation)||void 0===e?void 0:e.rel_type)===i.THREAD_RELATION_TYPE.name};if(o.inThread&&this.props.relation.event_id){var r;const e=this.props.room.findEventById(this.props.relation.event_id);o.startsThread=1===(null==e||null===(r=e.getThread())||void 0===r?void 0:r.events.length)}if(P.Vo.instance.trackEvent(o),x.A.getValue("MessageComposerInput.autoReplaceEmoji")){var a;const e=n.parts.length-1,t=n.parts[e].text.length;null===(a=this.editorRef.current)||void 0===a||a.replaceEmoticon(new C.A(e,t),m.v)}const c=this.props.replyToEvent;let u=!0,h=null;if(!(0,d.ID)(n)&&(0,k.nU)(this.model)){const[e,t,s]=(0,k.Dr)(this.model);if(e){var p,v;const s=(null===(p=this.props.relation)||void 0===p?void 0:p.rel_type)===i.THREAD_RELATION_TYPE.name?null===(v=this.props.relation)||void 0===v?void 0:v.event_id:null;let o;if([h,o]=await(0,k.m8)(E.J.safeGet(),e,t,this.props.room.roomId,null!=s?s:null),!o)return;h&&[g.ge.messages,g.ge.effects].includes(e.category)?(F(this.props.mxClient.getSafeUserId(),h,n,c),L(h,this.props.relation),c&&(0,T.fh)(h,c)):u=!1}else{const e=await(0,k.d8)(s);if(l.A.dispatch({action:f.r.FocusAComposer,context:this.context.timelineRenderingType}),!e)return}}if(function(e){const t=e.parts;if(0==t.length)return!1;const s=(0,d.OA)(e);if(t.length<=2){const e=s.startsWith("+")||s.startsWith("+ "),t=s.match(N.nr);if(e&&t&&1==t.length)return t[0]===s.substring(1)||t[0]===s.substring(2)}return!1}(n)&&(u=!1,this.sendQuickReaction()),u){var _;const{roomId:e}=this.props.room;if(h||(h=function(e,t,s,n){const o=(0,d.ID)(t);o&&(t=(0,d.k$)(t)),(0,d.w1)(t,"//")&&(t=(0,d.tk)(t,"/")),t=(0,d.GE)(t);const r=(0,d.OA)(t),a={msgtype:o?i.MsgType.Emote:i.MsgType.Text,body:r},l=(0,d.MN)(t,{useMarkdown:x.A.getValue("MessageComposerInput.useMarkdown")});return l&&(a.format="org.matrix.custom.html",a.formatted_body=l),F(e,a,t,s),L(a,n),s&&(0,T.fh)(a,s),a}(this.props.mxClient.getSafeUserId(),n,c,this.props.relation)),!h.body.trim())return;x.A.getValue("Performance.addSendMessageTimingMetadata")&&(0,A.H)(h);const t=(null===(_=this.props.relation)||void 0===_?void 0:_.rel_type)===i.THREAD_RELATION_TYPE.name?this.props.relation.event_id:null,s=(0,O.Y)(e,e=>this.props.mxClient.sendMessage(e,null!=t?t:null,h),this.props.mxClient);c&&l.A.dispatch({action:"reply_to_event",event:null,context:this.context.timelineRenderingType}),l.A.dispatch({action:"message_sent"}),b.y.forEach(e=>{if((0,y._)(h,e.emojis)){var t;(null===(t=this.props.relation)||void 0===t?void 0:t.rel_type)!==i.THREAD_RELATION_TYPE.name&&l.A.dispatch({action:`effects.${e.command}`})}}),x.A.getValue("Performance.addSendMessageTimingMetadata")&&s.then(t=>{(0,A._)(this.props.mxClient,e,t.event_id)})}this.sendHistoryManager.save(n,c),n.reset([]),null===(t=this.editorRef.current)||void 0===t||t.clearUndoHistory(),null===(s=this.editorRef.current)||void 0===s||s.focus(),this.clearStoredEditorState(),u&&x.A.getValue("scrollToBottomOnMessageSent")&&l.A.dispatch({action:"scroll_to_bottom",timelineRenderingType:this.context.timelineRenderingType})}componentWillUnmount(){l.A.unregister(this.dispatcherRef),window.removeEventListener("beforeunload",this.saveStoredEditorState),this.saveStoredEditorState()}get editorStateKey(){var e;let t=U+this.props.room.roomId;return(null===(e=this.props.relation)||void 0===e?void 0:e.rel_type)===i.THREAD_RELATION_TYPE.name&&(t+=`_${this.props.relation.event_id}`),t}clearStoredEditorState(){localStorage.removeItem(this.editorStateKey)}restoreStoredEditorState(e){var t;if((null===(t=this.props.relation)||void 0===t?void 0:t.key)===i.THREAD_RELATION_TYPE.name)return null;const s=localStorage.getItem(this.editorStateKey);if(s)try{const{parts:t,replyEventId:n}=JSON.parse(s),o=t.map(t=>e.deserializePart(t));return n&&l.A.dispatch({action:"reply_to_event",event:this.props.room.findEventById(n),context:this.context.timelineRenderingType}),o}catch(e){a.vF.error(e)}return null}render(){var e;const t=(null===(e=this.props.relation)||void 0===e?void 0:e.rel_type)===i.THREAD_RELATION_TYPE.name?this.props.relation.event_id:void 0;return o.createElement("div",{className:"mx_SendMessageComposer",onClick:this.focusComposer,onKeyDown:this.onKeyDown},o.createElement(m.A,{onChange:this.onChange,ref:this.editorRef,model:this.model,room:this.props.room,threadId:t,label:this.props.placeholder,placeholder:this.props.placeholder,onPaste:this.onPaste,disabled:this.props.disabled}))}}(0,n.A)(B,"contextType",S.Ay);const V=(0,_.dt)(B)},"./src/components/views/rooms/wysiwyg_composer/index.ts":(e,t,s)=>{"use strict";s.d(t,{q_:()=>c,W1:()=>l,Os:()=>a,_z:()=>r});var n=s("./node_modules/react/index.js");const o=(0,n.lazy)(()=>Promise.all([s.e(9924),s.e(623),s.e(1188)]).then(s.bind(s,"./src/components/views/rooms/wysiwyg_composer/SendWysiwygComposer.tsx"))),i=(0,n.lazy)(()=>Promise.all([s.e(9924),s.e(623),s.e(6311)]).then(s.bind(s,"./src/components/views/rooms/wysiwyg_composer/EditWysiwygComposer.tsx"))),r=async(e,t,n)=>{const{sendMessage:o}=await Promise.all([s.e(9924),s.e(7014)]).then(s.bind(s,"./src/components/views/rooms/wysiwyg_composer/utils/message.ts"));return o(e,t,n)},a=async()=>{const{richToPlain:e,plainToRich:t}=await s.e(9924).then(s.bind(s,"./node_modules/@vector-im/matrix-wysiwyg/dist/matrix-wysiwyg.js"));return{richToPlain:e,plainToRich:t}};function l(e){return n.createElement(n.Suspense,{fallback:n.createElement("div",null)},n.createElement(o,e))}function c(e){return n.createElement(n.Suspense,{fallback:n.createElement("div",null)},n.createElement(i,e))}},"./src/components/views/settings/AvatarSetting.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>b,B:()=>y});var n=s("./node_modules/react/index.js"),o=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/edit.js"),i=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/share.js"),r=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/delete.js"),a=s("./node_modules/@vector-im/compound-web/dist/components/Menu/Menu.js"),l=s("./node_modules/@vector-im/compound-web/dist/components/Menu/MenuItem.js"),c=s("./node_modules/classnames/index.js"),d=s.n(c),m=s("./src/languageHandler.tsx"),u=s("./src/customisations/Media.ts"),h=s("./src/utils/BrowserWorkarounds.ts"),p=s("./src/components/views/elements/AccessibleButton.tsx"),g=s("./src/components/views/avatars/BaseAvatar.tsx"),v=s("./src/Modal.tsx"),_=s("./src/components/views/dialogs/ErrorDialog.tsx");const f=({trigger:e,onUploadSelect:t,onRemoveSelect:s,menuOpen:o,onOpenChange:c})=>n.createElement(a.W,{trigger:e,title:(0,m._t)("action|set_avatar"),showTitle:!1,open:o,onOpenChange:c},n.createElement(l.D,{as:"div",Icon:n.createElement(i.A,{width:"24px",height:"24px"}),label:(0,m._t)("action|upload_file"),onSelect:t}),s&&n.createElement(l.D,{as:"div",Icon:n.createElement(r.A,{width:"24px",height:"24px"}),className:"mx_AvatarSetting_removeMenuItem",label:(0,m._t)("action|remove"),onSelect:s}));function y(e){var t;if(null===(t=e.target.files)||void 0===t||!t.length)return null;const s=e.target.files[0];return s.type.startsWith("image/")?s:(v.Ay.createDialog(_.A,{title:(0,m._t)("upload_failed_title"),description:(0,m._t)("upload_file|not_image")}),null)}const b=({avatar:e,avatarAccessibleName:t,onChange:s,removeAvatar:i,disabled:r,placeholderId:a,placeholderName:l})=>{const c=(0,n.createRef)(),[v,_]=(0,n.useState)(void 0);(0,n.useEffect)(()=>{if(e instanceof File){const t=new FileReader;t.onload=()=>{_(t.result)},t.readAsDataURL(e)}else if(e){var t;_(null!==(t=(0,u.mediaFromMxc)(e).getSquareThumbnailHttp(96))&&void 0!==t?t:void 0)}else _(void 0)},[e]);const b=(0,n.useCallback)(e=>{const t=y(e);t&&(null==s||s(t))},[s]),E=(0,n.useCallback)(()=>{var e;null===(e=c.current)||void 0===e||e.click()},[c]),[w,x]=(0,n.useState)(!1),A=(0,n.useCallback)(e=>{x(e)},[]),S=n.createElement(p.A,{element:"div",onClick:()=>{},className:"mx_AvatarSetting_avatarPlaceholder mx_AvatarSetting_avatarDisplay",disabled:r},n.createElement(g.A,{idName:a,name:l,size:"90px",url:v,altText:t}));let C;if(!r){const e=d()("mx_AvatarSetting_uploadButton",{mx_AvatarSetting_uploadButton_active:w});C=n.createElement("div",{className:e,role:"button","aria-label":(0,m._t)("settings|general|avatar_open_menu"),tabIndex:0,"aria-haspopup":"menu"},n.createElement(o.A,{"aria-hidden":!0,width:"20px",height:"20px"}))}const R=n.createElement("div",{className:"mx_AvatarSetting_avatar",role:"group","aria-label":t},S,C);return r?R:n.createElement(n.Fragment,null,n.createElement(f,{trigger:R,onUploadSelect:E,onRemoveSelect:i,menuOpen:w,onOpenChange:A}),n.createElement("input",{type:"file",style:{display:"none"},ref:c,onClick:h.e,onChange:b,accept:"image/*",alt:(0,m._t)("action|upload")}))}},"./src/components/views/settings/JoinRuleSettings.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>M});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./src/components/views/elements/StyledRadioGroup.tsx"),a=s("./src/languageHandler.tsx"),l=s("./src/components/views/elements/AccessibleButton.tsx"),c=s("./src/components/views/avatars/RoomAvatar.tsx"),d=s("./src/stores/spaces/SpaceStore.ts"),m=s("./src/Modal.tsx"),u=s("./node_modules/matrix-js-sdk/src/types.ts"),h=s("./src/components/views/dialogs/BaseDialog.tsx"),p=s("./src/components/structures/SearchBox.tsx"),g=s("./src/components/structures/AutoHideScrollbar.tsx"),v=s("./src/components/views/elements/StyledCheckbox.tsx"),_=s("./src/contexts/MatrixClientContext.tsx"),f=s("./src/utils/arrays.ts");const y=({room:e,checked:t,onChange:s})=>{const n=e instanceof i.Room;let r;if(n){r=(0,a._t)("common|n_members",{count:e.getJoinedMemberCount()});const t=d.Ay.instance.getChildRooms(e.roomId).length;t>0&&(r+=" · "+(0,a._t)("common|n_rooms",{count:t}))}return o.createElement("div",{className:"mx_ManageRestrictedJoinRuleDialog_entry"},o.createElement(v.A,{onChange:s?e=>s(e.target.checked):void 0,checked:t,disabled:!s,description:r},o.createElement("div",null,n?o.createElement(c.A,{role:"none",room:e,size:"20px"}):o.createElement(c.A,{oobData:e,size:"20px"}),o.createElement("span",{className:"mx_ManageRestrictedJoinRuleDialog_entry_name"},e.name))))},b=(e,t)=>{const s=t.client;Array.from(d.Ay.instance.getKnownParents(t.roomId)).map(e=>s.getRoom(e)).forEach(t=>{t&&!e.has(t)&&(e.add(t),b(e,t))})},E=({room:e,selected:t=[],onFinished:s})=>{const n=e.client,[i,r]=(0,o.useState)(new Set(t)),[c,m]=(0,o.useState)(""),v=c.toLowerCase().trim(),[E,w,x]=(0,o.useMemo)(()=>{const s=new Set;return b(s,e),[Array.from(s),d.Ay.instance.spacePanelSpaces.filter(e=>!s.has(e)),(0,f.Bo)(t.map(e=>{const t=n.getRoom(e);return t?t.getMyMembership()===u.O.Join&&t.isSpaceRoom()?void 0:t:{roomId:e,name:e}}))]},[n,t,e]),[A,S,C]=(0,o.useMemo)(()=>[E.filter(e=>e.name.toLowerCase().includes(v)),w.filter(e=>e.name.toLowerCase().includes(v)),x.filter(e=>e.name.toLowerCase().includes(v))],[E,w,x,v]),R=(e,t)=>{e?i.add(t.roomId):i.delete(t.roomId),r(new Set(i))};let k;i.size<1&&(k=o.createElement("div",{className:"mx_ManageRestrictedJoinRuleDialog_section_info"},(0,a._t)("room_settings|security|join_rule_restricted_dialog_empty_warning")));const I=A.length+S.length+C.length;return o.createElement(h.A,{title:(0,a._t)("room_settings|security|join_rule_restricted_dialog_title"),className:"mx_ManageRestrictedJoinRuleDialog",onFinished:s,fixedWidth:!1},o.createElement("p",null,(0,a._t)("room_settings|security|join_rule_restricted_dialog_description",{},{RoomName:()=>o.createElement("strong",null,e.name)})),o.createElement(_.Ay.Provider,{value:n},o.createElement(p.A,{className:"mx_textinput_icon mx_textinput_search",placeholder:(0,a._t)("room_settings|security|join_rule_restricted_dialog_filter_placeholder"),onSearch:m,autoFocus:!0}),o.createElement(g.A,{className:"mx_ManageRestrictedJoinRuleDialog_content"},A.length>0?o.createElement("div",{className:"mx_ManageRestrictedJoinRuleDialog_section"},o.createElement("h3",null,e.isSpaceRoom()?(0,a._t)("room_settings|security|join_rule_restricted_dialog_heading_space"):(0,a._t)("room_settings|security|join_rule_restricted_dialog_heading_room")),A.map(e=>o.createElement(y,{key:e.roomId,room:e,checked:i.has(e.roomId),onChange:t=>{R(t,e)}}))):void 0,C.length>0?o.createElement("div",{className:"mx_ManageRestrictedJoinRuleDialog_section"},o.createElement("h3",null,(0,a._t)("room_settings|security|join_rule_restricted_dialog_heading_other")),o.createElement("div",{className:"mx_ManageRestrictedJoinRuleDialog_section_info"},o.createElement("div",null,(0,a._t)("room_settings|security|join_rule_restricted_dialog_heading_unknown"))),C.map(e=>o.createElement(y,{key:e.roomId,room:e,checked:i.has(e.roomId),onChange:t=>{R(t,e)}}))):null,S.length>0?o.createElement("div",{className:"mx_ManageRestrictedJoinRuleDialog_section"},o.createElement("h3",null,(0,a._t)("room_settings|security|join_rule_restricted_dialog_heading_known")),S.map(e=>o.createElement(y,{key:e.roomId,room:e,checked:i.has(e.roomId),onChange:t=>{R(t,e)}}))):null,I<1?o.createElement("span",{className:"mx_ManageRestrictedJoinRuleDialog_noResults"},(0,a._t)("common|no_results")):void 0),o.createElement("div",{className:"mx_ManageRestrictedJoinRuleDialog_footer"},k,o.createElement("div",{className:"mx_ManageRestrictedJoinRuleDialog_footer_buttons"},o.createElement(l.A,{kind:"primary_outline",onClick:()=>s()},(0,a._t)("action|cancel")),o.createElement(l.A,{kind:"primary",onClick:()=>s(Array.from(i))},(0,a._t)("action|confirm"))))))};var w=s("./src/components/views/dialogs/RoomUpgradeWarningDialog.tsx"),x=s("./src/utils/RoomUpgrade.ts"),A=s("./src/hooks/useLocalEcho.ts"),S=s("./src/dispatcher/dispatcher.ts"),C=s("./src/components/views/dialogs/RoomSettingsDialog.tsx"),R=s("./src/dispatcher/actions.ts"),k=s("./src/utils/PreferredRoomVersions.ts"),I=s("./src/settings/SettingsStore.ts"),P=s("./src/components/views/elements/LabelledCheckbox.tsx");function T(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function O(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?T(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):T(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const M=({room:e,promptUpgrade:t,onError:s,beforeChange:n,closeSettingsFn:u,disabledOptions:h,hiddenOptions:p,recommendedOption:g})=>{var v;const _=e.client,y=I.A.getValue("feature_ask_to_join"),b=(0,k.Y)(e.getVersion(),k.W.KnockRooms),T=!b&&t?k.W.KnockRooms:void 0,M=(0,k.Y)(e.getVersion(),k.W.RestrictedRooms),N=!M&&t?k.W.RestrictedRooms:void 0,D=!e.currentState.mayClientSendStateEvent(i.EventType.RoomJoinRules,_),[j,U]=(0,A.W)(()=>{var t;return null===(t=e.currentState.getStateEvents(i.EventType.RoomJoinRules,""))||void 0===t?void 0:t.getContent()},t=>_.sendStateEvent(e.roomId,i.EventType.RoomJoinRules,t,""),s),{join_rule:F=i.JoinRule.Invite}=j||{},L=F===i.JoinRule.Restricted?null==j||null===(v=j.allow)||void 0===v?void 0:v.filter(e=>e.type===i.RestrictedAllowType.RoomMembership).map(e=>e.room_id):void 0,[B,V]=(0,o.useState)(!1);(0,o.useEffect)(()=>{F===i.JoinRule.Knock&&_.getRoomDirectoryVisibility(e.roomId).then(({visibility:e})=>V(e===i.Visibility.Public)).catch(s)},[_,F,s,e.roomId]);const H=t=>{_.setRoomDirectoryVisibility(e.roomId,t?i.Visibility.Public:i.Visibility.Private).then(()=>V(t)).catch(s)},W=async()=>{var t;let s=L;null!==(t=s)&&void 0!==t&&t.length||!d.Ay.instance.activeSpaceRoom||(s=[d.Ay.instance.activeSpaceRoom.roomId]);const{finished:n}=m.Ay.createDialog(E,{room:e,selected:s},"mx_ManageRestrictedJoinRuleDialog_wrapper"),[o]=await n;return o},$=(t,s)=>{m.Ay.createDialog(w.A,{roomId:e.roomId,targetVersion:t,description:s,doUpgrade:async(s,n)=>{const o=await(0,x.W)(e,t,s.invite,!0,!0,!0,e=>{const t=2+e.updateSpacesTotal+e.inviteUsersTotal;if(e.roomUpgraded)if(e.roomSynced){if(void 0!==e.inviteUsersProgress&&e.inviteUsersProgress<e.inviteUsersTotal)n((0,a._t)("room_settings|security|join_rule_upgrade_sending_invites",{progress:e.inviteUsersProgress,count:e.inviteUsersTotal}),2+e.inviteUsersProgress,t);else if(void 0!==e.updateSpacesProgress&&e.updateSpacesProgress<e.updateSpacesTotal){var s;n((0,a._t)("room_settings|security|join_rule_upgrade_updating_spaces",{progress:e.updateSpacesProgress,count:e.updateSpacesTotal}),2+(null!==(s=e.inviteUsersProgress)&&void 0!==s?s:0)+e.updateSpacesProgress,t)}}else n((0,a._t)("room_settings|security|join_rule_upgrade_awaiting_room"),1,t);else n((0,a._t)("room_settings|security|join_rule_upgrade_upgrading_room"),0,t)},!0);null==u||u(),S.A.dispatch({action:R.r.ViewRoom,room_id:o,metricsTrigger:void 0}),S.A.dispatch({action:"open_room_settings",initial_tab_id:C.e.Security})}})},z=o.createElement("span",{className:"mx_JoinRuleSettings_upgradeRequired"},(0,a._t)("room_settings|security|join_rule_upgrade_required")),K=(e,t)=>t===g?o.createElement(o.Fragment,null,e," (",o.createElement("span",{className:"mx_JoinRuleSettings_recommended"},(0,a._t)("common|recommended")),")"):e,J=[{value:i.JoinRule.Invite,label:K((0,a._t)("room_settings|security|join_rule_invite"),i.JoinRule.Invite),description:(0,a._t)("room_settings|security|join_rule_invite_description"),checked:F===i.JoinRule.Invite||F===i.JoinRule.Restricted&&!(null!=L&&L.length)},{value:i.JoinRule.Public,label:K((0,a._t)("common|public"),i.JoinRule.Public),description:o.createElement(o.Fragment,null,(0,a._t)("room_settings|security|join_rule_public_description"))}];if(M||N||F===i.JoinRule.Restricted){let e;if(F===i.JoinRule.Restricted&&null!=L&&L.length){const t=L.map(e=>_.getRoom(e)).filter(e=>null==e?void 0:e.isSpaceRoom()).slice(0,4);let s;t.length<L.length&&(s=t.length>0?(0,a._t)("room_settings|security|join_rule_restricted_n_more",{count:L.length-t.length}):(0,a._t)("room_settings|security|join_rule_restricted_summary",{count:L.length}));const n=e=>{(0,f.dc)(L||[],e)&&(e.length?U({join_rule:i.JoinRule.Restricted,allow:e.map(e=>({type:i.RestrictedAllowType.RoomMembership,room_id:e}))}):U({join_rule:i.JoinRule.Invite}))},r=async()=>{const e=await W();Array.isArray(e)&&(e.length>0?n(e):G(i.JoinRule.Invite))};e=o.createElement("div",null,o.createElement("span",null,(0,a._t)("room_settings|security|join_rule_restricted_description",{},{a:e=>o.createElement(l.A,{disabled:D,onClick:r,kind:"link_inline"},e)})),o.createElement("div",{className:"mx_JoinRuleSettings_spacesWithAccess"},o.createElement("h4",null,(0,a._t)("room_settings|security|join_rule_restricted_description_spaces")),t.map(e=>o.createElement("span",{key:e.roomId},o.createElement(c.A,{room:e,size:"32px"}),e.name)),s&&o.createElement("span",null,s)))}else e=d.Ay.instance.activeSpaceRoom?(0,a._t)("room_settings|security|join_rule_restricted_description_active_space",{},{spaceName:()=>o.createElement("strong",null,d.Ay.instance.activeSpaceRoom.name)}):(0,a._t)("room_settings|security|join_rule_restricted_description_prompt");J.splice(1,0,{value:i.JoinRule.Restricted,label:o.createElement(o.Fragment,null,K((0,a._t)("room_settings|security|join_rule_restricted"),i.JoinRule.Restricted),N&&z),description:e,checked:F===i.JoinRule.Restricted&&!(null==L||!L.length)})}y&&(b||T)&&J.splice(Math.max(0,J.length-1),0,{value:i.JoinRule.Knock,label:o.createElement(o.Fragment,null,K((0,a._t)("room_settings|security|join_rule_knock"),i.JoinRule.Knock),T&&z),description:o.createElement(o.Fragment,null,(0,a._t)("room_settings|security|join_rule_knock_description"),o.createElement(P.A,{className:"mx_JoinRuleSettings_labelledCheckbox",disabled:F!==i.JoinRule.Knock,label:e.isSpaceRoom()?(0,a._t)("room_settings|security|publish_space"):(0,a._t)("room_settings|security|publish_room"),onChange:H,value:B}))});const G=async t=>{const s=null==j?void 0:j.join_rule;let r;if(t===i.JoinRule.Restricted){var l;if(s===i.JoinRule.Restricted||M){if(r=await W(),!Array.isArray(r))return}else if(N){const t=N;let s;const n=_.getUserId();return Array.from(d.Ay.instance.getKnownParents(e.roomId)).some(e=>{var t;return!(null!==(t=_.getRoom(e))&&void 0!==t&&t.currentState.maySendStateEvent(i.EventType.SpaceChild,n))})&&(s=o.createElement("strong",null,(0,a._t)("room_settings|security|join_rule_restricted_upgrade_warning"))),void $(t,o.createElement(o.Fragment,null,(0,a._t)("room_settings|security|join_rule_restricted_upgrade_description"),s))}null!==(l=r)&&void 0!==l&&l.length||(t=i.JoinRule.Invite)}else if(t===i.JoinRule.Knock&&T)return void $(T);if(s===t&&!r)return;if(n&&!await n(t))return;const c={join_rule:t};var m;t===i.JoinRule.Restricted&&(c.allow=null===(m=r)||void 0===m?void 0:m.map(e=>({type:i.RestrictedAllowType.RoomMembership,room_id:e})));U(c)};return o.createElement(r.A,{name:"joinRule",value:F,onChange:G,definitions:J.map(e=>null!=h&&h.has(e.value)?O(O({},e),{},{disabled:!0}):e).filter(e=>!(null!=p&&p.has(e.value))),disabled:D,className:"mx_JoinRuleSettings_radioButton"})}},"./src/components/views/settings/SettingsFieldset.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>d});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/classnames/index.js"),a=s.n(r),l=s("./src/components/views/settings/shared/SettingsSubsection.tsx");const c=["legend","className","children","description"],d=e=>{let{legend:t,className:s,children:r,description:d}=e,m=(0,o.A)(e,c);return i.createElement("fieldset",(0,n.A)({},m,{className:a()("mx_SettingsFieldset",s)}),i.createElement("legend",{className:"mx_SettingsFieldset_legend"},t),d&&i.createElement("div",{className:"mx_SettingsFieldset_description"},i.createElement(l.s,null,d)),i.createElement("div",{className:"mx_SettingsFieldset_content"},r))}},"./src/components/views/settings/SettingsHeader.tsx":(e,t,s)=>{"use strict";s.d(t,{r:()=>a});var n=s("./node_modules/react/index.js"),o=s("./node_modules/classnames/index.js"),i=s.n(o),r=s("./node_modules/@vector-im/compound-web/dist/components/Typography/Heading.js");function a({hasRecommendedTag:e=!1,label:t}){const s=i()("mx_SettingsHeader",{mx_SettingsHeader_recommended:e});return n.createElement(r.D,{className:s,as:"h2",size:"sm",weight:"semibold"},t)}},"./src/components/views/settings/encryption/EncryptionCard.tsx":(e,t,s)=>{"use strict";s.d(t,{g:()=>l});var n=s("./node_modules/react/index.js"),o=s("./node_modules/@vector-im/compound-web/dist/components/Typography/Heading.js"),i=s("./node_modules/@vector-im/compound-web/dist/components/Icon/BigIcon/BigIcon.js"),r=s("./node_modules/classnames/index.js"),a=s.n(r);function l({title:e,description:t,className:s,destructive:r=!1,Icon:l,children:c}){return n.createElement("div",{className:a()("mx_EncryptionCard",s)},n.createElement("div",{className:"mx_EncryptionCard_header"},n.createElement(i.Y,{destructive:r},n.createElement(l,null)),n.createElement(o.D,{as:"h2",size:"sm",weight:"semibold"},e),t&&n.createElement("span",null,t)),c)}},"./src/components/views/settings/encryption/EncryptionCardButtons.tsx":(e,t,s)=>{"use strict";s.d(t,{D:()=>o});var n=s("./node_modules/react/index.js");function o({children:e}){return n.createElement("div",{className:"mx_EncryptionCard_buttons"},e)}},"./src/components/views/settings/shared/SettingsSection.tsx":(e,t,s)=>{"use strict";s.d(t,{X:()=>u});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/classnames/index.js"),r=s.n(i),a=s("./node_modules/react/index.js"),l=s("./src/components/views/typography/Heading.tsx"),c=s("./src/components/views/settings/SettingsHeader.tsx");const d=["className","heading","subHeading","legacy","children"];function m(e,t){switch(typeof e){case"string":return t?a.createElement(l.A,{as:"h2",size:"3"},e):a.createElement(c.r,{label:e});case"undefined":return;default:return e}}const u=e=>{let{className:t,heading:s,subHeading:i,legacy:l=!0,children:c}=e,u=(0,o.A)(e,d);return a.createElement("div",(0,n.A)({},u,{className:r()("mx_SettingsSection",t,{mx_SettingsSection_newUi:!l})}),s&&(i?a.createElement("div",{className:"mx_SettingsSection_header"},m(s,l),i):m(s,l)),l?a.createElement("div",{className:"mx_SettingsSection_subSections"},c):c)}},"./src/components/views/settings/shared/SettingsSubsection.tsx":(e,t,s)=>{"use strict";s.d(t,{P:()=>h,s:()=>u});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/classnames/index.js"),r=s.n(i),a=s("./node_modules/react/index.js"),l=s("./node_modules/@vector-im/compound-web/dist/components/Separator/Separator.js"),c=s("./src/components/views/settings/shared/SettingsSubsectionHeading.tsx");const d=["children"],m=["heading","description","children","stretchContent","legacy"],u=e=>{let{children:t}=e,s=(0,o.A)(e,d);return a.createElement("div",(0,n.A)({},s,{className:"mx_SettingsSubsection_text"}),t)},h=e=>{let{heading:t,description:s,children:i,stretchContent:d,legacy:h=!0}=e,p=(0,o.A)(e,m);return a.createElement("div",(0,n.A)({},p,{className:r()("mx_SettingsSubsection",{mx_SettingsSubsection_newUi:!h})}),"string"==typeof t?a.createElement(c.r,{heading:t}):a.createElement(a.Fragment,null,t),!!s&&a.createElement("div",{className:"mx_SettingsSubsection_description"},a.createElement(u,null,s)),!!i&&a.createElement("div",{className:r()("mx_SettingsSubsection_content",{mx_SettingsSubsection_contentStretch:!!d,mx_SettingsSubsection_noHeading:!t&&!s,mx_SettingsSubsection_content_newUi:!h})},i),!h&&a.createElement(l.w,null))}},"./src/components/views/settings/shared/SettingsSubsectionHeading.tsx":(e,t,s)=>{"use strict";s.d(t,{r:()=>l});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./src/components/views/typography/Heading.tsx");const a=["heading","as","children"],l=e=>{let{heading:t,as:s="h3",children:l}=e,c=(0,o.A)(e,a);return i.createElement("div",(0,n.A)({},c,{className:"mx_SettingsSubsectionHeading"}),i.createElement(r.A,{className:"mx_SettingsSubsectionHeading_heading",size:"4",as:s},t),l)}},"./src/components/views/settings/tabs/SettingsTab.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>c});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/classnames/index.js"),a=s.n(r);const l=["children","className"],c=e=>{let{children:t,className:s}=e,r=(0,o.A)(e,l);return i.createElement("div",(0,n.A)({},r,{className:a()("mx_SettingsTab",s)}),i.createElement("div",{className:"mx_SettingsTab_sections"},t))}},"./src/components/views/settings/tabs/room/AdvancedRoomSettingsTab.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>f});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./src/languageHandler.tsx"),a=s("./src/components/views/elements/AccessibleButton.tsx"),l=s("./src/components/views/dialogs/RoomUpgradeDialog.tsx"),c=s("./src/Modal.tsx"),d=s("./src/dispatcher/dispatcher.ts"),m=s("./src/dispatcher/actions.ts"),u=s("./src/components/views/elements/CopyableText.tsx"),h=s("./src/settings/SettingsStore.ts"),p=s("./src/components/views/settings/tabs/SettingsTab.tsx"),g=s("./src/components/views/settings/shared/SettingsSection.tsx"),v=s("./src/components/views/settings/shared/SettingsSubsection.tsx");function _(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}class f extends o.Component{constructor(e){super(e),(0,n.A)(this,"upgradeRoom",()=>{c.Ay.createDialog(l.A,{room:this.props.room})}),(0,n.A)(this,"onOldRoomClicked",e=>{e.preventDefault(),e.stopPropagation(),d.A.dispatch({action:m.r.ViewRoom,room_id:this.state.oldRoomId,event_id:this.state.oldEventId,via_servers:this.state.oldViaServers,metricsTrigger:"WebPredecessorSettings",metricsViaKeyboard:"click"!==e.type}),this.props.closeSettingsFn()}),this.state={}}componentDidMount(){const e=h.A.getValue("feature_dynamic_room_predecessors"),t=this.props.room;t.getRecommendedVersion().then(s=>{const o=t.currentState.getStateEvents(i.EventType.RoomTombstone,""),r={},a=t.findPredecessor(e);a&&(r.oldRoomId=a.roomId,r.oldEventId=a.eventId,r.oldViaServers=a.viaServers),this.setState(function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?_(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):_(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}({upgraded:!(null==o||!o.getContent().replacement_room),upgradeRecommendation:s},r))})}render(){var e;const t=this.props.room,s=t.isSpaceRoom();let n,l,c;if(!1===(null===(e=t.currentState.getStateEvents(i.EventType.RoomCreate,""))||void 0===e?void 0:e.getContent()["m.federate"])&&(n=o.createElement("div",null,(0,r._t)("room_settings|advanced|unfederated"))),this.state.upgradeRecommendation&&this.state.upgradeRecommendation.needsUpgrade&&!this.state.upgraded&&(l=o.createElement("div",null,o.createElement("p",{className:"mx_SettingsTab_warningText"},(0,r._t)("room_settings|advanced|room_upgrade_warning",{},{b:e=>o.createElement("strong",null,e),i:e=>o.createElement("i",null,e)})),o.createElement(a.A,{onClick:this.upgradeRoom,kind:"primary"},s?(0,r._t)("room_settings|advanced|space_upgrade_button"):(0,r._t)("room_settings|advanced|room_upgrade_button")))),this.state.oldRoomId){let e;var d,m;if(s)e=(0,r._t)("room_settings|advanced|space_predecessor",{spaceName:null!==(d=t.name)&&void 0!==d?d:this.state.oldRoomId});else e=(0,r._t)("room_settings|advanced|room_predecessor",{roomName:null!==(m=t.name)&&void 0!==m?m:this.state.oldRoomId});c=o.createElement(a.A,{element:"a",onClick:this.onOldRoomClicked},e)}return o.createElement(p.A,null,o.createElement(g.X,{heading:(0,r._t)("common|advanced")},o.createElement(v.P,{heading:t.isSpaceRoom()?(0,r._t)("room_settings|advanced|information_section_space"):(0,r._t)("room_settings|advanced|information_section_room")},o.createElement("div",null,o.createElement("span",null,(0,r._t)("room_settings|advanced|room_id")),o.createElement(u.A,{getTextToCopy:()=>this.props.room.roomId},this.props.room.roomId)),n),o.createElement(v.P,{heading:(0,r._t)("room_settings|advanced|room_version_section")},o.createElement("div",null,o.createElement("span",null,(0,r._t)("room_settings|advanced|room_version"))," ",t.getVersion()),c,l)))}}},"./src/components/views/settings/tabs/room/RolesRoomSettingsTab.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>V});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./node_modules/matrix-js-sdk/src/logger.ts"),a=s("./node_modules/lodash/lodash.js"),l=s("./node_modules/matrix-js-sdk/src/types.ts"),c=s("./src/languageHandler.tsx"),d=s("./src/components/views/elements/AccessibleButton.tsx"),m=s("./src/Modal.tsx"),u=s("./src/components/views/dialogs/ErrorDialog.tsx"),h=s("./src/components/views/elements/PowerSelector.tsx"),p=s("./src/components/views/settings/SettingsFieldset.tsx"),g=s("./src/settings/SettingsStore.ts"),v=s("./src/SdkConfig.ts"),_=s("./src/autocomplete/UserProvider.tsx"),f=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),y=s("./node_modules/classnames/index.js"),b=s.n(y),E=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/search.js"),w=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/close.js"),x=s("./src/Keyboard.ts"),A=s("./src/hooks/useFocus.ts");const S=({provider:e,renderSuggestion:t,renderSelection:s,maxSuggestions:n=5,placeholder:i,onSelectionChange:r,selection:a,additionalFilter:l})=>{var c;const[d,m]=(0,o.useState)(""),[u,h]=(0,o.useState)([]),[p,g]=(0,A.A)(),v=(0,o.useRef)(null),_=(0,o.useRef)(null),y=()=>{var e;null==_||null===(e=_.current)||void 0===e||e.focus()},w=e=>{const t=[...a],s=a.findIndex(t=>t.completionId===e.completionId);s>=0?t.splice(s,1):t.push(e),r(t),y(),m(""),h([])},S=e=>{const t=[...a],s=a.findIndex(t=>t.completionId===e.completionId);s>=0&&(t.splice(s,1),r(t))};return o.createElement("div",{className:"mx_AutocompleteInput"},o.createElement("div",{ref:v,className:b()({mx_AutocompleteInput_editor:!0,"mx_AutocompleteInput_editor--focused":p,"mx_AutocompleteInput_editor--has-suggestions":u.length>0}),onClick:()=>{y()}},o.createElement(E.A,{className:"mx_AutocompleteInput_search_icon",width:"18px",height:"18px"}),a.map(e=>o.createElement(C,{key:e.completionId,item:e,onClick:S,render:s})),o.createElement("input",(0,f.A)({ref:_,type:"text",onKeyDown:e=>{const t=e.ctrlKey||e.shiftKey||e.metaKey;!d&&a.length>0&&e.key===x.Uz.BACKSPACE&&!t&&S(a[a.length-1])},onChange:async t=>{const s=t.target.value.trim();m(s);let o=await e.getCompletions(d,{start:d.length,end:d.length},!0,n);l&&(o=o.filter(l)),h(o)},value:d,autoComplete:"off",placeholder:0===a.length&&0===d.length?i:void 0},g))),p&&u.length?o.createElement("div",{className:"mx_AutocompleteInput_matches",style:{top:null===(c=v.current)||void 0===c?void 0:c.clientHeight}},u.map(e=>o.createElement(R,{key:e.completionId,item:e,selection:a,onClick:w,render:t}))):null)},C=({item:e,onClick:t,render:s})=>{const n=s=>o.createElement("span",{className:"mx_AutocompleteInput_editor_selection"},o.createElement("span",{className:"mx_AutocompleteInput_editor_selection_pill"},s),o.createElement(d.A,{className:"mx_AutocompleteInput_editor_selection_remove_button",onClick:()=>t(e)},o.createElement(w.A,{width:"16px",height:"16px"})));return n(s?s(e):o.createElement("span",{className:"mx_AutocompleteInput_editor_selection_text"},e.completion))},R=({item:e,selection:t,onClick:s,render:n})=>{const i=t.some(t=>t.completionId===e.completionId),r=b()({mx_AutocompleteInput_suggestion:!0,"mx_AutocompleteInput_suggestion--selected":i}),a=t=>o.createElement("div",{className:r,onMouseDown:t=>{t.preventDefault(),s(e)}},t);return a(n?n(e):o.createElement(o.Fragment,null,o.createElement("span",{className:"mx_AutocompleteInput_suggestion_title"},e.completion),o.createElement("span",{className:"mx_AutocompleteInput_suggestion_description"},e.completionId)))};var k=s("./src/contexts/MatrixClientContext.tsx");const I=({room:e,defaultUserLevel:t})=>{const s=(0,o.useContext)(k.Ay),n=(0,o.useRef)(new _.A(e)),[r,a]=(0,o.useState)(!1),[l,g]=(0,o.useState)(t),[v,f]=(0,o.useState)([]),y=(0,o.useCallback)(s=>P(e,s,t),[e,t]);return o.createElement("form",{style:{display:"flex"},onSubmit:async n=>{n.preventDefault(),a(!0);const o=T(v);if(null!==e.currentState.getStateEvents(i.EventType.RoomPowerLevels,""))try{await s.setPowerLevel(e.roomId,o,l),f([]),g(t)}catch{m.Ay.createDialog(u.A,{title:(0,c._t)("common|error"),description:(0,c._t)("error|update_power_level")})}finally{a(!1)}else m.Ay.createDialog(u.A,{title:(0,c._t)("common|error"),description:(0,c._t)("error|update_power_level")})}},o.createElement(p.A,{legend:(0,c._t)("room_settings|permissions|add_privileged_user_heading"),description:(0,c._t)("room_settings|permissions|add_privileged_user_description"),style:{flexGrow:1}},o.createElement(S,{provider:n.current,placeholder:(0,c._t)("room_settings|permissions|add_privileged_user_filter_placeholder"),onSelectionChange:f,selection:v,additionalFilter:y}),o.createElement(h.A,{value:l,onChange:g}),o.createElement(d.A,{type:"submit",element:"button",kind:"primary",disabled:!v.length||r,onClick:null},(0,c._t)("action|apply"))))},P=(e,t,s)=>{if(void 0===t.completionId)return!1;const n=e.getMember(t.completionId);return null!==n&&n.powerLevel<=s},T=e=>e.filter(e=>void 0!==e.completionId).map(e=>e.completionId);var O=s("./src/components/views/settings/tabs/SettingsTab.tsx"),M=s("./src/components/views/settings/shared/SettingsSection.tsx"),N=s("./node_modules/@vector-im/compound-web/dist/components/Button/Button.js"),D=s("./src/components/views/dialogs/QuestionDialog.tsx");function j({userLevels:e,canChangeLevels:t,currentUserLevel:s,onClick:n,filter:i,title:r,children:a}){const l=(0,k.nH)(),[d,u]=(0,o.useState)(null),g=Boolean(d&&d.value!==e[null==d?void 0:d.userId]),v=new Intl.Collator,_=Object.keys(e).sort((t,s)=>function(e,t,s,n){const o=n[t]-n[s];return 0!==o?o:e.compare(t.toLocaleLowerCase(),s.toLocaleLowerCase())}(v,t,s,e)).filter(i);if(!_.length)return o.createElement(o.Fragment,null,a);return o.createElement(p.A,{legend:r},_.map(n=>{if(!Number.isInteger(e[n]))return;const i=n===l.getUserId(),r=t&&(e[n]<s||i),a=(null==d?void 0:d.userId)===n?null==d?void 0:d.value:e[n];return o.createElement(h.A,{value:a,disabled:!r,label:n,key:n,onChange:async t=>{const s=Object.assign({},e);if(s[n]=t,i=s,!Object.values(i).some(e=>100===e)){const{finished:t}=m.Ay.createDialog(D.A,{title:(0,c._t)("common|warning"),description:o.createElement("div",null,(0,c._t)("user_info|demote_self_confirm_room")),button:(0,c._t)("action|continue")}),[s]=await t;if(!s)return void u({value:e[n],userId:n})}var i;u({value:t,userId:n})}})}),o.createElement(N.$,{size:"sm",kind:"primary",className:"mx_Dialog_nonDialogButton mx_PowerLevelSelector_Button",onClick:()=>{null!==d&&(n(d.value,d.userId),u(null))},disabled:!g,"aria-label":(0,c._t)("action|apply")},(0,c._t)("action|apply")))}var U=s("./src/call-types.ts");const F={[i.EventType.RoomAvatar]:{isState:!0},[i.EventType.RoomName]:{isState:!0},[i.EventType.RoomCanonicalAlias]:{isState:!0},[i.EventType.SpaceChild]:{isState:!0,hideForRoom:!0},[i.EventType.RoomHistoryVisibility]:{isState:!0,hideForSpace:!0},[i.EventType.RoomPowerLevels]:{isState:!0},[i.EventType.RoomTopic]:{isState:!0},[i.EventType.RoomTombstone]:{isState:!0,hideForSpace:!0},[i.EventType.RoomEncryption]:{isState:!0,hideForSpace:!0},[i.EventType.RoomServerAcl]:{isState:!0,hideForSpace:!0},[i.EventType.RoomPinnedEvents]:{isState:!0,hideForSpace:!0},[i.EventType.Reaction]:{isState:!1,hideForSpace:!0},[i.EventType.RoomRedaction]:{isState:!1,hideForSpace:!0},[U.Fm.name]:{isState:!0,hideForSpace:!0},[U.Vj.name]:{isState:!0,hideForSpace:!0},"im.vector.modular.widgets":{isState:!0,hideForSpace:!0}};function L(e,t){const s=parseInt(e);return isNaN(s)?t:s}class B extends o.Component{constructor(...e){super(...e),(0,n.A)(this,"onUnbanClick",()=>{this.context.unban(this.props.member.roomId,this.props.member.userId).catch(e=>{r.vF.error("Failed to unban: "+e),m.Ay.createDialog(u.A,{title:(0,c._t)("common|error"),description:(0,c._t)("room_settings|permissions|error_unbanning")})})})}render(){let e;this.props.canUnban&&(e=o.createElement(d.A,{className:"mx_RolesRoomSettingsTab_unbanBtn",kind:"danger_sm",onClick:this.onUnbanClick},(0,c._t)("action|unban")));const t=this.props.member.name===this.props.member.userId?null:this.props.member.userId;return o.createElement("li",null,e,o.createElement("span",{title:(0,c._t)("room_settings|permissions|banned_by",{displayName:this.props.by})},o.createElement("strong",null,this.props.member.name)," ",t,this.props.reason?" "+(0,c._t)("room_settings|permissions|ban_reason")+": "+this.props.reason:""))}}(0,n.A)(B,"contextType",k.Ay);class V extends o.Component{constructor(e){super(e),(0,n.A)(this,"onRoomStateUpdate",e=>{e.roomId===this.props.room.roomId&&this.onThisRoomMembership()}),(0,n.A)(this,"onThisRoomMembership",(0,a.throttle)(()=>{this.forceUpdate()},200,{leading:!0,trailing:!0})),(0,n.A)(this,"onPowerLevelsChanged",async(e,t)=>{var s;const n=this.context,o=this.props.room.currentState.getStateEvents(i.EventType.RoomPowerLevels,"");let a=null!==(s=null==o?void 0:o.getContent())&&void 0!==s?s:{};a=Object.assign({},a);const l="event_levels_";if(t.startsWith(l))a.events=Object.assign({},a.events||{}),a.events[t.slice(13)]=e;else{const s=t.split(".");let n={},o=a;for(const e of s)o[e]||(o[e]={}),n=o,o=o[e];n[s[s.length-1]]=e}try{await n.sendStateEvent(this.props.room.roomId,i.EventType.RoomPowerLevels,a)}catch(e){throw r.vF.error(e),m.Ay.createDialog(u.A,{title:(0,c._t)("room_settings|permissions|error_changing_pl_reqs_title"),description:(0,c._t)("room_settings|permissions|error_changing_pl_reqs_description")}),e}}),(0,n.A)(this,"onUserPowerLevelChanged",async(e,t)=>{var s;const n=this.context,o=this.props.room.currentState.getStateEvents(i.EventType.RoomPowerLevels,"");let a=null!==(s=null==o?void 0:o.getContent())&&void 0!==s?s:{};a=Object.assign({},a),a.users||(a.users={}),a.users[t]=e;try{await n.sendStateEvent(this.props.room.roomId,i.EventType.RoomPowerLevels,a)}catch(e){r.vF.error(e),m.Ay.createDialog(u.A,{title:(0,c._t)("room_settings|permissions|error_changing_pl_title"),description:(0,c._t)("room_settings|permissions|error_changing_pl_description")})}}),this.state={isReady:!1,isRoomEncrypted:!1}}async componentDidMount(){var e;this.context.on(i.RoomStateEvent.Update,this.onRoomStateUpdate),this.setState({isRoomEncrypted:await(null===(e=this.context.getCrypto())||void 0===e?void 0:e.isEncryptionEnabledInRoom(this.props.room.roomId))||!1,isReady:!0})}componentWillUnmount(){const e=this.context;e&&e.removeListener(i.RoomStateEvent.Update,this.onRoomStateUpdate)}populateDefaultPlEvents(e,t,s){for(const n of Object.keys(F))n in e||(e[n]=F[n].isState?t:s)}render(){var e,t;const s=this.context,n=this.props.room,r=n.isSpaceRoom(),d=n.currentState.getStateEvents(i.EventType.RoomPowerLevels,""),m=d&&d.getContent()||{},u=n.currentState.mayClientSendStateEvent(i.EventType.RoomPowerLevels,s),_={[i.EventType.RoomAvatar]:r?(0,c.AO)("room_settings|permissions|m.room.avatar_space"):(0,c.AO)("room_settings|permissions|m.room.avatar"),[i.EventType.RoomName]:r?(0,c.AO)("room_settings|permissions|m.room.name_space"):(0,c.AO)("room_settings|permissions|m.room.name"),[i.EventType.RoomCanonicalAlias]:r?(0,c.AO)("room_settings|permissions|m.room.canonical_alias_space"):(0,c.AO)("room_settings|permissions|m.room.canonical_alias"),[i.EventType.SpaceChild]:(0,c.AO)("room_settings|permissions|m.space.child"),[i.EventType.RoomHistoryVisibility]:(0,c.AO)("room_settings|permissions|m.room.history_visibility"),[i.EventType.RoomPowerLevels]:(0,c.AO)("room_settings|permissions|m.room.power_levels"),[i.EventType.RoomTopic]:r?(0,c.AO)("room_settings|permissions|m.room.topic_space"):(0,c.AO)("room_settings|permissions|m.room.topic"),[i.EventType.RoomTombstone]:(0,c.AO)("room_settings|permissions|m.room.tombstone"),[i.EventType.RoomEncryption]:(0,c.AO)("room_settings|permissions|m.room.encryption"),[i.EventType.RoomServerAcl]:(0,c.AO)("room_settings|permissions|m.room.server_acl"),[i.EventType.Reaction]:(0,c.AO)("room_settings|permissions|m.reaction"),[i.EventType.RoomRedaction]:(0,c.AO)("room_settings|permissions|m.room.redaction"),[i.EventType.RoomPinnedEvents]:(0,c.AO)("room_settings|permissions|m.room.pinned_events"),"im.vector.modular.widgets":r?null:(0,c.AO)("room_settings|permissions|m.widget")};g.A.getValue("feature_group_calls")&&(_[U.Fm.name]=(0,c.AO)("room_settings|permissions|m.call"),_[U.Vj.name]=(0,c.AO)("room_settings|permissions|m.call.member"));const f={users_default:{desc:(0,c._t)("room_settings|permissions|users_default"),defaultValue:0},events_default:{desc:(0,c._t)("room_settings|permissions|events_default"),defaultValue:0,hideForSpace:!0},invite:{desc:(0,c._t)("room_settings|permissions|invite"),defaultValue:0},state_default:{desc:(0,c._t)("room_settings|permissions|state_default"),defaultValue:50},kick:{desc:(0,c._t)("room_settings|permissions|kick"),defaultValue:50},ban:{desc:(0,c._t)("room_settings|permissions|ban"),defaultValue:50},redact:{desc:(0,c._t)("room_settings|permissions|redact"),defaultValue:50,hideForSpace:!0},"notifications.room":{desc:(0,c._t)("room_settings|permissions|notifications.room"),defaultValue:50,hideForSpace:!0}},y=m.events||{},b=m.users||{},E=L(m.ban,f.ban.defaultValue),w=L(m.users_default,f.users_default.defaultValue),x=null!==(e=null===(t=n.getMember(s.getSafeUserId()))||void 0===t?void 0:t.powerLevel)&&void 0!==e?e:w;this.populateDefaultPlEvents(y,L(m.state_default,f.state_default.defaultValue),L(m.events_default,f.events_default.defaultValue));let A,S=o.createElement("div",null,(0,c._t)("room_settings|permissions|no_privileged_users"));Object.keys(b).length&&(S=o.createElement(j,{title:(0,c._t)("room_settings|permissions|privileged_users_section"),userLevels:b,canChangeLevels:u,currentUserLevel:x,onClick:this.onUserPowerLevelChanged,filter:e=>b[e]>w},o.createElement("div",null,(0,c._t)("room_settings|permissions|no_privileged_users"))),A=o.createElement(j,{title:(0,c._t)("room_settings|permissions|muted_users_section"),userLevels:b,canChangeLevels:u,currentUserLevel:x,onClick:this.onUserPowerLevelChanged,filter:e=>b[e]<w}));const C=n.getMembersWithMembership(l.O.Ban);let R;if(null!=C&&C.length){const e=x>=E;R=o.createElement(p.A,{legend:(0,c._t)("room_settings|permissions|banned_users_section")},o.createElement("ul",{className:"mx_RolesRoomSettingsTab_bannedList"},C.map(t=>{var s,i;const r=null===(s=t.events.member)||void 0===s?void 0:s.getContent(),a=null===(i=t.events.member)||void 0===i?void 0:i.getSender(),l=a?n.getMember(a):void 0,c=(null==l?void 0:l.name)||a;return o.createElement(B,{key:t.userId,canUnban:e,member:t,reason:null==r?void 0:r.reason,by:c})})))}const k=Object.keys(f).map((e,t)=>{const s=f[e];if(r&&s.hideForSpace)return null;const n=L((0,a.get)(m,e),s.defaultValue);return o.createElement("div",{key:t,className:""},o.createElement(h.A,{label:s.desc,value:n,usersDefault:w,disabled:!u||x<n,powerLevelKey:e,onChange:this.onPowerLevelsChanged}))}).filter(Boolean);this.state.isRoomEncrypted&&delete y[i.EventType.RoomEncryption];const P=Object.keys(y).map((e,t)=>{var s,n;if(r&&null!==(s=F[e])&&void 0!==s&&s.hideForSpace)return null;if(!r&&null!==(n=F[e])&&void 0!==n&&n.hideForRoom)return null;const i=_[e];let a;if(i){var l;const e=null!==(l=v.Ay.get("element_call").brand)&&void 0!==l?l:v.zY.element_call.brand;a=(0,c._t)(i,{brand:e})}else a=(0,c._t)("room_settings|permissions|send_event_type",{eventType:e});return o.createElement("div",{key:e},o.createElement(h.A,{label:a,value:y[e],usersDefault:w,disabled:!u||x<y[e],powerLevelKey:"event_levels_"+e,onChange:this.onPowerLevelsChanged}))}).filter(Boolean);return o.createElement(O.A,null,o.createElement(M.X,{heading:(0,c._t)("room_settings|permissions|title")},S,u&&o.createElement(I,{room:n,defaultUserLevel:w}),A,R,this.state.isReady&&o.createElement(p.A,{legend:(0,c._t)("room_settings|permissions|permissions_section"),description:r?(0,c._t)("room_settings|permissions|permissions_section_description_space"):(0,c._t)("room_settings|permissions|permissions_section_description_room")},k,P)))}}(0,n.A)(V,"contextType",k.Ay)},"./src/components/views/settings/tabs/user/MediaPreviewAccountSettings.tsx":(e,t,s)=>{"use strict";s.d(t,{H:()=>y});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/@vector-im/compound-web/dist/components/Form/Controls/Radio/Radio.js"),r=s("./node_modules/@vector-im/compound-web/dist/components/Form/Root.js"),a=s("./node_modules/@vector-im/compound-web/dist/components/Form/Message.js"),l=s("./node_modules/@vector-im/compound-web/dist/components/Form/Field.js"),c=s("./node_modules/@vector-im/compound-web/dist/components/Form/InlineField.js"),d=s("./node_modules/@vector-im/compound-web/dist/components/Form/Label.js"),m=s("./src/components/views/elements/LabelledToggleSwitch.tsx"),u=s("./src/@types/media_preview.ts"),h=s("./src/languageHandler.tsx"),p=s("./src/hooks/useSettings.ts"),g=s("./src/settings/SettingsStore.ts"),v=s("./src/settings/SettingLevel.ts");function _(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function f(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?_(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):_(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const y=({roomId:e})=>{const t=(0,p.ti)("mediaPreviewConfig",e),s=(0,o.useCallback)(t=>{g.A.setValue("mediaPreviewConfig",null!=e?e:null,e?v.p.ROOM_ACCOUNT:v.p.ACCOUNT,t)},[e]),n=(0,o.useCallback)(e=>{s(f(f({},t),{},{invite_avatars:e?u.M.Off:u.M.On}))},[s,t]),_=(0,o.useCallback)(e=>{e.target.checked&&s(f(f({},t),{},{media_previews:u.M.Off}))},[s,t]),y=(0,o.useCallback)(e=>{e.target.checked&&s(f(f({},t),{},{media_previews:u.M.Private}))},[s,t]),b=(0,o.useCallback)(e=>{e.target.checked&&s(f(f({},t),{},{media_previews:u.M.On}))},[s,t]);return o.createElement(r.b,{className:"mx_MediaPreviewAccountSetting_Form"},!e&&o.createElement(m.A,{className:"mx_MediaPreviewAccountSetting_ToggleSwitch",label:(0,h._t)("settings|media_preview|hide_avatars"),value:t.invite_avatars===u.M.Off,onChange:n}),o.createElement(l.D,{id:"mx_media_previews",role:"radiogroup",name:"media_previews","aria-label":(0,h._t)("settings|media_preview|media_preview_label")},o.createElement(d.J,null,(0,h._t)("settings|media_preview|media_preview_label")),o.createElement(a.po,{className:"mx_MediaPreviewAccountSetting_RadioHelp"},(0,h._t)("settings|media_preview|media_preview_description")),o.createElement(c.I,{name:"media_preview_off",className:"mx_MediaPreviewAccountSetting_Radio",control:o.createElement(i.A,{id:"mx_media_previews_off",checked:t.media_previews===u.M.Off,onChange:_})},o.createElement(d.J,{htmlFor:"mx_media_previews_off"},(0,h._t)("settings|media_preview|hide_media"))),!e&&o.createElement(c.I,{name:"mx_media_previews_private",className:"mx_MediaPreviewAccountSetting_Radio",control:o.createElement(i.A,{id:"mx_media_previews_private",checked:t.media_previews===u.M.Private,onChange:y})},o.createElement(d.J,{htmlFor:"mx_media_previews_private"},(0,h._t)("settings|media_preview|show_in_private"))),o.createElement(c.I,{name:"media_preview_on",className:"mx_MediaPreviewAccountSetting_Radio",control:o.createElement(i.A,{id:"mx_media_previews_on",checked:t.media_previews===u.M.On,onChange:b})},o.createElement(d.J,{htmlFor:"mx_media_previews_on"},(0,h._t)("settings|media_preview|show_media")))))}},"./src/components/views/spaces/SpaceBasicSettings.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>c,U:()=>l});var n=s("./node_modules/react/index.js"),o=s("./src/languageHandler.tsx"),i=s("./src/components/views/elements/AccessibleButton.tsx"),r=s("./src/components/views/elements/Field.tsx"),a=s("./src/utils/BrowserWorkarounds.ts");const l=({avatarUrl:e,avatarDisabled:t=!1,setAvatar:s})=>{const r=(0,n.useRef)(null),[l,c]=(0,n.useState)(e);let d;return d=t?l?n.createElement("img",{className:"mx_SpaceBasicSettings_avatar",src:l,alt:""}):n.createElement("div",{className:"mx_SpaceBasicSettings_avatar"}):l?n.createElement(n.Fragment,null,n.createElement(i.A,{className:"mx_SpaceBasicSettings_avatar",onClick:()=>{var e;return null===(e=r.current)||void 0===e?void 0:e.click()},element:"img",src:l,alt:""}),n.createElement(i.A,{onClick:()=>{r.current&&(r.current.value=""),c(void 0),s(void 0)},kind:"link",className:"mx_SpaceBasicSettings_avatar_remove","aria-label":(0,o._t)("room_settings|delete_avatar_label")},(0,o._t)("action|delete"))):n.createElement(n.Fragment,null,n.createElement(i.A,{className:"mx_SpaceBasicSettings_avatar",onClick:()=>{var e;return null===(e=r.current)||void 0===e?void 0:e.click()}}),n.createElement(i.A,{onClick:()=>{var e;return null===(e=r.current)||void 0===e?void 0:e.click()},kind:"link","aria-label":(0,o._t)("room_settings|upload_avatar_label")},(0,o._t)("action|upload"))),n.createElement("div",{className:"mx_SpaceBasicSettings_avatarContainer"},d,n.createElement("input",{type:"file",ref:r,onClick:a.e,onChange:e=>{var t;if(null===(t=e.target.files)||void 0===t||!t.length)return;const n=e.target.files[0];s(n);const o=new FileReader;o.onload=e=>{var t;c(null===(t=e.target)||void 0===t?void 0:t.result)},o.readAsDataURL(n)},accept:"image/*"}))},c=({avatarUrl:e,avatarDisabled:t=!1,setAvatar:s,name:i="",nameDisabled:a=!1,setName:c,topic:d="",topicDisabled:m=!1,setTopic:u})=>n.createElement("div",{className:"mx_SpaceBasicSettings"},n.createElement(l,{avatarUrl:e,avatarDisabled:t,setAvatar:s}),n.createElement(r.A,{name:"spaceName",label:(0,o._t)("common|name"),autoFocus:!0,value:i,onChange:e=>c(e.target.value),disabled:a}),n.createElement(r.A,{name:"spaceTopic",element:"textarea",label:(0,o._t)("common|description"),value:d,onChange:e=>u(e.target.value),rows:3,disabled:m}))},"./src/components/views/spaces/SpaceChildrenPicker.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>h});var n=s("./node_modules/react/index.js"),o=s("./src/languageHandler.tsx"),i=s("./src/components/views/elements/StyledRadioGroup.tsx"),r=s("./src/autocomplete/QueryMatcher.ts"),a=s("./src/components/structures/SearchBox.tsx"),l=s("./src/components/structures/AutoHideScrollbar.tsx"),c=s("./src/components/views/dialogs/AddExistingToSpaceDialog.tsx"),d=s("./src/utils/arrays.ts"),m=function(e){return e.All="All",e.Specific="Specific",e.None="None",e}(m||{});const u=({filterPlaceholder:e,rooms:t,selected:s,onChange:i})=>{const[m,u]=(0,n.useState)(""),h=m.toLowerCase().trim(),p=(0,n.useMemo)(()=>{if(!h)return t;return new r.A(t,{keys:["name"],funcs:[e=>(0,d.Bo)([e.getCanonicalAlias(),...e.getAltAliases()])],shouldMatchWordsOnly:!1}).match(h)},[t,h]);return n.createElement("div",{className:"mx_SpaceChildrenPicker"},n.createElement(a.A,{className:"mx_textinput_icon mx_textinput_search",placeholder:e,onSearch:u,autoFocus:!0}),n.createElement(l.A,null,p.map(e=>n.createElement(c.HK,{key:e.roomId,room:e,checked:s.has(e),onChange:t=>{i(t,e)}})),p.length<1?n.createElement("span",{className:"mx_SpaceChildrenPicker_noResults"},(0,o._t)("common|no_results")):void 0))},h=({space:e,spaceChildren:t,selected:s,onChange:r,noneLabel:a,allLabel:l,specificLabel:c})=>{const[d,h]=(0,n.useState)(a?m.None:m.All);return(0,n.useEffect)(()=>{d===m.All?r(t):r([])},[r,d,t]),n.createElement(n.Fragment,null,n.createElement("div",{className:"mx_SpaceChildrenPicker"},n.createElement(i.A,{name:"roomsToLeave",value:d,onChange:h,definitions:[{value:m.None,label:a},{value:m.All,label:l},{value:m.Specific,label:c}].filter(e=>e.label)})),d===m.Specific&&n.createElement(u,{filterPlaceholder:(0,o._t)("space|search_children",{spaceName:e.name}),rooms:t,selected:s,onChange:(e,t)=>{r(e?[t,...s]:[...s].filter(e=>e!==t))}}))}},"./src/components/views/spaces/SpaceCreateMenu.tsx":(e,t,s)=>{"use strict";s.d(t,{Ay:()=>O,R7:()=>T,bz:()=>R});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/classnames/index.js"),r=s.n(i),a=s("./node_modules/matrix-js-sdk/src/matrix.ts"),l=s("./node_modules/matrix-js-sdk/src/logger.ts"),c=s("./src/languageHandler.tsx"),d=s("./src/components/structures/ContextMenu.tsx"),m=s("./src/createRoom.ts"),u=s("./src/contexts/MatrixClientContext.tsx"),h=s("./src/components/views/spaces/SpaceBasicSettings.tsx"),p=s("./src/components/views/elements/AccessibleButton.tsx"),g=s("./src/components/views/elements/Field.tsx"),v=s("./src/components/views/elements/Validation.tsx"),_=s("./src/components/views/elements/RoomAliasField.tsx"),f=s("./src/KeyBindingsManager.ts"),y=s("./src/accessibility/KeyboardShortcuts.ts"),b=s("./src/dispatcher/dispatcher.ts"),E=s("./src/dispatcher/actions.ts"),w=s("./src/components/views/dialogs/spotlight/Filter.ts"),x=s("./src/hooks/useSettings.ts"),A=s("./src/settings/UIFeature.ts");function S(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function C(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?S(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):S(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const R=async(e,t,s,n,o,i,r={},l={})=>(0,m.Ay)(e,C({createOpts:C({name:t,preset:s?a.Preset.PublicChat:a.Preset.PrivateChat,visibility:s&&await e.doesServerSupportUnstableFeature("org.matrix.msc3827.stable")?a.Visibility.Public:a.Visibility.Private,power_level_content_override:{events_default:100,invite:s?0:50},room_alias_name:s&&n?n.substring(1,n.indexOf(":")):void 0,topic:o},r),avatar:i,roomType:a.RoomType.Space,historyVisibility:s?a.HistoryVisibility.WorldReadable:a.HistoryVisibility.Invited,spinner:!1,encryption:!1,andView:!0,inlineErrors:!0},l)),k=({title:e,description:t,className:s,onClick:n})=>o.createElement(p.A,{className:r()("mx_SpaceCreateMenuType",s),onClick:n},e,o.createElement("div",null,t)),I=(0,v.A)({rules:[{key:"required",test:async({value:e})=>!!e,invalid:()=>(0,c._t)("create_space|name_required")}]}),P=e=>e.trim().toLowerCase().replace(/\s+/g,"-").replace(/[^a-z0-9_-]+/gi,""),T=({busy:e,onSubmit:t,avatarUrl:s,setAvatar:n,name:i,setName:r,nameFieldRef:a,alias:l,aliasFieldRef:d,setAlias:m,showAliasField:p,topic:v,setTopic:b,children:E})=>{var w;const x=null!==(w=(0,o.useContext)(u.Ay).getDomain())&&void 0!==w?w:void 0,A=e=>{if((0,f.zM)().getAccessibilityAction(e)===y.bY.Enter)t(e)};return o.createElement("form",{className:"mx_SpaceBasicSettings",onSubmit:t},o.createElement(h.U,{avatarUrl:s,setAvatar:n,avatarDisabled:e}),o.createElement(g.A,{name:"spaceName",label:(0,c._t)("common|name"),autoFocus:!0,value:i,onChange:e=>{const t=e.target.value;var s;l&&l!==`#${P(i)}:${x}`||(m(`#${P(t)}:${x}`),null===(s=d.current)||void 0===s||s.validate({allowEmpty:!0}));r(t)},onKeyDown:A,ref:a,onValidate:I,disabled:e,autoComplete:"off"}),p?o.createElement(_.A,{ref:d,onChange:m,domain:x,value:l,placeholder:i?P(i):(0,c._t)("create_space|address_placeholder"),label:(0,c._t)("create_space|address_label"),disabled:e,onKeyDown:A}):null,o.createElement(g.A,{name:"spaceTopic",element:"textarea",label:(0,c._t)("common|description"),value:null!=v?v:"",onChange:e=>b(e.target.value),rows:3,disabled:e}),E)},O=({onFinished:e})=>{const t=(0,u.nH)(),s=(0,x.ti)(A.f.AllowCreatingPublicSpaces),[n,i]=(0,o.useState)(!1===s?a.Visibility.Private:null),[r,m]=(0,o.useState)(!1),[h,g]=(0,o.useState)(""),v=(0,o.useRef)(null),[_,f]=(0,o.useState)(""),y=(0,o.useRef)(null),[S,C]=(0,o.useState)(void 0),[I,P]=(0,o.useState)(""),[O,M]=(0,o.useState)(!0);(0,o.useEffect)(()=>{t.isVersionSupported("v1.4").then(e=>e||t.doesServerSupportUnstableFeature("org.matrix.msc3827.stable")).then(e=>{M(e)})},[t]);const N=async s=>{if(s.preventDefault(),!r){if(m(!0),v.current&&!await v.current.validate({allowEmpty:!1}))return v.current.focus(),v.current.validate({allowEmpty:!1,focused:!0}),void m(!1);if(y.current&&n===a.Visibility.Public&&!await y.current.validate({allowEmpty:!1}))return y.current.focus(),y.current.validate({allowEmpty:!1,focused:!0}),void m(!1);try{await R(t,h,n===a.Visibility.Public,_,I,S),e()}catch(s){l.vF.error(s)}}},D=()=>{b.A.dispatch({action:E.r.OpenSpotlight,initialFilter:w.d.PublicSpaces})};let j;return j=null===n?o.createElement(o.Fragment,null,o.createElement("h2",null,(0,c._t)("create_space|label")),o.createElement("p",null,(0,c._t)("create_space|explainer")),o.createElement(k,{title:(0,c._t)("common|public"),description:(0,c._t)("create_space|public_description"),className:"mx_SpaceCreateMenuType_public",onClick:()=>i(a.Visibility.Public)}),o.createElement(k,{title:(0,c._t)("common|private"),description:(0,c._t)("create_space|private_description"),className:"mx_SpaceCreateMenuType_private",onClick:()=>i(a.Visibility.Private)}),O&&o.createElement(p.A,{kind:"primary_outline",onClick:D},(0,c._t)("create_space|search_public_button"))):o.createElement(o.Fragment,null,s&&o.createElement(p.A,{className:"mx_SpaceCreateMenu_back",onClick:()=>i(null),title:(0,c._t)("action|go_back")}),o.createElement("h2",null,n===a.Visibility.Public?(0,c._t)("create_space|public_heading"):s?(0,c._t)("create_space|private_heading"):(0,c._t)("create_space|private_only_heading")),o.createElement("p",null,(0,c._t)("create_space|add_details_prompt")," ",(0,c._t)("create_space|add_details_prompt_2")),o.createElement(T,{busy:r,onSubmit:N,setAvatar:C,name:h,setName:g,nameFieldRef:v,topic:I,setTopic:P,alias:_,setAlias:f,showAliasField:n===a.Visibility.Public,aliasFieldRef:y}),o.createElement(p.A,{kind:"primary",onClick:N,disabled:r},r?(0,c._t)("create_space|creating"):(0,c._t)("action|create"))),o.createElement(d.Ay,{left:72,top:62,chevronOffset:0,chevronFace:d.t4.None,onFinished:e,wrapperClassName:"mx_SpaceCreateMenu_wrapper",managed:!1,focusLock:!0},j)}},"./src/components/views/spaces/SpacePublicShare.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>h});var n=s("./node_modules/react/index.js"),o=s("./node_modules/matrix-js-sdk/src/utils.ts"),i=s("./src/languageHandler.tsx"),r=s("./src/components/views/elements/AccessibleButton.tsx"),a=s("./src/utils/strings.ts"),l=s("./src/utils/permalinks/Permalinks.ts"),c=s("./src/RoomInvite.tsx"),d=s("./src/MatrixClientPeg.ts"),m=s("./src/customisations/helpers/UIComponents.ts"),u=s("./src/settings/UIFeature.ts");const h=({space:e,onFinished:t})=>{const[s,h]=(0,n.useState)((0,i._t)("action|click_to_copy"));return n.createElement("div",{className:"mx_SpacePublicShare"},n.createElement(r.A,{className:"mx_SpacePublicShare_shareButton",onClick:async()=>{const t=new l.pE(e);t.load();const n=await(0,a.nC)(t.forShareableRoom())?(0,i._t)("common|copied"):(0,i._t)("error|failed_copy");h(n),await(0,o.yy)(5e3),s===n&&h((0,i._t)("action|click_to_copy"))}},(0,i._t)("space|invite_link"),n.createElement("div",null,s)),e.canInvite(d.J.safeGet().getSafeUserId())&&(0,m.g)(u.C.InviteUsers)?n.createElement(r.A,{className:"mx_SpacePublicShare_inviteButton",onClick:()=>{t&&t(),(0,c._7)(e.roomId)}},(0,i._t)("space|invite"),n.createElement("div",null,(0,i._t)("space|invite_description"))):null)}},"./src/components/views/toasts/GenericToast.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>i});var n=s("./node_modules/react/index.js"),o=s("./node_modules/@vector-im/compound-web/dist/components/Button/Button.js");const i=({description:e,detail:t,primaryLabel:s,PrimaryIcon:i,secondaryLabel:r,SecondaryIcon:a,destructive:l,onPrimaryClick:c,onSecondaryClick:d,overrideWidth:m})=>{const u=t?n.createElement("div",{className:"mx_Toast_detail"},t):null;return n.createElement("div",null,n.createElement("div",{className:"mx_Toast_description",style:{maxWidth:m}},e,u),n.createElement("div",{className:"mx_Toast_buttons","aria-live":"off"},d&&r&&n.createElement(o.$,{onClick:d,kind:"secondary"===l?"destructive":"secondary",Icon:a,size:"sm"},r),n.createElement(o.$,{onClick:c,kind:"primary"===l?"destructive":"primary",Icon:i,size:"sm"},s)))}},"./src/components/views/typography/Caption.tsx":(e,t,s)=>{"use strict";s.d(t,{H:()=>c});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/classnames/index.js"),r=s.n(i),a=s("./node_modules/react/index.js");const l=["children","isError"],c=e=>{let{children:t,isError:s}=e,i=(0,o.A)(e,l);return a.createElement("span",(0,n.A)({className:r()("mx_Caption",{mx_Caption_error:s})},i),t)}},"./src/components/views/typography/Heading.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>m});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),i=s("./node_modules/react/index.js"),r=s("./node_modules/classnames/index.js"),a=s.n(r);const l=["as","size","className","children"];function c(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function d(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?c(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):c(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const m=e=>{let{as:t,size:s="1",className:n,children:r}=e,c=(0,o.A)(e,l);return i.createElement(t||`h${s}`,d(d({},c),{},{className:a()(`mx_Heading_h${s}`,n),children:r}))}},"./src/components/views/verification/VerificationShowSas.tsx":(e,t,s)=>{"use strict";s.d(t,{A:()=>d});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/@matrix-org/spec/sas-emoji.json"),r=s("./src/languageHandler.tsx"),a=s("./src/components/views/right_panel/EncryptionInfo.tsx"),l=s("./src/components/views/elements/AccessibleButton.tsx");const c=new Map(i.map(({description:e,translated_descriptions:t})=>[e.toLowerCase(),{description:e,translations:Object.keys(t).reduce((e,s)=>{for(const n of(0,r.Ev)(s))e[n]=t[s];return e},{})}]));class d extends o.Component{constructor(e){super(e),(0,n.A)(this,"onMatchClick",()=>{this.setState({pending:!0}),this.props.onDone()}),(0,n.A)(this,"onDontMatchClick",()=>{this.setState({cancelling:!0}),this.props.onCancel()}),this.state={pending:!1}}render(){const e=(0,r.mf)();let t,s,n;if(this.props.sas.emoji){const n=this.props.sas.emoji.map((t,s)=>o.createElement("div",{className:"mx_VerificationShowSas_emojiSas_block",key:s},o.createElement("div",{className:"mx_VerificationShowSas_emojiSas_emoji"},t[0]),o.createElement("div",{className:"mx_VerificationShowSas_emojiSas_label"},function(e,t){const s=e[1],n=c.get(s.toLowerCase());if(!n)return console.warn("Emoji not found for translation",s),s;for(const e of(0,r.Ev)(t))if(n.translations[e])return n.translations[e];return n.description}(t,e))));t=o.createElement("div",{className:"mx_VerificationShowSas_emojiSas"},n.slice(0,4),o.createElement("div",{className:"mx_VerificationShowSas_emojiSas_break"}),n.slice(4)),s=this.props.isSelf?(0,r._t)("encryption|verification|confirm_the_emojis"):(0,r._t)("encryption|verification|sas_emoji_caption_user")}else{if(!this.props.sas.decimal)return o.createElement("div",null,(0,r._t)("encryption|verification|unsupported_method"),o.createElement(l.A,{kind:"primary",onClick:this.props.onCancel},(0,r._t)("action|cancel")));{const e=this.props.sas.decimal.map((e,t)=>o.createElement("span",{key:t},e));t=o.createElement("div",{className:"mx_VerificationShowSas_decimalSas"},e),s=this.props.isSelf?(0,r._t)("encryption|verification|sas_caption_self"):(0,r._t)("encryption|verification|sas_caption_user")}}if(this.state.pending&&this.props.isSelf){let e;const t=this.props.otherDeviceDetails;e=t?(0,r._t)("encryption|verification|waiting_other_device_details",{deviceName:t.displayName,deviceId:t.deviceId}):(0,r._t)("encryption|verification|waiting_other_device"),n=o.createElement("p",null,e)}else if(this.state.pending||this.state.cancelling){let e;if(this.state.pending){const{displayName:t}=this.props;e=(0,r._t)("encryption|verification|waiting_other_user",{displayName:t})}else e=(0,r._t)("encryption|verification|cancelling");n=o.createElement(a.Z,{text:e})}else n=o.createElement("div",{className:"mx_VerificationShowSas_buttonRow"},o.createElement(l.A,{onClick:this.onMatchClick,kind:"primary"},(0,r._t)("encryption|verification|sas_match")),o.createElement(l.A,{onClick:this.onDontMatchClick,kind:"secondary"},(0,r._t)("encryption|verification|sas_no_match")));return o.createElement("div",{className:"mx_VerificationShowSas"},o.createElement("p",null,s),t,o.createElement("p",null,this.props.isSelf?"":(0,r._t)("encryption|verification|in_person")),n)}}},"./src/components/views/voip/DialPad.tsx":(e,t,s)=>{"use strict";s.d(t,{Ay:()=>m});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./src/components/views/elements/AccessibleButton.tsx"),r=s("./src/languageHandler.tsx");const a=["1","2","3","4","5","6","7","8","9","*","0","#"],l=["","ABC","DEF","GHI","JKL","MNO","PQRS","TUV","WXYZ","","+",""];var c=function(e){return e[e.Digit=0]="Digit",e[e.Dial=1]="Dial",e}(c||{});class d extends o.PureComponent{constructor(...e){super(...e),(0,n.A)(this,"onClick",e=>{switch(this.props.kind){case c.Digit:this.props.onButtonPress(this.props.digit,e);break;case c.Dial:this.props.onButtonPress()}})}render(){switch(this.props.kind){case c.Digit:return o.createElement(i.A,{className:"mx_DialPad_button",onClick:this.onClick},this.props.digit,o.createElement("div",{className:"mx_DialPad_buttonSubText"},this.props.digitSubtext));case c.Dial:return o.createElement(i.A,{className:"mx_DialPad_button mx_DialPad_dialButton",onClick:this.onClick,"aria-label":(0,r._t)("voip|dial")})}}}class m extends o.PureComponent{render(){const e=[];for(let t=0;t<a.length;t++){const s=a[t],n=l[t];e.push(o.createElement(d,{key:s,kind:c.Digit,digit:s,digitSubtext:n,onButtonPress:this.props.onDigitPress}))}return this.props.hasDial&&e.push(o.createElement(d,{key:"dial",kind:c.Dial,onButtonPress:this.props.onDialPress})),o.createElement("div",{className:"mx_DialPad"},e)}}},"./src/contexts/CurrentRightPanelPhaseContext.tsx":(e,t,s)=>{"use strict";s.d(t,{I:()=>a,L:()=>l});var n=s("./node_modules/react/index.js"),o=s("./src/contexts/SDKContext.ts"),i=s("./src/hooks/useEventEmitter.ts"),r=s("./src/stores/AsyncStore.ts");const a=(0,n.createContext)(null),l=({roomId:e,children:t})=>{const{currentPhase:s,isOpen:l}=function(e){const t=(0,n.useContext)(o.A),s=()=>(e?t.rightPanelStore.currentCardForRoom(e):t.rightPanelStore.currentCard).phase,a=()=>e?t.rightPanelStore.isOpenForRoom(e):t.rightPanelStore.isOpen,[l,c]=(0,n.useState)(s()),[d,m]=(0,n.useState)(a());return(0,i.ml)(t.rightPanelStore,r.H,()=>{c(s()),m(a())}),{currentPhase:l,isOpen:d}}(e);return n.createElement(a.Provider,{value:{currentPhase:s,isPanelOpen:l}},t)}},"./src/contexts/LocalDeviceVerificationStateContext.ts":(e,t,s)=>{"use strict";s.d(t,{f:()=>n});const n=(0,s("./node_modules/react/index.js").createContext)(!1)},"./src/contexts/MatrixClientContext.tsx":(e,t,s)=>{"use strict";s.d(t,{Ay:()=>r,dt:()=>l,nH:()=>a});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/react/index.js");const i=(0,o.createContext)(null);i.displayName="MatrixClientContext";const r=i;function a(){return(0,o.useContext)(i)}const l=e=>t=>{const s=(0,o.useContext)(i);return o.createElement(e,(0,n.A)({},t,{mxClient:s}))}},"./src/contexts/RoomContext.ts":(e,t,s)=>{"use strict";s.d(t,{Ae:()=>i,Ay:()=>l,DZ:()=>r});var n=s("./node_modules/react/index.js"),o=s("./src/settings/enums/Layout.ts");let i=function(e){return e.Room="Room",e.Thread="Thread",e.ThreadsList="ThreadsList",e.File="File",e.Notification="Notification",e.Search="Search",e.Pinned="Pinned",e}({}),r=function(e){return e[e.Timeline=0]="Timeline",e[e.MaximisedWidget=1]="MaximisedWidget",e[e.Call=2]="Call",e}({});const a=(0,n.createContext)({roomLoading:!0,peekLoading:!1,shouldPeek:!0,membersLoaded:!1,numUnreadMessages:0,canPeek:!1,showApps:!1,isPeeking:!1,showRightPanel:!0,joining:!1,showTopUnreadMessagesBar:!1,statusBarVisible:!1,canReact:!1,canSelfRedact:!1,canSendMessages:!1,resizing:!1,layout:o.P.Group,lowBandwidth:!1,alwaysShowTimestamps:!1,showTwelveHourTimestamps:!1,userTimezone:void 0,readMarkerInViewThresholdMs:3e3,readMarkerOutOfViewThresholdMs:3e4,showHiddenEvents:!1,showReadReceipts:!0,showRedactions:!0,showJoinLeaves:!0,showAvatarChanges:!0,showDisplaynameChanges:!0,matrixClientIsReady:!1,showUrlPreview:!1,timelineRenderingType:i.Room,mainSplitContentType:r.Timeline,threadId:void 0,liveTimeline:void 0,narrow:!1,msc3946ProcessDynamicPredecessor:!1,canAskToJoin:!1,promptAskToJoin:!1,viewRoomOpts:{buttons:[]},isRoomEncrypted:null});a.displayName="RoomContext";const l=a},"./src/contexts/SDKContext.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>re,M:()=>ae});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./src/dispatcher/dispatcher.ts"),r=s("./src/LegacyCallHandler.tsx"),a=s("./src/PosthogAnalytics.ts"),l=s("./src/SlidingSyncManager.ts"),c=s("./node_modules/matrix-js-sdk/src/types.ts"),d=s("./src/settings/SettingsStore.ts"),m=s("./src/SdkConfig.ts");const u=/[\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]+/g;class h{constructor(e){(0,n.A)(this,"sortNames",new Map),(0,n.A)(this,"loadedRooms",new Set),(0,n.A)(this,"collator",void 0),this.stores=e}async loadMemberList(e,t){if(!this.stores.client)return{joined:[],invited:[]};const s=d.A.getValue("language");this.collator=new Intl.Collator(s,{sensitivity:"base",ignorePunctuation:!1});const n=await this.loadMembers(e),o=this.filterMembers(n,t);return o.joined.sort((e,t)=>this.sortMembers(e,t)),o.invited.sort((e,t)=>this.sortMembers(e,t)),{joined:o.joined,invited:o.invited}}async loadMembers(e){const t=this.stores.client.getRoom(e);if(!t)return[];if(this.loadedRooms.has(e)||!await this.isLazyLoadingEnabled(e))return this.loadMembersInRoom(t);if(this.isLazyMemberStorageEnabled())try{await t.loadMembersIfNeeded()}catch{}else{t.currentState.markOutOfBandMembersStarted();const s=(await this.stores.client.members(e,void 0,c.O.Leave)).chunk.map(this.stores.client.getEventMapper());t.currentState.setOutOfBandMembers(s)}return this.loadedRooms.add(e),this.loadMembersInRoom(t)}loadMembersInRoom(e){const t=Object.values(e.currentState.members);return t.forEach(e=>{e.user||(e.user=this.stores.client.getUser(e.userId)||void 0)}),t}async isLazyLoadingEnabled(e){var t;return d.A.getValue("feature_simplified_sliding_sync")?!await(null===(t=this.stores.client)||void 0===t||null===(t=t.getCrypto())||void 0===t?void 0:t.isEncryptionEnabledInRoom(e)):this.stores.client.hasLazyLoadMembersEnabled()}isLazyMemberStorageEnabled(){return!d.A.getValue("feature_simplified_sliding_sync")&&this.stores.client.hasLazyLoadMembersEnabled()}isPresenceEnabled(){var e;if(!this.stores.client)return!0;const t=m.Ay.get("enable_presence_by_hs_url");return null===(e=null==t?void 0:t[this.stores.client.baseUrl])||void 0===e||e}filterMembers(e,t){const s={joined:[],invited:[]};return e.forEach(e=>{if(e.membership===c.O.Join||e.membership===c.O.Invite){if(t){t=t.toLowerCase();const s=e.name.toLowerCase().includes(t),n=e.userId.toLowerCase().includes(t);if(!s&&!n)return}switch(e.membership){case c.O.Join:s.joined.push(e);break;case c.O.Invite:s.invited.push(e)}}}),s}sortMembers(e,t){const s=e.user,n=t.user;if(!s&&!n)return 0;if(s&&!n)return-1;if(!s&&n)return 1;const o=this.isPresenceEnabled();if(o){const e=e=>"unavailable"===e?"online":e,t=t=>{const s=["active","online","offline"],n=s.indexOf(e(t));return-1===n?s.length:n},o=t(s.currentlyActive?"active":s.presence),i=t(n.currentlyActive?"active":n.presence);if(o!==i)return o-i}return e.powerLevel!==t.powerLevel?t.powerLevel-e.powerLevel:o&&s.getLastActiveTs()!==n.getLastActiveTs()?n.getLastActiveTs()-s.getLastActiveTs():this.collator.compare(this.canonicalisedName(e.name),this.canonicalisedName(t.name))}canonicalisedName(e){let t=this.sortNames.get(e);return t||(t=("@"===e[0]?e.slice(1):e).replace(u,""),this.sortNames.set(e,t),t)}}var p=s("./src/stores/notifications/RoomNotificationStateStore.ts"),g=s("./src/stores/right-panel/RightPanelStore.ts"),v=s("./node_modules/matrix-js-sdk/src/utils.ts"),_=s("./node_modules/matrix-js-sdk/src/matrix.ts"),f=s("./node_modules/matrix-js-sdk/src/logger.ts"),y=s("./node_modules/events/events.js"),b=s.n(y),E=s("./node_modules/@matrix-org/react-sdk-module-api/lib/lifecycles/RoomViewLifecycle.js"),w=s("./src/MatrixClientPeg.ts"),x=s("./src/Modal.tsx"),A=s("./src/languageHandler.tsx"),S=s("./src/RoomAliasCache.ts"),C=s("./src/dispatcher/actions.ts"),R=s("./src/utils/promise.ts"),k=s("./src/contexts/RoomContext.ts"),I=s("./src/utils/DMRoomMap.ts"),P=s("./src/stores/spaces/index.ts"),T=s("./src/components/views/dialogs/ErrorDialog.tsx"),O=s("./src/utils/RoomUpgrade.ts"),M=s("./src/stores/AsyncStore.ts"),N=s("./src/stores/CallStore.ts"),D=s("./src/modules/ModuleRunner.ts"),j=s("./src/utils/notifications.ts"),U=s("./src/models/Call.ts"),F=s("./src/utils/video-rooms.ts");function L(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function B(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?L(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):L(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const V={joining:!1,joinError:null,roomId:null,threadId:null,subscribingRoomId:null,initialEventId:null,initialEventPixelOffset:null,isInitialEventHighlighted:!1,initialEventScrollIntoView:!0,roomAlias:null,roomLoading:!1,roomLoadError:null,replyingToEvent:null,shouldPeek:!1,viaServers:[],wasContextSwitch:!1,viewingCall:!1,promptAskToJoin:!1,viewRoomOpts:{buttons:[]}};class H extends(b()){constructor(e,t){super(),(0,n.A)(this,"state",v.A4(V)),(0,n.A)(this,"dis",void 0),(0,n.A)(this,"dispatchToken",void 0),this.stores=t,this.resetDispatcher(e)}addRoomListener(e,t){this.on(e,t)}removeRoomListener(e,t){this.off(e,t)}emitForRoom(e,t){this.emit(e,t)}setState(e){let t=!1;for(const s of Object.keys(e))if(this.state[s]!==e[s]){t=!0;break}if(!t)return;const s=this.state.roomId;var n;(this.state=Object.assign(this.state,e),s!==this.state.roomId)&&(s&&this.emitForRoom(s,!1),this.state.roomId&&this.emitForRoom(this.state.roomId,!0),null===(n=this.dis)||void 0===n||n.dispatch({action:C.r.ActiveRoomChanged,oldRoomId:s,newRoomId:this.state.roomId}));this.emit(M.H)}onDispatch(e){switch(e.action){case C.r.ViewRoom:this.viewRoom(e);break;case C.r.ViewThread:this.viewThread(e);break;case"view_welcome_page":case C.r.ViewHomePage:this.setState({roomId:null,roomAlias:null,viaServers:[],wasContextSwitch:!1,viewingCall:!1});break;case C.r.ViewRoomError:this.viewRoomError(e);break;case"will_join":this.setState({joining:!0});break;case"cancel_join":this.setState({joining:!1});break;case C.r.JoinRoom:this.joinRoom(e);break;case C.r.JoinRoomError:this.joinRoomError(e);break;case C.r.JoinRoomReady:this.state.roomId===e.roomId&&this.setState({shouldPeek:!1}),(0,O.R)(w.J.safeGet(),e.roomId).then(t=>{const s=t.getJoinedMemberCount(),n=s>1e3?"MoreThanAThousand":s>100?"OneHundredAndOneToAThousand":s>10?"ElevenToOneHundred":s>2?"ThreeToTen":s>1?"Two":"One";this.stores.posthogAnalytics.trackEvent({eventName:"JoinedRoom",trigger:e.metricsTrigger,roomSize:n,isDM:!!I.A.shared().getUserIdForRoomId(t.roomId),isSpace:t.isSpaceRoom()})});break;case"on_client_not_viable":case C.r.OnLoggedOut:this.reset();break;case"reply_to_event":var t;if(k.Ae.Thread!==e.context)if(e.event&&e.event.getRoomId()!==this.state.roomId)null===(t=this.dis)||void 0===t||t.dispatch({action:C.r.ViewRoom,room_id:e.event.getRoomId(),replyingToEvent:e.event,metricsTrigger:void 0});else this.setState({replyingToEvent:e.event});break;case C.r.PromptAskToJoin:this.setState({promptAskToJoin:!0});break;case C.r.SubmitAskToJoin:this.submitAskToJoin(e);break;case C.r.CancelAskToJoin:this.cancelAskToJoin(e);break;case C.r.RoomLoaded:this.setViewRoomOpts()}}async viewRoom(e){if(e.room_id){var t,s,n,o,i,r,a,l,c;const g=w.J.safeGet().getRoom(e.room_id);if(null!==e.metricsTrigger&&e.room_id!==this.state.roomId){let t;if(this.stores.spaceStore.activeSpace===P._b.Home)t="Home";else if((0,P.ww)(this.stores.spaceStore.activeSpace))t="Meta";else{var m;t=(null===(m=this.stores.spaceStore.activeSpaceRoom)||void 0===m?void 0:m.getJoinRule())===_.JoinRule.Public?"Public":"Private"}this.stores.posthogAnalytics.trackEvent({eventName:"ViewRoom",trigger:e.metricsTrigger,viaKeyboard:e.metricsViaKeyboard,isDM:!!I.A.shared().getUserIdForRoomId(e.room_id),isSpace:null==g?void 0:g.isSpaceRoom(),activeSpace:t})}if(g&&(e.view_call||(0,F.j)(g))){let t=N.e.instance.getCall(e.room_id);null===t&&(U.Ho.create(g),t=N.e.instance.getCall(e.room_id)),t.presented=!0,t.connectionState===U.KN.Disconnected&&t.start({skipLobby:e.skipLobby})}const v=this.state.roomId?N.e.instance.getCall(this.state.roomId):null;var u,h;if(null===v||e.view_call&&e.room_id===this.state.roomId||(v.presented=!1),d.A.getValue("feature_simplified_sliding_sync")&&this.state.roomId!==e.room_id)return this.setState({subscribingRoomId:e.room_id,roomId:e.room_id,initialEventId:null,initialEventPixelOffset:null,initialEventScrollIntoView:!0,roomAlias:null,roomLoading:!0,roomLoadError:null,viaServers:e.via_servers,wasContextSwitch:e.context_switch,viewingCall:null!==(u=e.view_call)&&void 0!==u&&u}),await this.stores.slidingSyncManager.setRoomVisible(e.room_id),void(null===(h=this.dis)||void 0===h||h.dispatch(B({},e)));const f={roomId:e.room_id,roomAlias:null!==(t=e.room_alias)&&void 0!==t?t:null,initialEventId:null!==(s=e.event_id)&&void 0!==s?s:null,isInitialEventHighlighted:null!==(n=e.highlighted)&&void 0!==n&&n,initialEventScrollIntoView:null===(o=e.scroll_into_view)||void 0===o||o,roomLoading:!1,roomLoadError:null,shouldPeek:void 0===e.should_peek||e.should_peek,joining:e.joining||!1,replyingToEvent:null,viaServers:null!==(i=e.via_servers)&&void 0!==i?i:[],wasContextSwitch:null!==(r=e.context_switch)&&void 0!==r&&r,viewingCall:null!==(a=e.view_call)&&void 0!==a?a:e.room_id===this.state.roomId?this.state.viewingCall:null!==N.e.instance.getActiveCall(e.room_id)};var p;if((null===(l=e.replyingToEvent)||void 0===l?void 0:l.getRoomId())===e.room_id?f.replyingToEvent=e.replyingToEvent:(null===(c=this.state.replyingToEvent)||void 0===c?void 0:c.getRoomId())===e.room_id&&(f.replyingToEvent=this.state.replyingToEvent),this.setState(f),e.auto_join)null===(p=this.dis)||void 0===p||p.dispatch(B(B({},e),{},{action:C.r.JoinRoom,roomId:e.room_id,metricsTrigger:e.metricsTrigger,canAskToJoin:d.A.getValue("feature_ask_to_join")}));g&&await(0,j.bR)(g,w.J.safeGet(),!1)}else if(e.room_alias){var g;let t,s;const n=(0,S.K)(e.room_alias);if(n)t=n.roomId,s=n.viaServers;else{var v;this.setState({roomId:null,initialEventId:null,initialEventPixelOffset:null,isInitialEventHighlighted:!1,initialEventScrollIntoView:!0,roomAlias:e.room_alias,roomLoading:!0,roomLoadError:null,viaServers:e.via_servers,wasContextSwitch:e.context_switch,viewingCall:null!==(v=e.view_call)&&void 0!==v&&v});try{const n=await w.J.safeGet().getRoomIdForAlias(e.room_alias);(0,S.i)(e.room_alias,n.room_id,n.servers),t=n.room_id,s=n.servers}catch(t){var y;return f.vF.error("RVS failed to get room id for alias: ",t),void(null===(y=this.dis)||void 0===y||y.dispatch({action:C.r.ViewRoomError,room_id:null,room_alias:e.room_alias,err:t instanceof _.MatrixError?t:void 0}))}}null===(g=this.dis)||void 0===g||g.dispatch(B(B({},e),{},{room_id:t,via_servers:s}))}}viewThread(e){this.setState({threadId:e.thread_id})}viewRoomError(e){this.setState({roomId:e.room_id,roomAlias:e.room_alias,roomLoading:!1,roomLoadError:e.err})}async joinRoom(e){var t;this.setState({joining:!0});const{roomAlias:s,roomId:n=e.roomId,viaServers:o=[]}=this.state,i=s||n,r=B({viaServers:o},null!==(t=e.opts)&&void 0!==t?t:{});d.A.getValue("feature_share_history_on_invite")&&(r.acceptSharedHistory=!0);try{var a;const t=w.J.safeGet();await(0,R.L5)(()=>t.joinRoom(i,r),5,e=>504===e.httpStatus||524===e.httpStatus),null===(a=this.dis)||void 0===a||a.dispatch({action:C.r.JoinRoomReady,roomId:n,metricsTrigger:e.metricsTrigger})}catch(t){var l,c;if(null===(l=this.dis)||void 0===l||l.dispatch({action:C.r.JoinRoomError,roomId:n,err:t,canAskToJoin:e.canAskToJoin}),e.canAskToJoin&&t instanceof _.MatrixError&&403===t.httpStatus)null===(c=this.dis)||void 0===c||c.dispatch({action:C.r.PromptAskToJoin})}}getInvitingUserId(e){const t=w.J.safeGet(),s=t.getRoom(e);if((null==s?void 0:s.getMyMembership())===c.O.Invite){const e=s.getMember(t.getSafeUserId()),n=e?e.events.member:null;return null==n?void 0:n.getSender()}}showJoinRoomError(e,t){let s=e.message?e.message:JSON.stringify(e);if(f.vF.log("Failed to join room:",s),"ConnectionError"===e.name)s=(0,A._t)("room|error_join_connection");else if("M_INCOMPATIBLE_ROOM_VERSION"===e.errcode)s=o.createElement("div",null,(0,A._t)("room|error_join_incompatible_version_1"),o.createElement("br",null),(0,A._t)("room|error_join_incompatible_version_2"));else if(404===e.httpStatus){const e=this.getInvitingUserId(t);e&&(s=e.endsWith(`:${w.J.safeGet().getDomain()}`)?(0,A._t)("room|error_join_404_invite_same_hs"):(0,A._t)("room|error_join_404_invite")),t===this.state.roomId&&0===this.state.viaServers.length&&(s=o.createElement("div",null,(0,A._t)("room|error_join_404_1"),o.createElement("br",null),o.createElement("br",null),(0,A._t)("room|error_join_404_2")))}x.Ay.createDialog(T.A,{title:(0,A._t)("room|error_join_title"),description:s})}joinRoomError(e){this.setState({joining:!1,joinError:e.err}),e.err&&!e.canAskToJoin&&this.showJoinRoomError(e.err,e.roomId)}reset(){this.state=Object.assign({},V)}resetDispatcher(e){var t;this.dispatchToken&&(null===(t=this.dis)||void 0===t||t.unregister(this.dispatchToken));this.dis=e,e&&(this.dispatchToken=this.dis.register(this.onDispatch.bind(this)))}getRoomId(){return this.state.roomId}getThreadId(){return this.state.threadId}getInitialEventId(){return this.state.initialEventId}isInitialEventHighlighted(){return this.state.isInitialEventHighlighted}initialEventScrollIntoView(){return this.state.initialEventScrollIntoView}getRoomAlias(){return this.state.roomAlias}isRoomLoading(){return this.state.roomLoading}getRoomLoadError(){return this.state.roomLoadError}isJoining(){return this.state.joining}getJoinError(){return this.state.joinError}getQuotingEvent(){return this.state.replyingToEvent}shouldPeek(){return this.state.shouldPeek}getWasContextSwitch(){return this.state.wasContextSwitch}isViewingCall(){return this.state.viewingCall}promptAskToJoin(){return this.state.promptAskToJoin}submitAskToJoin(e){w.J.safeGet().knockRoom(e.roomId,B({viaServers:this.state.viaServers},e.opts)).catch(e=>x.Ay.createDialog(T.A,{title:(0,A._t)("room|error_join_title"),description:403===e.httpStatus?(0,A._t)("room|error_join_403"):e.message})).finally(()=>this.setState({promptAskToJoin:!1}))}cancelAskToJoin(e){w.J.safeGet().leave(e.roomId).catch(e=>x.Ay.createDialog(T.A,{title:(0,A._t)("room|error_cancel_knock_title"),description:e.message}))}getViewRoomOpts(){return this.state.viewRoomOpts}setViewRoomOpts(){const e={buttons:[]};D.r.instance.invoke(E.J.ViewRoom,e,this.getRoomId()),this.setState({viewRoomOpts:e})}}var W=s("./src/stores/spaces/SpaceStore.ts"),$=s("./src/utils/localRoom/isLocalRoom.ts"),z=s("./src/utils/Timer.ts");class K{constructor(e){(0,n.A)(this,"typingStates",{}),this.context=e,this.reset()}reset(){this.typingStates={}}setSelfTyping(e,t,s){var n,o;if((0,$.F)(e))return;if(!d.A.getValue("sendTypingNotifications"))return;if(d.A.getValue("lowBandwidth"))return;if(t)return;let i=this.typingStates[e];(s||i)&&(null===(n=i)||void 0===n?void 0:n.isTyping)!==s&&(i||(i=this.typingStates[e]={isTyping:s,serverTimer:new z.A(3e4),userTimer:new z.A(1e4)}),i.isTyping=s,s&&(i.serverTimer.isRunning()?i.serverTimer.restart():i.serverTimer.restart().finished().then(()=>{const t=this.typingStates[e];t&&(t.isTyping=!1)}),i.userTimer.isRunning()?i.userTimer.restart():i.userTimer.restart().finished().then(()=>{this.setSelfTyping(e,t,!1)})),null===(o=this.context.client)||void 0===o||o.sendTyping(e,s,3e4))}}class J{constructor(e){if((0,n.A)(this,"head",null),(0,n.A)(this,"tail",null),(0,n.A)(this,"map",void 0),this.capacity=e,this.capacity<1)throw new Error("Cache capacity must be at least 1");this.map=new Map}has(e){try{return void 0!==this.getItem(e)}catch(e){return this.onError(e),!1}}get(e){try{var t;return null===(t=this.getItem(e))||void 0===t?void 0:t.value}catch(e){return void this.onError(e)}}set(e,t){try{this.safeSet(e,t)}catch(e){this.onError(e)}}delete(e){const t=this.map.get(e);if(t)try{this.removeItemFromList(t),this.map.delete(e)}catch(e){this.onError(e)}}clear(){this.map=new Map,this.head=null,this.tail=null}*values(){for(const e of this.map.values())yield e.value}safeSet(e,t){const s=this.getItem(e);if(s)return void(s.value=t);const n={key:e,value:t,next:null,prev:null};this.head&&(this.head.prev=n,n.next=this.head),this.setHeadTail(n),this.map.set(e,n),this.tail&&this.map.size>this.capacity&&this.delete(this.tail.key)}onError(e){f.vF.warn("LruCache error",e),this.clear()}getItem(e){const t=this.map.get(e);if(t)return t===this.head||(this.removeItemFromList(t),this.head&&(this.head.prev=t),t.prev=null,t.next=this.head,this.setHeadTail(t)),t}setHeadTail(e){null===e.prev&&(this.head=e),null===e.next&&(this.tail=e)}removeItemFromList(e){e===this.head&&(this.head=e.next),e===this.tail&&(this.tail=e.prev),e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev)}}const G=500;class q{constructor(e){(0,n.A)(this,"profiles",new J(G)),(0,n.A)(this,"profileLookupErrors",new J(G)),(0,n.A)(this,"knownProfiles",new J(G)),(0,n.A)(this,"onRoomMembershipEvent",(e,t)=>{const s=this.profiles.get(t.userId);!s||s.displayname===t.rawDisplayName&&s.avatar_url===t.getMxcAvatarUrl()||this.profiles.delete(t.userId);const n=this.knownProfiles.get(t.userId);!n||n.displayname===t.rawDisplayName&&n.avatar_url===t.getMxcAvatarUrl()||this.knownProfiles.delete(t.userId)}),this.client=e,e.on(_.RoomMemberEvent.Membership,this.onRoomMembershipEvent)}getProfile(e){return this.profiles.get(e)}async getOrFetchProfile(e,t){const s=this.profiles.get(e);return s||this.fetchProfile(e,t)}getProfileLookupError(e){return this.profileLookupErrors.get(e)}getOnlyKnownProfile(e){return this.knownProfiles.get(e)}async fetchProfile(e,t){const s=await this.fetchProfileFromApi(e,t);return this.profiles.set(e,s),s}async fetchOnlyKnownProfile(e){if(!this.knownProfiles.has(e)&&!this.isUserIdKnown(e))return;const t=await this.fetchProfileFromApi(e);return this.knownProfiles.set(e,t),t}flush(){this.profiles=new J(G),this.profileLookupErrors=new J(G),this.knownProfiles=new J(G)}async fetchProfileFromApi(e,t){this.profileLookupErrors.delete(e);try{var s;return null!==(s=await this.client.getProfileInfo(e))&&void 0!==s?s:null}catch(s){if(f.vF.warn(`Error retrieving profile for userId ${e}`,s),s instanceof _.MatrixError&&this.profileLookupErrors.set(e,s),null!=t&&t.shouldThrow)throw s}return null}isUserIdKnown(e){return this.client.getRooms().some(t=>!!t.getMember(e))}}var Y=s("./src/stores/widgets/WidgetLayoutStore.ts"),Z=s("./src/stores/widgets/WidgetPermissionStore.ts"),Q=s("./node_modules/oidc-client-ts/dist/umd/oidc-client-ts.js"),X=s("./src/utils/oidc/persistOidcSettings.ts"),ee=s("./src/PlatformPeg.ts");class te{constructor(e){(0,n.A)(this,"oidcClient",void 0),(0,n.A)(this,"initialisingOidcClientPromise",void 0),(0,n.A)(this,"authenticatedIssuer",void 0),(0,n.A)(this,"_accountManagementEndpoint",void 0),(0,n.A)(this,"readyPromise",void 0),this.matrixClient=e,this.readyPromise=this.init()}async init(){if(this.authenticatedIssuer=(0,X.HB)(),this.authenticatedIssuer)await this.getOidcClient();else try{const e=await this.matrixClient.getAuthMetadata();this.setAccountManagementEndpoint(e.account_management_uri,e.issuer)}catch(e){console.log("Auth issuer not found",e)}}get isUserAuthenticatedWithOidc(){return!!this.authenticatedIssuer}setAccountManagementEndpoint(e,t){const s=new URL(null!=e?e:t),n=(0,X.X5)();n&&s.searchParams.set("id_token_hint",n),this._accountManagementEndpoint=s.toString()}get accountManagementEndpoint(){return this._accountManagementEndpoint}async revokeTokens(e,t){const s=await this.getOidcClient();if(!s)throw new Error("No OIDC client");if((await Promise.all([this.tryRevokeToken(s,e,"access_token"),this.tryRevokeToken(s,t,"refresh_token")])).some(e=>!e))throw new Error("Failed to revoke tokens")}async tryRevokeToken(e,t,s){try{return!!t&&(await e.revokeToken(t,s),!0)}catch(e){return f.vF.error(`Failed to revoke ${s}`,e),!1}}async getOidcClient(){return this.oidcClient||this.initialisingOidcClientPromise||(this.initialisingOidcClientPromise=this.initOidcClient()),await this.initialisingOidcClientPromise,this.initialisingOidcClientPromise=void 0,this.oidcClient}async initOidcClient(){if(this.authenticatedIssuer)try{var e;const t=(0,X.rW)(),s=await(0,_.discoverAndValidateOIDCIssuerWellKnown)(this.authenticatedIssuer);this.setAccountManagementEndpoint(s.account_management_uri,s.issuer),this.oidcClient=new Q.OidcClient({authority:s.issuer,signingKeys:null!==(e=s.signingKeys)&&void 0!==e?e:void 0,redirect_uri:ee.A.get().getOidcCallbackUrl().href,client_id:t})}catch(e){f.vF.error("Failed to initialise OidcClientStore",e)}else f.vF.error("Cannot initialise OIDC client without issuer.")}}var se,ne=s("./src/stores/WidgetStore.ts"),oe=s("./node_modules/lodash/lodash.js");class ie extends y.EventEmitter{constructor(...e){super(...e),(0,n.A)(this,"_isResizing",!1),(0,n.A)(this,"throttledMiddlePanel",(0,oe.throttle)(()=>this.emit("middlePanelResized"),200))}get isResizing(){return this._isResizing}startResizing(){this._isResizing=!0,this.emit("isResizing",!0)}stopResizing(){this._isResizing=!1,this.emit("isResizing",!1)}noisyMiddlePanel(){this.emit("middlePanelResizedNoisy")}updateMiddlePanel(){this.throttledMiddlePanel(),this.noisyMiddlePanel()}notifyLeftHandleResized(){this.updateMiddlePanel()}notifyRightHandleResized(){this.updateMiddlePanel()}notifyTimelineHeightChanged(){this.updateMiddlePanel()}notifyWindowResized(){this.updateMiddlePanel()}}const re=(0,o.createContext)(null);re.displayName="SDKContext";class ae{constructor(){(0,n.A)(this,"client",void 0),(0,n.A)(this,"_WidgetPermissionStore",void 0),(0,n.A)(this,"_MemberListStore",void 0),(0,n.A)(this,"_RightPanelStore",void 0),(0,n.A)(this,"_RoomNotificationStateStore",void 0),(0,n.A)(this,"_RoomViewStore",void 0),(0,n.A)(this,"_WidgetLayoutStore",void 0),(0,n.A)(this,"_WidgetStore",void 0),(0,n.A)(this,"_PosthogAnalytics",void 0),(0,n.A)(this,"_SlidingSyncManager",void 0),(0,n.A)(this,"_SpaceStore",void 0),(0,n.A)(this,"_LegacyCallHandler",void 0),(0,n.A)(this,"_TypingStore",void 0),(0,n.A)(this,"_UserProfilesStore",void 0),(0,n.A)(this,"_OidcClientStore",void 0),(0,n.A)(this,"_ResizeNotifier",void 0)}constructEagerStores(){this._RoomViewStore=this.roomViewStore}get legacyCallHandler(){return this._LegacyCallHandler||(this._LegacyCallHandler=r.Ay.instance),this._LegacyCallHandler}get rightPanelStore(){return this._RightPanelStore||(this._RightPanelStore=g.A.instance),this._RightPanelStore}get roomNotificationStateStore(){return this._RoomNotificationStateStore||(this._RoomNotificationStateStore=p.n.instance),this._RoomNotificationStateStore}get roomViewStore(){return this._RoomViewStore||(this._RoomViewStore=new H(i.A,this)),this._RoomViewStore}get widgetLayoutStore(){return this._WidgetLayoutStore||(this._WidgetLayoutStore=Y.aK.instance),this._WidgetLayoutStore}get widgetPermissionStore(){return this._WidgetPermissionStore||(this._WidgetPermissionStore=new Z.r(this)),this._WidgetPermissionStore}get widgetStore(){return this._WidgetStore||(this._WidgetStore=ne.Ay.instance),this._WidgetStore}get posthogAnalytics(){return this._PosthogAnalytics||(this._PosthogAnalytics=a.Vo.instance),this._PosthogAnalytics}get memberListStore(){return this._MemberListStore||(this._MemberListStore=new h(this)),this._MemberListStore}get slidingSyncManager(){return this._SlidingSyncManager||(this._SlidingSyncManager=l.f.instance),this._SlidingSyncManager}get spaceStore(){return this._SpaceStore||(this._SpaceStore=W.Ay.instance),this._SpaceStore}get typingStore(){return this._TypingStore||(this._TypingStore=new K(this),window.mxTypingStore=this._TypingStore),this._TypingStore}get userProfilesStore(){if(!this.client)throw new Error("Unable to create UserProfilesStore without a client");return this._UserProfilesStore||(this._UserProfilesStore=new q(this.client)),this._UserProfilesStore}get oidcClientStore(){if(!this.client)throw new Error("Unable to create OidcClientStore without a client");return this._OidcClientStore||(this._OidcClientStore=new te(this.client)),this._OidcClientStore}get resizeNotifier(){return this._ResizeNotifier||(this._ResizeNotifier=new ie),this._ResizeNotifier}onLoggedOut(){this._UserProfilesStore=void 0}}se=ae,(0,n.A)(ae,"instance",new se)},"./src/contexts/ScopedRoomContext.tsx":(e,t,s)=>{"use strict";s.d(t,{ME:()=>p,yw:()=>h});var n=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/react/index.js"),r=s("./src/utils/objects.ts"),a=s("./src/hooks/useEventEmitter.ts"),l=s("./src/contexts/RoomContext.ts");const c=["children"];let d=function(e){return e.Update="update",e}({});class m extends o.TypedEventEmitter{constructor(e){super(),this.state=e}setState(e){var t;const s=(0,r.Eg)(null!==(t=this.state)&&void 0!==t?t:{},e);this.state=e,this.emit(d.Update,s)}}const u=(0,i.createContext)(void 0),h=(0,i.memo)(e=>{let{children:t}=e,s=(0,n.A)(e,c);const o=(0,i.useMemo)(()=>new m(s),[]);return(0,i.useEffect)(()=>{o.setState(s)},[o,s]),i.createElement(l.Ay.Provider,{value:s},i.createElement(u.Provider,{value:o},t))});function p(...e){var t;const s=(0,i.useContext)(u),[n,o]=(0,i.useState)(null!==(t=null==s?void 0:s.state)&&void 0!==t?t:{});return(0,a.YK)(s,d.Update,t=>{null!=s&&s.state&&t.some(t=>e.includes(t))&&o(s.state)}),n}},"./src/createRoom.ts":(e,t,s)=>{"use strict";s.d(t,{Ay:()=>k,EP:()=>P,e:()=>T,qX:()=>I});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./src/Modal.tsx"),a=s("./src/languageHandler.tsx"),l=s("./src/dispatcher/dispatcher.ts"),c=s("./src/Rooms.ts"),d=s("./src/UserAddress.ts"),m=s("./src/stores/spaces/SpaceStore.ts"),u=s("./src/utils/space.tsx"),h=s("./src/models/Call.ts"),p=s("./src/dispatcher/actions.ts"),g=s("./src/components/views/dialogs/ErrorDialog.tsx"),v=s("./src/components/views/elements/Spinner.tsx"),_=s("./src/utils/dm/findDMForUser.ts"),f=s("./src/utils/rooms.ts"),y=s("./src/utils/crypto/shouldForceDisableEncryption.ts"),b=s("./src/utils/membership.ts"),E=s("./src/utils/PreferredRoomVersions.ts"),w=s("./src/settings/SettingsStore.ts"),x=s("./src/utils/crypto/index.ts"),A=s("./src/call-types.ts");function S(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function C(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?S(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):S(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const R={[o.EventType.RoomName]:50,[o.EventType.RoomAvatar]:50,[o.EventType.RoomPowerLevels]:100,[o.EventType.RoomHistoryVisibility]:100,[o.EventType.RoomCanonicalAlias]:50,[o.EventType.RoomTombstone]:100,[o.EventType.RoomServerAcl]:100,[o.EventType.RoomEncryption]:100};async function k(e,t){if(void 0===(t=t||{}).spinner&&(t.spinner=!0),void 0===t.guestAccess&&(t.guestAccess=!0),void 0===t.encryption&&(t.encryption=!1),e.isGuest())return l.A.dispatch({action:"require_registration"}),null;const s=t.dmUserId?o.Preset.TrustedPrivateChat:o.Preset.PrivateChat,n=t.createOpts||{};if(n.preset=n.preset||s,n.visibility=n.visibility||o.Visibility.Private,t.dmUserId&&t.dmUserId!==e.getUserId()&&void 0===n.invite)switch((0,d.Z)(t.dmUserId)){case"mx-user-id":n.invite=[t.dmUserId];break;case"email":{const s=e.getIdentityServerUrl(!0);if(!s)throw new a.P7("cannot_invite_without_identity_server");n.invite_3pid=[{id_server:s,medium:"email",address:t.dmUserId}];break}}if(t.dmUserId&&void 0===n.is_direct&&(n.is_direct=!0),t.roomType?(n.creation_content=C(C({},n.creation_content),{},{[o.RoomCreateTypeField]:t.roomType}),t.roomType===o.RoomType.ElementVideo?n.power_level_content_override={events:C(C({},R),{},{[h.am.MEMBER_EVENT_TYPE]:0,"im.vector.modular.widgets":200}),users:{[e.getSafeUserId()]:200}}:t.roomType===o.RoomType.UnstableCall&&(n.power_level_content_override={events:C(C({},R),{},{[A.Vj.name]:0,[A.Fm.name]:200}),users:{[e.getSafeUserId()]:200}})):w.A.getValue("feature_group_calls")&&(n.power_level_content_override={events:C(C({},R),{},{[A.Vj.name]:0,[A.Fm.name]:100})}),void 0===t.andView&&(t.andView=!0),n.initial_state=n.initial_state||[],t.guestAccess&&n.initial_state.push({type:"m.room.guest_access",state_key:"",content:{guest_access:"can_join"}}),t.encryption&&n.initial_state.push({type:"m.room.encryption",state_key:"",content:{algorithm:x.Q}}),t.joinRule===o.JoinRule.Knock&&(n.room_version=E.W.KnockRooms),t.parentSpace&&(n.initial_state.push((0,u.Dz)(t.parentSpace,!0)),t.joinRule===o.JoinRule.Restricted&&(n.room_version=E.W.RestrictedRooms,n.initial_state.push({type:o.EventType.RoomJoinRules,content:{join_rule:o.JoinRule.Restricted,allow:[{type:o.RestrictedAllowType.RoomMembership,room_id:t.parentSpace.roomId}]}}))),t.joinRule&&t.joinRule!==o.JoinRule.Restricted&&n.initial_state.push({type:o.EventType.RoomJoinRules,content:{join_rule:t.joinRule}}),t.avatar){let s=t.avatar;t.avatar instanceof File&&({content_uri:s}=await e.uploadContent(t.avatar)),n.initial_state.push({type:o.EventType.RoomAvatar,content:{url:s}})}let _,f,y;return t.historyVisibility&&n.initial_state.push({type:o.EventType.RoomHistoryVisibility,content:{history_visibility:t.historyVisibility}}),t.spinner&&(_=r.Ay.createDialog(v.A,void 0,"mx_Dialog_spinner")),e.createRoom(n).catch(function(t){return 403===t.httpStatus&&"M_UNKNOWN"===t.errcode&&"Not allowed to publish room"===t.data.error?(i.vF.warn("Failed to publish room, try again without publishing it"),n.visibility=o.Visibility.Private,e.createRoom(n)):Promise.reject(t)}).finally(function(){_&&_.close()}).then(async s=>{f=s.room_id,y=new Promise(t=>{const s=e.getRoom(f);if(s)t(s);else{const s=n=>{n.roomId===f&&(t(n),e.off(o.ClientEvent.Room,s))};e.on(o.ClientEvent.Room,s)}}),t.dmUserId&&await c.FZ(e,f,t.dmUserId)}).then(()=>{if(t.parentSpace)return m.Ay.instance.addRoomToSpace(t.parentSpace,f,[e.getDomain()],t.suggested)}).then(async()=>{t.roomType===o.RoomType.ElementVideo?(await h.am.create(await y),await e.setPowerLevel(f,e.getUserId(),100)):t.roomType===o.RoomType.UnstableCall&&(h.Ho.create(await y),await e.setPowerLevel(f,e.getUserId(),100))}).then(function(){return t.andView&&l.A.dispatch({action:p.r.ViewRoom,room_id:f,should_peek:!1,joining:!0,justCreatedOpts:t,metricsTrigger:"Created"}),f},function(e){if(t.inlineErrors)throw e;l.A.dispatch({action:p.r.JoinRoomError,roomId:f}),i.vF.error("Failed to create room "+f+" "+e);let s=(0,a._t)("create_room|generic_error");return"M_UNSUPPORTED_ROOM_VERSION"===e.errcode&&(s=(0,a._t)("create_room|unsupported_version")),r.Ay.createDialog(g.A,{title:(0,a._t)("create_room|error_title"),description:s}),null})}async function I(e,t){try{var s;const n=await(null===(s=e.getCrypto())||void 0===s?void 0:s.getUserDeviceInfo(t,!0));if(!n)return!1;for(const e of n.values())if(0===e.size)return!1}catch(e){return i.vF.error("Error determining if it's possible to encrypt to all users: ",e),!1}return!0}async function P(e,t){const s=(0,_.D)(e,t);let n;if(s)n=s.roomId;else{let s;if((0,f.u)(e)&&(s=await I(e,[t])),n=await k(e,{encryption:s,dmUserId:t,spinner:!1,andView:!1}),!n)return null;await(0,b.vB)(e,n,t)}return n}async function T(e,t){const s=await e.doesServerForceEncryptionForPreset(t),n=(0,y.I)(e);return s&&n&&console.warn(`Conflicting e2ee settings: server config and .well-known configuration disagree. Using server forced encryption setting for chat type ${t}`),s?{allowChange:!1,forcedValue:!0}:n?{allowChange:!1,forcedValue:!1}:{allowChange:!0}}},"./src/customisations/Alias.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>n});const n={}},"./src/customisations/ChatExport.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>n});const n={getForceChatExportParameters:()=>({})}},"./src/customisations/ComponentVisibility.ts":(e,t,s)=>{"use strict";s.d(t,{N:()=>n});const n={}},"./src/customisations/Directory.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>n});const n={}},"./src/customisations/Lifecycle.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>n});const n={}},"./src/customisations/Media.ts":(e,t,s)=>{"use strict";s.r(t),s.d(t,{mediaFromContent:()=>l,mediaFromMxc:()=>c});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./src/MatrixClientPeg.ts");var r=s("./src/languageHandler.tsx");class a{constructor(e,t){if((0,n.A)(this,"client",void 0),this.prepared=e,this.client=null!=t?t:i.J.safeGet(),!this.client)throw new Error("No possible MatrixClient for media resolution. Please provide one or log in.")}get isEncrypted(){return!!this.prepared.file}get srcMxc(){return this.prepared.mxc}get thumbnailMxc(){var e;return null===(e=this.prepared.thumbnail)||void 0===e?void 0:e.mxc}get hasThumbnail(){return!!this.thumbnailMxc}get srcHttp(){return this.client.mxcUrlToHttp(this.srcMxc,void 0,void 0,void 0,!1,!0)||null}get thumbnailHttp(){return this.hasThumbnail?this.client.mxcUrlToHttp(this.thumbnailMxc,void 0,void 0,void 0,!1,!0):null}getThumbnailHttp(e,t,s="scale"){return this.hasThumbnail?(e=Math.floor(e*window.devicePixelRatio),t=Math.floor(t*window.devicePixelRatio),this.client.mxcUrlToHttp(this.thumbnailMxc,e,t,s,!1,!0)):null}getThumbnailOfSourceHttp(e,t,s="scale"){return e=Math.floor(e*window.devicePixelRatio),t=Math.floor(t*window.devicePixelRatio),this.client.mxcUrlToHttp(this.srcMxc,e,t,s,!1,!0)}getSquareThumbnailHttp(e){return e=Math.floor(e*window.devicePixelRatio),this.hasThumbnail?this.getThumbnailHttp(e,e,"crop"):this.getThumbnailOfSourceHttp(e,e,"crop")}async downloadSource(){const e=this.srcHttp;if(!e)throw new r.P7("error|download_media");const t=await fetch(e);if(!t.ok)throw(0,o.parseErrorResponse)(t,await t.text());return t}}const l=(e,t)=>new a(function(e){var t,s,n;let o;if("object"==typeof(null==e?void 0:e.info)&&"thumbnail_url"in e.info&&e.info.thumbnail_url?o={mxc:e.info.thumbnail_url,file:e.info.thumbnail_file}:"object"==typeof(null==e?void 0:e.info)&&"thumbnail_file"in e.info&&"object"==typeof(null==e||null===(t=e.info)||void 0===t?void 0:t.thumbnail_file)&&null!=e&&null!==(s=e.info)&&void 0!==s&&null!==(s=s.thumbnail_file)&&void 0!==s&&s.url&&(o={mxc:e.info.thumbnail_file.url,file:e.info.thumbnail_file}),null!=e&&e.url)return{thumbnail:o,mxc:e.url,file:e.file};if(null!=e&&null!==(n=e.file)&&void 0!==n&&n.url)return{thumbnail:o,mxc:e.file.url,file:e.file};throw new Error("Invalid file provided: cannot determine MXC URI. Has it been redacted?")}(e),t),c=(e,t)=>l({url:e},t)},"./src/customisations/RoomList.ts":(e,t,s)=>{"use strict";s.d(t,{B:()=>n});const n={}},"./src/customisations/UserIdentifier.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>n});const n={getDisplayUserIdentifier:function(e,{roomId:t,withDisplayName:s}){return e}}},"./src/customisations/WidgetPermissions.ts":(e,t,s)=>{"use strict";s.d(t,{l:()=>n});const n={}},"./src/customisations/WidgetVariables.ts":(e,t,s)=>{"use strict";s.d(t,{c:()=>n});const n={}},"./src/customisations/helpers/UIComponents.ts":(e,t,s)=>{"use strict";s.d(t,{g:()=>o});var n=s("./src/customisations/ComponentVisibility.ts");function o(e){var t,s;return null===(t=null===(s=n.N.shouldShowComponent)||void 0===s?void 0:s.call(n.N,e))||void 0===t||t}},"./src/dispatcher/actions.ts":(e,t,s)=>{"use strict";s.d(t,{r:()=>n});let n=function(e){return e.ViewUser="view_user",e.Share="share",e.ViewUserSettings="view_user_settings",e.ViewUserDeviceSettings="view_user_device_settings",e.ViewRoomDirectory="view_room_directory",e.ViewRoomError="view_room_error",e.ViewHomePage="view_home_page",e.RecheckTheme="recheck_theme",e.CheckUpdates="check_updates",e.FocusSendMessageComposer="focus_send_message_composer",e.ClearAndFocusSendMessageComposer="clear_focus_send_message_composer",e.FocusEditMessageComposer="focus_edit_message_composer",e.FocusAComposer="focus_a_composer",e.FocusThreadsPanel="focus_threads_panel",e.ToggleUserMenu="toggle_user_menu",e.ToggleSpacePanel="toggle_space_panel",e.MigrateBaseFontSize="migrate_base_font_size",e.UpdateFontSizeDelta="update_font_size_delta",e.UpdateSystemFont="update_system_font",e.ViewRoom="view_room",e.ViewThread="view_thread",e.ViewRoomDelta="view_room_delta",e.OpenDialPad="open_dial_pad",e.UploadStarted="upload_started",e.UploadProgress="upload_progress",e.UploadFinished="upload_finished",e.UploadFailed="upload_failed",e.UploadCanceled="upload_canceled",e.JoinRoom="join_room",e.JoinRoomReady="join_room_ready",e.JoinRoomError="join_room_error",e.BulkRedactStart="bulk_redact_start",e.BulkRedactEnd="bulk_redact_end",e.ComposerInsert="composer_insert",e.SwitchSpace="switch_space",e.UpdateSpaceHierarchy="update_space_hierarchy",e.SettingUpdated="setting_updated",e.EditEvent="edit_event",e.PseudonymousAnalyticsAccept="pseudonymous_analytics_accept",e.PseudonymousAnalyticsReject="pseudonymous_analytics_reject",e.ReportKeyBackupNotEnabled="report_key_backup_not_enabled",e.AfterLeaveRoom="after_leave_room",e.AfterForgetRoom="after_forget_room",e.DoAfterSyncPrepared="do_after_sync_prepared",e.ViewStartChatOrReuse="view_start_chat_or_reuse",e.ActiveRoomChanged="active_room_changed",e.OpenForwardDialog="open_forward_dialog",e.OpenReportEventDialog="open_report_event_dialog",e.TriggerLogout="trigger_logout",e.OpenSpacePreferences="open_space_preferences",e.OpenSpaceSettings="open_space_settings",e.OpenInviteDialog="open_invite_dialog",e.OpenAddToExistingSpaceDialog="open_add_to_existing_space_dialog",e.DumpDebugLogs="dump_debug_logs",e.ShowRoomTopic="show_room_topic",e.OnLoggedOut="on_logged_out",e.OnLoggedIn="on_logged_in",e.OverwriteLogin="overwrite_login",e.ShowThread="show_thread",e.PromptAskToJoin="prompt_ask_to_join",e.SubmitAskToJoin="submit_ask_to_join",e.CancelAskToJoin="cancel_ask_to_join",e.OpenSpotlight="open_spotlight",e.RoomLoaded="room_loaded",e.View3pidInvite="view_3pid_invite",e.FocusMessageSearch="focus_search",e.CreateChat="view_create_chat",e.CreateRoom="view_create_room",e}({})},"./src/dispatcher/dispatcher.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>a});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./src/dispatcher/payloads.ts");function i(e,t){if(!e)throw new Error(t)}const r=new class{constructor(){(0,n.A)(this,"callbacks",new Map),(0,n.A)(this,"isHandled",new Map),(0,n.A)(this,"isPending",new Map),(0,n.A)(this,"pendingPayload",void 0),(0,n.A)(this,"lastId",1),(0,n.A)(this,"_dispatch",e=>{i(!this.isDispatching(),"Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch."),this.startDispatching(e);try{for(const[e]of this.callbacks)this.isPending.get(e)||this.invokeCallback(e)}finally{this.stopDispatching()}})}register(e){const t="ID_"+this.lastId++;return this.callbacks.set(t,e),this.isDispatching()&&(this.isPending.set(t,!0),this.isHandled.set(t,!0)),t}unregister(e){e&&(i(this.callbacks.has(e),`Dispatcher.unregister(...): '${e}' does not map to a registered callback.`),this.callbacks.delete(e))}waitFor(e){i(this.isDispatching(),"Dispatcher.waitFor(...): Must be invoked while dispatching.");for(const t of e)this.isPending.get(t)?i(this.isHandled.get(t),`Dispatcher.waitFor(...): Circular dependency detected while waiting for '${t}'.`):(i(this.callbacks.get(t),`Dispatcher.waitFor(...): '${t}' does not map to a registered callback.`),this.invokeCallback(t))}isDispatching(){return!!this.pendingPayload}invokeCallback(e){this.isPending.set(e,!0),this.callbacks.get(e)(this.pendingPayload),this.isHandled.set(e,!0)}startDispatching(e){for(const[e]of this.callbacks)this.isPending.set(e,!1),this.isHandled.set(e,!1);this.pendingPayload=e}stopDispatching(){this.pendingPayload=void 0}dispatch(e,t=!1){e instanceof o.n?e.fn(e=>{this.dispatch(e,t)}):t?this._dispatch(e):window.setTimeout(this._dispatch,0,e)}fire(e,t=!1){this.dispatch({action:e},t)}};window.mxDispatcher||(window.mxDispatcher=r);const a=r},"./src/dispatcher/payloads.ts":(e,t,s)=>{"use strict";s.d(t,{n:()=>o});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");class o{get action(){return"NOT_USED"}constructor(e){(0,n.A)(this,"fn",void 0),this.fn=e}}},"./src/dispatcher/payloads/ComposerInsertPayload.ts":(e,t,s)=>{"use strict";s.d(t,{D:()=>n});let n=function(e){return e.Send="send",e.Edit="edit",e}({})},"./src/editor/commands.tsx":(e,t,s)=>{"use strict";s.d(t,{Dr:()=>u,d8:()=>p,m8:()=>h,nU:()=>m});var n=s("./node_modules/react/index.js"),o=s("./node_modules/matrix-js-sdk/src/logger.ts"),i=s("./src/editor/parts.ts"),r=s("./src/SlashCommands.tsx"),a=s("./src/languageHandler.tsx"),l=s("./src/Modal.tsx"),c=s("./src/components/views/dialogs/ErrorDialog.tsx"),d=s("./src/components/views/dialogs/QuestionDialog.tsx");function m(e){const t=e.parts[0];if(t){if(t.type===i.ZU.Command&&t.text.startsWith("/")&&!t.text.startsWith("//"))return!0;if(t.text.startsWith("/")&&!t.text.startsWith("//")&&(t.type===i.ZU.Plain||t.type===i.ZU.PillCandidate))return!0}return!1}function u(e){const t=e.parts.reduce((e,t)=>t.type===i.ZU.UserPill||t.type===i.ZU.RoomPill?e+t.resourceId:e+t.text,""),{cmd:s,args:n}=(0,r.OE)(t);return[s,n,t]}async function h(e,t,s,n,i){const d=t.run(e,n,i,s);let m=null,u=d.error;if(d.promise)try{var h;if(t.category===r.ge.messages||t.category===r.ge.effects)m=null!==(h=await d.promise)&&void 0!==h?h:null;else await d.promise}catch(e){u=e}if(u){o.vF.error(`Command failure: ${u}`);const e=!!d.promise?(0,a.AO)("slash_command|server_error"):(0,a.AO)("slash_command|command_error");let t;return t="string"==typeof u?u:u instanceof a.P7?u.translatedMessage:u.message?u.message:(0,a._t)("slash_command|server_error_detail"),l.Ay.createDialog(c.A,{title:(0,a._t)(e),description:t}),[null,!1]}return o.vF.log("Command success."),[m,!0]}async function p(e){const{finished:t}=l.Ay.createDialog(d.A,{title:(0,a._t)("slash_command|unknown_command"),description:n.createElement("div",null,n.createElement("p",null,(0,a._t)("slash_command|unknown_command_detail",{commandText:e})),n.createElement("p",null,(0,a._t)("slash_command|unknown_command_help",{},{code:e=>n.createElement("code",null,e)})),n.createElement("p",null,(0,a._t)("slash_command|unknown_command_hint",{},{code:e=>n.createElement("code",null,e)}))),button:(0,a._t)("slash_command|unknown_command_button")}),[s]=await t;return s||!1}},"./src/editor/deserialize.ts":(e,t,s)=>{"use strict";s.d(t,{OZ:()=>f,SL:()=>u,wj:()=>y});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./src/HtmlUtils.tsx"),i=s("./src/utils/permalinks/Permalinks.ts"),r=s("./src/editor/parts.ts"),a=s("./src/SdkConfig.ts"),l=s("./src/utils/colour.ts"),c=s("./src/utils/Reply.ts");const d=["UL","OL","LI"];function m(e){return e.replace(/[\\*_[\]`<]|^>/g,e=>`\\${e}`)}function u(e){let t=0,s=0;for(const n of e)"`"===n?s++:(t=Math.max(t,s),s=0);return Math.max(t,s)}function h(e){var t;return d.includes((null===(t=e.parentNode)||void 0===t?void 0:t.nodeName)||"")}function p(e,t,s){const n="@room",o=[];return e.split(n).forEach((e,i,r)=>{e.length&&o.push(...t.plainWithEmoji(s.shouldEscape?m(e):e));i===r.length-1||o.push(t.atRoomPill(n))}),o}function g(e,t,s){e.unshift(s.plain(t));for(let n=0;n<e.length;n++)e[n].type===r.ZU.Newline&&(e.splice(n+1,0,s.plain(t)),n+=1)}function v(e,t,s,n){let i;return Array.from(e.childNodes).flatMap(e=>{const r=_(e,t,s,n);return r.length&&i&&((0,o.aA)(i)||(0,o.aA)(e))&&(h(e)?r.unshift(t.newline()):r.unshift(t.newline(),t.newline())),r.length&&(i=e),r})}function _(e,t,s,n){var o;if(function(e){return e.nodeType===Node.TEXT_NODE?"\n"===e.nodeValue:e.nodeType!==Node.ELEMENT_NODE||"MX-REPLY"===e.nodeName}(e))return[];switch(e.nodeType){case Node.TEXT_NODE:return p(e.nodeValue||"",t,s);case Node.ELEMENT_NODE:switch(e.nodeName){case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":return function(e,t,s){const n=parseInt(e.nodeName.slice(1),10);return[t.plain("#".repeat(n)+" "),...v(e,t,s)]}(e,t,s);case"A":return function(e,t,s){const{href:n}=e,o=(0,i.h3)(n);switch(null==o?void 0:o[0]){case"@":return[t.userPill(e.textContent||"",o)];case"#":return[t.roomPill(o)]}const r=Array.from(e.childNodes);return n===e.textContent&&r.every(e=>e.nodeType===Node.TEXT_NODE)?p(e.textContent,t,s):[t.plain("["),...v(e,t,s),t.plain(`](${n})`)]}(e,t,s);case"IMG":return function(e,t){const{alt:s,src:n}=e;return t.plainWithEmoji(`![${m(s)}](${n})`)}(e,t);case"BR":return[t.newline()];case"HR":return[t.plain("---")];case"EM":return[t.plain("_"),...v(e,t,s),t.plain("_")];case"STRONG":return[t.plain("**"),...v(e,t,s),t.plain("**")];case"DEL":return[t.plain("<del>"),...v(e,t,s),t.plain("</del>")];case"S":return[t.plain("<s>"),...v(e,t,s),t.plain("</s>")];case"SUB":return[t.plain("<sub>"),...v(e,t,s),t.plain("</sub>")];case"SUP":return[t.plain("<sup>"),...v(e,t,s),t.plain("</sup>")];case"U":return[t.plain("<u>"),...v(e,t,s),t.plain("</u>")];case"PRE":return function(e,t){var s;if(!e.textContent)return[];let n="";if("CODE"===(null===(s=e.firstChild)||void 0===s?void 0:s.nodeName))for(const t of e.firstChild.classList)if(t.startsWith("language-")&&!t.startsWith("language-_")){n=t.slice(9);break}const o=e.textContent.replace(/\n$/,""),i="`".repeat(Math.max(3,u(o)+1)),r=[...t.plainWithEmoji(i+n),t.newline()];return o.split("\n").forEach(e=>{r.push(...t.plainWithEmoji(e)),r.push(t.newline())}),r.push(t.plain(i)),r}(e,t);case"CODE":{const s="`".repeat(u(e.textContent||"")+1);return t.plainWithEmoji(`${s}${e.textContent}${s}`)}case"BLOCKQUOTE":{const n=v(e,t,s);return g(n,"> ",t),n}case"LI":return null!==(o=null==n?void 0:n(e))&&void 0!==o?o:v(e,t,s);case"UL":{const n=v(e,t,s,e=>[t.plain("- "),...v(e,t,s)]);return h(e)&&g(n," ",t),n}case"OL":{var r;let n=null!==(r=e.start)&&void 0!==r?r:1;const o=v(e,t,s,e=>{const o=[t.plain(`${n}. `),...v(e,t,s)];return n++,o});return h(e)&&g(o," ",t),o}case"DIV":case"SPAN":if(e.hasAttribute("data-mx-maths")){var l,c,d,_,f,y,b,E;const s=a.Ay.get().latex_maths_delims,n="SPAN"===e.nodeName?null!==(l=null==s||null===(c=s.inline)||void 0===c?void 0:c.left)&&void 0!==l?l:"\\(":null!==(d=null==s||null===(_=s.display)||void 0===_?void 0:_.left)&&void 0!==d?d:"\\[",o="SPAN"===e.nodeName?null!==(f=null==s||null===(y=s.inline)||void 0===y?void 0:y.right)&&void 0!==f?f:"\\)":null!==(b=null==s||null===(E=s.display)||void 0===E?void 0:E.right)&&void 0!==b?b:"\\]",i=e.getAttribute("data-mx-maths");return t.plainWithEmoji(`${n}${i}${o}`)}if(e.hasAttribute("data-mx-spoiler"))return[t.plain("/spoiler "),...v(e,t,s)]}}return v(e,t,s)}function f(e,t,s){const n=e.split(/\r\n|\r|\n/g);return n.reduce((e,o,i)=>{s.isQuotedMessage&&e.push(t.plain("> ")),e.push(...p(o,t,s));return i===n.length-1||e.push(t.newline()),e},[])}function y(e,t,s={shouldEscape:!0}){const o=e.getContent();let i;const r=o.msgtype===n.MsgType.Emote;let a=!1;if("org.matrix.custom.html"===o.format)i=function(e,t,s){const n=_((new DOMParser).parseFromString(e,"text/html").body,t,s);return s.isQuotedMessage&&g(n,"> ",t),n}(o.formatted_body||"",t,s),o.body&&o.formatted_body&&(0,l.a)(o.body)===o.formatted_body&&(a=!0);else{let n=o.body||"";e.replyEventId&&(n=(0,c.fJ)(n)),i=f(n,t,s)}return r&&a?i.unshift(t.plain("/rainbowme ")):a?i.unshift(t.plain("/rainbow ")):r&&i.unshift(t.plain("/me ")),i}},"./src/editor/dom.ts":(e,t,s)=>{"use strict";s.d(t,{Bh:()=>a,xo:()=>i});var n=s("./src/editor/render.ts"),o=s("./src/editor/offset.ts");function i(e,t){const{offset:s,text:n}=r(e,t.focusNode,t.focusOffset);return{caret:s,text:n}}function r(e,t,s){const{node:i,characterOffset:r}=function(e,t){for(;e&&e.nodeType===Node.ELEMENT_NODE;){const o=e.childNodes.length;if(!o)break;var s,n;t>=o?t=(null===(s=e=e.lastChild)||void 0===s?void 0:s.nodeType)===Node.TEXT_NODE?(null===(n=e.textContent)||void 0===n?void 0:n.length)||0:Number.MAX_SAFE_INTEGER:(e=e.childNodes[t],t=0)}return{node:e,characterOffset:t}}(t,s),{text:a,offsetToNode:l}=function(e,t){let s=0,o=!1,i="";function r(e){o||e===t&&(o=!0),e instanceof HTMLElement&&"BR"===e.tagName&&e.nextSibling&&(o||(s+=1),i+="\n");const r=e.nodeType===Node.TEXT_NODE&&function(e){const t=e.nodeValue;if(!t)return"";if((0,n.eK)(e.parentElement))return 1!==t.length?t.replace(n.UW,""):"";return t}(e);return r&&(o||(s+=r.length),i+=r),!0}function a(e){var t;e instanceof HTMLElement&&"DIV"===e.tagName&&"DIV"===(null===(t=e.nextSibling)||void 0===t?void 0:t.tagName)&&(i+="\n",o||(s+=1))}return function(e,t,s){let n=e.firstChild;for(;n&&n!==e;)if(t(n)&&n.firstChild)n=n.firstChild;else if(n.nextSibling)n=n.nextSibling;else{for(;n&&!n.nextSibling&&n!==e;)n=n.parentElement,n&&n!==e&&s(n);n&&n!==e&&(n=n.nextSibling)}}(e,r,a),{text:i,offsetToNode:s}}(e,i),c=function(e,t,s){var i;if(!e)return new o.A(0,!1);let r=s===(null===(i=e.textContent)||void 0===i?void 0:i.length);if(e.nodeType===Node.TEXT_NODE&&(0,n.eK)(e.parentElement)){const t=(e.nodeValue||"").indexOf(n.UW);-1!==t&&t<s&&(s-=1),r=!0}return new o.A(t+s,r)}(i,l,r);return{offset:c,text:a}}function a(e,t,s){const n=r(e,s.focusNode,s.focusOffset).offset,o=r(e,s.anchorNode,s.anchorOffset).offset,i=n.asPosition(t),a=o.asPosition(t);return t.startRange(i,a)}},"./src/editor/model.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>l});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");function o(e,t){const s=Math.min(e.length,t.length);for(let n=0;n<s;++n)if(e[n]!==t[n])return n;return s}function i(e,t,s){const n=s-(t.length-e.length);return function(e,t){const s=Math.min(e.length,t.length),n=e.slice(0,s)===t.slice(0,s);if(n&&e.length>t.length)return{removed:e.slice(s),at:s};if(n&&e.length<t.length)return{added:t.slice(s),at:s};{const s=o(e,t);return{removed:e.slice(s),added:t.slice(s),at:s}}}(e.substring(0,n),t.substring(0,s))}var r=s("./src/editor/position.ts"),a=s("./src/editor/range.ts");class l{constructor(e,t,s=null){(0,n.A)(this,"_parts",void 0),(0,n.A)(this,"_partCreator",void 0),(0,n.A)(this,"activePartIdx",null),(0,n.A)(this,"_autoComplete",null),(0,n.A)(this,"autoCompletePartIdx",null),(0,n.A)(this,"autoCompletePartCount",0),(0,n.A)(this,"transformCallback",null),(0,n.A)(this,"onAutoComplete",({replaceParts:e,close:t,range:s})=>{var n;let o;if(e){var i,a;const t=this.autoCompletePartIdx||0;this.replaceRange(new r.A(t,null!==(i=null==s?void 0:s.start)&&void 0!==i?i:0),new r.A(t+this.autoCompletePartCount-1,null!==(a=null==s?void 0:s.end)&&void 0!==a?a:this.parts[t+this.autoCompletePartCount-1].text.length),e),this.autoCompletePartCount=e.length;const n=e[e.length-1],l=this.parts.indexOf(n);o=new r.A(l,n.text.length)}t&&(this._autoComplete=null,this.autoCompletePartIdx=null,this.autoCompletePartCount=0),null===(n=this.updateCallback)||void 0===n||n.call(this,o)}),this.updateCallback=s,this._parts=e,this._partCreator=t,this.transformCallback=null}setTransformCallback(e){this.transformCallback=e}setUpdateCallback(e){this.updateCallback=e}get partCreator(){return this._partCreator}get isEmpty(){return 0===this._parts.reduce((e,t)=>e+t.text.length,0)}clone(){const e=this.parts.map(e=>this.partCreator.deserializePart(e.serialize())).filter(e=>Boolean(e));return new l(e,this._partCreator,this.updateCallback)}insertPart(e,t){this._parts.splice(e,0,t),null!==this.activePartIdx&&this.activePartIdx>=e&&++this.activePartIdx,null!==this.autoCompletePartIdx&&this.autoCompletePartIdx>=e&&++this.autoCompletePartIdx}removePart(e){this._parts.splice(e,1),e===this.activePartIdx?this.activePartIdx=null:null!==this.activePartIdx&&this.activePartIdx>e&&--this.activePartIdx,e===this.autoCompletePartIdx?this.autoCompletePartIdx=null:null!==this.autoCompletePartIdx&&this.autoCompletePartIdx>e&&--this.autoCompletePartIdx}replacePart(e,t){this._parts.splice(e,1,t)}get parts(){return this._parts}get autoComplete(){return this.activePartIdx===this.autoCompletePartIdx?this._autoComplete:null}getPositionAtEnd(){if(this._parts.length){const e=this._parts.length-1,t=this._parts[e];return new r.A(e,t.text.length)}return new r.A(-1,0)}serializeParts(){return this._parts.map(e=>e.serialize())}diff(e,t,s){const n=this.parts.reduce((e,t)=>e+t.text,"");return"deleteByDrag"===t?function(e,t){if(e===t)return{};const s=o(e,t),n=e.length-t.length;return{at:s,removed:e.slice(s,s+n)}}(n,e):i(n,e,s.offset)}reset(e,t,s){var n;this._parts=e.map(e=>this._partCreator.deserializePart(e)).filter(e=>Boolean(e)),t||(t=this.getPositionAtEnd()),this._autoComplete&&(this._autoComplete=null,this.autoCompletePartIdx=null),null===(n=this.updateCallback)||void 0===n||n.call(this,t,s)}insert(e,t){const s=this.splitAt(t);let n=0;for(let t=0;t<e.length;++t){const o=e[t];n+=o.text.length,this.insertPart(s+t,o)}return n}update(e,t,s){var n;const o=this.diff(e,t,s),i=this.positionForOffset(o.at||0,s.atNodeEnd);let r=0;o.removed&&(r=this.removeText(i,o.removed.length));let a=0;o.added&&(a=this.addText(i,o.added,t)),this.mergeAdjacentParts();const l=(o.at||0)-r+a;let c=this.positionForOffset(l,!0);const d="insertFromPaste"!==t&&"insertFromDrop"!==t,m=this.setActivePart(c,d);if(this.transformCallback){const e=this.getTransformAddedLen(c,t,o);c=this.positionForOffset(l+e,!0)}return null===(n=this.updateCallback)||void 0===n||n.call(this,c,t,o),m}getTransformAddedLen(e,t,s){var n;const o=null===(n=this.transformCallback)||void 0===n?void 0:n.call(this,e,t,s);return Number.isFinite(o)?o:0}setActivePart(e,t){const{index:s}=e,n=this._parts[s];if(n){if(s!==this.activePartIdx&&(this.activePartIdx=s,t&&this.activePartIdx!==this.autoCompletePartIdx)){const e=n.createAutoComplete(this.onAutoComplete);e&&(this._autoComplete=e,this.autoCompletePartIdx=s,this.autoCompletePartCount=1)}if(this.autoComplete)return this.autoComplete.onPartUpdate(n,e)}else this.activePartIdx=null,this._autoComplete=null,this.autoCompletePartIdx=null,this.autoCompletePartCount=0;return Promise.resolve()}mergeAdjacentParts(){let e;for(let n=0;n<this._parts.length;++n){var t,s;let o=this._parts[n];const i=!o.text.length,r=!i&&e&&(null===(t=(s=e).merge)||void 0===t?void 0:t.call(s,o));(i||r)&&(o=e,this.removePart(n),--n),e=o}}removeText(e,t){let{index:s,offset:n}=e,o=0;for(;t>0;){let e=this._parts[s];const i=Math.min(t,e.text.length-n);if(i)if(e.canEdit){const t=e.remove(n,i);"string"==typeof t&&this.replacePart(s,this._partCreator.createDefaultPart(t)),e=this._parts[s],e.text.length?s+=1:this.removePart(s)}else o+=n,this.removePart(s);else s+=1;t-=i,n=0}return o}splitAt(e){if(-1===e.index)return 0;if(0===e.offset)return e.index;const t=this._parts[e.index];if(e.offset>=t.text.length)return e.index+1;const s=t.split(e.offset);return this.insertPart(e.index+1,s),e.index+1}addText(e,t,s){let{index:n}=e;const{offset:o}=e;let i=t.length;const r=this._parts[n];let a=t;if(r)if(r.canEdit)if(r.validateAndInsert(o,t,s))a=void 0;else{const e=r.split(o);n+=1,this.insertPart(n,e)}else 0!==o&&(i+=r.text.length-o,n+=1);else n<0&&(n=0);for(;a;){const e=this._partCreator.createPartForInput(a,n,s),t=a;if(a=e.appendUntilRejected(a,s),a===t){console.error(`Failed to update model for input (str ${a}) (type ${s})`);break}this.insertPart(n,e),n+=1}return i}positionForOffset(e,t=!1){let s=0;const n=this._parts.findIndex(n=>{const o=n.text.length;return!!(t&&s+o>=e||!t&&s+o>e)||(s+=o,!1)});return-1===n?this.getPositionAtEnd():new r.A(n,e-s)}startRange(e,t=e){return new a.A(this,e,t)}replaceRange(e,t,s){const n=t.asOffset(this),o=this.splitAt(e);t=n.asPosition(this);for(let e=this.splitAt(t)-1;e>=o;--e)this.removePart(e);let i=o;for(const e of s)this.insertPart(i,e),i+=1;this.mergeAdjacentParts()}transform(e){var t;const s=e();let n;return n=s instanceof a.A?Promise.resolve():this.setActivePart(s,!0),null===(t=this.updateCallback)||void 0===t||t.call(this,s),n}}},"./src/editor/offset.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>n});class n{constructor(e,t){this.offset=e,this.atNodeEnd=t}asPosition(e){return e.positionForOffset(this.offset,this.atNodeEnd)}add(e,t=!1){return new n(this.offset+e,t)}}},"./src/editor/parts.ts":(e,t,s)=>{"use strict";s.d(t,{dK:()=>S,ZU:()=>u,NY:()=>x});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");class o{constructor(e,t,s,o){(0,n.A)(this,"partIndex",void 0),this.updateCallback=e,this.getAutocompleterComponent=t,this.updateQuery=s,this.partCreator=o}onEscape(e){var t;null===(t=this.getAutocompleterComponent())||void 0===t||t.onEscape(e)}close(){this.updateCallback({close:!0})}hasSelection(){var e;return!(null===(e=this.getAutocompleterComponent())||void 0===e||!e.hasSelection())}hasCompletions(){const e=this.getAutocompleterComponent();return!!e&&e.countCompletions()>0}confirmCompletion(){var e;null===(e=this.getAutocompleterComponent())||void 0===e||e.onConfirmCompletion(),this.updateCallback({close:!0})}async startSelection(){const e=this.getAutocompleterComponent();e&&0===e.countCompletions()&&await e.forceComplete()}selectPreviousSelection(){var e;null===(e=this.getAutocompleterComponent())||void 0===e||e.moveSelection(-1)}selectNextSelection(){var e;null===(e=this.getAutocompleterComponent())||void 0===e||e.moveSelection(1)}onPartUpdate(e,t){return this.partIndex=t.index,this.updateQuery(e.text)}onComponentConfirm(e){this.updateCallback({replaceParts:this.partForCompletion(e),close:!0,range:e.range})}partForCompletion(e){const{completionId:t}=e,s=e.completion;switch(e.type){case"room":return[this.partCreator.roomPill(s,t),this.partCreator.plain(e.suffix||"")];case"at-room":return[this.partCreator.atRoomPill(t||""),this.partCreator.plain(e.suffix||"")];case"user":return this.partCreator.createMentionParts(0===this.partIndex,s,t||"");case"command":return[this.partCreator.command(s)];default:return this.partCreator.plainWithEmoji(s)}}}var i=s("./src/HtmlUtils.tsx"),r=s("./src/Avatar.ts"),a=s("./src/dispatcher/dispatcher.ts"),l=s("./src/dispatcher/actions.ts"),c=s("./src/settings/SettingsStore.ts"),d=s("./src/utils/strings.ts");const m=String.fromCodePoint(8203);let u=function(e){return e.Plain="plain",e.Newline="newline",e.Emoji="emoji",e.Command="command",e.UserPill="user-pill",e.RoomPill="room-pill",e.AtRoomPill="at-room-pill",e.PillCandidate="pill-candidate",e}({});class h{constructor(e=""){(0,n.A)(this,"_text",void 0),this._text=e}acceptsInsertion(e,t,s){return!0}acceptsRemoval(e,t){return!0}merge(e){return!1}split(e){const t=this.text.slice(e);return this._text=this.text.slice(0,e),new g(t)}remove(e,t){const s=this.text.slice(0,e)+this.text.slice(e+t);for(let n=e;n<t+e;++n){const e=this.text.charAt(n);if(!this.acceptsRemoval(n,e))return s}this._text=s}appendUntilRejected(e,t){const s=this.text.length;let n=e;for(;n;){const o=(0,d.Ee)(n);if(!this.acceptsInsertion(o,s+e.length-n.length,t))break;n=n.slice(o.length)}return this._text+=e.slice(0,e.length-n.length),n||void 0}validateAndInsert(e,t,s){for(let n=0;n<t.length;++n){const o=t.charAt(n);if(!this.acceptsInsertion(o,e+n,s))return!1}const n=this._text.slice(0,e),o=this._text.slice(e);return this._text=n+t+o,!0}createAutoComplete(e){}trim(e){const t=this._text.slice(e);return this._text=this._text.slice(0,e),t}get text(){return this._text}get canEdit(){return!0}get acceptsCaret(){return this.canEdit}toString(){return`${this.type}(${this.text})`}serialize(){return{type:this.type,text:this.text}}}class p extends h{acceptsInsertion(e,t,s){return"\n"!==e&&!i.nr.test(e)&&("insertFromPaste"===s||"insertFromDrop"===s||("@"!==e&&"#"!==e&&":"!==e&&"+"!==e||0!==t&&(" "!==this._text[t-1]&&this._text[t-1]!==m&&("+"!==this._text[t-1]||":"!==e))))}toDOMNode(){return document.createTextNode(this.text)}merge(e){return e.type===this.type&&(this._text=this.text+e.text,!0)}updateDOMNode(e){e.textContent!==this.text&&(e.textContent=this.text)}canUpdateDOMNode(e){return e.nodeType===Node.TEXT_NODE}}class g extends p{get type(){return u.Plain}}class v extends h{constructor(e,t){super(t),(0,n.A)(this,"onClick",void 0),this.resourceId=e}acceptsInsertion(e){return" "!==e}acceptsRemoval(e,t){return 0!==e}toDOMNode(){const e=document.createElement("span");return e.setAttribute("spellcheck","false"),e.setAttribute("contentEditable","false"),this.onClick&&(e.onclick=this.onClick),e.className=this.className,e.appendChild(document.createTextNode(this.text)),this.setAvatar(e),e}updateDOMNode(e){const t=e.childNodes[0];t.textContent!==this.text&&(t.textContent=this.text),e.className!==this.className&&(e.className=this.className),this.onClick&&e.onclick!==this.onClick&&(e.onclick=this.onClick),this.setAvatar(e)}canUpdateDOMNode(e){return e.nodeType===Node.ELEMENT_NODE&&"SPAN"===e.nodeName&&1===e.childNodes.length&&e.childNodes[0].nodeType===Node.TEXT_NODE}setAvatarVars(e,t,s,n){const o=`url('${t}')`,i=`'${s}'`;e.style.getPropertyValue("--avatar-background")!==o&&e.style.setProperty("--avatar-background",o),e.style.getPropertyValue("--avatar-letter")!==i&&e.style.setProperty("--avatar-letter",i),n&&e.style.getPropertyValue("--avatar-color")!==n&&e.style.setProperty("--avatar-color",n)}serialize(){return{type:this.type,text:this.text,resourceId:this.resourceId}}get canEdit(){return!1}}class _ extends h{acceptsInsertion(e,t){return 0===t&&"\n"===e}acceptsRemoval(e,t){return!0}toDOMNode(){return document.createElement("br")}merge(){return!1}updateDOMNode(){}canUpdateDOMNode(e){return"BR"===e.tagName}get type(){return u.Newline}get canEdit(){return!1}}class f extends h{acceptsInsertion(e,t){return i.nr.test(e)}acceptsRemoval(e,t){return!1}toDOMNode(){const e=document.createElement("span");return e.className="mx_Emoji",e.setAttribute("title",(0,i.aS)(this.text)),e.appendChild(document.createTextNode(this.text)),e}updateDOMNode(e){const t=e.childNodes[0];t.textContent!==this.text&&(e.setAttribute("title",(0,i.aS)(this.text)),t.textContent=this.text)}canUpdateDOMNode(e){return"mx_Emoji"===e.className}get type(){return u.Emoji}get canEdit(){return!1}get acceptsCaret(){return!0}}class y extends v{constructor(e,t,s){super(e,t),this.room=s}setAvatar(e){var t;let s,n="",o=r.ze(null!==(t=this.room)&&void 0!==t?t:null,16,16,"crop");var i,a,l,c,d,m;o||(n=null!==(i=r.$R((null===(a=this.room)||void 0===a?void 0:a.name)||this.resourceId))&&void 0!==i?i:"",o=r.iv(null!==(l=null===(c=this.room)||void 0===c?void 0:c.roomId)&&void 0!==l?l:this.resourceId),s=r.gx(null!==(d=null===(m=this.room)||void 0===m?void 0:m.roomId)&&void 0!==d?d:this.resourceId));this.setAvatarVars(e,o,n,s)}get type(){return u.RoomPill}get className(){var e;return"mx_Pill "+(null!==(e=this.room)&&void 0!==e&&e.isSpaceRoom()?"mx_SpacePill":"mx_RoomPill")}}class b extends y{constructor(e,t){super(e,e,t)}get type(){return u.AtRoomPill}serialize(){return{type:this.type,text:this.text}}}class E extends v{constructor(e,t,s){super(e,t),(0,n.A)(this,"onClick",()=>{a.A.dispatch({action:l.r.ViewUser,member:this.member})}),this.member=s}get type(){return u.UserPill}get className(){return"mx_UserPill mx_Pill"}setAvatar(e){if(!this.member)return;const t=this.member.name||this.member.userId,s=r.iv(this.member.userId),n=r._V(this.member,16,16,"crop");let o,i="";var a;n===s&&(i=null!==(a=r.$R(t))&&void 0!==a?a:"",o=r.gx(this.member.userId));this.setAvatarVars(e,n,i,o)}}class w extends p{constructor(e,t){super(e),this.autoCompleteCreator=t}createAutoComplete(e){var t,s;return null===(t=(s=this.autoCompleteCreator).create)||void 0===t?void 0:t.call(s,e)}acceptsInsertion(e,t,s){return 0===t||super.acceptsInsertion(e,t,s)}merge(){return!1}acceptsRemoval(e,t){return!0}get type(){return u.PillCandidate}}function x(e,t){return s=>n=>new o(n,e,t,s)}class A{constructor(e,t,s=null){(0,n.A)(this,"autoCompleteCreator",void 0),this.room=e,this.client=t,this.autoCompleteCreator={create:null==s?void 0:s(this)}}setAutoCompleteCreator(e){this.autoCompleteCreator.create=e(this)}createPartForInput(e,t,s){switch(e[0]){case"#":case"@":case":":case"+":return this.pillCandidate("");case"\n":return new _;default:return i.nr.test((0,d.Ee)(e))?new f:new g}}createDefaultPart(e){return this.plain(e)}deserializePart(e){switch(e.type){case u.Plain:return this.plain(e.text);case u.Newline:return this.newline();case u.Emoji:return this.emoji(e.text);case u.AtRoomPill:return this.atRoomPill(e.text);case u.PillCandidate:return this.pillCandidate(e.text);case u.RoomPill:return e.resourceId?this.roomPill(e.resourceId):void 0;case u.UserPill:return e.resourceId?this.userPill(e.text,e.resourceId):void 0}}plain(e){return new g(e)}newline(){return new _("\n")}emoji(e){return new f(e)}pillCandidate(e){return new w(e,this.autoCompleteCreator)}roomPill(e,t){let s;var n;t||"#"!==e[0]?s=null!==(n=this.client.getRoom(t||e))&&void 0!==n?n:void 0:s=this.client.getRooms().find(t=>t.getCanonicalAlias()===e||t.getAltAliases().includes(e));return new y(e,s?s.name:e,s)}atRoomPill(e){return new b(e,this.room)}userPill(e,t){const s=this.room.getMember(t);return new E(t,e,s||void 0)}static isRegionalIndicator(e){var t;const s=null!==(t=e.codePointAt(0))&&void 0!==t?t:0;return 0!=s&&2==e.length&&127462<=s&&s<=127487}plainWithEmoji(e){const t=[];let s="";for(const n of d.eL.segment(e))i.nr.test(n.segment)?(s&&(t.push(this.plain(s)),s=""),t.push(this.emoji(n.segment)),A.isRegionalIndicator(e)&&t.push(this.plain(m))):s+=n.segment;return s&&t.push(this.plain(s)),t}createMentionParts(e,t,s){const n=this.userPill(t,s);c.A.getValue("MessageComposerInput.insertTrailingColon")||(e=!1);return[n,this.plain(e?": ":" ")]}}class S extends A{createPartForInput(e,t){return 0===t&&"/"===e[0]?this.command(""):super.createPartForInput(e,t)}command(e){return new C(e,this.autoCompleteCreator)}deserializePart(e){return e.type===u.Command?this.command(e.text):super.deserializePart(e)}}class C extends w{get type(){return u.Command}}},"./src/editor/position.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>o});var n=s("./src/editor/offset.ts");class o{constructor(e,t){this.index=e,this.offset=t}compare(e){return this.index===e.index?this.offset-e.offset:this.index-e.index}iteratePartsBetween(e,t,s){if(-1===this.index||-1===e.index)return;const[n,o]=this.compare(e)<0?[this,e]:[e,this];if(n.index===o.index)s(t.parts[this.index],n.offset,o.offset);else{const e=t.parts[n.index];s(e,n.offset,e.text.length);for(let e=n.index+1;e<o.index;++e){const n=t.parts[e];s(n,0,n.text.length)}s(t.parts[o.index],0,o.offset)}}forwardsWhile(e,t){if(-1===this.index)return this;let{index:s,offset:n}=this;const{parts:i}=e;for(;s<i.length;){const e=i[s];for(;n<e.text.length;){if(!t(s,n,e))return new o(s,n);n+=1}if(s===i.length-1)return new o(s,n);s+=1,n=0}return this}backwardsWhile(e,t){if(-1===this.index)return this;let{index:s,offset:n}=this;const i=e.parts;for(;s>=0;){const e=i[s];for(;n>0;){if(!t(s,n-1,e))return new o(s,n);n-=1}if(0===s)return new o(s,n);s-=1,n=i[s].text.length}return this}asOffset(e){if(-1===this.index)return new n.A(0,!0);let t=0;for(let s=0;s<this.index;++s)t+=e.parts[s].text.length;t+=this.offset;const s=e.parts[this.index],o=!s||t>=s.text.length;return new n.A(t,o)}isAtEnd(e){if(0===e.parts.length)return!0;const t=e.parts.length-1,s=e.parts[t];return this.index===t&&this.offset===s.text.length}isAtStart(){return 0===this.index&&0===this.offset}}},"./src/editor/range.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>i});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");const o=(e,t,s)=>""===s.text[t].trim();class i{constructor(e,t,s=t){(0,n.A)(this,"_start",void 0),(0,n.A)(this,"_end",void 0),(0,n.A)(this,"_lastStart",void 0),(0,n.A)(this,"_initializedEmpty",void 0),this.model=e;const o=t.compare(s)<0;this._start=o?t:s,this._end=o?s:t,this._lastStart=this._start,this._initializedEmpty=this._start.index===this._end.index&&this._start.offset==this._end.offset}moveStartForwards(e){this._start=this._start.forwardsWhile(this.model,()=>(e-=1)>=0)}wasInitializedEmpty(){return this._initializedEmpty}setWasEmpty(e){this._initializedEmpty=e}getLastStartingPosition(){return this._lastStart}setLastStartingPosition(e){this._lastStart=e}moveEndBackwards(e){this._end=this._end.backwardsWhile(this.model,()=>(e-=1)>=0)}trim(){""!==this.text.trim()?(this._start=this._start.forwardsWhile(this.model,o),this._end=this._end.backwardsWhile(this.model,o)):this._start=this._end}expandBackwardsWhile(e){this._start=this._start.backwardsWhile(this.model,e)}expandForwardsWhile(e){this._end=this._end.forwardsWhile(this.model,e)}get text(){let e="";return this._start.iteratePartsBetween(this._end,this.model,(t,s,n)=>{const o=t.text.substring(s,n);e+=o}),e}replace(e){const t=e.reduce((e,t)=>e+t.text.length,0);let s=0;return this._start.iteratePartsBetween(this._end,this.model,(e,t,n)=>{s+=n-t}),this.model.replaceRange(this._start,this._end,e),t-s}get parts(){const e=[];return this._start.iteratePartsBetween(this._end,this.model,(t,s,n)=>{const o=t.serialize();o.text=t.text.substring(s,n);const i=this.model.partCreator.deserializePart(o);i&&e.push(i)}),e}get length(){let e=0;return this._start.iteratePartsBetween(this._end,this.model,(t,s,n)=>{e+=n-s}),e}get start(){return this._start}get end(){return this._end}}},"./src/editor/render.ts":(e,t,s)=>{"use strict";s.d(t,{UE:()=>o,UW:()=>a,dO:()=>i,e7:()=>u,eK:()=>d});var n=s("./src/editor/parts.ts");function o(e,t){const s=!t||t.type===n.ZU.Newline;return!e.acceptsCaret&&(s||!t.acceptsCaret)}function i(e,t){return!e.acceptsCaret&&t}function r(e,t){const s=e.nextSibling;s?e.parentElement.insertBefore(t,s):e.parentElement.appendChild(t)}const a="\ufeff";function l(){const e=document.createElement("span");return e.className="caretNode",e.appendChild(document.createTextNode(a)),e}function c(e){e.textContent!==a&&(e.textContent=a)}function d(e){return!!e&&e instanceof HTMLElement&&"SPAN"===e.tagName&&"caretNode"===e.className}function m(e){if(e)for(e=e.nextSibling;e;){const t=e;e=e.nextSibling,t.remove()}}function u(e,t){const s=t.parts.reduce((e,t)=>{if(t.type===n.ZU.Newline)e.push([]);else{e[e.length-1].push(t)}return e},[[]]);s.forEach((t,s)=>{let n=e.childNodes[s];for(;n&&("DIV"!==n.tagName||n.className);)e.removeChild(n),n=e.childNodes[s];n||(n=document.createElement("div"),e.appendChild(n)),t.length?function(e,t){let s,n=null;const a=t[t.length-1];for(const m of t){for(n=s?n.nextSibling:e.firstChild,o(m,s)&&(d(n)?(c(n),n=n.nextSibling):e.insertBefore(l(),n));n&&!m.canUpdateDOMNode(n);){const t=n.nextSibling;e.removeChild(n),n=t}var u;if(n&&m?m.updateDOMNode(n):m&&(n=m.toDOMNode(),e.appendChild(n)),i(m,m===a))if(d(null===(u=n)||void 0===u?void 0:u.nextSibling))n=n.nextSibling,c(n);else{const e=l();r(n,e),n=e}s=m}m(n)}(n,t):function(e){let t=!1,s=e.firstChild;for(;s;){const e=s.nextSibling;t||"BR"!==s.tagName?s.remove():t=!0,s=e}t||e.appendChild(document.createElement("br"))}(n)}),s.length?m(e.children[s.length-1]):function(e){const t=e.firstChild;t&&(m(t),t.remove())}(e)}},"./src/editor/serialize.ts":(e,t,s)=>{"use strict";s.d(t,{GE:()=>f,ID:()=>p,MN:()=>m,OA:()=>h,Ro:()=>u,k$:()=>v,tk:()=>_,w1:()=>g});var n=s("./node_modules/html-entities/dist/esm/index.js"),o=s("./node_modules/escape-html/index.js"),i=s.n(o),r=s("./src/Markdown.ts"),a=s("./src/utils/permalinks/Permalinks.ts"),l=s("./src/settings/SettingsStore.ts"),c=s("./src/SdkConfig.ts"),d=s("./src/editor/parts.ts");function m(e,{forceHTML:t=!1,useMarkdown:s=!0}={}){if(!s)return i()(h(e)).replace(/\n/g,"<br/>");const n=function(e){return e.parts.reduce((e,t)=>{switch(t.type){case d.ZU.Newline:return e+"\n";case d.ZU.Plain:case d.ZU.Emoji:case d.ZU.Command:case d.ZU.PillCandidate:case d.ZU.AtRoomPill:return e+t.text;case d.ZU.RoomPill:{const s=(0,a.rl)(t.resourceId,!0);return e+`[${t.resourceId.replace(/[[\\\]]/g,e=>"\\"+e)}](${s})`}case d.ZU.UserPill:{const s=(0,a.rl)(t.resourceId,!0);return e+`[${t.text.replace(/[[\\\]]/g,e=>"\\"+e).replace(/\n/g,"<br>")}](${s})`}}},"")}(e);return u(n,{forceHTML:t})}function u(e,{forceHTML:t=!1}={}){const s=e;if(l.A.getValue("feature_latex_maths")){const t=["display","inline"],s={tex:{display:"(^)\\$\\$(([^$]|\\\\\\$)+?)\\$\\$$",inline:"(^|\\s|[.,!?:;])(?!\\\\)\\$(?!\\s)(([^$\\n]|\\\\\\$)*([^\\\\\\s\\$]|\\\\\\$)(?:\\\\\\$)?)\\$"},latex:{display:"(^)\\\\\\[(?!\\\\\\])(.*?)\\\\\\]$",inline:"(^|[^\\\\])\\\\\\((?!\\\\\\))(.*?)\\\\\\)"}};["tex","latex"].forEach(function(o){t.forEach(function(t){var i;const r=(null===(i=c.Ay.get("latex_maths_delims"))||void 0===i||null===(i=i[t])||void 0===i||null===(i=i.pattern)||void 0===i?void 0:i[o])||s[o][t];e=e.replace(RegExp(r,"gms"),function(e,s,o){const i=(0,n.lF)(o);switch(t){case"display":return`${s}<div data-mx-maths="${i}">\n\n</div>\n\n`;case"inline":return`${s}<span data-mx-maths="${i}"></span>`}})})}),e=e.replace(/(.)<div/g,function(e,t){return`${t}\n<div`})}const o=new r.A(e);if(!o.isPlainText()||t){const e=(new DOMParser).parseFromString(o.toHTML(),"text/html");if(l.A.getValue("feature_latex_maths")){const t=new r.A(s);[...(new DOMParser).parseFromString(t.toHTML(),"text/html").getElementsByTagName("code")].forEach((t,s)=>{e.getElementsByTagName("code").item(s).textContent=t.textContent}),[...e.querySelectorAll("div, span")].forEach((e,t)=>{const s=e.getAttribute("data-mx-maths");s&&(e.innerHTML=`<code>${s}</code>`)})}return e.body.innerHTML}if(e.indexOf("\\")>-1)return o.toPlaintext()}function h(e){return e.parts.reduce((e,t)=>{switch(t.type){case d.ZU.Newline:return e+"\n";case d.ZU.Plain:case d.ZU.Emoji:case d.ZU.Command:case d.ZU.PillCandidate:case d.ZU.AtRoomPill:return e+t.text;case d.ZU.RoomPill:return e+`${t.resourceId}`;case d.ZU.UserPill:return e+`${t.text}`}},"")}function p(e){var t;const s=g(e,"/me ",!1),n=(null===(t=e.parts[0])||void 0===t||null===(t=t.text)||void 0===t?void 0:t.length)>4||e.parts.length>1;return s&&n}function g(e,t,s=!0){const n=e.parts[0];let o=(null==n?void 0:n.text)||"";return s||(t=t.toLowerCase(),o=o.toLowerCase()),n&&(n.type===d.ZU.Plain||n.type===d.ZU.Command)&&o.startsWith(t)}function v(e){return _(e,"/me ")}function _(e,t){return(e=e.clone()).removeText({index:0,offset:0},t.length),e}function f(e){const{parts:t}=e;if(t.length){const s=t[0];s.type===d.ZU.Plain&&s.text.startsWith("\\/")&&(e=e.clone()).removeText({index:0,offset:0},1)}return e}},"./src/effects/index.ts":(e,t,s)=>{"use strict";s.d(t,{y:()=>o});var n=s("./src/languageHandler.tsx");const o=[{emojis:["🎊","🎉"],msgType:"nic.custom.confetti",command:"confetti",description:()=>(0,n.AO)("chat_effects|confetti_description"),fallbackMessage:()=>(0,n._t)("chat_effects|confetti_message")+" 🎉",options:{maxCount:150,speed:3,frameInterval:15,alpha:1,gradient:!1}},{emojis:["🎆"],msgType:"nic.custom.fireworks",command:"fireworks",description:()=>(0,n.AO)("chat_effects|fireworks_description"),fallbackMessage:()=>(0,n._t)("chat_effects|fireworks_message")+" 🎆",options:{maxCount:500,gravity:.05}},{emojis:["🌧️","⛈️","🌦️"],msgType:"io.element.effect.rainfall",command:"rainfall",description:()=>(0,n.AO)("chat_effects|rainfall_description"),fallbackMessage:()=>(0,n._t)("chat_effects|rainfall_message")+" 🌧️",options:{maxCount:600,speed:10}},{emojis:["❄","🌨"],msgType:"io.element.effect.snowfall",command:"snowfall",description:()=>(0,n.AO)("chat_effects|snowfall_description"),fallbackMessage:()=>(0,n._t)("chat_effects|snowfall_message")+" ❄",options:{maxCount:200,gravity:.05,maxDrift:5}},{emojis:["👾","🌌"],msgType:"io.element.effects.space_invaders",command:"spaceinvaders",description:()=>(0,n.AO)("chat_effects|spaceinvaders_description"),fallbackMessage:()=>(0,n._t)("chat_effects|spaceinvaders_message")+" 👾",options:{maxCount:50,gravity:.01}},{emojis:["💝"],msgType:"io.element.effect.hearts",command:"hearts",description:()=>(0,n.AO)("chat_effects|hearts_description"),fallbackMessage:()=>(0,n._t)("chat_effects|hearts_message")+" 💝",options:{maxCount:120,gravity:3.2}}]},"./src/effects/utils.ts":(e,t,s)=>{"use strict";s.d(t,{_:()=>n});const n=(e,t)=>t.some(t=>e.body&&e.body.includes(t))},"./src/email.ts":(e,t,s)=>{"use strict";s.d(t,{X:()=>o});const n=new RegExp("^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$","i");function o(e){return!(e.indexOf("@")<1)&&n.test(e)}},"./src/emojipicker/recent.ts":(e,t,s)=>{"use strict";s.d(t,{J:()=>d,W:()=>c});var n=s("./node_modules/lodash/lodash.js"),o=s("./src/settings/SettingsStore.ts"),i=s("./src/settings/SettingLevel.ts");const r="recent_emoji",a=100;function l(){return o.A.getValue(r)||[]}function c(e){const t=l(),s=t.findIndex(([t])=>t===e);let n;s>=0?([n]=t.splice(s,1),n[1]++):n=[e,1],o.A.setValue(r,null,i.p.ACCOUNT,[n,...t].slice(0,a))}function d(e=24){let t=l();t.length<1&&(!function(){const e=JSON.parse(window.localStorage.mx_reaction_count||"{}"),t=Object.entries(e).sort(([,[e,t]],[,[s,n]])=>n-t).map(([e,[t,s]])=>[e,t]);o.A.setValue(r,null,i.p.ACCOUNT,t.slice(0,a))}(),t=l());return(0,n.orderBy)(t,"1","desc").slice(0,e).map(([e])=>e)}},"./src/events/EventTileFactory.tsx":(e,t,s)=>{"use strict";s.d(t,{DD:()=>be,ur:()=>ye,bN:()=>Ie,S8:()=>ke,Sj:()=>Ae,BP:()=>Ce,rd:()=>Se});var n=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./src/settings/SettingsStore.ts"),a=s("./src/contexts/RoomContext.ts"),l=s("./src/components/views/messages/MessageEvent.tsx"),c=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),d=s("./node_modules/matrix-js-sdk/src/webrtc/call.ts"),m=s("./node_modules/classnames/index.js"),u=s.n(m),h=s("./src/languageHandler.tsx"),p=s("./src/components/views/avatars/MemberAvatar.tsx"),g=s("./src/components/structures/LegacyCallEventGrouper.ts"),v=s("./src/components/views/elements/AccessibleButton.tsx"),_=s("./src/components/views/elements/InfoTooltip.tsx"),f=s("./src/DateUtils.ts"),y=s("./packages/shared-components/src/audio/Clock/index.tsx");const b=450/70*100;class E extends o.PureComponent{constructor(e){super(e),(0,c.A)(this,"wrapperElement",(0,o.createRef)()),(0,c.A)(this,"resizeObserver",void 0),(0,c.A)(this,"onLengthChanged",e=>{this.setState({length:e})}),(0,c.A)(this,"resizeObserverCallback",e=>{const t=e.find(e=>e.target===this.wrapperElement.current);t&&this.setState({narrow:t.contentRect.width<b})}),(0,c.A)(this,"onSilencedChanged",e=>{this.setState({silenced:e})}),(0,c.A)(this,"onStateChanged",e=>{this.setState({callState:e})}),this.state={callState:this.props.callEventGrouper.state,silenced:!1,narrow:!1,length:0}}componentDidMount(){this.props.callEventGrouper.addListener(g.Cj.StateChanged,this.onStateChanged),this.props.callEventGrouper.addListener(g.Cj.SilencedChanged,this.onSilencedChanged),this.props.callEventGrouper.addListener(g.Cj.LengthChanged,this.onLengthChanged),this.resizeObserver=new ResizeObserver(this.resizeObserverCallback),this.wrapperElement.current&&this.resizeObserver.observe(this.wrapperElement.current)}componentWillUnmount(){var e;this.props.callEventGrouper.removeListener(g.Cj.StateChanged,this.onStateChanged),this.props.callEventGrouper.removeListener(g.Cj.SilencedChanged,this.onSilencedChanged),this.props.callEventGrouper.removeListener(g.Cj.LengthChanged,this.onLengthChanged),null===(e=this.resizeObserver)||void 0===e||e.disconnect()}renderCallBackButton(e){return o.createElement(v.A,{className:"mx_LegacyCallEvent_content_button mx_LegacyCallEvent_content_button_callBack",onClick:this.props.callEventGrouper.callBack,kind:"primary"},o.createElement("span",null," ",e," "))}renderSilenceIcon(){const e=u()({mx_LegacyCallEvent_iconButton:!0,mx_LegacyCallEvent_unSilence:this.state.silenced,mx_LegacyCallEvent_silence:!this.state.silenced});return o.createElement(v.A,{className:e,onClick:this.props.callEventGrouper.toggleSilenced,title:this.state.silenced?(0,h._t)("voip|unsilence"):(0,h._t)("voip|silence")})}renderContent(){if(this.state.callState===d.iP.Ringing){let e;return this.state.narrow||(e=this.renderSilenceIcon()),o.createElement("div",{className:"mx_LegacyCallEvent_content"},e,o.createElement(v.A,{className:"mx_LegacyCallEvent_content_button mx_LegacyCallEvent_content_button_reject",onClick:this.props.callEventGrouper.rejectCall,kind:"danger"},o.createElement("span",null," ",(0,h._t)("action|decline")," ")),o.createElement(v.A,{className:"mx_LegacyCallEvent_content_button mx_LegacyCallEvent_content_button_answer",onClick:this.props.callEventGrouper.answerCall,kind:"primary"},o.createElement("span",null," ",(0,h._t)("action|accept")," ")),this.props.timestamp)}if(this.state.callState===d.iP.Ended){const e=this.props.callEventGrouper.hangupReason;if(this.props.callEventGrouper.gotRejected)return o.createElement("div",{className:"mx_LegacyCallEvent_content"},(0,h._t)("timeline|m.call.invite|declined"),this.renderCallBackButton((0,h._t)("timeline|m.call.invite|call_back_prompt")),this.props.timestamp);if(e===d.Il.AnsweredElsewhere)return o.createElement("div",{className:"mx_LegacyCallEvent_content"},(0,h._t)("timeline|m.call.invite|answered_elsewhere"),this.props.timestamp);if(this.props.callEventGrouper.callWasMissed)return o.createElement("div",{className:"mx_LegacyCallEvent_content"},(0,h._t)("timeline|m.call.invite|missed_call"),this.renderCallBackButton((0,h._t)("timeline|m.call.invite|call_back_prompt")),this.props.timestamp);if(!e||[d.Il.UserHangup,"user hangup"].includes(e)){const e=this.props.callEventGrouper.duration;let t=(0,h._t)("timeline|m.call.hangup|dm");return e&&(t+=" • "+(0,f.DE)(e)),o.createElement("div",{className:"mx_LegacyCallEvent_content"},t,this.props.timestamp)}if(e===d.Il.InviteTimeout)return o.createElement("div",{className:"mx_LegacyCallEvent_content"},(0,h._t)("timeline|m.call.invite|no_answer"),this.renderCallBackButton((0,h._t)("timeline|m.call.invite|call_back_prompt")),this.props.timestamp);let t;return t=e===d.Il.IceFailed?(0,h._t)("timeline|m.call.invite|failed_connect_media"):"ice_timeout"===e?(0,h._t)("timeline|m.call.invite|failed_connection"):e===d.Il.NoUserMedia?(0,h._t)("timeline|m.call.invite|failed_opponent_media"):"unknown_error"===e?(0,h._t)("timeline|m.call.invite|unknown_error"):e===d.Il.UserBusy?(0,h._t)("voip|user_busy_description"):(0,h._t)("timeline|m.call.invite|unknown_failure",{reason:e}),o.createElement("div",{className:"mx_LegacyCallEvent_content"},o.createElement(_.A,{tooltip:t,className:"mx_LegacyCallEvent_content_tooltip",kind:_.y.Warning}),(0,h._t)("timeline|m.call.invite|failed_connection"),this.renderCallBackButton((0,h._t)("action|retry")),this.props.timestamp)}return this.state.callState===d.iP.Connected?o.createElement("div",{className:"mx_LegacyCallEvent_content"},o.createElement(y.z,{seconds:this.state.length,"aria-live":"off"}),this.props.timestamp):this.state.callState===d.iP.Connecting?o.createElement("div",{className:"mx_LegacyCallEvent_content"},(0,h._t)("voip|connecting"),this.props.timestamp):o.createElement("div",{className:"mx_LegacyCallEvent_content"},(0,h._t)("timeline|m.call.invite|unknown_state"),this.props.timestamp)}render(){const e=this.props.mxEvent,t=e.sender?e.sender.name:e.getSender(),s=this.props.callEventGrouper.isVoice,n=s?(0,h._t)("voip|voice_call"):(0,h._t)("voip|video_call"),i=this.state.callState,r=this.props.callEventGrouper.hangupReason,a=this.renderContent(),l=u()("mx_LegacyCallEvent",{mx_LegacyCallEvent_voice:s,mx_LegacyCallEvent_video:!s,mx_LegacyCallEvent_narrow:this.state.narrow,mx_LegacyCallEvent_missed:this.props.callEventGrouper.callWasMissed,mx_LegacyCallEvent_noAnswer:i===d.iP.Ended&&r===d.Il.InviteTimeout,mx_LegacyCallEvent_rejected:i===d.iP.Ended&&this.props.callEventGrouper.gotRejected});let c;return this.state.narrow&&this.state.callState===d.iP.Ringing&&(c=this.renderSilenceIcon()),o.createElement("div",{className:"mx_LegacyCallEvent_wrapper",ref:this.wrapperElement},o.createElement("div",{className:l},c,o.createElement("div",{className:"mx_LegacyCallEvent_info"},o.createElement(p.A,{member:e.sender,size:"32px"}),o.createElement("div",{className:"mx_LegacyCallEvent_info_basic"},o.createElement("div",{className:"mx_LegacyCallEvent_sender"},t),o.createElement("div",{className:"mx_LegacyCallEvent_type"},o.createElement("div",{className:"mx_LegacyCallEvent_type_icon"}),n))),a))}}var w=s("./src/models/Call.ts"),x=s("./src/hooks/useCall.ts"),A=s("./src/dispatcher/dispatcher.ts"),S=s("./src/dispatcher/actions.ts"),C=s("./src/components/views/rooms/LiveContentSummary.tsx"),R=s("./src/components/views/elements/FacePile.tsx"),k=s("./src/contexts/MatrixClientContext.tsx");const I=(0,o.memo)(({delta:e})=>e<=0?null:o.createElement("div",{className:"mx_CallDuration"},(0,f.DE)(e))),P=({session:e})=>{var t;const[s,n]=(0,o.useState)(()=>Date.now());(0,o.useEffect)(()=>{const e=window.setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(e)},[]);const i=null==e||null===(t=e.getOldestMembership())||void 0===t?void 0:t.createdTs();return i?o.createElement(I,{delta:s-i}):o.createElement(I,{delta:0})},T=({mxEvent:e,call:t,participatingMembers:s,buttonText:n,buttonKind:i,buttonDisabledTooltip:r,onButtonClick:a,ref:l})=>{const c=(0,o.useMemo)(()=>{var t,s;return null!==(t=null===(s=e.sender)||void 0===s?void 0:s.name)&&void 0!==t?t:e.getSender()},[e]),d=(0,o.useMemo)(()=>s.slice(0,8),[s]),m=s.length>d.length;return o.createElement("div",{className:"mx_CallEvent_wrapper",ref:l},o.createElement("div",{className:"mx_CallEvent mx_CallEvent_active"},o.createElement(p.A,{member:e.sender,fallbackUserId:e.getSender(),viewUserOnClick:!0,size:"24px"}),o.createElement("div",{className:"mx_CallEvent_columns"},o.createElement("div",{className:"mx_CallEvent_details"},o.createElement("span",{className:"mx_CallEvent_title"},(0,h._t)("timeline|m.call|video_call_started_text",{name:c})),o.createElement(C.m_,{type:C.In.Video,text:(0,h._t)("voip|video_call"),active:!1,participantCount:s.length}),o.createElement(R.A,{members:d,size:"24px",overflow:m})),t&&o.createElement(P,{session:t.session}),o.createElement(v.A,{className:"mx_CallEvent_button",kind:i,disabled:null===a||void 0!==r,onClick:a,title:r},n))))},O=({mxEvent:e,call:t,ref:s})=>{const n=(0,x.jd)(t),i=(0,x.IW)(t),r=(0,x.Rv)(t),a=(0,o.useCallback)(t=>{t.preventDefault(),A.A.dispatch({action:S.r.ViewRoom,room_id:e.getRoomId(),view_call:!0,metricsTrigger:void 0})},[e]),l=(0,o.useCallback)(e=>{e.preventDefault(),t.disconnect()},[t]),[c,d,m]=(0,o.useMemo)(()=>{switch(n){case w.KN.Disconnected:return[(0,h._t)("action|join"),"primary",a];case w.KN.Connected:return[(0,h._t)("action|leave"),"danger",l];case w.KN.Disconnecting:return[(0,h._t)("action|leave"),"danger",null]}},[n,a,l]);return o.createElement(T,{ref:s,mxEvent:e,call:t,participatingMembers:i,buttonText:c,buttonKind:d,buttonDisabledTooltip:null!=r?r:void 0,onButtonClick:m})},M=({mxEvent:e,ref:t})=>{const s=(0,o.useContext)(k.Ay),n=(0,x.Gc)(e.getRoomId()),i=s.getRoom(e.getRoomId()).currentState.getStateEvents(e.getType(),e.getStateKey());return"m.terminated"in i.getContent()||i.isRedacted()?o.createElement("div",{className:"mx_CallEvent_wrapper",ref:t},o.createElement("div",{className:"mx_CallEvent mx_CallEvent_inactive"},o.createElement("div",{className:"mx_CallEvent_columns"},o.createElement("span",{className:"mx_CallEvent_title"},(0,h._t)("timeline|m.call|video_call_ended")),o.createElement(I,{delta:i.getTs()-e.getTs()})))):null===n?o.createElement(T,{ref:t,mxEvent:e,call:null,participatingMembers:[],buttonText:(0,h._t)("action|join"),buttonKind:"primary",onButtonClick:null}):o.createElement(O,{mxEvent:e,call:n,ref:t})};var N=s("./src/components/views/messages/EncryptionEvent.tsx"),D=s("./node_modules/matrix-js-sdk/src/logger.ts"),j=s("./src/utils/permalinks/Permalinks.ts"),U=s("./src/MatrixClientPeg.ts"),F=s("./src/components/views/messages/EventTileBubble.tsx"),L=s("./src/hooks/useRoomState.ts"),B=s("./src/utils/permalinks/MatrixToPermalinkConstructor.ts"),V=s("./src/contexts/ScopedRoomContext.tsx");const H=({mxEvent:e,timestamp:t})=>{var s;const n=r.A.getValue("feature_dynamic_room_predecessors"),i=(0,V.ME)("room"),a=(0,L.U)(i.room,(0,o.useCallback)(e=>e.findPredecessor(n),[n])),l=(0,o.useCallback)(e=>{e.preventDefault(),A.A.dispatch({action:S.r.ViewRoom,event_id:null==a?void 0:a.eventId,highlighted:!0,room_id:null==a?void 0:a.roomId,metricsTrigger:"Predecessor",metricsViaKeyboard:"click"!==e.type})},[null==a?void 0:a.eventId,null==a?void 0:a.roomId]);if(!i.room||i.room.roomId!==e.getRoomId())return D.vF.warn("RoomPredecessorTile unexpectedly used outside of the context of theroom containing this m.room.create event."),o.createElement(o.Fragment,null);if(!a)return D.vF.warn("RoomPredecessorTile unexpectedly used in a room with no predecessor."),o.createElement("div",null);const c=U.J.safeGet().getRoom(a.roomId);if(!c&&!a.viaServers){D.vF.warn(`Failed to find predecessor room with id ${a.roomId}`);const e=function(e){const t=function(e){const t=e.match(/^[^:]*:(.*)/);return t?t[1]:null}(e);return t?(new B.Ay).forRoom(e,[t]):null}(a.roomId);return o.createElement(F.A,{className:"mx_CreateEvent",title:(0,h._t)("timeline|m.room.create|continuation"),timestamp:t},o.createElement("div",{className:"mx_EventTile_body"},o.createElement("span",{className:"mx_EventTile_tileError"},e?o.createElement(o.Fragment,null,(0,h._t)("timeline|m.room.create|unknown_predecessor_guess_server",{roomId:a.roomId}),o.createElement("a",{href:e},e)):(0,h._t)("timeline|m.room.create|unknown_predecessor",{roomId:a.roomId}))))}const d=c?function(e,t,s){const n=new j.pE(e,t);return n.load(),s?n.forEvent(s):n.forRoom()}(c,a.roomId,a.eventId):function(e,t,s){const n=new B.Ay;return s?n.forEvent(e,s,t):n.forRoom(e,t)}(a.roomId,null!==(s=null==a?void 0:a.viaServers)&&void 0!==s?s:[],a.eventId),m=o.createElement("a",{href:d,onClick:l},(0,h._t)("timeline|m.room.create|see_older_messages"));return o.createElement(F.A,{className:"mx_CreateEvent",title:(0,h._t)("timeline|m.room.create|continuation"),subtitle:m,timestamp:t})};var W=s("./src/Modal.tsx"),$=s("./src/customisations/Media.ts"),z=s("./src/components/views/avatars/RoomAvatar.tsx"),K=s("./src/components/views/elements/ImageView.tsx");class J extends o.Component{constructor(...e){super(...e),(0,c.A)(this,"onAvatarClick",()=>{const e=U.J.safeGet(),t=this.props.mxEvent,s=(0,$.mediaFromMxc)(t.getContent().url).srcHttp;if(!s)return;const n=e.getRoom(this.props.mxEvent.getRoomId()),o={src:s,name:(0,h._t)("timeline|m.room.avatar|lightbox_title",{senderDisplayName:t.sender&&t.sender.name?t.sender.name:t.getSender(),roomName:n?n.name:""})};W.Ay.createDialog(K.A,o,"mx_Dialog_lightbox",void 0,!0)})}render(){const e=this.props.mxEvent,t=e.sender&&e.sender.name?e.sender.name:e.getSender();if(!e.getContent().url||0===e.getContent().url.trim().length)return o.createElement("div",{className:"mx_TextualEvent"},(0,h._t)("timeline|m.room.avatar|removed",{senderDisplayName:t}));const s=U.J.safeGet().getRoom(e.getRoomId()),n={avatarUrl:e.getContent().url,name:s?s.name:""};return o.createElement(o.Fragment,null,(0,h._t)("timeline|m.room.avatar|changed_img",{senderDisplayName:t},{img:()=>o.createElement(v.A,{key:"avatar",className:"mx_RoomAvatarEvent_avatar",onClick:this.onAvatarClick},o.createElement(z.A,{room:null!=s?s:void 0,size:"14px",oobData:n}))}))}}var G=s("./src/stores/widgets/WidgetLayoutStore.ts"),q=s("./src/mjolnir/BanList.ts"),Y=s("./src/utils/KeyVerificationStateObserver.ts");const Z=({mxEvent:e,timestamp:t})=>{const s=(0,k.nH)();if(!s)throw new Error("Attempting to render verification request without a client context!");const n=s.getSafeUserId(),i=e.getContent(),r=e.getSender(),a=i.to,l=e.getRoomId();if(!r)throw new Error("Verification request did not include a sender!");if(!l)throw new Error("Verification request did not include a room ID!");let c,d;if(r===n)c=(0,h._t)("timeline|m.key.verification.request|you_started"),d=(0,Y.M)(s,a,l);else{const e=(0,Y.q)(s,r,l);c=(0,h._t)("timeline|m.key.verification.request|user_wants_to_verify",{name:e}),d=(0,Y.M)(s,r,l)}return o.createElement(F.A,{className:"mx_cryptoEvent mx_cryptoEvent_icon",title:c,subtitle:d,timestamp:t},o.createElement(o.Fragment,null))};var Q=s("./src/widgets/WidgetType.ts"),X=s("./src/stores/WidgetStore.ts");class ee extends o.PureComponent{render(){var e;const t=this.props.mxEvent.getContent().url,s=this.props.mxEvent.getPrevContent().url,n=(null===(e=this.props.mxEvent.sender)||void 0===e?void 0:e.name)||this.props.mxEvent.getSender(),i=U.J.safeGet().getRoom(this.props.mxEvent.getRoomId());if(!i)return null;const r=this.props.mxEvent.getStateKey(),a=X.Ay.instance.getRoom(i.roomId,!0).widgets.find(e=>e.id===r);let l=(0,h._t)("timeline|m.widget|jitsi_join_top_prompt");return a&&G.aK.instance.isInContainer(i,a,G.mc.Right)?l=(0,h._t)("timeline|m.widget|jitsi_join_right_prompt"):a||(l=null),t?s?o.createElement(F.A,{className:"mx_MJitsiWidgetEvent",title:(0,h._t)("timeline|m.widget|jitsi_updated",{senderName:n}),subtitle:l,timestamp:this.props.timestamp}):o.createElement(F.A,{className:"mx_MJitsiWidgetEvent",title:(0,h._t)("timeline|m.widget|jitsi_started",{senderName:n}),subtitle:l,timestamp:this.props.timestamp}):o.createElement(F.A,{className:"mx_MJitsiWidgetEvent",title:(0,h._t)("timeline|m.widget|jitsi_ended",{senderName:n}),timestamp:this.props.timestamp})}}var te=s("./src/TextForEvent.tsx"),se=s("./src/utils/EventUtils.ts");const ne=({mxEvent:e,ref:t})=>{let s;const n=e.messageVisibility();switch(n.visible){case!0:throw new Error("HiddenBody should only be applied to hidden messages");case!1:s=n.reason?(0,h._t)("timeline|pending_moderation_reason",{reason:n.reason}):(0,h._t)("timeline|pending_moderation")}return o.createElement("span",{className:"mx_HiddenBody",ref:t},s)};var oe=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/collapse.js"),ie=s("./node_modules/@vector-im/compound-design-tokens/assets/web/icons/expand.js");class re extends o.PureComponent{constructor(e){super(e),(0,c.A)(this,"onToggle",e=>{e.preventDefault();const{expanded:t}=this.state;this.setState({expanded:!t})}),this.state={expanded:!1}}componentDidMount(){const{mxEvent:e}=this.props;U.J.safeGet().decryptEventIfNeeded(e),e.isBeingDecrypted()&&e.once(i.MatrixEventEvent.Decrypted,()=>this.forceUpdate())}render(){const{mxEvent:e}=this.props,{expanded:t}=this.state;let s;s=t?o.createElement("pre",null,JSON.stringify(e,null,4)):o.createElement("code",null,`{ "type": ${e.getType()} }`);const n=u()("mx_ViewSourceEvent mx_EventTile_content",{mx_ViewSourceEvent_expanded:t});return o.createElement("span",{className:n},s,o.createElement(v.A,{kind:"link",title:(0,h._t)("devtools|toggle_event"),className:"mx_ViewSourceEvent_toggle",onClick:this.onToggle},t?o.createElement(oe.A,null):o.createElement(ie.A,null)))}}const ae=e=>{var t;return i.M_BEACON_INFO.matches(e.getType())&&((null===(t=e.getContent())||void 0===t?void 0:t.live)||e.isRedacted())};var le=s("./src/modules/Api.ts"),ce=s("./src/viewmodels/base/BaseViewModel.ts");class de extends ce.o{constructor(e){super(e,{content:""}),(0,c.A)(this,"setTextFromEvent",()=>{const e=(0,te.Rd)(this.props.mxEvent,U.J.safeGet(),!0,this.props.showHiddenEvents);this.snapshot.set({content:e})}),this.setTextFromEvent(),this.disposables.trackListener(this.props.mxEvent,i.MatrixEventEvent.SentinelUpdated,this.setTextFromEvent)}}var me=s("./packages/shared-components/src/useViewModel.ts");function ue({vm:e}){const t=(0,me.i)(e);return o.createElement("div",{className:"mx_TextualEvent"},t.content)}var he=s("./src/call-types.ts");const pe=(e,t)=>o.createElement(l.A,(0,n.A)({ref:e},t)),ge=(e,t)=>o.createElement(M,(0,n.A)({ref:e},t)),ve=(e,t)=>{const s=new de(t);return o.createElement(ue,{vm:s})},_e=(e,t)=>o.createElement(Z,t),fe=(e,t)=>o.createElement(ne,(0,n.A)({ref:e},t)),ye=(e,t)=>o.createElement(ee,(0,n.A)({ref:e},t)),be=(e,t)=>o.createElement(re,(0,n.A)({ref:e},t)),Ee=new Map([[i.EventType.RoomMessage,pe],[i.EventType.Sticker,pe],[i.M_POLL_START.name,pe],[i.M_POLL_START.altName,pe],[i.M_POLL_END.name,pe],[i.M_POLL_END.altName,pe],[i.EventType.CallInvite,(e,t)=>o.createElement(E,(0,n.A)({ref:e},t))]]),we=new Map([[i.EventType.RoomEncryption,(e,t)=>o.createElement(N.A,(0,n.A)({ref:e},t))],[i.EventType.RoomCanonicalAlias,ve],[i.EventType.RoomCreate,(e,t)=>o.createElement(H,t)],[i.EventType.RoomMember,ve],[i.EventType.RoomName,ve],[i.EventType.RoomAvatar,(e,t)=>o.createElement(J,(0,n.A)({ref:e},t))],[i.EventType.RoomThirdPartyInvite,ve],[i.EventType.RoomHistoryVisibility,ve],[i.EventType.RoomTopic,ve],[i.EventType.RoomPowerLevels,ve],[i.EventType.RoomPinnedEvents,ve],[i.EventType.RoomServerAcl,ve],["im.vector.modular.widgets",ve],[G.SQ,ve],[i.EventType.RoomTombstone,ve],[i.EventType.RoomJoinRules,ve],[i.EventType.RoomGuestAccess,ve]]);for(const e of he.Fm.names)we.set(e,ge);for(const e of q.Pd)we.set(e,ve);const xe=new Set([i.EventType.RoomEncryption,i.EventType.RoomCanonicalAlias,i.EventType.RoomCreate,i.EventType.RoomName,i.EventType.RoomAvatar,i.EventType.RoomHistoryVisibility,i.EventType.RoomTopic,i.EventType.RoomPowerLevels,i.EventType.RoomPinnedEvents,i.EventType.RoomServerAcl,G.SQ,i.EventType.RoomTombstone,i.EventType.RoomJoinRules,i.EventType.RoomGuestAccess]);function Ae(e,t,s,n){var o;const a=e.getType();if(n&&s)return be;const l=()=>s?be:void 0;if((0,se.$k)(e,t)===se.H3.HIDDEN_TO_CURRENT_USER)return fe;if(a===i.EventType.RoomMessage){const s=e.getContent();if((null==s?void 0:s.msgtype)===i.MsgType.KeyVerificationRequest){const n=t.getUserId();return e.getSender()!==n&&s.to!==n?l():_e}}if(a===i.EventType.RoomCreate){var c;const s=r.A.getValue("feature_dynamic_room_predecessors");if(!(null===(c=t.getRoom(e.getRoomId()))||void 0===c?void 0:c.findPredecessor(s)))return l()}if("im.vector.modular.widgets"===a){let t=e.getContent().type;if(t||(t=e.getPrevContent().type),Q.x.JITSI.matches(t))return ye}var d;return e.isState()?ae(e)?pe:xe.has(a)&&""!==e.getStateKey()?l():(we.get(a)!==ve||(0,te.I3)(e,t,s))&&null!==(d=we.get(a))&&void 0!==d?d:l():e.isRedacted()?pe:e.isRelation(i.RelationType.Replace)?l():null!==(o=Ee.get(a))&&void 0!==o?o:l()}function Se(e,t,s){s=null!=s?s:U.J.safeGet();const n=Ae(t.mxEvent,s,t.showHiddenEvents);if(!n)return le.A.customComponents.renderMessage({mxEvent:t.mxEvent});const{ref:o,mxEvent:i,forExport:r,replacingEventId:l,editState:c,highlights:d,highlightLink:m,showUrlPreview:u,permalinkCreator:h,callEventGrouper:p,getRelationsForEvent:g,isSeeingThroughMessageHiddenForModeration:v,timestamp:_,inhibitInteraction:f,showHiddenEvents:y}=t;switch(e){case a.Ae.File:case a.Ae.Notification:case a.Ae.Thread:return le.A.customComponents.renderMessage({mxEvent:t.mxEvent},e=>{var s;return n(t.ref,{mxEvent:i,highlights:d,highlightLink:m,showUrlPreview:null!==(s=null==e?void 0:e.showUrlPreview)&&void 0!==s?s:u,editState:c,replacingEventId:l,getRelationsForEvent:g,isSeeingThroughMessageHiddenForModeration:v,permalinkCreator:h,inhibitInteraction:f,showHiddenEvents:y})});default:return le.A.customComponents.renderMessage({mxEvent:t.mxEvent},e=>{var t;return n(o,{mxEvent:i,forExport:r,replacingEventId:l,editState:c,highlights:d,highlightLink:m,showUrlPreview:null!==(t=null==e?void 0:e.showUrlPreview)&&void 0!==t?t:u,permalinkCreator:h,callEventGrouper:p,getRelationsForEvent:g,isSeeingThroughMessageHiddenForModeration:v,timestamp:_,inhibitInteraction:f,showHiddenEvents:y})})}}function Ce(e,t,s){s=null!=s?s:U.J.safeGet();const n=Ae(e.mxEvent,s,t);if(!n)return le.A.customComponents.renderMessage({mxEvent:e.mxEvent});const{ref:o,mxEvent:i,highlights:r,highlightLink:a,showUrlPreview:l,overrideBodyTypes:c,overrideEventTypes:d,replacingEventId:m,maxImageHeight:u,getRelationsForEvent:h,isSeeingThroughMessageHiddenForModeration:p,permalinkCreator:g}=e;return le.A.customComponents.renderMessage({mxEvent:e.mxEvent},e=>{var s;return n(o,{mxEvent:i,highlights:r,highlightLink:a,showUrlPreview:null!==(s=null==e?void 0:e.showUrlPreview)&&void 0!==s?s:l,overrideBodyTypes:c,overrideEventTypes:d,replacingEventId:m,maxImageHeight:u,getRelationsForEvent:h,isSeeingThroughMessageHiddenForModeration:p,permalinkCreator:g,showHiddenEvents:t})})}const Re=[i.EventType.RoomMessage,i.EventType.Sticker];function ke(e){return Re.includes(e.getType())||i.M_POLL_START.matches(e.getType())||i.M_POLL_END.matches(e.getType())}function Ie(e,t,s){if(e.isRedacted()&&!e.isEncrypted()&&!ke(e)&&!e.isState())return!1;if(le.A.customComponents.getHintsForMessage(e))return!0;if(e.isRelation(i.RelationType.Replace))return!1;const n=Ae(e,t,s);if(!n)return!1;if(n===ve)return(0,te.I3)(e,t,s);if(n===we.get(i.EventType.RoomCreate)){var o;const s=r.A.getValue("feature_dynamic_room_predecessors"),n=null===(o=t.getRoom(e.getRoomId()))||void 0===o?void 0:o.findPredecessor(s);return Boolean(n)}if(he.Fm.names.some(e=>n===we.get(e))){const t=e.getContent()["m.intent"];return 0===Object.keys(e.getPrevContent()).length&&"string"==typeof t&&t!==i.GroupCallIntent.Room}return n!==be}},"./src/events/forward/getForwardableEvent.ts":(e,t,s)=>{"use strict";s.d(t,{e:()=>i});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./src/utils/beacon/getShareableLocation.ts");const i=(e,t)=>n.M_POLL_START.matches(e.getType())||n.M_POLL_END.matches(e.getType())?null:n.M_BEACON_INFO.matches(e.getType())?(0,o.q)(e,t):e},"./src/events/location/getShareableLocationEvent.ts":(e,t,s)=>{"use strict";s.d(t,{V:()=>r});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./src/utils/beacon/getShareableLocation.ts"),i=s("./src/utils/EventUtils.ts");const r=(e,t)=>(0,i.wq)(e)?e:n.M_BEACON_INFO.matches(e.getType())?(0,o.q)(e,t):null},"./src/favicon.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>d,J:()=>l});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");function o(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function i(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?o(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):o(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const r={bgColor:"#d00",textColor:"#fff",fontFamily:"sans-serif",fontWeight:"bold",isUp:!1,isLeft:!1};class a{constructor(e=r,t){(0,n.A)(this,"canvas",void 0),(0,n.A)(this,"context",void 0),this.params=e,this.baseImage=t,this.canvas=document.createElement("canvas");const s=this.canvas.getContext("2d");if(!s)throw Error("Could not get canvas context");this.context=s}options(e,t){const s={n:"number"==typeof e?Math.abs(0|e):e,len:(""+e).length,x:.4,y:.4,w:.6,h:.6};return t.isUp&&(s.y<.6?s.y=s.y-.4:s.y=s.y-2*s.y+(1-s.w)),t.isLeft&&(s.x<.6?s.x=s.x-.4:s.x=s.x-2*s.x+(1-s.h)),s.x=this.canvas.width*s.x,s.y=this.canvas.height*s.y,s.w=this.canvas.width*s.w,s.h=this.canvas.height*s.h,s}circle(e,t){const s=i(i({},this.params),t),n=this.options(e,s);let o=!1;this.baseImage||(n.x=0,n.y=0,n.w=this.canvas.width,n.h=this.canvas.height),2===n.len?(n.x=n.x-.4*n.w,n.w=1.4*n.w,o=!0):n.len>=3&&(n.x=n.x-.65*n.w,n.w=1.65*n.w,o=!0),this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.baseImage&&this.context.drawImage(this.baseImage,0,0,this.canvas.width,this.canvas.height),this.context.beginPath();const r=Math.floor(n.h*("number"==typeof n.n&&n.n>99?.85:1))+"px";if(this.context.font=`${s.fontWeight} ${r} ${s.fontFamily}`,this.context.textAlign="center",o?(this.context.moveTo(n.x+n.w/2,n.y),this.context.lineTo(n.x+n.w-n.h/2,n.y),this.context.quadraticCurveTo(n.x+n.w,n.y,n.x+n.w,n.y+n.h/2),this.context.lineTo(n.x+n.w,n.y+n.h-n.h/2),this.context.quadraticCurveTo(n.x+n.w,n.y+n.h,n.x+n.w-n.h/2,n.y+n.h),this.context.lineTo(n.x+n.h/2,n.y+n.h),this.context.quadraticCurveTo(n.x,n.y+n.h,n.x,n.y+n.h-n.h/2),this.context.lineTo(n.x,n.y+n.h/2),this.context.quadraticCurveTo(n.x,n.y,n.x+n.h/2,n.y)):this.context.arc(n.x+n.w/2,n.y+n.h/2,n.h/2,0,2*Math.PI),this.context.fillStyle=s.bgColor,this.context.fill(),this.context.closePath(),this.context.beginPath(),this.context.stroke(),this.context.fillStyle=s.textColor,"number"==typeof n.n&&n.n>999){const e=(n.n>9999?9:Math.floor(n.n/1e3))+"k+";this.context.fillText(e,Math.floor(n.x+n.w/2),Math.floor(n.y+n.h-.2*n.h))}else this.context.fillText(""+n.n,Math.floor(n.x+n.w/2),Math.floor(n.y+n.h-.15*n.h));this.context.closePath()}}class l extends a{constructor(){super(),this.canvas.width=16,this.canvas.height=16}async render(e,t){return 0===e?null:(this.circle(e,i({},t?{bgColor:t}:void 0)),new Promise((e,t)=>{this.canvas.toBlob(s=>{s&&e(s.arrayBuffer()),t(new Error("Could not render badge overlay as blob"))},"image/png",1)}))}}const c=144;class d extends a{constructor(){const e=document.createElement("img");super(r,e),(0,n.A)(this,"browser",{ff:void 0!==window.InstallTrigger,opera:!!window.opera||navigator.userAgent.includes("Opera")}),(0,n.A)(this,"icons",void 0),(0,n.A)(this,"isReady",!1),(0,n.A)(this,"readyCb",void 0),this.icons=d.getIcons();const t=this.icons[this.icons.length-1];t.hasAttribute("href")?(e.setAttribute("crossOrigin","anonymous"),e.onload=()=>{this.canvas.height=e.height>0?e.height:c,this.canvas.width=e.width>0?e.width:c,this.ready()},e.setAttribute("src",t.getAttribute("href"))):(this.canvas.height=e.height=c,this.canvas.width=e.width=c,this.ready())}reset(){this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.context.drawImage(this.baseImage,0,0,this.canvas.width,this.canvas.height)}ready(){var e;this.isReady||(this.isReady=!0,null===(e=this.readyCb)||void 0===e||e.call(this))}setIcon(e){setTimeout(()=>{this.setIconSrc(e.toDataURL("image/png"))},0)}setIconSrc(e){if(this.browser.ff||this.browser.opera){var t;const s=this.icons[this.icons.length-1],n=window.document.createElement("link");this.icons=[n],n.setAttribute("rel","icon"),n.setAttribute("type","image/png"),window.document.getElementsByTagName("head")[0].appendChild(n),n.setAttribute("href",e),null===(t=s.parentNode)||void 0===t||t.removeChild(s)}else this.icons.forEach(t=>{t.setAttribute("href",e)})}badge(e,t){this.isReady?("string"==typeof e||e>0?this.circle(e,t):this.reset(),this.setIcon(this.canvas)):this.readyCb=()=>{this.badge(e,t)}}static getLinks(){const e=[],t=window.document.getElementsByTagName("head")[0].getElementsByTagName("link");for(const s of t)s.hasAttribute("rel")&&/(^|\s)icon(\s|$)/i.test(s.getAttribute("rel"))&&e.push(s);return e}static getIcons(){let e=d.getLinks();return 0===e.length&&(e=[window.document.createElement("link")],e[0].setAttribute("rel","icon"),window.document.getElementsByTagName("head")[0].appendChild(e[0])),e}}},"./src/hooks/room/useRoomMemberProfile.ts":(e,t,s)=>{"use strict";s.d(t,{s:()=>a});var n=s("./node_modules/react/index.js"),o=s("./src/contexts/RoomContext.ts"),i=s("./src/hooks/useSettings.ts"),r=s("./src/contexts/ScopedRoomContext.tsx");function a({userId:e="",member:t,forceHistorical:s=!1}){const a=(0,r.ME)("room","timelineRenderingType"),l=(0,i.ti)("useOnlyCurrentProfiles");return(0,n.useMemo)(()=>{const n=[o.Ae.ThreadsList,o.Ae.Thread];if(!s&&l||n.includes(a.timelineRenderingType)){var i;const t=null===(i=a.room)||void 0===i?void 0:i.getMember(e);if(t)return t}return t},[s,t,a.room,a.timelineRenderingType,l,e])}},"./src/hooks/useAsyncMemo.ts":(e,t,s)=>{"use strict";s.d(t,{e:()=>o});var n=s("./node_modules/react/index.js");function o(e,t,s){const[o,i]=(0,n.useState)(s);return(0,n.useEffect)(()=>{let t=!1;return e().then(e=>{t||i(e)}),()=>{t=!0}},t),o}},"./src/hooks/useCall.ts":(e,t,s)=>{"use strict";s.d(t,{Gc:()=>c,IW:()=>p,Jf:()=>d,Rv:()=>g,jd:()=>m,q0:()=>h});var n=s("./node_modules/react/index.js"),o=s("./src/models/Call.ts"),i=s("./src/hooks/useEventEmitter.ts"),r=s("./src/stores/CallStore.ts"),a=s("./src/SdkConfig.ts"),l=s("./src/languageHandler.tsx");const c=e=>{const[t,s]=(0,n.useState)(()=>r.e.instance.getCall(e));return(0,i.ml)(r.e.instance,r.s.Call,(t,n)=>{n===e&&s(t)}),(0,n.useEffect)(()=>{s(r.e.instance.getCall(e))},[e]),t},d=(e,t)=>{const s=c(t);return(null==s?void 0:s.widget.id)===e?s:null},m=e=>(0,i.DY)(null!=e?e:void 0,o.$E.ConnectionState,(0,n.useCallback)(t=>{var s;return null!==(s=null!=t?t:null==e?void 0:e.connectionState)&&void 0!==s?s:o.KN.Disconnected},[e])),u=e=>(0,i.DY)(null!=e?e:void 0,o.$E.Participants,(0,n.useCallback)(t=>{var s;return null!==(s=null!=t?t:null==e?void 0:e.participants)&&void 0!==s?s:[]},[e])),h=e=>{const t=u(e);return(0,n.useMemo)(()=>{let e=0;for(const s of t.values())e+=s.size;return e},[t])},p=e=>{const t=u(e);return(0,n.useMemo)(()=>{const e=[];for(const[s,n]of t)for(let t=0;t<n.size;t++)e.push(s);return e},[t])},g=e=>{const t=(e=>{var t;return h(e)>=(null!==(t=a.Ay.get("element_call").participant_limit)&&void 0!==t?t:a.zY.element_call.participant_limit)})(e);return t?(0,l._t)("voip|join_button_tooltip_call_full"):null}},"./src/hooks/useDispatcher.ts":(e,t,s)=>{"use strict";s.d(t,{F:()=>o});var n=s("./node_modules/react/index.js");const o=(e,t)=>{const s=(0,n.useRef)(e=>{});(0,n.useEffect)(()=>{s.current=t},[t]),(0,n.useEffect)(()=>{const t=e.register(e=>s.current(e));return()=>{e.unregister(t)}},[e])}},"./src/hooks/useDownloadMedia.ts":(e,t,s)=>{"use strict";s.d(t,{Q:()=>u});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./src/components/views/dialogs/ErrorDialog.tsx"),a=s("./src/languageHandler.tsx"),l=s("./src/Modal.tsx"),c=s("./src/utils/FileDownloader.ts"),d=s("./src/utils/MediaEventHelper.ts"),m=s("./src/modules/Api.ts");function u(e,t,s){const u=(0,o.useRef)(new c.s).current,h=(0,o.useRef)(null),[p,g]=(0,o.useState)(!1),[v,_]=(0,o.useState)(!0),f=(0,o.useMemo)(()=>s?new d.j(s):void 0,[s]);(0,o.useEffect)(()=>{if(!s)return;const e=m.A.customComponents.getHintsForMessage(s);null!=e&&e.allowDownloadingMedia?(_(!1),e.allowDownloadingMedia().then(_).catch(e=>{i.vF.error(`Failed to check media download permission for ${s.event.event_id}`,e),_(!1)})):_(!0)},[s]);const y=async e=>{var s,n;await u.download({blob:e,name:null!==(s=null!==(n=null==f?void 0:f.fileName)&&void 0!==n?n:t)&&void 0!==s?s:(0,a._t)("common|image")}),g(!1)},b=e=>{l.Ay.createDialog(r.A,{title:(0,a._t)("timeline|download_failed"),description:`${(0,a._t)("timeline|download_failed_description")}\n\n${String(e)}`}),g(!1)};return{download:async()=>{if(!p)try{if(g(!0),h.current)return y(h.current);if(f)h.current=await f.sourceBlob.value;else{const t=await fetch(e);if(!t.ok)throw(0,n.parseErrorResponse)(t,await t.text());h.current=await t.blob()}await y(h.current)}catch(e){b(e)}},loading:p,canDownload:v}}},"./src/hooks/useEventEmitter.ts":(e,t,s)=>{"use strict";s.d(t,{DY:()=>r,E6:()=>c,H8:()=>l,YK:()=>o,dF:()=>a,ml:()=>i});var n=s("./node_modules/react/index.js");function o(e,t,s){i(e,t,s)}function i(e,t,s){const o=(0,n.useRef)(s);(0,n.useEffect)(()=>{o.current=s},[s]),(0,n.useEffect)(()=>{if(!e)return;const s=(...e)=>o.current(...e);return e.on(t,s),()=>{e.off(t,s)}},[t,e])}function r(e,t,s){return a(e,t,s)}function a(e,t,s){const[o,r]=(0,n.useState)(s),a=(0,n.useCallback)((...e)=>{r(s(...e))},[s]);return(0,n.useEffect)(a,[e]),i(e,t,a),o}function l(e,t,s,o,r){const[a,l]=(0,n.useState)(r);let d=!1;const m=[],u=(0,n.useCallback)((...e)=>{d?m.push(e):(d=!0,s(...e).then(e=>{e instanceof c||l(e)}).finally(()=>{d=!1,0!=m.length&&u(...m.shift())}))},[s,...o]);return(0,n.useEffect)(u,[e,u,...o]),i(e,t,u),a}class c{}},"./src/hooks/useFocus.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>o});var n=s("./node_modules/react/index.js");function o(){const[e,t]=(0,n.useState)(!1);return[e,{onFocus:()=>t(!0),onBlur:()=>t(!1)}]}},"./src/hooks/useIsEncrypted.ts":(e,t,s)=>{"use strict";s.d(t,{Y:()=>a,g:()=>l});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./src/hooks/useRoomState.ts"),i=s("./src/hooks/useAsyncMemo.ts"),r=s("./src/models/LocalRoom.ts");async function a(e,t){return e instanceof r.Np?e.isEncryptionEnabled():await t.isEncryptionEnabledInRoom(e.roomId)}function l(e,t){const s=(0,o.U)(t,e=>{var t;return null===(t=e.getStateEvents(n.EventType.RoomEncryption))||void 0===t?void 0:t[0]});return(0,i.e)(async()=>{const s=e.getCrypto();return t&&s?a(t,s):null},[t,s],null)}},"./src/hooks/useLocalEcho.ts":(e,t,s)=>{"use strict";s.d(t,{W:()=>o});var n=s("./node_modules/react/index.js");const o=(e,t,s)=>{const[o,i]=(0,n.useState)(e);return[o,async n=>{i(n);try{await t(n)}catch(t){i(e()),s(t)}}]}},"./src/hooks/useMediaVisible.ts":(e,t,s)=>{"use strict";s.d(t,{E:()=>g});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./src/settings/SettingLevel.ts"),a=s("./src/hooks/useSettings.ts"),l=s("./src/settings/SettingsStore.ts"),c=s("./src/contexts/MatrixClientContext.tsx"),d=s("./src/@types/media_preview.ts"),m=s("./src/hooks/useRoomState.ts");function u(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function h(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?u(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):u(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const p=[i.JoinRule.Invite,i.JoinRule.Knock,i.JoinRule.Restricted];function g(e){var t;const s=null==e?void 0:e.getId(),n=(0,a.ti)("mediaPreviewConfig",null==e?void 0:e.getRoomId()),i=(0,c.nH)(),u=(0,a.ti)("showMediaEventIds"),g=null!==(t=i.getRoom(null==e?void 0:e.getRoomId()))&&void 0!==t?t:void 0,v=(0,m.U)(g,e=>e.getJoinRule()),_=(0,o.useCallback)(e=>{l.A.setValue("showMediaEventIds",null,r.p.DEVICE,h(h({},u),{},{[s]:e}))},[s,u]),f=!!v&&p.includes(v),y=s?u[s]:void 0;return void 0!==y?[y,_]:(null==e?void 0:e.getSender())===i.getUserId()?[!0,_]:n.media_previews===d.M.Off?[!1,_]:n.media_previews===d.M.On?[!0,_]:n.media_previews===d.M.Private?[f,_]:(console.warn("Invalid media visibility setting",n.media_previews),[!1,_])}},"./src/hooks/useRoomNotificationState.ts":(e,t,s)=>{"use strict";s.d(t,{I:()=>l});var n=s("./node_modules/react/index.js"),o=s("./src/stores/local-echo/EchoChamber.ts"),i=s("./src/stores/local-echo/GenericEchoChamber.ts"),r=s("./src/stores/local-echo/RoomEchoChamber.ts"),a=s("./src/hooks/useEventEmitter.ts");const l=e=>{const t=(0,n.useMemo)(()=>o.s.forRoom(e),[e]),[s,l]=(0,n.useState)(t.notificationVolume);(0,a.ml)(t,i.Qj,e=>{e===r.Z.NotificationVolume&&void 0!==t.notificationVolume&&l(t.notificationVolume)});return[s,(0,n.useCallback)(e=>t.notificationVolume=e,[t])]}},"./src/hooks/useRoomState.ts":(e,t,s)=>{"use strict";s.d(t,{U:()=>a});var n=s("./node_modules/react/index.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./src/hooks/useEventEmitter.ts");const r=e=>e,a=(e,t=r)=>{const s=(0,n.useRef)(t);(0,n.useEffect)(()=>{s.current=t},[t]);const[a,l]=(0,n.useState)(e?t(e.currentState):void 0),c=(0,n.useCallback)(()=>{e&&l(s.current(e.currentState))},[e]);return(0,i.YK)(null==e?void 0:e.currentState,o.RoomStateEvent.Update,c),(0,n.useEffect)(()=>(c(),()=>{l(e?s.current(e.currentState):void 0)}),[e,c]),a}},"./src/hooks/useSettings.ts":(e,t,s)=>{"use strict";s.d(t,{ny:()=>a,ti:()=>i,wL:()=>r});var n=s("./node_modules/react/index.js"),o=s("./src/settings/SettingsStore.ts");function i(e,t=null,s=!1){const[i,r]=(0,n.useState)(o.A.getValue(e,t,s));return(0,n.useEffect)(()=>{const n=o.A.watchSetting(e,t,()=>{r(o.A.getValue(e,t,s))});return()=>{o.A.unwatchSetting(n)}},[e,t,s]),i}const r=(e,t,s=null,i=!1,r=!1)=>{const[a,l]=(0,n.useState)(o.A.getValueAt(e,t,s,i,r));return(0,n.useEffect)(()=>{const n=o.A.watchSetting(t,s,()=>{l(o.A.getValueAt(e,t,s,i,r))});return()=>{o.A.unwatchSetting(n)}},[e,t,s,i,r]),a},a=(e,t=null)=>{const[s,i]=(0,n.useState)(o.A.getValue(e,t));return(0,n.useEffect)(()=>{const s=o.A.watchSetting(e,t,()=>{i(o.A.getValue(e,t))});return()=>{o.A.unwatchSetting(s)}},[e,t]),s}},"./src/hooks/useStateToggle.ts":(e,t,s)=>{"use strict";s.d(t,{X:()=>o});var n=s("./node_modules/react/index.js");const o=(e=!1)=>{const[t,s]=(0,n.useState)(e);return[t,()=>{s(!t)},s]}},"./src/hooks/useTimeout.ts":(e,t,s)=>{"use strict";s.d(t,{$$:()=>o,kD:()=>i});var n=s("./node_modules/react/index.js");const o=(e,t)=>{const s=(0,n.useRef)(void 0);(0,n.useEffect)(()=>{s.current=e},[e]),(0,n.useEffect)(()=>{const e=window.setInterval(()=>{var e;null===(e=s.current)||void 0===e||e.call(s)},t);return()=>clearInterval(e)},[t])},i=(e,t,s)=>{const[i,r]=(0,n.useState)(s);return o(()=>r(e=>e-1),t),0===i&&e(),i}},"./src/hooks/useUnreadNotifications.ts":(e,t,s)=>{"use strict";s.d(t,{X:()=>l});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./node_modules/react/index.js"),i=s("./src/RoomNotifs.ts"),r=s("./src/stores/notifications/NotificationLevel.ts"),a=s("./src/hooks/useEventEmitter.ts");const l=(e,t)=>{const[s,l]=(0,o.useState)(null),[c,d]=(0,o.useState)(0),[m,u]=(0,o.useState)(r.S.None);(0,a.ml)(e,n.RoomEvent.UnreadNotifications,(e,s)=>{t&&t!==s||h()}),(0,a.ml)(e,n.RoomEvent.Receipt,()=>h()),(0,a.ml)(e,n.RoomEvent.Timeline,()=>h()),(0,a.ml)(e,n.RoomEvent.Redaction,()=>h()),(0,a.ml)(e,n.RoomEvent.LocalEchoUpdated,()=>h()),(0,a.ml)(e,n.RoomEvent.MyMembership,()=>h());const h=(0,o.useCallback)(()=>{const{symbol:s,count:n,level:o}=(0,i.m5)(e,t,!1);l(s),d(n),u(o)},[e,t]);return(0,o.useEffect)(()=>{h()},[h]),{symbol:s,count:c,level:m}}},"./src/integrations/IntegrationManagers.ts":(e,t,s)=>{"use strict";s.d(t,{J:()=>T});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/logger.ts"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./src/SdkConfig.ts"),a=s("./src/Modal.tsx"),l=s("./src/settings/SettingsStore.ts"),c=s("./src/Terms.ts"),d=s("./src/MatrixClientPeg.ts"),m=s("./src/utils/UrlUtils.ts");class u{constructor(e,t){(0,n.A)(this,"scalarToken",void 0),(0,n.A)(this,"termsInteractionCallback",void 0),(0,n.A)(this,"isDefaultManager",void 0),this.apiUrl=e,this.uiUrl=t,this.scalarToken=null,this.termsInteractionCallback=void 0;const s=r.Ay.get("integrations_rest_url"),o=r.Ay.get("integrations_ui_url");this.isDefaultManager=e===s&&o===t}writeTokenToStore(){var e;window.localStorage.setItem("mx_scalar_token_at_"+this.apiUrl,null!==(e=this.scalarToken)&&void 0!==e?e:""),this.isDefaultManager&&window.localStorage.removeItem("mx_scalar_token")}readTokenFromStore(){let e=window.localStorage.getItem("mx_scalar_token_at_"+this.apiUrl);return!e&&this.isDefaultManager&&(e=window.localStorage.getItem("mx_scalar_token")),e}readToken(){return this.scalarToken?this.scalarToken:this.readTokenFromStore()}setTermsInteractionCallback(e){this.termsInteractionCallback=e}connect(){return this.getScalarToken().then(e=>{this.scalarToken=e})}hasCredentials(){return null!=this.scalarToken}getScalarToken(){const e=this.readToken();return e?this.checkToken(e).catch(e=>{if(e instanceof c.lO)throw e;return this.registerForToken()}):this.registerForToken()}async getAccountName(e){const t=new URL(this.apiUrl+"/account");t.searchParams.set("scalar_token",e),t.searchParams.set("v","1.1");const s=await fetch(t,{method:"GET"}),n=await s.json();if("M_TERMS_NOT_SIGNED"===(null==n?void 0:n.errcode))throw new c.lO;if(!s.ok)throw n;if(null==n||!n.user_id)throw new Error("Missing user_id in response");return n.user_id}checkToken(e){return this.getAccountName(e).then(t=>{const s=d.J.safeGet().getUserId();if(t!==s)throw new Error("Scalar token is owned by someone else: "+s);return e}).catch(t=>{if(t instanceof c.lO){o.vF.log("Integration manager requires new terms to be agreed to");const t=(0,m.Dl)(this.apiUrl);return t.pathname="",(0,c.gw)(d.J.safeGet(),[new c.kl(i.SERVICE_TYPES.IM,t.toString(),e)],this.termsInteractionCallback).then(()=>e)}throw t})}registerForToken(){return d.J.safeGet().getOpenIdToken().then(e=>this.exchangeForScalarToken(e)).then(e=>this.checkToken(e)).then(e=>(this.scalarToken=e,this.writeTokenToStore(),e))}async exchangeForScalarToken(e){const t=new URL(this.apiUrl+"/register");t.searchParams.set("v","1.1");const s=await fetch(t,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json"}});if(!s.ok)throw new Error(`Scalar request failed: ${s.status}`);const n=await s.json();if(null==n||!n.scalar_token)throw new Error("Missing scalar_token in response");return n.scalar_token}async getScalarPageTitle(e){var t;const s=new URL(this.getStarterLink(this.apiUrl+"/widgets/title_lookup"));s.searchParams.set("curl",encodeURIComponent(e));const n=await fetch(s,{method:"GET"});if(!n.ok)throw new Error(`Scalar request failed: ${n.status}`);const o=await n.json();return null==o||null===(t=o.page_title_cache_item)||void 0===t?void 0:t.cached_title}async disableWidgetAssets(e,t){const s=new URL(this.getStarterLink(this.apiUrl+"/widgets/set_assets_state"));s.searchParams.set("widget_type",e.preferred),s.searchParams.set("widget_id",t),s.searchParams.set("state","disable");const n=await fetch(s,{method:"GET"});if(!n.ok)throw new Error(`Scalar request failed: ${n.status}`);if(!await n.text())throw new Error("Failed to set widget assets state")}getScalarInterfaceUrlForRoom(e,t,s){const n=e.roomId,o=e.name;let i=this.uiUrl;return this.scalarToken&&(i+="?scalar_token="+encodeURIComponent(this.scalarToken)),i+="&room_id="+encodeURIComponent(n),i+="&room_name="+encodeURIComponent(o),i+="&theme="+encodeURIComponent(l.A.getValue("theme")),s&&(i+="&integ_id="+encodeURIComponent(s)),t&&(i+="&screen="+encodeURIComponent(t)),i}getStarterLink(e){return this.scalarToken?e+"?scalar_token="+encodeURIComponent(this.scalarToken):e}}var h=s("./node_modules/react/index.js"),p=s("./src/languageHandler.tsx"),g=s("./src/dispatcher/dispatcher.ts"),v=s("./src/components/views/elements/Spinner.tsx"),_=s("./src/KeyBindingsManager.ts"),f=s("./src/accessibility/KeyboardShortcuts.ts"),y=s("./src/components/views/typography/Heading.tsx");class b extends h.Component{constructor(...e){super(...e),(0,n.A)(this,"dispatcherRef",void 0),(0,n.A)(this,"state",{errored:!1}),(0,n.A)(this,"onKeyDown",e=>{if((0,_.zM)().getAccessibilityAction(e)===f.bY.Escape)e.stopPropagation(),e.preventDefault(),this.props.onFinished()}),(0,n.A)(this,"onAction",e=>{"close_scalar"===e.action&&this.props.onFinished()}),(0,n.A)(this,"onError",()=>{this.setState({errored:!0})})}componentDidMount(){this.dispatcherRef=g.A.register(this.onAction),document.addEventListener("keydown",this.onKeyDown)}componentWillUnmount(){g.A.unregister(this.dispatcherRef),document.removeEventListener("keydown",this.onKeyDown)}render(){return this.props.loading?h.createElement("div",{className:"mx_IntegrationManager_loading"},h.createElement(y.A,{size:"3"},(0,p._t)("integration_manager|connecting")),h.createElement(v.A,null)):!this.props.connected||this.state.errored?h.createElement("div",{className:"mx_IntegrationManager_error"},h.createElement(y.A,{size:"3"},(0,p._t)("integration_manager|error_connecting_heading")),h.createElement("p",null,(0,p._t)("integration_manager|error_connecting"))):h.createElement("iframe",{title:(0,p._t)("common|integration_manager"),src:this.props.url,onError:this.onError})}}(0,n.A)(b,"defaultProps",{connected:!0,loading:!1});let E=function(e){return e.Account="account",e.Config="config",e.Homeserver="homeserver",e}({});class w{constructor(e,t,s=t,n){this.kind=e,this.apiUrl=t,this.uiUrl=s,this.id=n}get name(){var e;return null!==(e=(0,m.Dl)(this.uiUrl).host)&&void 0!==e?e:""}get trimmedApiUrl(){const e=(0,m.Dl)(this.apiUrl);return e.pathname="",e.toString()}getScalarClient(){return new u(this.apiUrl,this.uiUrl)}async open(e,t,s){if(!l.A.getValue("integrationProvisioning"))return T.sharedInstance().showDisabledDialog();const n=a.Ay.createDialog(b,{loading:!0},"mx_IntegrationManager"),i=this.getScalarClient();i.setTermsInteractionCallback((e,t)=>(0,c.Lo)(e,t,"mx_TermsDialog_forIntegrationManager"));const r={};try{await i.connect(),i.hasCredentials()?r.url=i.getScalarInterfaceUrlForRoom(e,t,s):r.connected=!1}catch(e){if(e instanceof c.lO)return void n.close();o.vF.error(e),r.connected=!1}n.close(),a.Ay.createDialog(b,r,"mx_IntegrationManager")}}var x=s("./src/components/views/dialogs/BaseDialog.tsx"),A=s("./src/components/views/elements/DialogButtons.tsx");class S extends h.Component{constructor(...e){super(...e),(0,n.A)(this,"onAcknowledgeClick",()=>{this.props.onFinished()})}render(){const e=r.Ay.get().brand;return h.createElement(x.A,{className:"mx_IntegrationsImpossibleDialog",hasCancel:!1,onFinished:this.props.onFinished,title:(0,p._t)("integrations|impossible_dialog_title")},h.createElement("div",{className:"mx_IntegrationsImpossibleDialog_content"},h.createElement("p",null,(0,p._t)("integrations|impossible_dialog_description",{brand:e}))),h.createElement(A.A,{primaryButton:(0,p._t)("action|ok"),onPrimaryButtonClick:this.onAcknowledgeClick,hasCancel:!1}))}}var C=s("./src/dispatcher/actions.ts"),R=s("./src/components/views/dialogs/UserTab.ts");const k=({onFinished:e})=>{const t=(0,h.useCallback)(()=>{e(),g.A.dispatch({action:C.r.ViewUserSettings,initialTabId:R.v.Security})},[e]);return h.createElement(x.A,{className:"mx_IntegrationsDisabledDialog",hasCancel:!0,onFinished:e,title:(0,p._t)("integrations|disabled_dialog_title")},h.createElement("div",{className:"mx_IntegrationsDisabledDialog_content"},h.createElement("p",null,(0,p._t)("integrations|disabled_dialog_description",{manageIntegrations:(0,p._t)("integration_manager|manage_title")}))),h.createElement(A.A,{primaryButton:(0,p._t)("common|settings"),onPrimaryButtonClick:t,cancelButton:(0,p._t)("action|ok"),onCancel:e}))};var I=s("./src/utils/WidgetUtils.ts");const P=[E.Account,E.Homeserver,E.Config];class T{static sharedInstance(){return T.instance||(T.instance=new T),T.instance}constructor(){(0,n.A)(this,"managers",[]),(0,n.A)(this,"client",void 0),(0,n.A)(this,"primaryManager",null),(0,n.A)(this,"setupHomeserverManagers",async e=>{if(o.vF.log("Updating homeserver-configured integration managers..."),e&&e["m.integrations"]){let t=e["m.integrations"].managers;Array.isArray(t)||(t=[]),o.vF.log(`Homeserver has ${t.length} integration managers`),this.managers=this.managers.filter(e=>e.kind!==E.Homeserver);for(const e of t)e.api_url&&this.managers.push(new w(E.Homeserver,e.api_url,e.ui_url));this.primaryManager=null}else o.vF.log("Homeserver has no integration managers")}),(0,n.A)(this,"onAccountData",e=>{"m.widgets"===e.getType()&&this.compileManagers()}),this.compileManagers()}startWatching(){this.stopWatching(),this.client=d.J.safeGet(),this.client.on(i.ClientEvent.AccountData,this.onAccountData),this.client.on(i.ClientEvent.ClientWellKnown,this.setupHomeserverManagers),this.compileManagers()}stopWatching(){this.client&&(this.client.removeListener(i.ClientEvent.AccountData,this.onAccountData),this.client.removeListener(i.ClientEvent.ClientWellKnown,this.setupHomeserverManagers))}compileManagers(){this.managers=[],this.setupConfiguredManager(),this.setupAccountManagers()}setupConfiguredManager(){const e=r.Ay.get("integrations_rest_url"),t=r.Ay.get("integrations_ui_url");e&&t&&(this.managers.push(new w(E.Config,e,t)),this.primaryManager=null)}setupAccountManagers(){if(!this.client||!this.client.getUserId())return;I.A.getIntegrationManagerWidgets(this.client).forEach(e=>{const t=e.content.data;if(!t)return;const s=e.content.url,n=t.api_url;if(!n||!s)return;const o=new w(E.Account,n,s,e.id||e.state_key||"");this.managers.push(o)}),this.primaryManager=null}hasManager(){return this.managers.length>0}getOrderedManagers(){const e=new Intl.Collator,t=[];for(const s of P){const n=this.managers.filter(e=>e.kind===s);n&&n.length&&(s===E.Account&&n.sort((t,s)=>{var n,o;return e.compare(null!==(n=t.id)&&void 0!==n?n:"",null!==(o=s.id)&&void 0!==o?o:"")}),t.push(...n))}return t}getPrimaryManager(){return this.hasManager()?(this.primaryManager||(this.primaryManager=this.getOrderedManagers()[0]),this.primaryManager):null}openNoManagerDialog(){a.Ay.createDialog(S)}showDisabledDialog(){a.Ay.createDialog(k)}}(0,n.A)(T,"instance",void 0),window.mxIntegrationManagers=T},"./src/languageHandler.tsx":(e,t,s)=>{"use strict";s.d(t,{AO:()=>_.AO,CO:()=>k,Ev:()=>_.Ev,P7:()=>w,UK:()=>R,_3:()=>_._3,_t:()=>_._t,mf:()=>x,om:()=>S,ot:()=>_.ot,w2:()=>_.w2,xC:()=>A,yR:()=>C});var n=s("./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/counterpart/index.js"),r=s.n(i),a=s("./node_modules/matrix-js-sdk/src/logger.ts"),l=s("./node_modules/matrix-js-sdk/src/utils.ts"),c=s("./node_modules/lodash/lodash.js"),d=s.n(c),m=s("./src/settings/SettingsStore.ts"),u=s("./src/PlatformPeg.ts"),h=s("./src/settings/SettingLevel.ts"),p=s("./src/utils/promise.ts"),g=s("./src/SdkConfig.ts"),v=s("./src/modules/ModuleRunner.ts"),_=s("./packages/shared-components/src/utils/i18n.tsx");const f=["cause"];function y(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function b(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?y(Object(s),!0).forEach(function(t){(0,o.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):y(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const E="i18n/";class w extends Error{constructor(e,t){const s=null!=t?t:{},{cause:i}=s,r=(0,n.A)(s,f),a={cause:i};super((0,_._t)(e,b(b({},r),{},{locale:"en"})),a),(0,o.A)(this,"translatedMessage",void 0),this.translatedMessage=(0,_._t)(e,r)}}function x(){const e=m.A.getValue("language",null,!0);return"string"==typeof e&&""!==e?e:(0,_.zv)(C()[0])}async function A(...e){var t;null===(t=u.A.get())||void 0===t||t.setLanguage(e);const s=await(0,_.ax)();let n=e.find(e=>s.hasOwnProperty(e));n||(n="en",a.vF.error("Unable to find an appropriate language, preferred: ",e));const o=await I(E+s[n]);if(r().registerTranslations(n,o),r().setLocale(n),await m.A.setValue("language",null,h.p.DEVICE,n),a.vF.log("set language to "+n),"en"!==n){const e=await I(E+s.en);r().registerTranslations("en",e)}await async function({testOnlyIgnoreCustomTranslationsCache:e=!1}={}){M(v.r.instance.allTranslations);const t=g.Ay.get().custom_translations_url;if(!t)return;try{let s;if(e||Date.now()>=T?(s=O.lookupFn?O.lookupFn(t):await(await fetch(t)).json(),P=s,T=Date.now()+3e5):s=P,!s)return;M(s)}catch(e){a.vF.warn("Ignoring error while registering custom translations: ",e),T=Date.now()+3e5}}()}async function S(){const e=new Intl.DisplayNames([x()],{type:"language",style:"short"});return(await async function(){return Object.keys(await(0,_.ax)())}()).map(t=>({value:t,label:e.of(t),labelInTargetLanguage:new Intl.DisplayNames([t],{type:"language",style:"short"}).of(t)}))}function C(){var e;return navigator.languages&&navigator.languages.length?navigator.languages:[null!==(e=navigator.language)&&void 0!==e?e:"en"]}function R(){return r().getLocale()}function k(e){const t=R(),s=e.map(_.zv);{const n=s.indexOf(t);if(n>-1)return e[n]}{const n=s.findIndex(e=>e.slice(0,2)===t.slice(0,2));if(n>-1)return e[n]}{const t=s.findIndex(e=>e.startsWith("en"));if(t>-1)return e[t]}return e[0]}async function I(e,t=3){return(0,p.L5)(()=>async function(e){const t=await fetch(e,{method:"GET"});if(!t.ok)throw new Error(`Failed to load ${e}, got ${t.status}`);return t.json()}(e),t,t=>(a.vF.log("Failed to load i18n",e),a.vF.error(t),!0))}let P=null,T=0;class O{constructor(){}}function M(e){const t=new l.kG(()=>({}));for(const[s,n]of Object.entries(e))for(const[e,o]of Object.entries(n))d().set(t.getOrCreate(e),s.split(_.sf),o);for(const[e,s]of t)r().registerTranslations(e,s)}(0,o.A)(O,"lookupFn",void 0)},"./src/linkify-matrix.ts":(e,t,s)=>{"use strict";s.d(t,{Bu:()=>y,TP:()=>b,fF:()=>v,kD:()=>p});var n=s("./node_modules/linkifyjs/dist/linkify.mjs"),o=s("./node_modules/linkify-string/dist/linkify-string.mjs"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./src/utils/permalinks/Permalinks.ts"),a=s("./src/dispatcher/dispatcher.ts"),l=s("./src/dispatcher/actions.ts"),c=s("./src/MatrixClientPeg.ts"),d=s("./src/utils/UrlUtils.ts");let m=function(e){return e.URL="url",e.UserId="userid",e.RoomAlias="roomalias",e}({});function u({scanner:e,parser:t,token:s,name:o}){const{DOT:i,NUM:r,COLON:a,SYM:l,SLASH:c,EQUALS:d,HYPHEN:m,UNDERSCORE:u}=e.tokens,{domain:h}=e.tokens.groups,p=[i,l,c,d,u,m],g=[m],v=n.createTokenClass(o,{isLink:!0}),_=new n.State(v),f=n.createTokenClass(o,{isLink:!0}),y=new n.State(f),b=t.start.tt(s),E=new n.State;b.ta(h,E),b.ta(p,E),E.ta(h,E),E.ta(p,E);const w=E.tt(a);w.ta(h,_),w.ta(g,_),_.ta(h,_),_.ta(g,_),_.tt(i,w),_.tt(a).tt(r,y)}function h(e,t){e.preventDefault(),a.A.dispatch({action:l.r.ViewUser,member:new i.User(t)})}const p="^(?:vector://|https?://)?(?:"+((window.location.host+window.location.pathname).replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"|(?:www\\.)?(?:riot|vector)\\.im/(?:app|beta|staging|develop)/|(?:app|beta|staging|develop)\\.element\\.io/)(#.*)");function g(e,t){switch(t){case m.URL:try{const t=(0,r.$N)(e);if(null!=t&&t.userId)return{click:function(e){h(e,t.userId)}};{const t=(0,r.uK)(e);if(t!==e)return{click:function(e){e.preventDefault(),window.location.hash=t}}}}catch{}break;case m.UserId:return{click:function(t){var s,n;t.preventDefault();const o=null!==(s=null===(n=(0,r.$N)(e))||void 0===n?void 0:n.userId)&&void 0!==s?s:e;o&&h(t,o)}};case m.RoomAlias:return{click:function(t){var s,n;t.preventDefault();const o=null!==(s=null===(n=(0,r.$N)(e))||void 0===n?void 0:n.roomIdOrAlias)&&void 0!==s?s:e;var i;o&&(i=o,t.preventDefault(),a.A.dispatch({action:l.r.ViewRoom,room_alias:i,metricsTrigger:"Timeline",metricsViaKeyboard:!1}))}}}return{}}const v={events:g,formatHref:function(e,t){switch(t){case"url":if(e.startsWith("mxc://")&&c.J.get())return(0,i.getHttpUriForMxc)(c.J.get().baseUrl,e,void 0,void 0,void 0,!1,!0);case m.RoomAlias:case m.UserId:default:var s;return null!==(s=(0,r.bP)(c.J.safeGet(),e))&&void 0!==s?s:""}},attributes:function(e,t){const s={rel:"noreferrer noopener"},n=g(e,t);return null!=n&&n.click&&(s.onClick=n.click),s},ignoreTags:["a","pre","code"],className:"linkified",target:function(e,t){if(t===m.URL)try{return(0,r.uK)(e)!==e||decodeURIComponent(e).match(p)?"":"_blank"}catch{}return""}};(0,n.registerPlugin)(m.RoomAlias,({scanner:e,parser:t})=>{u({scanner:e,parser:t,token:e.tokens.POUND,name:m.RoomAlias})}),(0,n.registerPlugin)(m.UserId,({scanner:e,parser:t})=>{u({scanner:e,parser:t,token:e.tokens.AT,name:m.UserId})});const _=["file","mailto","http","https","ftp","ftps"],f=["bitcoin","geo","im","magnet","mailto","matrix","news","openpgp4fpr","sip","sms","smsto","tel","urn","xmpp"];d._f.forEach(e=>{_.includes(e)||(0,n.registerCustomProtocol)(e,f.includes(e))}),(0,n.registerCustomProtocol)("mxc",!1);const y=n,b=o.A},"./src/mjolnir/BanList.ts":(e,t,s)=>{"use strict";s.d(t,{Pd:()=>b,Ac:()=>w,B5:()=>f,fy:()=>v,ZZ:()=>p,t5:()=>y,zq:()=>_});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/models/invites-ignorer.ts"),r=s("./node_modules/glob-to-regexp/index.js"),a=s.n(r);class l{constructor(e){(0,n.A)(this,"regex",void 0);const t=a()(e,{extended:!1,globstar:!1}).toString().replace(/\\\?/g,".");this.regex=new RegExp(t.substring(1,t.length-1))}test(e){return this.regex.test(e)}}const c=i.Q5.Ban,d=[c,"org.matrix.mjolnir.ban"];function m(e,t=!0){return d.includes(e)?t?d[d.length-1]:c:null}class u{constructor(e,t,s,o){(0,n.A)(this,"_glob",void 0),(0,n.A)(this,"_entity",void 0),(0,n.A)(this,"_action",void 0),(0,n.A)(this,"_reason",void 0),(0,n.A)(this,"_kind",void 0),this._glob=new l(e),this._entity=e,this._action=m(t,!1),this._reason=s,this._kind=o}get entity(){return this._entity}get reason(){return this._reason}get kind(){return this._kind}get recommendation(){return this._action}isMatch(e){return this._glob.test(e)}}var h=s("./src/MatrixClientPeg.ts");const p=o.EventType.PolicyRuleUser,g=o.EventType.PolicyRuleRoom,v=o.EventType.PolicyRuleServer,_=[p,"m.room.rule.user","org.matrix.mjolnir.rule.user"],f=[g,"m.room.rule.room","org.matrix.mjolnir.rule.room"],y=[v,"m.room.rule.server","org.matrix.mjolnir.rule.server"],b=[..._,...f,...y];function E(e){return _.includes(e)?p:f.includes(e)?g:y.includes(e)?v:null}class w{constructor(e){(0,n.A)(this,"_rules",[]),(0,n.A)(this,"_roomId",void 0),this._roomId=e,this.updateList()}get roomId(){return this._roomId}get serverRules(){return this._rules.filter(e=>e.kind===v)}get userRules(){return this._rules.filter(e=>e.kind===p)}async banEntity(e,t,s){const n=E(e);n&&(await h.J.safeGet().sendStateEvent(this._roomId,n,{entity:t,reason:s,recommendation:m(c,!0)},"rule:"+t),this._rules.push(new u(t,c,s,n)))}async unbanEntity(e,t){const s=E(e);s&&(await h.J.safeGet().sendStateEvent(this._roomId,s,{},"rule:"+t),this._rules=this._rules.filter(s=>s.kind!==E(e)||s.entity!==t))}updateList(){this._rules=[];const e=h.J.safeGet().getRoom(this._roomId);if(e)for(const t of b){const s=e.currentState.getStateEvents(t);for(const e of s){if(!e.getStateKey())continue;const s=E(t);if(!s)continue;const n=e.getContent().entity,o=e.getContent().recommendation,i=e.getContent().reason;n&&o&&i&&this._rules.push(new u(n,o,i,s))}}}}},"./src/mjolnir/Mjolnir.ts":(e,t,s)=>{"use strict";s.d(t,{u:()=>h});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./src/MatrixClientPeg.ts"),a=s("./src/mjolnir/BanList.ts"),l=s("./src/settings/SettingsStore.ts"),c=s("./src/languageHandler.tsx"),d=s("./src/dispatcher/dispatcher.ts"),m=s("./src/settings/SettingLevel.ts"),u=s("./src/dispatcher/actions.ts");class h{constructor(){(0,n.A)(this,"_lists",[]),(0,n.A)(this,"_roomIds",[]),(0,n.A)(this,"mjolnirWatchRef",void 0),(0,n.A)(this,"dispatcherRef",void 0),(0,n.A)(this,"onAction",e=>{"setup_mjolnir"===e.action&&(i.vF.log("Setting up Mjolnir: after sync"),this.setup())}),(0,n.A)(this,"onEvent",e=>{r.J.get()&&this._roomIds.includes(e.getRoomId())&&a.Pd.includes(e.getType())&&this.updateLists(this._roomIds)})}get roomIds(){return this._roomIds}get lists(){return this._lists}start(){this.mjolnirWatchRef=l.A.watchSetting("mjolnirRooms",null,this.onListsChanged.bind(this)),this.dispatcherRef=d.A.register(this.onAction),d.A.dispatch({action:u.r.DoAfterSyncPrepared,deferred_action:{action:"setup_mjolnir"}})}setup(){r.J.get()&&(this.updateLists(l.A.getValue("mjolnirRooms")),r.J.get().on(o.RoomStateEvent.Events,this.onEvent))}stop(){var e;l.A.unwatchSetting(this.mjolnirWatchRef),this.mjolnirWatchRef=void 0,d.A.unregister(this.dispatcherRef),this.dispatcherRef=void 0,null===(e=r.J.get())||void 0===e||e.removeListener(o.RoomStateEvent.Events,this.onEvent)}async getOrCreatePersonalList(){let e=l.A.getValue("mjolnirPersonalRoom");if(!e){const t=await r.J.safeGet().createRoom({name:(0,c._t)("labs_mjolnir|room_name"),topic:(0,c._t)("labs_mjolnir|room_topic"),preset:o.Preset.PrivateChat});e=t.room_id,await l.A.setValue("mjolnirPersonalRoom",null,m.p.ACCOUNT,e),await l.A.setValue("mjolnirRooms",null,m.p.ACCOUNT,[e,...this._roomIds])}if(!e)throw new Error("Error finding a room ID to use");let t=this._lists.find(t=>t.roomId===e);return t||(t=new a.Ac(e)),t}getPersonalList(){const e=l.A.getValue("mjolnirPersonalRoom");if(!e)return null;let t=this._lists.find(t=>t.roomId===e);return t||(t=new a.Ac(e)),t}async subscribeToList(e){const t=[...this._roomIds,e];await l.A.setValue("mjolnirRooms",null,m.p.ACCOUNT,t),this._lists.push(new a.Ac(e))}async unsubscribeFromList(e){const t=this._roomIds.filter(t=>t!==e);await l.A.setValue("mjolnirRooms",null,m.p.ACCOUNT,t),this._lists=this._lists.filter(t=>t.roomId!==e)}onListsChanged(e,t,s,n){this.updateLists(n)}updateLists(e){if(r.J.get()&&(i.vF.log("Updating Mjolnir ban lists to: "+e),this._lists=[],this._roomIds=e||[],e))for(const t of e)this._lists.push(new a.Ac(t))}isServerBanned(e){for(const t of this._lists)for(const s of t.serverRules)if(s.isMatch(e))return!0;return!1}isUserBanned(e){for(const t of this._lists)for(const s of t.userRules)if(s.isMatch(e))return!0;return!1}static sharedInstance(){return h.instance||(h.instance=new h),h.instance}}(0,n.A)(h,"instance",void 0)},"./src/models/Call.ts":(e,t,s)=>{"use strict";s.d(t,{$E:()=>P,Ho:()=>N,Je:()=>T,KN:()=>k,am:()=>O});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/types.ts"),r=s("./node_modules/matrix-js-sdk/src/logger.ts"),a=s("./node_modules/matrix-js-sdk/src/randomstring.ts"),l=s("./node_modules/matrix-js-sdk/src/webrtc/call.ts"),c=s("./node_modules/matrix-js-sdk/src/matrixrtc/index.ts"),d=s("./src/settings/SettingsStore.ts"),m=s("./src/utils/promise.ts"),u=s("./src/utils/WidgetUtils.ts"),h=s("./src/widgets/WidgetType.ts"),p=s("./src/stores/widgets/ElementWidgetActions.ts"),g=s("./src/stores/WidgetStore.ts"),v=s("./src/stores/widgets/WidgetMessagingStore.ts"),_=s("./src/stores/ActiveWidgetStore.ts"),f=s("./src/languageHandler.tsx"),y=s("./src/PosthogAnalytics.ts"),b=s("./src/utils/video-rooms.ts"),E=s("./src/settings/watchers/FontWatcher.ts"),w=s("./src/call-types.ts"),x=s("./src/SdkConfig.ts"),A=s("./src/utils/DMRoomMap.ts");function S(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function C(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?S(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):S(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const R=async(e,t,s=()=>!0,n)=>{let o;const i=new Promise(n=>{o=(...e)=>{s(...e)&&n()},e.on(t,o)});if(!1!==n){if(!1===await(0,m.wR)(i,!1,null!=n?n:16e3))throw new Error("Timed out")}else await i;e.off(t,o)};let k=function(e){return e.Disconnected="disconnected",e.Connected="connected",e.Disconnecting="disconnecting",e}({});const I=e=>e===k.Connected||e===k.Disconnecting;let P=function(e){return e.ConnectionState="connection_state",e.Participants="participants",e.Close="close",e.Destroy="destroy",e}({});class T extends o.TypedEventEmitter{get messaging(){return this._messaging}set messaging(e){this._messaging=e}get roomId(){return this.widget.roomId}get connectionState(){return this._connectionState}set connectionState(e){const t=this._connectionState;this._connectionState=e,this.emit(P.ConnectionState,e,t)}get connected(){return I(this.connectionState)}get participants(){return this._participants}set participants(e){const t=this._participants;this._participants=e,this.emit(P.Participants,e,t)}get presented(){return this._presented}set presented(e){this._presented=e}constructor(e,t){super(),(0,n.A)(this,"widgetUid",void 0),(0,n.A)(this,"room",void 0),(0,n.A)(this,"_messaging",null),(0,n.A)(this,"_connectionState",k.Disconnected),(0,n.A)(this,"_participants",new Map),(0,n.A)(this,"_presented",!1),(0,n.A)(this,"onMyMembership",async(e,t)=>{t!==i.O.Join&&this.setDisconnected()}),(0,n.A)(this,"onStopMessaging",e=>{e===this.widgetUid&&this.connected&&(r.vF.log("The widget died; treating this as a user hangup"),this.setDisconnected(),this.close())}),(0,n.A)(this,"beforeUnload",()=>{this.setDisconnected(),this.close()}),this.widget=e,this.client=t,this.widgetUid=u.A.getWidgetUid(this.widget),this.room=this.client.getRoom(this.roomId),v.c.instance.on(v.w.StopMessaging,this.onStopMessaging)}static get(e){var t;return null!==(t=N.get(e))&&void 0!==t?t:O.get(e)}async start(e){var t;const s=v.c.instance;if(this.messaging=null!==(t=s.getMessagingForUid(this.widgetUid))&&void 0!==t?t:null,!this.messaging)try{await R(s,v.w.StoreMessaging,(e,t)=>e===this.widgetUid&&(this.messaging=t,!0))}catch(e){throw new Error(`Failed to bind call widget in room ${this.roomId}: ${e}`)}}setConnected(){this.room.on(o.RoomEvent.MyMembership,this.onMyMembership),window.addEventListener("beforeunload",this.beforeUnload),this.connectionState=k.Connected}setDisconnected(){this.room.off(o.RoomEvent.MyMembership,this.onMyMembership),window.removeEventListener("beforeunload",this.beforeUnload),this.connectionState=k.Disconnected}async disconnect(){if(!this.connected)throw new Error("Not connected");this.connectionState=k.Disconnecting,await this.performDisconnection(),this.setDisconnected(),this.close()}close(){this.messaging=null,this.emit(P.Close)}destroy(){this.connected&&(this.setDisconnected(),this.close()),v.c.instance.off(v.w.StopMessaging,this.onStopMessaging),this.emit(P.Destroy)}}class O extends T{constructor(e,t){super(e,t),(0,n.A)(this,"STUCK_DEVICE_TIMEOUT_MS",36e5),(0,n.A)(this,"resendDevicesTimer",null),(0,n.A)(this,"participantsExpirationTimer",null),(0,n.A)(this,"onRoomState",()=>this.updateParticipants()),(0,n.A)(this,"onConnectionState",async(e,t)=>{e!==k.Connected||I(t)?e===k.Disconnected&&I(t)&&(this.updateParticipants(),null!==this.resendDevicesTimer&&(clearInterval(this.resendDevicesTimer),this.resendDevicesTimer=null),await this.removeOurDevice()):(this.updateParticipants(),await this.addOurDevice(),this.resendDevicesTimer=window.setInterval(async()=>{r.vF.log(`Resending video member event for ${this.roomId}`),await this.addOurDevice()},3*this.STUCK_DEVICE_TIMEOUT_MS/4))}),(0,n.A)(this,"onDock",async()=>{await this.messaging.transport.send(p.k.TileLayout,{})}),(0,n.A)(this,"onUndock",async()=>{await this.messaging.transport.send(p.k.SpotlightLayout,{})}),(0,n.A)(this,"onJoin",e=>{e.preventDefault(),this.messaging.transport.reply(e.detail,{}),this.setConnected()}),(0,n.A)(this,"onHangup",async e=>{this.connectionState!==k.Disconnecting&&(e.preventDefault(),this.messaging.transport.reply(e.detail,{}),this.setDisconnected(),(0,b.j)(this.room)||this.close())}),this.room.on(o.RoomStateEvent.Update,this.onRoomState),this.on(P.ConnectionState,this.onConnectionState),this.updateParticipants()}static get(e){if(e.isElementVideoRoom()){const t=g.Ay.instance.getApps(e.roomId).find(e=>{var t;return h.x.JITSI.matches(e.type)&&(null===(t=e.data)||void 0===t?void 0:t.isVideoChannel)});if(t)return new O(t,e.client)}return null}static async create(e){await u.A.addJitsiWidget(e.client,e.roomId,l.JG.Video,"Group call",!0,e.name)}updateParticipants(){null!==this.participantsExpirationTimer&&(clearTimeout(this.participantsExpirationTimer),this.participantsExpirationTimer=null);const e=new Map,t=Date.now();let s=1/0;for(const n of this.room.currentState.getStateEvents(O.MEMBER_EVENT_TYPE)){const o=this.room.getMember(n.getStateKey()),r=n.getContent(),a="number"==typeof r.expires_ts?r.expires_ts:-1/0;let l=a>t&&Array.isArray(r.devices)?r.devices.filter(e=>"string"==typeof e):[];this.connected||(null==o?void 0:o.userId)!==this.client.getUserId()||(l=l.filter(e=>e!==this.client.getDeviceId())),l.length>0&&(null==o?void 0:o.membership)===i.O.Join&&(e.set(o,new Set(l)),a<s&&(s=a))}if(this.connected){const t=this.room.getMember(this.client.getUserId());let s=e.get(t);void 0===s&&(s=new Set,e.set(t,s)),s.add(this.client.getDeviceId())}this.participants=e,s<1/0&&(this.participantsExpirationTimer=window.setTimeout(()=>this.updateParticipants(),s-t))}async updateDevices(e){if(this.room.getMyMembership()!==i.O.Join)return;const t=this.room.currentState.getStateEvents(O.MEMBER_EVENT_TYPE,this.client.getUserId()),s=null==t?void 0:t.getContent(),n=e(("number"==typeof(null==s?void 0:s.expires_ts)?s.expires_ts:-1/0)>Date.now()&&Array.isArray(null==s?void 0:s.devices)?s.devices:[]);if(null!==n){const e={devices:n,expires_ts:Date.now()+this.STUCK_DEVICE_TIMEOUT_MS};await this.client.sendStateEvent(this.roomId,O.MEMBER_EVENT_TYPE,e,this.client.getUserId())}}async clean(){const e=Date.now(),{devices:t}=await this.client.getDevices(),s=new Map(t.map(e=>[e.device_id,e]));await this.updateDevices(t=>{const n=t.filter(t=>{const n=s.get(t);return void 0!==(null==n?void 0:n.last_seen_ts)&&!(t===this.client.getDeviceId()&&!this.connected)&&e-n.last_seen_ts<this.STUCK_DEVICE_TIMEOUT_MS});return n.length===t.length?null:n})}async addOurDevice(){await this.updateDevices(e=>Array.from(new Set(e).add(this.client.getDeviceId())))}async removeOurDevice(){await this.updateDevices(e=>{const t=new Set(e);return t.delete(this.client.getDeviceId()),Array.from(t)})}async start(){await super.start(),this.messaging.on(`action:${p.k.JoinCall}`,this.onJoin),this.messaging.on(`action:${p.k.HangupCall}`,this.onHangup),_.A.instance.on(_.y.Dock,this.onDock),_.A.instance.on(_.y.Undock,this.onUndock)}async performDisconnection(){const e=R(this.messaging,`action:${p.k.HangupCall}`,e=>(e.preventDefault(),this.messaging.transport.reply(e.detail,{}),!0)),t=this.messaging.transport.send(p.k.HangupCall,{});try{await Promise.all([t,e])}catch(e){throw new Error(`Failed to hangup call in room ${this.roomId}: ${e}`)}}close(){this.messaging.off(`action:${p.k.JoinCall}`,this.onJoin),this.messaging.off(`action:${p.k.HangupCall}`,this.onHangup),_.A.instance.off(_.y.Dock,this.onDock),_.A.instance.off(_.y.Undock,this.onUndock),super.close()}destroy(){this.room.off(o.RoomStateEvent.Update,this.onRoomState),this.off(P.ConnectionState,this.onConnectionState),null!==this.participantsExpirationTimer&&(clearTimeout(this.participantsExpirationTimer),this.participantsExpirationTimer=null),null!==this.resendDevicesTimer&&(clearInterval(this.resendDevicesTimer),this.resendDevicesTimer=null),super.destroy()}}(0,n.A)(O,"MEMBER_EVENT_TYPE",w.Gd);let M=function(e){return e.StartCall="start_call",e.JoinExisting="join_existing",e.StartCallDM="start_call_dm",e.JoinExistingDM="join_existing_dm",e}({});class N extends T{get presented(){return super.presented}set presented(e){super.presented=e,this.checkDestroy()}static appendRoomParams(e,t,s){const n=t.getRoom(s);if(!n)return;if((0,b.j)(n))return e.append("intent",M.JoinExisting),e.append("returnToLobby","true"),e.append("skipLobby","false"),void e.append("preload","false");const o=!!A.A.shared().getUserIdForRoomId(n.roomId),i=t.matrixRTC.getRoomSession(n).getOldestMembership(),r=!!i&&i.sender!==t.getSafeUserId();o?r?(e.append("intent",M.JoinExistingDM),e.append("preload","false")):(e.append("intent",M.StartCallDM),e.append("preload","false")):r?(e.append("intent",M.JoinExisting),e.append("preload","false")):(e.append("intent",M.StartCall),e.append("preload","false"))}static appendAnalyticsParams(e,t){var s;const n=x.Ay.get("posthog");if(!n||y.Vo.instance.getAnonymity()===y.NZ.Disabled)return;const o=null===(s=t.getAccountData(y.Vo.ANALYTICS_EVENT_TYPE))||void 0===s?void 0:s.getContent(),i=null!=o&&o.pseudonymousAnalyticsOptIn?null==o?void 0:o.id:"";e.append("analyticsID",i),e.append("posthogUserId",i),e.append("posthogApiHost",n.api_host),e.append("posthogApiKey",n.project_api_key);const r=x.Ay.get("sentry");var a;r&&(e.append("sentryDsn",r.dsn),e.append("sentryEnvironment",null!==(a=r.environment)&&void 0!==a?a:""))}static generateWidgetUrl(e,t,s={}){const n=d.A.getValue("Developer.elementCallUrl"),o=n?new URL(n):new URL("./widgets/element-call/index.html#",window.location.href),i=new URLSearchParams({perParticipantE2EE:"$perParticipantE2EE",userId:e.getUserId(),deviceId:e.getDeviceId(),roomId:t,baseUrl:e.baseUrl,lang:(0,f.UK)().replace("_","-"),fontScale:(E.g.getRootFontSize()/E.g.getBrowserDefaultFontSize()).toString(),theme:"$org.matrix.msc2873.client_theme"});"boolean"==typeof s.skipLobby&&i.set("skipLobby",s.skipLobby.toString());const r=x.Ay.get("bug_report_endpoint_url");r&&i.append("rageshakeSubmitUrl",r),d.A.getValue("fallbackICEServerAllowed")&&i.append("allowIceFallback","true"),d.A.getValue("feature_allow_screen_share_only_mode")&&i.append("allowVoipWithNoMedia","true"),d.A.getValue("useSystemFont")&&d.A.getValue("systemFont").split(",").map(e=>((e=e.trim()).startsWith('"')&&e.endsWith('"')&&(e=e.slice(1,-1)),e)).forEach(e=>i.append("font",e)),this.appendAnalyticsParams(i,e),this.appendRoomParams(i,e,t);const a=i.toString().replace(/%24/g,"$");return o.hash=`#?${a}`,o}static createOrGetCallWidget(e,t){const s=g.Ay.instance.getApps(e).find(e=>h.x.CALL.matches(e.type));var n;if(s)return s.data=N.getWidgetData(t,e,null!==(n=null==s?void 0:s.data)&&void 0!==n?n:{},{}),s;const o=N.generateWidgetUrl(t,e);return g.Ay.instance.addVirtualWidget({id:(0,a.US)(24),creatorUserId:t.getUserId(),name:"Element Call",type:h.x.CALL.preferred,url:o.toString(),waitForIframeLoad:!1,data:N.getWidgetData(t,e,{},{})},e)}static getWidgetData(e,t,s,n){var o;let i=!1;return null!==(o=e.getRoom(t))&&void 0!==o&&o.hasEncryptionStateEvent()&&!d.A.getValue("feature_disable_call_per_sender_encryption")&&(i=!0),C(C(C({},s),n),{},{perParticipantE2EE:i})}onCallEncryptionSettingsChange(){var e;this.widget.data=N.getWidgetData(this.client,this.roomId,null!==(e=this.widget.data)&&void 0!==e?e:{},{})}constructor(e,t,s){super(t,s),(0,n.A)(this,"STUCK_DEVICE_TIMEOUT_MS",36e5),(0,n.A)(this,"settingsStoreCallEncryptionWatcher",void 0),(0,n.A)(this,"terminationTimer",void 0),(0,n.A)(this,"widgetGenerationParameters",{}),(0,n.A)(this,"checkDestroy",()=>{0!==this.session.memberships.length||this.presented||this.room.isCallRoom()||this.destroy()}),(0,n.A)(this,"onMembershipChanged",()=>this.updateParticipants()),(0,n.A)(this,"onDeviceMute",e=>{e.preventDefault(),this.messaging.transport.reply(e.detail,{})}),(0,n.A)(this,"onJoin",e=>{e.preventDefault(),this.messaging.transport.reply(e.detail,{}),this.setConnected()}),(0,n.A)(this,"onHangup",async e=>{this.connectionState!==k.Disconnecting&&(e.preventDefault(),this.messaging.transport.reply(e.detail,{}),this.setDisconnected())}),(0,n.A)(this,"onClose",async e=>{e.preventDefault(),this.messaging.transport.reply(e.detail,{}),this.setDisconnected(),this.close()}),this.session=e,this.session.on(c.X6.MembershipsChanged,this.onMembershipChanged),this.client.matrixRTC.on(c.JY.SessionEnded,this.checkDestroy),d.A.watchSetting("feature_disable_call_per_sender_encryption",null,this.onCallEncryptionSettingsChange.bind(this)),this.updateParticipants()}static get(e){const t=g.Ay.instance.getApps(e.roomId).some(e=>h.x.CALL.matches(e.type)),s=e.client.matrixRTC.getRoomSession(e);if(t||0!==s.memberships.length||e.isCallRoom()){const t=N.createOrGetCallWidget(e.roomId,e.client);return new N(s,t,e.client)}return null}static create(e){N.createOrGetCallWidget(e.roomId,e.client)}async start(e){this.widgetGenerationParameters=C(C({},this.widgetGenerationParameters),e),this.widget.url=N.generateWidgetUrl(this.client,this.roomId,this.widgetGenerationParameters).toString(),await super.start(),this.messaging.on(`action:${p.k.JoinCall}`,this.onJoin),this.messaging.on(`action:${p.k.HangupCall}`,this.onHangup),this.messaging.on(`action:${p.k.Close}`,this.onClose),this.messaging.on(`action:${p.k.DeviceMute}`,this.onDeviceMute)}async performDisconnection(){const e=R(this.messaging,`action:${p.k.HangupCall}`,e=>(e.preventDefault(),this.messaging.transport.reply(e.detail,{}),!0)),t=this.messaging.transport.send(p.k.HangupCall,{});try{await Promise.all([t,e])}catch(e){throw new Error(`Failed to hangup call in room ${this.roomId}: ${e}`)}}close(){this.messaging.off(`action:${p.k.JoinCall}`,this.onJoin),this.messaging.off(`action:${p.k.HangupCall}`,this.onHangup),this.messaging.off(`action:${p.k.Close}`,this.onClose),this.messaging.off(`action:${p.k.DeviceMute}`,this.onDeviceMute),super.close()}destroy(){_.A.instance.destroyPersistentWidget(this.widget.id,this.widget.roomId),g.Ay.instance.removeVirtualWidget(this.widget.id,this.widget.roomId),this.session.off(c.X6.MembershipsChanged,this.onMembershipChanged),this.client.matrixRTC.off(c.JY.SessionEnded,this.checkDestroy),d.A.unwatchSetting(this.settingsStoreCallEncryptionWatcher),clearTimeout(this.terminationTimer),this.terminationTimer=void 0,super.destroy()}updateParticipants(){const e=new Map;for(const s of this.session.memberships){if(!s.sender)continue;const n=this.room.getMember(s.sender);var t;if(n)if(e.has(n))null===(t=e.get(n))||void 0===t||t.add(s.deviceId);else e.set(n,new Set([s.deviceId]))}this.participants=e}clean(){return Promise.resolve()}}},"./src/models/LocalRoom.ts":(e,t,s)=>{"use strict";s.d(t,{Np:()=>a,TM:()=>i,cd:()=>r});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts");const i="local+";let r=function(e){return e[e.NEW=0]="NEW",e[e.CREATING=1]="CREATING",e[e.CREATED=2]="CREATED",e[e.ERROR=3]="ERROR",e}({});class a extends o.Room{constructor(e,t,s){super(e,t,s,{pendingEventOrdering:o.PendingEventOrdering.Detached}),(0,n.A)(this,"encrypted",!1),(0,n.A)(this,"actualRoomId",void 0),(0,n.A)(this,"targets",[]),(0,n.A)(this,"afterCreateCallbacks",[]),(0,n.A)(this,"state",r.NEW),this.name=this.getDefaultRoomName(s)}get isNew(){return this.state===r.NEW}get isCreated(){return this.state===r.CREATED}get isError(){return this.state===r.ERROR}isEncryptionEnabled(){const e=this.getLiveTimeline().getState(o.Direction.Forward);if(!e)return!1;const t=e.getStateEvents(o.EventType.RoomEncryption);return 0!==t.length&&t[0]instanceof o.MatrixEvent}}},"./src/modules/Api.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>J});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/react-dom/client.js"),i=s("./src/modules/ModuleRunner.ts"),r=s("./src/customisations/Alias.ts"),a=s("./src/customisations/RoomList.ts"),l=s("./src/customisations/ChatExport.ts"),c=s("./src/customisations/ComponentVisibility.ts"),d=s("./src/customisations/Directory.ts"),m=s("./src/customisations/Lifecycle.ts"),u=s("./src/customisations/Media.ts"),h=s("./src/customisations/UserIdentifier.ts"),p=s("./src/customisations/WidgetPermissions.ts"),g=s("./src/customisations/WidgetVariables.ts"),v=s("./src/SdkConfig.ts");class _{get(e){return void 0===e?v.Ay.get():v.Ay.get(e)}}var f=s("./node_modules/counterpart/index.js"),y=s.n(f),b=s("./src/languageHandler.tsx");class E{get language(){return(0,b.UK)()}register(e){const t={};for(const s in e)for(const n in e[s])t[n]=t[n]||{},t[n][s]=e[s][n];for(const e in t)y().registerTranslations(e,t[e])}translate(e,t){return(0,b._t)(e,t)}}var w=s("./node_modules/matrix-js-sdk/src/logger.ts");function x(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function A(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?x(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):x(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}class S{constructor(){(0,n.A)(this,"registeredMessageRenderers",[]),(0,n.A)(this,"_roomPreviewBarRenderer",void 0)}static getModuleMatrixEvent(e){const t=e.getId(),s=e.getRoomId(),n=e.sender;return t&&s&&n?{content:e.getContent(),eventId:t,originServerTs:e.getTs(),roomId:s,sender:n.userId,stateKey:e.getStateKey(),type:e.getType(),unsigned:e.getUnsigned()}:null}registerMessageRenderer(e,t,s={}){this.registeredMessageRenderers.push({eventTypeOrFilter:e,renderer:t,hints:s})}selectRenderer(e){return this.registeredMessageRenderers.find(t=>{if("string"==typeof t.eventTypeOrFilter)return t.eventTypeOrFilter===e.type;try{return t.eventTypeOrFilter(e)}catch(e){return w.vF.warn("Message renderer failed to process filter",e),!1}})}renderMessage(e,t){var s;const n=S.getModuleMatrixEvent(e.mxEvent),o=n&&this.selectRenderer(n);if(o)try{return o.renderer(A(A({},e),{},{mxEvent:n}),t)}catch(e){w.vF.warn("Message renderer failed to render",e)}return null!==(s=null==t?void 0:t())&&void 0!==s?s:null}getHintsForMessage(e){const t=S.getModuleMatrixEvent(e),s=t&&this.selectRenderer(t);return s?A(A({},s.hints),{},{allowDownloadingMedia:s.hints.allowDownloadingMedia?()=>s.hints.allowDownloadingMedia(t):void 0}):null}get roomPreviewBarRenderer(){return this._roomPreviewBarRenderer}registerRoomPreviewBar(e){this._roomPreviewBarRenderer=e}}var C=s("./node_modules/@element-hq/element-web-module-api/lib/element-web-plugin-engine.js"),R=s("./src/stores/OwnProfileStore.ts"),k=s("./src/stores/AsyncStore.ts");class I extends C.Co{constructor(){super({}),(0,n.A)(this,"onProfileChange",()=>{this.value=this.profile}),this.value=this.profile,R.V.instance.on(k.H,this.onProfileChange)}get profile(){var e,t,s,n,o;return{isGuest:null!==(e=null===(t=R.V.instance.matrixClient)||void 0===t?void 0:t.isGuest())&&void 0!==e&&e,userId:null!==(s=null===(n=R.V.instance.matrixClient)||void 0===n?void 0:n.getUserId())&&void 0!==s?s:void 0,displayName:null!==(o=R.V.instance.displayName)&&void 0!==o?o:void 0}}}var P=s("./src/utils/permalinks/navigator.ts"),T=s("./src/utils/permalinks/Permalinks.ts"),O=s("./src/dispatcher/dispatcher.ts"),M=s("./src/dispatcher/actions.ts");class N{async toMatrixToLink(e,t=!1){(0,P.O)(e);const s=(0,T.$N)(e);var n,o;null!=s&&s.roomIdOrAlias&&(s.roomIdOrAlias.startsWith("#")?O.A.dispatch({action:M.r.ViewRoom,room_alias:s.roomIdOrAlias,via_servers:null!==(n=s.viaServers)&&void 0!==n?n:void 0,auto_join:t,metricsTrigger:void 0}):O.A.dispatch({action:M.r.ViewRoom,room_id:s.roomIdOrAlias,via_servers:null!==(o=s.viaServers)&&void 0!==o?o:void 0,auto_join:t,metricsTrigger:void 0}))}}var D=s("./node_modules/@babel/runtime/helpers/esm/extends.js"),j=s("./node_modules/react/index.js"),U=s("./src/Modal.tsx"),F=s("./src/components/views/dialogs/BaseDialog.tsx");const L=({title:e,Dialog:t,props:s,onFinished:n})=>{const o=(0,j.useCallback)(()=>n(!1,null),[n]),i=(0,j.useCallback)(e=>n(!0,e),[n]);return j.createElement(F.A,{onFinished:o,title:e},j.createElement(t,(0,D.A)({},s,{onSubmit:i,onCancel:o})))};function B(e,t,s){const{close:n,finished:o}=U.Ay.createDialog(L,{title:e.title,Dialog:t,props:s});return{finished:o.then(([e,t])=>({ok:null!=e&&e,model:null!=t?t:null})),close:()=>n(!1,null)}}var V=s("./node_modules/matrix-js-sdk/src/utils.ts");function H(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function W(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?H(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):H(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}async function $(e){const{promise:t,resolve:s}=Promise.withResolvers(),n=O.A.register(e=>{e.action===M.r.OnLoggedIn&&s()});O.A.dispatch({action:M.r.OverwriteLogin,credentials:W(W({},e),{},{guest:!1})},!0),await t,O.A.unregister(n),await(0,V.yy)(0)}const z=e=>{let t=!1;return s=>{if(t)throw new Error("Legacy customisations can only be registered by one module");Object.assign(e,s),t=!0}};class K{constructor(){(0,n.A)(this,"_registerLegacyAliasCustomisations",z(r.A)),(0,n.A)(this,"_registerLegacyChatExportCustomisations",z(l.A)),(0,n.A)(this,"_registerLegacyComponentVisibilityCustomisations",z(c.N)),(0,n.A)(this,"_registerLegacyDirectoryCustomisations",z(d.A)),(0,n.A)(this,"_registerLegacyLifecycleCustomisations",z(m.A)),(0,n.A)(this,"_registerLegacyMediaCustomisations",z(u)),(0,n.A)(this,"_registerLegacyRoomListCustomisations",z(a.B)),(0,n.A)(this,"_registerLegacyUserIdentifierCustomisations",z(h.A)),(0,n.A)(this,"_registerLegacyWidgetPermissionsCustomisations",z(p.l)),(0,n.A)(this,"_registerLegacyWidgetVariablesCustomisations",z(g.c)),(0,n.A)(this,"navigation",new N),(0,n.A)(this,"openDialog",B),(0,n.A)(this,"overwriteAccountAuth",$),(0,n.A)(this,"profile",new I),(0,n.A)(this,"config",new _),(0,n.A)(this,"i18n",new E),(0,n.A)(this,"customComponents",new S),(0,n.A)(this,"rootNode",document.getElementById("matrixchat"))}async _registerLegacyModule(e){i.r.instance.registerModule(t=>new e(t))}createRoot(e){return(0,o.createRoot)(e)}}window.mxModuleApi||(window.mxModuleApi=new K);const J=window.mxModuleApi},"./src/modules/ModuleRunner.ts":(e,t,s)=>{"use strict";s.d(t,{r:()=>D});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/utils.ts"),i=s("./node_modules/@matrix-org/react-sdk-module-api/lib/lifecycles/CryptoSetupExtensions.js"),r=s("./node_modules/@matrix-org/react-sdk-module-api/lib/lifecycles/ExperimentalExtensions.js"),a=s("./node_modules/matrix-js-sdk/src/matrix.ts"),l=s("./src/Modal.tsx"),c=s("./src/languageHandler.tsx"),d=s("./node_modules/react/index.js"),m=s("./node_modules/matrix-js-sdk/src/logger.ts"),u=s("./src/components/views/dialogs/ScrollableBaseModal.tsx");function h(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function p(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?h(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):h(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}class g extends u.A{constructor(e){var t,s;super(e),(0,n.A)(this,"contentRef",(0,d.createRef)()),this.state={title:this.props.initialOptions.title,actionLabel:null!==(t=this.props.initialOptions.actionLabel)&&void 0!==t?t:(0,c._t)("action|ok"),cancelLabel:this.props.initialOptions.cancelLabel,canSubmit:null===(s=this.props.initialOptions.canSubmit)||void 0===s||s}}async submit(){try{const e=await this.contentRef.current.trySubmit();this.props.onFinished(!0,e)}catch(e){m.vF.error("Error during submission of module dialog:",e)}}cancel(){this.props.onFinished(!1)}setOptions(e){this.setState(t=>p(p({},t),e))}renderContent(){const e={moduleApi:this.props.moduleApi,setOptions:this.setOptions.bind(this),cancel:this.cancel.bind(this)},t=p(p({},this.props.additionalContentProps),e);return d.createElement("div",{className:"mx_ModuleUiDialog"},this.props.contentFactory(t,this.contentRef))}}var v=s("./src/SdkConfig.ts"),_=s("./src/PlatformPeg.ts"),f=s("./src/dispatcher/dispatcher.ts"),y=s("./src/utils/permalinks/navigator.ts"),b=s("./src/utils/permalinks/Permalinks.ts"),E=s("./src/MatrixClientPeg.ts"),w=s("./src/dispatcher/actions.ts"),x=s("./src/stores/WidgetStore.ts"),A=s("./src/stores/widgets/WidgetLayoutStore.ts");function S(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function C(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?S(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):S(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}class R{constructor(){(0,n.A)(this,"cachedTranslations",void 0),(0,n.A)(this,"overrideLoginResolve",void 0),(0,n.A)(this,"onAction",e=>{var t;e.action===w.r.OnLoggedIn&&(null===(t=this.overrideLoginResolve)||void 0===t||t.call(this))}),f.A.register(this.onAction)}get translations(){return this.cachedTranslations}registerTranslations(e){this.cachedTranslations=e}translateString(e,t){return(0,c._t)(e,t)}openDialog(e,t,s){const n="string"==typeof e?{title:e}:e;return new Promise(e=>{l.Ay.createDialog(g,{initialOptions:n,contentFactory:t,moduleApi:this,additionalContentProps:s},"mx_CompoundDialog").finished.then(([t,s])=>{e({didOkOrSubmit:!!t,model:s})})})}async registerSimpleAccount(e,t,s){var n,o;const i=null===(n=v.Ay.get("validated_server_config"))||void 0===n?void 0:n.hsUrl;if(!i)throw new Error("Could not get homeserver url");const r=a.createClient({baseUrl:i}),l={username:e,password:t,initial_device_display_name:v.Ay.get("default_device_display_name")||(null===(o=_.A.get())||void 0===o?void 0:o.getDefaultDeviceDisplayName()),auth:void 0,inhibit_login:!1},c=await r.registerRequest(l).catch(e=>r.registerRequest(C(C({},l),{},{auth:{session:e.data.session,type:"m.login.dummy"}})));if(s){const e=a.createClient({baseUrl:i,userId:c.user_id,deviceId:c.device_id,accessToken:c.access_token});await e.setDisplayName(s)}return{homeserverUrl:i,userId:c.user_id,deviceId:c.device_id,accessToken:c.access_token}}async overwriteAccountAuth(e){const t=new Promise(e=>{this.overrideLoginResolve=e});f.A.dispatch({action:w.r.OverwriteLogin,credentials:C(C({},e),{},{guest:!1})},!0),await t}async navigatePermalink(e,t){(0,y.O)(e);const s=(0,b.$N)(e);var n,o;null!=s&&s.roomIdOrAlias&&(s.roomIdOrAlias.startsWith("#")?f.A.dispatch({action:w.r.ViewRoom,room_alias:s.roomIdOrAlias,via_servers:null!==(n=s.viaServers)&&void 0!==n?n:void 0,auto_join:null!=t&&t,metricsTrigger:void 0}):f.A.dispatch({action:w.r.ViewRoom,room_id:s.roomIdOrAlias,via_servers:null!==(o=s.viaServers)&&void 0!==o?o:void 0,auto_join:null!=t&&t,metricsTrigger:void 0}))}getConfigValue(e,t){const s=v.Ay.get(e);if(s&&"object"==typeof s)return s[t]}getApps(e){return x.Ay.instance.getApps(e)}getAppAvatarUrl(e,t,s,n){return e.avatar_url?E.J.safeGet().mxcUrlToHttp(e.avatar_url,t,s,n):null}isAppInContainer(e,t,s){const n=E.J.safeGet().getRoom(s);return!!n&&A.aK.instance.isInContainer(n,e,t)}moveAppToContainer(e,t,s){const n=E.J.safeGet().getRoom(s);n&&A.aK.instance.moveToContainer(n,e,t)}}class k{constructor(e){(0,n.A)(this,"module",void 0),(0,n.A)(this,"api",new R),this.module=e(this.api)}}var I,P=s("./node_modules/@matrix-org/react-sdk-module-api/lib/components/TextInputField.js"),T=s("./node_modules/@matrix-org/react-sdk-module-api/lib/components/Spinner.js"),O=s("./src/components/views/elements/Field.tsx"),M=s("./src/components/views/elements/Spinner.tsx");P.A.renderFactory=e=>d.createElement(O.A,{type:"text",value:e.value,onChange:t=>e.onChange(t.target.value),label:e.label,autoComplete:"off"}),T.y.renderFactory=()=>d.createElement(M.A,null);class N{constructor(){(0,n.A)(this,"cryptoSetupExtension",void 0),(0,n.A)(this,"experimentalExtension",void 0),(0,n.A)(this,"hasDefaultCryptoSetupExtension",!0),(0,n.A)(this,"hasDefaultExperimentalExtension",!0),this.cryptoSetupExtension=new i.Au,this.experimentalExtension=new r.gU}get cryptoSetup(){return this.cryptoSetupExtension}get experimental(){return this.experimentalExtension}addExtensions(e){var t,s;const n=e.module;if(null!==(t=n.extensions)&&void 0!==t&&t.cryptoSetup){if(!this.hasDefaultCryptoSetupExtension)throw new Error(`adding cryptoSetup extension implementation from module ${n.moduleName} but an implementation was already provided.`);var o;this.cryptoSetupExtension=null===(o=n.extensions)||void 0===o?void 0:o.cryptoSetup,this.hasDefaultCryptoSetupExtension=!1}if(null!==(s=n.extensions)&&void 0!==s&&s.experimental){if(!this.hasDefaultExperimentalExtension)throw new Error(`adding experimental extension implementation from module ${n.moduleName} but an implementation was already provided.`);var i;this.experimentalExtension=null===(i=n.extensions)||void 0===i?void 0:i.experimental,this.hasDefaultExperimentalExtension=!1}}}class D{constructor(){(0,n.A)(this,"extensionsManager",new N),(0,n.A)(this,"modules",[])}get extensions(){return this.extensionsManager}reset(){this.modules=[],this.extensionsManager=new N}get allTranslations(){const e={};for(const t of this.modules){const s=t.api.translations;if(s)for(const[t,n]of Object.entries(s)){(0,o.C6)(e,t,e[t]||{});for(const[s,i]of Object.entries(n))(0,o.C6)(e[t],s,i)}}return e}registerModule(e){const t=new k(e);this.modules.push(t),this.extensionsManager.addExtensions(t)}invoke(e,...t){for(const s of this.modules)s.module.emit(e,...t)}}I=D,(0,n.A)(D,"instance",new I)},"./src/rageshake/rageshake.ts":(e,t,s)=>{"use strict";s.d(t,{tP:()=>u,bX:()=>m,vd:()=>h,Ts:()=>c,fd:()=>d});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/logger.ts"),i=s("./node_modules/matrix-js-sdk/src/randomstring.ts");const r={log:"I",info:"I",warn:"W",error:"E",debug:"D"};class a{constructor(){(0,n.A)(this,"logs",""),(0,n.A)(this,"originalFunctions",{})}monkeyPatch(e){Object.keys(r).forEach(t=>{const s=r[t],n=e[t].bind(e);this.originalFunctions[t]=n,e[t]=(...e)=>{this.log(s,...e),n(...e)}})}bypassRageshake(e,...t){var s,n;null===(s=(n=this.originalFunctions)[e])||void 0===s||s.call(n,...t)}log(e,...t){let s=`${(new Date).toISOString()} ${e} ${(t=t.map(e=>e instanceof DOMException?e.message+` (${e.name} | ${e.code})`:e instanceof Error?e.message+(e.stack?`\n${e.stack}`:""):"object"==typeof e?JSON.stringify(e,(()=>{const e=new WeakSet;return(t,s)=>{if("object"==typeof s&&null!==s){if(e.has(s))return"<$ cycle-trimmed $>";e.add(s)}return s}})()):e)).join(" ")}\n`;s=s.replace(/token=[a-zA-Z0-9-]+/gm,"token=xxxxx"),this.logs+=s}flush(e){if(e)return this.logs;const t=this.logs;return this.logs="",t}}class l{constructor(e,t){(0,n.A)(this,"id",void 0),(0,n.A)(this,"index",0),(0,n.A)(this,"db",null),(0,n.A)(this,"flushPromise",null),(0,n.A)(this,"flushAgainPromise",null),this.indexedDB=e,this.logger=t,this.id="instance-"+(0,i.US)(16)}connect(){const e=this.indexedDB.open("logs");return new Promise((t,s)=>{e.onsuccess=()=>{this.db=e.result,window.setInterval(this.flush.bind(this),3e4),t()},e.onerror=()=>{var t;const n="Failed to open log database: "+(null===(t=e.error)||void 0===t?void 0:t.name);o.vF.error(n),s(new Error(n))},e.onupgradeneeded=()=>{const t=e.result,s=t.createObjectStore("logs",{keyPath:["id","index"]});s.createIndex("id","id",{unique:!1}),s.add(this.generateLogEntry(new Date+" ::: Log database was created."));t.createObjectStore("logslastmod",{keyPath:"id"}).add(this.generateLastModifiedTime())}})}flush(){return this.flushPromise?(this.flushAgainPromise||(this.flushAgainPromise=this.flushPromise.then(()=>this.flush()).then(()=>{this.flushAgainPromise=null})),this.flushAgainPromise):(this.flushPromise=new Promise((e,t)=>{if(!this.db)return void t(new Error("No connected database"));const s=this.logger.flush();if(0===s.length)return void e();const n=this.db.transaction(["logs","logslastmod"],"readwrite"),i=n.objectStore("logs");n.oncomplete=t=>{e()},n.onerror=()=>{var e;o.vF.error("Failed to flush logs : ",n.error),t(new Error("Failed to write logs: "+(null===(e=n.error)||void 0===e?void 0:e.message)))},i.add(this.generateLogEntry(s));n.objectStore("logslastmod").put(this.generateLastModifiedTime())}).then(()=>{this.flushPromise=null}),this.flushPromise)}async consume(){const e=await this.fetchLogIds();let t=[];const s=[];let n=0;for(let i=0;i<e.length;i++){const r=e[i],{lines:a,truncated:l}=await this.fetchLogs(r,n);if(s.push({lines:a,id:r}),n+=a.length,l){o.vF.log(`rageshake: reached size limit while processing instance ${i+1}/${e.length} (${r}), with ${n} bytes of logs: will drop further instances`),t=e.slice(i+1);break}}return t.length>0&&(o.vF.log(`rageshake: removing logs: ${t}`),Promise.all(t.map(e=>this.deleteLogs(e))).then(()=>{o.vF.log(`Removed ${t.length} old logs.`)},e=>{o.vF.error(e)})),s}fetchLogIds(){const e=this.db;if(!e)return Promise.reject("DB unavailable");return function(e,t,s){const n=e.openCursor(t);return new Promise((e,t)=>{const o=[];n.onerror=()=>{var e;t(new Error("Query failed: "+(null===(e=n.error)||void 0===e?void 0:e.message)))},n.onsuccess=()=>{const t=n.result;t?(o.push(s(t)),t.continue()):e(o)}})}(e.transaction("logslastmod","readonly").objectStore("logslastmod"),void 0,e=>({id:e.value.id,ts:e.value.ts})).then(e=>e.sort((e,t)=>t.ts-e.ts).map(e=>e.id))}fetchLogs(e,t){const s=this.db;if(!s)return Promise.reject("DB unavailable");const n=s.transaction("logs","readonly").objectStore("logs");return new Promise((s,o)=>{const i=n.index("id").openCursor(IDBKeyRange.only(e),"prev");let r="";i.onerror=()=>{var e;o(new Error("Query failed: "+(null===(e=i.error)||void 0===e?void 0:e.message)))},i.onsuccess=()=>{var e;const n=i.result;if(!n)return void s({lines:r,truncated:!1});const o=n.value.lines;r=o+r,!function(e,t){return e>=104857600||Date.now()-t>=864e5&&e>=5242880}(t+=o.length,null!==(e=n.value.ts)&&void 0!==e?e:0)?n.continue():s({lines:r,truncated:!0})}})}deleteLogs(e){const t=this.db;return t?new Promise((s,n)=>{const o=t.transaction(["logs","logslastmod"],"readwrite"),i=o.objectStore("logs"),r=i.index("id").openKeyCursor(IDBKeyRange.only(e));r.onsuccess=()=>{const e=r.result;e&&(i.delete(e.primaryKey),e.continue())},o.oncomplete=()=>{s()},o.onerror=()=>{var t;n(new Error(`Failed to delete logs for '${e}' : ${null===(t=r.error)||void 0===t?void 0:t.message}`))};o.objectStore("logslastmod").delete(e)}):Promise.reject("DB unavailable")}generateLogEntry(e){return{id:this.id,lines:e,index:this.index++,ts:Date.now()}}generateLastModifiedTime(){return{id:this.id,ts:Date.now()}}}function c(e=!0){return s.g.mx_rage_initPromise?s.g.mx_rage_initPromise:(s.g.mx_rage_logger=new a,s.g.mx_rage_logger.monkeyPatch(window.console),window.addEventListener("unhandledrejection",e=>{s.g.mx_rage_logger.log("error",`Unhandled promise rejection: ${e.reason}`)}),e?d():(s.g.mx_rage_initPromise=Promise.resolve(),s.g.mx_rage_initPromise))}function d(){if(s.g.mx_rage_initStoragePromise)return s.g.mx_rage_initStoragePromise;let e;o.vF.log("Configuring rageshake persistence...");try{e=window.indexedDB}catch{}return e?(s.g.mx_rage_store=new l(e,s.g.mx_rage_logger),s.g.mx_rage_initStoragePromise=s.g.mx_rage_store.connect(),s.g.mx_rage_initStoragePromise.then(()=>{s.g.mx_rage_store.consume().catch(e=>{o.vF.error("Error cleaning up rageshake store",e)})}),s.g.mx_rage_initStoragePromise):(s.g.mx_rage_initStoragePromise=Promise.resolve(),s.g.mx_rage_initStoragePromise)}function m(){s.g.mx_rage_store&&s.g.mx_rage_store.flush()}async function u(){s.g.mx_rage_store&&await s.g.mx_rage_store.consume()}async function h(){if(!s.g.mx_rage_logger)throw new Error("No console logger, did you forget to call init()?");return s.g.mx_rage_store?(await s.g.mx_rage_store.flush(),s.g.mx_rage_store.consume()):[{lines:s.g.mx_rage_logger.flush(!0),id:"-"}]}},"./src/rageshake/submit-rageshake.ts":(e,t,s)=>{"use strict";s.d(t,{Ay:()=>g,U9:()=>u,Wz:()=>_,v0:()=>v});var n=s("./node_modules/matrix-js-sdk/src/logger.ts"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./src/MatrixClientPeg.ts"),r=s("./src/PlatformPeg.ts"),a=s("./src/languageHandler.tsx"),l=s("./src/rageshake/rageshake.ts"),c=s("./src/settings/SettingsStore.ts"),d=s("./src/SdkConfig.ts"),m=s("./src/components/views/dialogs/devtools/ServerInfo.tsx");class u extends Error{constructor(e,t,s,n){super(`The rageshake server responded with an error ${e} (${s}): ${t}`),this.errorcode=e,this.error=t,this.statusCode=s,this.policyURL=n}}async function h(e={},t=!0){const d=e.progressCallback;null==d||d((0,a._t)("bug_reporting|collecting_information")),n.vF.log("Sending bug report.");const u=new FormData;await async function(e,t){var s,n;const o=await async function(){try{var e;return await(null===(e=r.A.get())||void 0===e?void 0:e.getAppVersion())}catch{}}(),i=null!==(s=null===(n=window.navigator)||void 0===n?void 0:n.userAgent)&&void 0!==s?s:"UNKNOWN",a=p("(display-mode: standalone)"),l=p("(pointer: coarse)");if(e.append("text",t.userText||"User did not supply any additional text."),e.append("app",t.customApp||"element-web"),e.append("version",null!=o?o:"UNKNOWN"),e.append("user_agent",i),e.append("installed_pwa",a),e.append("touch_input",l),t.customFields)for(const s in t.customFields)e.append(s,t.customFields[s])}(u,e);const h=i.J.get();return h&&await async function(e,t){t.append("user_id",e.credentials.userId),t.append("device_id",e.deviceId);const s=e.getCrypto();s&&(await async function(e,t){var s;t.append("crypto_version",e.getVersion());const n=await e.getOwnDeviceKeys(),o=[`curve25519:${n.curve25519}`,`ed25519:${n.ed25519}`];t.append("device_keys",o.join(", "));const i=await e.getCrossSigningStatus();t.append("cross_signing_ready",String(await e.isCrossSigningReady())),t.append("cross_signing_key",null!==(s=await e.getCrossSigningKeyId())&&void 0!==s?s:"n/a"),t.append("cross_signing_privkey_in_secret_storage",String(i.privateKeysInSecretStorage)),t.append("cross_signing_master_privkey_cached",String(i.privateKeysCachedLocally.masterKey)),t.append("cross_signing_self_signing_privkey_cached",String(i.privateKeysCachedLocally.selfSigningKey)),t.append("cross_signing_user_signing_privkey_cached",String(i.privateKeysCachedLocally.userSigningKey))}(s,t),await async function(e,t,s){const n=e.secretStorage;s.append("secret_storage_ready",String(await t.isSecretStorageReady())),s.append("secret_storage_key_in_account",String(await n.hasKey())),s.append("session_backup_key_in_secret_storage",String(!!await e.isKeyBackupKeyStored()));const o=await t.getSessionBackupPrivateKey();s.append("session_backup_key_cached",String(!!o)),s.append("session_backup_key_well_formed",String(o instanceof Uint8Array))}(e,s,t));await async function(e,t){try{const s=await e.http.request(o.Method.Get,"/server_version",void 0,void 0,{prefix:"/_synapse/admin/v1"});Object.keys(s).forEach(e=>{t.append(`matrix_hs_${e}`,s[e])})}catch{try{const s=await(0,m.p)(e);t.append("matrix_hs_name",s.server.name),t.append("matrix_hs_version",s.server.version)}catch{try{const s=await fetch(e.http.getUrl("/login"),{method:"GET",mode:"cors"});s.headers.has("server")&&t.append("matrix_hs_server",s.headers.get("server"))}catch{}}}}(e,t)}(h,u),function(e,t,s){var n;null!=e&&null!==(n=e.getCrypto())&&void 0!==n&&null!==(n=n.getVersion())&&void 0!==n&&n.startsWith("Rust SDK")&&s.append("label","A-Element-R");if(t.labels)for(const e of t.labels)s.append("label",e)}(h,e,u),function(e){const t=c.A.getFeatureSettingNames().filter(e=>c.A.getValue(e));t.length&&e.append("enabled_labs",t.join(", "));c.A.getValue("lowBandwidth")&&e.append("lowBandwidth","enabled");e.append("mx_local_settings",c.A.exportForRageshake())}(u),await async function(e){if(navigator.storage&&navigator.storage.persisted)try{e.append("storageManager_persisted",String(await navigator.storage.persisted()))}catch{}else if(document.hasStorageAccess)try{e.append("storageManager_persisted",String(await document.hasStorageAccess()))}catch{}if(navigator.storage&&navigator.storage.estimate)try{const t=await navigator.storage.estimate();e.append("storageManager_quota",String(t.quota)),e.append("storageManager_usage",String(t.usage)),t.usageDetails&&Object.keys(t.usageDetails).forEach(s=>{e.append(`storageManager_usage_${s}`,String(t.usageDetails[s]))})}catch{}}(u),function(e){if(window.Modernizr){const t=Object.keys(window.Modernizr).filter(e=>!1===window.Modernizr[e]);t.length>0&&e.append("modernizr_missing_features",t.join(", "))}}(u),e.sendLogs&&await async function(e,t,n){let o;t&&(o=await s.e(3075).then(s.bind(s,"./node_modules/pako/dist/pako.esm.mjs")));null==n||n((0,a._t)("bug_reporting|collecting_logs"));const i=await l.vd();for(const s of i){let n=(new TextEncoder).encode(s.lines);t&&(n=o.gzip(n)),e.append("compressed-log",new Blob([n]),s.id)}}(u,t,d),u}function p(e){try{return String(window.matchMedia(e).matches)}catch{}return"UNKNOWN"}async function g(e,t={}){if(!e)throw new Error("No bug report endpoint has been set.");const s=t.progressCallback||(()=>{}),n=await h(t);return s((0,a._t)("bug_reporting|uploading_logs")),f(e,n,s)}async function v(e={}){const t=(await s.e(6717).then(s.t.bind(s,"./node_modules/tar-js/lib/tar.js",23))).default,n=e.progressCallback||(()=>{}),o=await h(e,!1);n((0,a._t)("bug_reporting|downloading_logs"));let i="";const r=new t;let l=0;for(const[e,t]of o.entries())"compressed-log"===e?await new Promise(e=>{const s=new FileReader;s.addEventListener("loadend",t=>{r.append(`log-${l++}.log`,(new TextDecoder).decode(s.result)),e()}),s.readAsArrayBuffer(t)}):i+=`${e} = ${t}\n`;r.append("issue.txt",i);const c=document.createElement("a");c.href=`data:application/octet-stream;base64,${btoa(function(e){let t="";for(let s=0;s<e.length;s+=1)t+=String.fromCharCode(e[s]);return t}(r.out))}`,c.download="rageshake.tar",document.body.appendChild(c),c.click(),document.body.removeChild(c)}async function _(e,t,s=!1,n={}){var o,a,l,c;let m;try{var u;m=await(null===(u=r.A.get())||void 0===u?void 0:u.getAppVersion())}catch{}const h=new FormData;e&&h.append("label",e),h.append("text",t),h.append("can_contact",s?"yes":"no"),h.append("app","element-web"),h.append("version",m||"UNKNOWN"),h.append("platform",null!==(o=null===(a=r.A.get())||void 0===a?void 0:a.getHumanReadableName())&&void 0!==o?o:"n/a"),h.append("user_id",null!==(l=null===(c=i.J.get())||void 0===c?void 0:c.getUserId())&&void 0!==l?l:"n/a");for(const e in n)h.append(e,JSON.stringify(n[e]));const p=d.Ay.get().bug_report_endpoint_url;p&&await f(p,h,()=>{})}async function f(e,t,s){var n,o;const i=fetch(e,{method:"POST",body:t,signal:null===(n=(o=AbortSignal).timeout)||void 0===n?void 0:n.call(o,3e5)});s((0,a._t)("bug_reporting|waiting_for_server"));const r=await i;if("application/json"!==r.headers.get("Content-Type"))throw new u("UNKNOWN","Rageshake server responded with unexpected type",r.status);const l=await r.json();if(r.status<200||r.status>=400){if("errcode"in l)throw new u(l.errcode,l.error,r.status,l.policy_url);throw new u("UNKNOWN","Rageshake server responded with unexpected type",r.status)}return l.report_url}},"./src/sendTimePerformanceMetrics.ts":(e,t,s)=>{"use strict";function n(e){e["io.element.performance_metrics"]={sendStartTs:Date.now()}}function o(e,t,s){e.sendEvent(t,"io.element.performance_metric",{"io.element.performance_metrics":{forEventId:s,responseTs:Date.now(),kind:"send_time"}})}s.d(t,{H:()=>n,_:()=>o})},"./src/sentry.ts":(e,t,s)=>{"use strict";s.d(t,{KB:()=>E,Tm:()=>w,ig:()=>x});var n=s("./node_modules/@sentry/browser/build/npm/esm/sdk.js"),o=s("./node_modules/@sentry/browser/build/npm/esm/integrations/breadcrumbs.js"),i=s("./node_modules/@sentry/browser/build/npm/esm/integrations/globalhandlers.js"),r=s("./node_modules/@sentry/core/build/esm/exports.js"),a=s("./node_modules/@sentry/browser/build/npm/esm/integrations/httpcontext.js"),l=s("./node_modules/@sentry/browser/build/npm/esm/integrations/browserapierrors.js"),c=s("./node_modules/@sentry/core/build/esm/integrations/functiontostring.js"),d=s("./node_modules/@sentry/core/build/esm/integrations/eventFilters.js"),m=s("./node_modules/@sentry/core/build/esm/integrations/dedupe.js"),u=s("./src/SdkConfig.ts"),h=s("./src/MatrixClientPeg.ts"),p=s("./src/settings/SettingsStore.ts");async function g(){const e={};if(navigator.storage&&navigator.storage.persisted)try{e.storageManager_persisted=String(await navigator.storage.persisted())}catch{}else if(document.hasStorageAccess)try{e.storageManager_persisted=String(await document.hasStorageAccess())}catch{}if(navigator.storage&&navigator.storage.estimate)try{const t=await navigator.storage.estimate();if(e.storageManager_quota=String(t.quota),e.storageManager_usage=String(t.usage),t.usageDetails){const s=[];Object.keys(t.usageDetails).forEach(e=>{s.push(`${e}: ${String(t.usageDetails[e])}`)}),e.storageManager_usage=s.join(", ")}}catch{}return e}function v(e){return{username:e.credentials.userId,enabled_labs:_(),low_bandwidth:p.A.getValue("lowBandwidth")?"enabled":"disabled"}}function _(){const e=p.A.getFeatureSettingNames().filter(e=>p.A.getValue(e));return e.length?e.join(", "):""}async function f(e){var t;const s=e.getCrypto();if(!s)return{};const n=await s.getOwnDeviceKeys(),o=[`curve25519:${n.curve25519}`,`ed25519:${n.ed25519}`],i=await s.getCrossSigningStatus(),r=e.secretStorage,a=await s.getSessionBackupPrivateKey();return{crypto_version:s.getVersion(),device_keys:o.join(", "),cross_signing_ready:String(await s.isCrossSigningReady()),cross_signing_key:null!==(t=await s.getCrossSigningKeyId())&&void 0!==t?t:void 0,cross_signing_privkey_in_secret_storage:String(i.privateKeysInSecretStorage),cross_signing_master_privkey_cached:String(i.privateKeysCachedLocally.masterKey),cross_signing_user_signing_privkey_cached:String(i.privateKeysCachedLocally.userSigningKey),secret_storage_ready:String(await s.isSecretStorageReady()),secret_storage_key_in_account:String(await r.hasKey()),session_backup_key_in_secret_storage:String(!!await e.isKeyBackupKeyStored()),session_backup_key_cached:String(!!a),session_backup_key_well_formed:String(a instanceof Uint8Array)}}function y(e){var t;const s={device_id:null!==(t=null==e?void 0:e.deviceId)&&void 0!==t?t:void 0,mx_local_settings:p.A.exportForRageshake()};if(window.Modernizr){const e=Object.keys(window.Modernizr).filter(e=>!1===window.Modernizr[e]);e.length>0&&(s.modernizr_missing_features=e.join(", "))}return s}async function b(){const e=h.J.safeGet();return{user:v(e),crypto:await f(e),device:y(e),storage:await g()}}async function E(e,t,s){if(!u.Ay.getObject("sentry"))return;const n={contexts:await b(),extra:{user_text:e,issue_url:t}};s?r.Cp(s,n):t&&r.wd(`Issue: ${t}`,n)}function w(e){u.Ay.get().sentry&&p.A.getValue("automaticErrorReporting")&&r.gV({username:e})}async function x(e){if(!e)return;const t=[d.D(),c.Z(),o.F(),a.M(),m.s()];p.A.getValue("automaticErrorReporting")&&(t.push(i.L({onerror:!1,onunhandledrejection:!0})),t.push(l.G())),n.Ts({dsn:e.dsn,release:"1.12.2",environment:e.environment,defaultIntegrations:!1,integrations:t,tracesSampleRate:1})}window.mxSendSentryReport=E},"./src/settings/SettingLevel.ts":(e,t,s)=>{"use strict";s.d(t,{p:()=>n});let n=function(e){return e.DEVICE="device",e.ROOM_DEVICE="room-device",e.ROOM_ACCOUNT="room-account",e.ACCOUNT="account",e.ROOM="room",e.PLATFORM="platform",e.CONFIG="config",e.DEFAULT="default",e}({})},"./src/settings/Settings.tsx":(e,t,s)=>{"use strict";s.d(t,{O5:()=>ee,$q:()=>X,yy:()=>se,WA:()=>$,B2:()=>te});var n=s("./node_modules/react/index.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./packages/shared-components/src/utils/i18n.tsx"),r=s("./src/settings/controllers/DeviceIsolationModeController.ts"),a=s("./src/settings/controllers/NotificationControllers.ts"),l=s("./src/settings/controllers/ThemeController.ts"),c=s("./src/settings/controllers/ReloadOnChangeController.ts"),d=s("./src/settings/controllers/SettingController.ts"),m=s("./src/dispatcher/dispatcher.ts"),u=s("./src/dispatcher/actions.ts"),h=s("./src/settings/SettingLevel.ts");class p extends d.A{constructor(){super()}onChange(e,t,s){e===h.p.ACCOUNT||e===h.p.CONFIG?m.A.fire(u.r.MigrateBaseFontSize):""!==s&&m.A.dispatch({action:u.r.UpdateFontSizeDelta,delta:s})}}var g=s("./src/settings/SettingsStore.ts");class v extends d.A{constructor(){super()}onChange(){m.A.dispatch({action:u.r.UpdateSystemFont,useBundledEmojiFont:g.A.getValue("useBundledEmojiFont"),useSystemFont:g.A.getValue("useSystemFont"),font:g.A.getValue("systemFont")})}}var _=s("./src/Keyboard.ts");class f extends d.A{constructor(e,t=!1){super(),this.uiFeatureName=e,this.forcedValue=t}getValueOverride(e,t,s,n){return this.settingDisabled?this.forcedValue:null}get settingDisabled(){return!g.A.getValue(this.uiFeatureName)}}var y=s("./src/settings/UIFeature.ts"),b=s("./src/settings/enums/Layout.ts");class E extends d.A{getValueOverride(e,t,s,n){return!this.prefersReducedMotion()&&null}get settingDisabled(){return this.prefersReducedMotion()}prefersReducedMotion(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}}class w extends d.A{constructor(e,t=!1,s=!0){super(),this.settingName=e,this.forcedValue=t,this.incompatibleValue=s}getValueOverride(e,t,s,n){return this.incompatibleSetting?this.forcedValue:null}get settingDisabled(){return this.incompatibleSetting}get incompatibleSetting(){return"function"==typeof this.incompatibleValue?this.incompatibleValue(g.A.getValue(this.settingName)):g.A.getValue(this.settingName)===this.incompatibleValue}}var x=s("./src/settings/enums/ImageSize.ts"),A=s("./src/stores/spaces/index.ts"),S=s("./src/SdkConfig.ts"),C=s("./src/PlatformPeg.ts"),R=s("./src/languageHandler.tsx"),k=s("./src/SlidingSyncManager.ts");class I extends d.A{async onChange(){var e;null===(e=C.A.get())||void 0===e||e.reload()}get settingDisabled(){return g.A.getValue("feature_simplified_sliding_sync")?(0,R._t)("labs|sliding_sync_disabled_notice"):!k.f.serverSupportsSlidingSync&&(0,R._t)("labs|sliding_sync_server_no_support")}}var P=s("./src/settings/watchers/FontWatcher.ts"),T=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),O=s("./src/settings/controllers/MatrixClientBackedController.ts");class M extends O.A{constructor(e,t,s,n,o,i=!1){super(),(0,T.A)(this,"enabled",void 0),this.settingName=e,this.watchers=t,this.unstableFeatureGroups=s,this.stableVersion=n,this.disabledMessage=o,this.forcedValue=i}get disabled(){return!this.enabled}set disabled(e){if(!e===this.enabled)return;this.enabled=!e;const t=g.A.firstSupportedLevel(this.settingName);if(!t)return;const s=g.A.getValue(this.settingName,null);this.watchers.notifyUpdate(this.settingName,null,t,s)}async initMatrixClient(){if(this.stableVersion&&await this.client.isVersionSupported(this.stableVersion))return void(this.disabled=!1);let e=!1;for(const t of this.unstableFeatureGroups){if((await Promise.all(t.map(async e=>await this.client.doesServerSupportUnstableFeature(e)))).every(e=>e)){e=!0;break}}this.disabled=!e}getValueOverride(e,t,s,n){return this.settingDisabled?this.forcedValue:null}get settingDisabled(){return!!this.disabled&&(!this.disabledMessage||(0,R._t)(this.disabledMessage))}}var N=s("./src/PosthogTrackers.ts");class D extends d.A{constructor(e){super(),this.interactionName=e}onChange(e,t,s){N.A.trackInteraction(this.interactionName)}}class j extends O.A{constructor(){super(),(0,T.A)(this,"disabled",!1),(0,T.A)(this,"checkWellKnown",e=>{var t;this.disabled=!(null===(t=e["io.element.voip"])||void 0===t||!t.disable_fallback_ice)})}async initMatrixClient(e,t){null==t||t.off(o.ClientEvent.ClientWellKnown,this.checkWellKnown),e.on(o.ClientEvent.ClientWellKnown,this.checkWellKnown);const s=e.getClientWellKnown();s&&this.checkWellKnown(s)}getValueOverride(){return!this.disabled&&null}get settingDisabled(){return this.disabled}onChange(e,t,s){var n;null===(n=this.client)||void 0===n||n.setFallbackICEServerAllowed(!!g.A.getValue("fallbackICEServerAllowed"))}}var U=s("./src/stores/room-list-v3/skip-list/sorters/index.ts"),F=s("./src/@types/media_preview.ts");class L extends O.A{static getValidSettingData(e){const t=e.media_previews,s=e.invite_avatars,n=Object.values(F.M);return{invite_avatars:[F.M.Off,F.M.On].includes(s)?s:void 0,media_previews:n.includes(t)?t:void 0}}constructor(){super(),(0,T.A)(this,"getValue",e=>{var t,s,n,o,i;const r=e?null===(t=this.client)||void 0===t?void 0:t.getRoom(e):this.client,a=null!==(s=null==r||null===(n=r.getAccountData(F.E))||void 0===n?void 0:n.getContent())&&void 0!==s?s:{},l=L.getValidSettingData(a);if(l.invite_avatars&&l.media_previews)return l;if(e){var c,d,m,u;const e=this.getValue();return{invite_avatars:null!==(c=null!==(d=l.invite_avatars)&&void 0!==d?d:e.invite_avatars)&&void 0!==c?c:L.default.invite_avatars,media_previews:null!==(m=null!==(u=l.media_previews)&&void 0!==u?u:e.media_previews)&&void 0!==m?m:L.default.media_previews}}return{invite_avatars:null!==(o=l.invite_avatars)&&void 0!==o?o:L.default.invite_avatars,media_previews:null!==(i=l.media_previews)&&void 0!==i?i:L.default.media_previews}})}getValueOverride(e,t){return this.getValue(null!=t?t:void 0)}get settingDisabled(){return!1}async beforeChange(e,t,s){return!!this.client&&(t?(await this.client.setRoomAccountData(t,F.E,s),!0):(await this.client.setAccountData(F.E,s),!0))}}(0,T.A)(L,"default",{media_previews:F.M.On,invite_avatars:F.M.On});const B="org.matrix.msc4155.invite_permission_config";function V(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function H(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?V(Object(s),!0).forEach(function(t){(0,T.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):V(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}class W extends O.A{static getValidSettingData(e){var t;return{allBlocked:!(null===(t=e.blocked_users)||void 0===t||!t.includes("*"))}}initMatrixClient(e){e.doesServerSupportUnstableFeature("org.matrix.msc4155").then(e=>{this.featureSupported=e})}constructor(){super(),(0,T.A)(this,"featureSupported",void 0),(0,T.A)(this,"getValue",()=>{var e,t;const s=null!==(e=null===(t=this.client)||void 0===t||null===(t=t.getAccountData(B))||void 0===t?void 0:t.getContent())&&void 0!==e?e:{};return W.getValidSettingData(s)}),this.featureSupported=!1}getValueOverride(e){return this.getValue()}get settingDisabled(){return!!this.featureSupported||(0,R._t)("settings|not_supported")}async beforeChange(e,t,s){var n,o,i;if(!this.client)return!1;const r=null===(n=this.client.getAccountData(B))||void 0===n?void 0:n.getContent(),a=H(H({},r),{},{blocked_users:[...null!==(o=null==r?void 0:r.blocked_users)&&void 0!==o?o:[]]});if(s.allBlocked&&!a.blocked_users.includes("*"))a.blocked_users.push("*");else{if(s.allBlocked||null===(i=a.blocked_users)||void 0===i||!i.includes("*"))return!1;a.blocked_users=a.blocked_users.filter(e=>"*"!==e)}return await this.client.setAccountData(B,a),!0}}(0,T.A)(W,"default",{allBlocked:!1});const $=new class{constructor(){(0,T.A)(this,"watchers",new Map)}watchSetting(e,t,s){this.watchers.has(e)||this.watchers.set(e,new Map),this.watchers.get(e).has(t)||this.watchers.get(e).set(t,[]),this.watchers.get(e).get(t).push(s)}unwatchSetting(e){this.watchers.forEach(t=>{t.forEach(t=>{let s;for(;-1!==(s=t.indexOf(e));)t.splice(s,1)})})}notifyUpdate(e,t,s,n){if(!this.watchers.has(e))return;const o=this.watchers.get(e),i=[];null!==t&&o.has(t)&&i.push(...o.get(t)),t?o.has(null)&&i.push(...o.get(null)):i.push(...Array.from(o.values()).flat(1));for(const e of i)e(t,s,n)}},z=[h.p.DEVICE,h.p.ROOM_DEVICE,h.p.ROOM_ACCOUNT,h.p.ACCOUNT,h.p.CONFIG],K=[h.p.ROOM_ACCOUNT,h.p.ACCOUNT],J=[h.p.DEVICE,h.p.ROOM_DEVICE,h.p.ROOM_ACCOUNT,h.p.ACCOUNT,h.p.CONFIG,h.p.ROOM],G=[h.p.DEVICE,h.p.ACCOUNT,h.p.CONFIG],q=[h.p.DEVICE],Y=[h.p.DEVICE,h.p.CONFIG],Z=[h.p.CONFIG,h.p.DEVICE],Q=[h.p.CONFIG];let X=function(e){return e[e.Messaging=0]="Messaging",e[e.Profile=1]="Profile",e[e.Spaces=2]="Spaces",e[e.Widgets=3]="Widgets",e[e.Rooms=4]="Rooms",e[e.Threads=5]="Threads",e[e.VoiceAndVideo=6]="VoiceAndVideo",e[e.Moderation=7]="Moderation",e[e.Analytics=8]="Analytics",e[e.Themes=9]="Themes",e[e.Encryption=10]="Encryption",e[e.Experimental=11]="Experimental",e[e.Developer=12]="Developer",e[e.Ui=13]="Ui",e}({}),ee=function(e){return e.NotificationSettings2="feature_notification_settings2",e.ReleaseAnnouncement="feature_release_announcement",e}({});const te={[X.Messaging]:(0,i.AO)("labs|group_messaging"),[X.Profile]:(0,i.AO)("labs|group_profile"),[X.Spaces]:(0,i.AO)("labs|group_spaces"),[X.Widgets]:(0,i.AO)("labs|group_widgets"),[X.Rooms]:(0,i.AO)("labs|group_rooms"),[X.Threads]:(0,i.AO)("labs|group_threads"),[X.VoiceAndVideo]:(0,i.AO)("labs|group_voip"),[X.Moderation]:(0,i.AO)("labs|group_moderation"),[X.Analytics]:(0,i.AO)("common|analytics"),[X.Themes]:(0,i.AO)("labs|group_themes"),[X.Encryption]:(0,i.AO)("labs|group_encryption"),[X.Experimental]:(0,i.AO)("labs|group_experimental"),[X.Developer]:(0,i.AO)("labs|group_developer"),[X.Ui]:(0,i.AO)("labs|group_ui")},se={feature_video_rooms:{isFeature:!0,labsGroup:X.VoiceAndVideo,displayName:(0,i.AO)("labs|video_rooms"),supportedLevels:Y,default:!1,controller:new c.A,betaInfo:{title:(0,i.AO)("labs|video_rooms"),caption:()=>n.createElement(n.Fragment,null,n.createElement("p",null,(0,i._t)("labs|video_rooms_a_new_way_to_chat",{brand:S.Ay.get().brand})),n.createElement("p",null,(0,i._t)("labs|video_rooms_always_on_voip_channels",{brand:S.Ay.get().brand}))),faq:()=>S.Ay.get().bug_report_endpoint_url&&n.createElement(n.Fragment,null,n.createElement("h4",null,(0,i._t)("labs|video_rooms_faq1_question")),n.createElement("p",null,(0,i._t)("labs|video_rooms_faq1_answer")),n.createElement("h4",null,(0,i._t)("labs|video_rooms_faq2_question")),n.createElement("p",null,(0,i._t)("labs|video_rooms_faq2_answer"))),feedbackLabel:"video-room-feedback",feedbackSubheading:(0,i.AO)("labs|video_rooms_feedbackSubheading"),image:s("./res/img/betas/video_rooms.png"),requiresRefresh:!0}},[ee.NotificationSettings2]:{isFeature:!0,labsGroup:X.Experimental,supportedLevels:Y,displayName:(0,i.AO)("labs|notification_settings"),default:!1,betaInfo:{title:(0,i.AO)("labs|notification_settings_beta_title"),caption:()=>n.createElement(n.Fragment,null,n.createElement("p",null,(0,i._t)("labs|notification_settings_beta_caption",{brand:S.Ay.get().brand})))}},feature_msc3531_hide_messages_pending_moderation:{isFeature:!0,labsGroup:X.Moderation,controller:new c.A,displayName:(0,i.AO)("labs|msc3531_hide_messages_pending_moderation"),supportedLevels:Z,supportedLevelsAreOrdered:!0,default:!1},mediaPreviewConfig:{controller:new L,supportedLevels:z,default:L.default},inviteRules:{controller:new W,supportedLevels:[h.p.ACCOUNT],default:W.default,shouldExportToRageshake:!1},feature_report_to_moderators:{isFeature:!0,labsGroup:X.Moderation,displayName:(0,i.AO)("labs|report_to_moderators"),description:(0,i.AO)("labs|report_to_moderators_description"),supportedLevels:Z,supportedLevelsAreOrdered:!0,default:!1},feature_latex_maths:{isFeature:!0,labsGroup:X.Messaging,displayName:(0,i.AO)("labs|latex_maths"),supportedLevels:Z,supportedLevelsAreOrdered:!0,default:!1},feature_wysiwyg_composer:{isFeature:!0,labsGroup:X.Messaging,displayName:(0,i.AO)("labs|wysiwyg_composer"),description:(0,i.AO)("labs|feature_wysiwyg_composer_description"),supportedLevels:Z,supportedLevelsAreOrdered:!0,default:!1},feature_mjolnir:{isFeature:!0,labsGroup:X.Moderation,displayName:(0,i.AO)("labs|mjolnir"),description:(0,i.AO)("labs|currently_experimental"),supportedLevels:Z,supportedLevelsAreOrdered:!0,default:!1},feature_custom_themes:{isFeature:!0,labsGroup:X.Themes,displayName:(0,i.AO)("labs|custom_themes"),supportedLevels:Z,supportedLevelsAreOrdered:!0,default:!1},feature_exclude_insecure_devices:{isFeature:!0,labsGroup:X.Encryption,controller:new r.A,displayName:(0,i.AO)("labs|exclude_insecure_devices"),description:(0,i.AO)("labs|exclude_insecure_devices_description"),supportedLevels:Z,supportedLevelsAreOrdered:!0,default:!1},feature_share_history_on_invite:{isFeature:!0,labsGroup:X.Encryption,displayName:(0,i.AO)("labs|share_history_on_invite"),description:()=>n.createElement(n.Fragment,null,(0,i._t)("labs|share_history_on_invite_description"),n.createElement("div",{className:"mx_SettingsFlag_microcopy"},(0,i._t)("settings|warning",{},{w:e=>n.createElement("span",{className:"mx_SettingsTab_microcopy_warning"},e),description:(0,i._t)("labs|share_history_on_invite_warning")}))),supportedLevels:Z,supportedLevelsAreOrdered:!0,default:!1},useOnlyCurrentProfiles:{supportedLevels:G,displayName:(0,i.AO)("settings|disable_historical_profile"),default:!1},mjolnirRooms:{supportedLevels:[h.p.ACCOUNT],default:[],shouldExportToRageshake:!1},mjolnirPersonalRoom:{supportedLevels:[h.p.ACCOUNT],default:null,shouldExportToRageshake:!1},feature_html_topic:{isFeature:!0,labsGroup:X.Rooms,supportedLevels:Z,supportedLevelsAreOrdered:!0,displayName:(0,i.AO)("labs|html_topic"),default:!1},feature_bridge_state:{isFeature:!0,labsGroup:X.Rooms,supportedLevels:Z,supportedLevelsAreOrdered:!0,displayName:(0,i.AO)("labs|bridge_state"),default:!1},feature_jump_to_date:{isFeature:!0,labsGroup:X.Messaging,displayName:(0,i.AO)("labs|jump_to_date"),supportedLevels:Z,supportedLevelsAreOrdered:!0,default:!1,controller:new M("feature_jump_to_date",$,[["org.matrix.msc3030"],["org.matrix.msc3030.stable"]],"v1.6",(0,i.AO)("labs|jump_to_date_msc_support"))},"RoomList.backgroundImage":{supportedLevels:G,default:null},sendReadReceipts:{supportedLevels:G,displayName:(0,i.AO)("settings|send_read_receipts"),default:!0,controller:new M("sendReadReceipts",$,[["org.matrix.msc2285.stable"]],"v1.4",(0,i.AO)("settings|send_read_receipts_unsupported"),!0)},feature_sliding_sync:{supportedLevels:Z,supportedLevelsAreOrdered:!0,shouldWarn:!0,default:!1},feature_simplified_sliding_sync:{isFeature:!0,labsGroup:X.Developer,supportedLevels:Z,supportedLevelsAreOrdered:!0,displayName:(0,i.AO)("labs|sliding_sync"),description:(0,i.AO)("labs|sliding_sync_description"),shouldWarn:!0,default:!1,controller:new I},feature_element_call_video_rooms:{isFeature:!0,labsGroup:X.VoiceAndVideo,supportedLevels:Z,supportedLevelsAreOrdered:!0,displayName:(0,i.AO)("labs|element_call_video_rooms"),controller:new c.A,default:!1},feature_group_calls:{isFeature:!0,labsGroup:X.VoiceAndVideo,supportedLevels:Z,supportedLevelsAreOrdered:!0,displayName:(0,i.AO)("labs|group_calls"),controller:new c.A,default:!1},feature_disable_call_per_sender_encryption:{isFeature:!0,labsGroup:X.VoiceAndVideo,supportedLevels:Z,supportedLevelsAreOrdered:!0,displayName:(0,i.AO)("labs|feature_disable_call_per_sender_encryption"),default:!1},feature_allow_screen_share_only_mode:{isFeature:!0,labsGroup:X.VoiceAndVideo,supportedLevels:Z,supportedLevelsAreOrdered:!0,description:(0,i.AO)("labs|under_active_development"),displayName:(0,i.AO)("labs|allow_screen_share_only_mode"),controller:new c.A,default:!1},feature_location_share_live:{isFeature:!0,labsGroup:X.Messaging,supportedLevels:Z,supportedLevelsAreOrdered:!0,displayName:(0,i.AO)("labs|location_share_live"),description:(0,i.AO)("labs|location_share_live_description"),shouldWarn:!0,default:!1},feature_dynamic_room_predecessors:{isFeature:!0,labsGroup:X.Rooms,supportedLevels:Z,supportedLevelsAreOrdered:!0,displayName:(0,i.AO)("labs|dynamic_room_predecessors"),description:(0,i.AO)("labs|dynamic_room_predecessors_description"),shouldWarn:!0,default:!1},baseFontSize:{displayName:(0,i.AO)("settings|appearance|font_size"),supportedLevels:G,default:"",controller:new p},feature_render_reaction_images:{isFeature:!0,labsGroup:X.Messaging,displayName:(0,i.AO)("labs|render_reaction_images"),description:(0,i.AO)("labs|render_reaction_images_description"),supportedLevels:Z,supportedLevelsAreOrdered:!0,default:!1},feature_new_room_list:{supportedLevels:Z,labsGroup:X.Ui,displayName:(0,i.AO)("labs|new_room_list"),description:(0,i.AO)("labs|under_active_development"),isFeature:!0,default:!0,controller:new c.A},baseFontSizeV2:{displayName:(0,i.AO)("settings|appearance|font_size"),supportedLevels:[h.p.DEVICE],default:"",controller:new p},fontSizeDelta:{displayName:(0,i.AO)("settings|appearance|font_size"),supportedLevels:[h.p.DEVICE],default:P.g.DEFAULT_DELTA,controller:new p},useCustomFontSize:{displayName:(0,i.AO)("settings|appearance|custom_font_size"),supportedLevels:G,default:!1},"MessageComposerInput.suggestEmoji":{supportedLevels:G,displayName:(0,i.AO)("settings|emoji_autocomplete"),default:!0,invertedSettingName:"MessageComposerInput.dontSuggestEmoji"},"MessageComposerInput.showStickersButton":{supportedLevels:G,displayName:(0,i.AO)("settings|show_stickers_button"),default:!0,controller:new f(y.f.Widgets,!1)},"MessageComposerInput.showPollsButton":{supportedLevels:G,displayName:(0,i.AO)("settings|preferences|show_polls_button"),default:!0},"MessageComposerInput.insertTrailingColon":{supportedLevels:G,displayName:(0,i.AO)("settings|insert_trailing_colon_mentions"),default:!0},"Notifications.alwaysShowBadgeCounts":{supportedLevels:K,default:!1},feature_hidebold:{supportedLevels:Y,displayName:(0,i.AO)("labs|hidebold"),default:!1},"Notifications.showbold":{supportedLevels:Y,displayName:(0,i.AO)("settings|showbold"),default:!1,invertedSettingName:"feature_hidebold",controller:new D("WebSettingsNotificationsShowBoldToggle")},"Notifications.tac_only_notifications":{supportedLevels:Y,displayName:(0,i.AO)("settings|tac_only_notifications"),default:!0,controller:new D("WebSettingsNotificationsTACOnlyNotificationsToggle")},feature_ask_to_join:{isFeature:!0,labsGroup:X.Rooms,default:!1,displayName:(0,i.AO)("labs|ask_to_join"),supportedLevels:Z,supportedLevelsAreOrdered:!0},feature_notifications:{isFeature:!0,labsGroup:X.Messaging,displayName:(0,i.AO)("labs|notifications"),description:(0,i.AO)("labs|unrealiable_e2e"),supportedLevels:Z,supportedLevelsAreOrdered:!0,default:!1},useCompactLayout:{supportedLevels:q,displayName:(0,i.AO)("settings|preferences|compact_modern"),default:!1,controller:new w("layout",!1,e=>e!==b.P.Group)},showRedactions:{supportedLevels:J,displayName:(0,i.AO)("settings|show_redaction_placeholder"),default:!0,invertedSettingName:"hideRedactions"},showJoinLeaves:{supportedLevels:J,displayName:(0,i.AO)("settings|show_join_leave"),default:!0,invertedSettingName:"hideJoinLeaves"},showAvatarChanges:{supportedLevels:J,displayName:(0,i.AO)("settings|show_avatar_changes"),default:!0,invertedSettingName:"hideAvatarChanges"},showDisplaynameChanges:{supportedLevels:J,displayName:(0,i.AO)("settings|show_displayname_changes"),default:!0,invertedSettingName:"hideDisplaynameChanges"},showReadReceipts:{supportedLevels:z,displayName:(0,i.AO)("settings|show_read_receipts"),default:!0,invertedSettingName:"hideReadReceipts"},showTwelveHourTimestamps:{supportedLevels:G,displayName:(0,i.AO)("settings|use_12_hour_format"),default:!1},alwaysShowTimestamps:{supportedLevels:G,displayName:(0,i.AO)("settings|always_show_message_timestamps"),default:!1},userTimezone:{supportedLevels:q,displayName:(0,i.AO)("settings|preferences|user_timezone"),default:"",shouldExportToRageshake:!1},userTimezonePublish:{supportedLevels:q,displayName:(0,i.AO)("settings|preferences|publish_timezone"),default:!1,controller:new M("userTimezonePublish",$,[[o.UNSTABLE_MSC4133_EXTENDED_PROFILES],[o.STABLE_MSC4133_EXTENDED_PROFILES]],void 0,(0,i.AO)("labs|extended_profiles_msc_support"))},autoplayGifs:{supportedLevels:G,displayName:(0,i.AO)("settings|autoplay_gifs"),default:!1},autoplayVideo:{supportedLevels:G,displayName:(0,i.AO)("settings|autoplay_videos"),default:!1},enableSyntaxHighlightLanguageDetection:{supportedLevels:G,displayName:(0,i.AO)("settings|automatic_language_detection_syntax_highlight"),default:!1},expandCodeByDefault:{supportedLevels:G,displayName:(0,i.AO)("settings|code_block_expand_default"),default:!1},showCodeLineNumbers:{supportedLevels:G,displayName:(0,i.AO)("settings|code_block_line_numbers"),default:!0},scrollToBottomOnMessageSent:{supportedLevels:G,displayName:(0,i.AO)("settings|jump_to_bottom_on_send"),default:!0},"Pill.shouldShowPillAvatar":{supportedLevels:G,displayName:(0,i.AO)("settings|preferences|show_avatars_pills"),default:!0,invertedSettingName:"Pill.shouldHidePillAvatar"},"TextualBody.enableBigEmoji":{supportedLevels:G,displayName:(0,i.AO)("settings|big_emoji"),default:!0,invertedSettingName:"TextualBody.disableBigEmoji"},"MessageComposerInput.isRichTextEnabled":{supportedLevels:G,default:!1},"MessageComposer.showFormatting":{supportedLevels:G,default:!1},sendTypingNotifications:{supportedLevels:G,displayName:(0,i.AO)("settings|send_typing_notifications"),default:!0,invertedSettingName:"dontSendTypingNotifications"},showTypingNotifications:{supportedLevels:G,displayName:(0,i.AO)("settings|show_typing_notifications"),default:!0},ctrlFForSearch:{supportedLevels:G,displayName:_.vL?(0,i.AO)("settings|use_command_f_search"):(0,i.AO)("settings|use_control_f_search"),default:!1},"MessageComposerInput.ctrlEnterToSend":{supportedLevels:G,displayName:_.vL?(0,i.AO)("settings|use_command_enter_send_message"):(0,i.AO)("settings|use_control_enter_send_message"),default:!1},"MessageComposerInput.surroundWith":{supportedLevels:G,displayName:(0,i.AO)("settings|preferences|surround_text"),default:!1},"MessageComposerInput.autoReplaceEmoji":{supportedLevels:G,displayName:(0,i.AO)("settings|replace_plain_emoji"),default:!1},"MessageComposerInput.useMarkdown":{supportedLevels:G,displayName:(0,i.AO)("settings|enable_markdown"),description:()=>(0,i._t)("settings|enable_markdown_description",{},{code:e=>n.createElement("code",null,e)}),default:!0},"VideoView.flipVideoHorizontally":{supportedLevels:G,displayName:(0,i.AO)("settings|voip|mirror_local_feed"),default:!0},theme:{supportedLevels:G,default:"light",controller:new l.A},custom_themes:{supportedLevels:G,default:[],shouldExportToRageshake:!1},use_system_theme:{supportedLevels:q,default:!0,displayName:(0,i.AO)("settings|appearance|match_system_theme")},useBundledEmojiFont:{supportedLevels:q,default:!0,displayName:(0,i.AO)("settings|appearance|bundled_emoji_font"),controller:new v},useSystemFont:{supportedLevels:q,default:!1,displayName:(0,i.AO)("settings|appearance|custom_font"),controller:new v},systemFont:{supportedLevels:q,default:"",displayName:(0,i.AO)("settings|appearance|custom_font_name"),controller:new v},webRtcAllowPeerToPeer:{supportedLevels:Y,displayName:(0,i.AO)("settings|voip|allow_p2p"),description:(0,i.AO)("settings|voip|allow_p2p_description"),default:!0,invertedSettingName:"webRtcForceTURN"},webrtc_audiooutput:{supportedLevels:q,default:"default"},webrtc_audioinput:{supportedLevels:q,default:"default"},webrtc_videoinput:{supportedLevels:q,default:"default"},webrtc_audio_autoGainControl:{supportedLevels:q,displayName:(0,i.AO)("settings|voip|auto_gain_control"),default:!0},webrtc_audio_echoCancellation:{supportedLevels:q,displayName:(0,i.AO)("settings|voip|echo_cancellation"),default:!0},webrtc_audio_noiseSuppression:{supportedLevels:q,displayName:(0,i.AO)("settings|voip|noise_suppression"),default:!0},language:{supportedLevels:Y,default:"en",shouldExportToRageshake:!1},breadcrumb_rooms:{supportedLevels:[h.p.ACCOUNT],default:[],shouldExportToRageshake:!1},recent_emoji:{supportedLevels:[h.p.ACCOUNT],default:[],shouldExportToRageshake:!1},"SpotlightSearch.recentSearches":{supportedLevels:[h.p.ACCOUNT],default:[],shouldExportToRageshake:!1},showMediaEventIds:{supportedLevels:[h.p.DEVICE],default:{},shouldExportToRageshake:!1},"SpotlightSearch.showNsfwPublicRooms":{supportedLevels:G,displayName:(0,i.AO)("settings|show_nsfw_content"),default:!1},room_directory_servers:{supportedLevels:[h.p.ACCOUNT],default:[],shouldExportToRageshake:!1},integrationProvisioning:{supportedLevels:[h.p.ACCOUNT],default:!0},allowedWidgets:{supportedLevels:[h.p.ROOM_ACCOUNT,h.p.ROOM_DEVICE],supportedLevelsAreOrdered:!0,default:{},shouldExportToRageshake:!1},analyticsOptIn:{supportedLevels:Y,default:!1},pseudonymousAnalyticsOptIn:{supportedLevels:[h.p.ACCOUNT],displayName:(0,i.AO)("settings|security|send_analytics"),default:null},deviceClientInformationOptIn:{supportedLevels:[h.p.ACCOUNT],displayName:(0,i.AO)("settings|security|record_session_details"),default:!1},"Registration.mobileRegistrationHelper":{supportedLevels:[h.p.CONFIG],default:!1},autocompleteDelay:{supportedLevels:Y,default:200},readMarkerInViewThresholdMs:{supportedLevels:Y,default:3e3},readMarkerOutOfViewThresholdMs:{supportedLevels:Y,default:3e4},blacklistUnverifiedDevices:{supportedLevels:[h.p.ROOM_DEVICE,h.p.DEVICE],supportedLevelsAreOrdered:!0,displayName:{default:(0,i.AO)("settings|security|strict_encryption"),"room-device":(0,i.AO)("room_settings|security|strict_encryption")},default:!1,controller:new f(y.f.AdvancedEncryption)},urlPreviewsEnabled:{supportedLevels:J,displayName:{default:(0,i.AO)("settings|inline_url_previews_default"),"room-account":(0,i.AO)("settings|inline_url_previews_room_account"),room:(0,i.AO)("settings|inline_url_previews_room")},default:!0,controller:new f(y.f.URLPreviews)},urlPreviewsEnabled_e2ee:{supportedLevels:[h.p.ROOM_DEVICE],displayName:{"room-account":(0,i.AO)("settings|inline_url_previews_room_account")},default:!1,controller:new f(y.f.URLPreviews)},notificationsEnabled:{supportedLevels:q,default:!1,controller:new a.Al},deviceNotificationsEnabled:{supportedLevels:[h.p.DEVICE],default:!0},notificationSound:{supportedLevels:K,default:!1,shouldExportToRageshake:!1},notificationBodyEnabled:{supportedLevels:q,default:!0,controller:new a.ju},audioNotificationsEnabled:{supportedLevels:q,default:!0},enableWidgetScreenshots:{supportedLevels:G,displayName:(0,i.AO)("devtools|widget_screenshots"),default:!1},promptBeforeInviteUnknownUsers:{supportedLevels:G,displayName:(0,i.AO)("settings|prompt_invite"),default:!0},widgetOpenIDPermissions:{supportedLevels:q,default:{allow:[],deny:[]},shouldExportToRageshake:!1},breadcrumbs:{supportedLevels:G,displayName:(0,i.AO)("settings|show_breadcrumbs"),default:!0},showHiddenEventsInTimeline:{displayName:(0,i.AO)("devtools|show_hidden_events"),supportedLevels:q,default:!1},lowBandwidth:{supportedLevels:Y,displayName:(0,i.AO)("devtools|low_bandwidth_mode"),description:(0,i.AO)("devtools|low_bandwidth_mode_description"),default:!1,controller:new c.A,shouldWarn:!0},fallbackICEServerAllowed:{supportedLevels:q,description:(0,i.AO)("settings|voip|enable_fallback_ice_server_description"),default:null,controller:new j},"RoomList.preferredSorting":{supportedLevels:[h.p.DEVICE],default:U.U.Recency},"RoomList.showMessagePreview":{supportedLevels:[h.p.DEVICE],default:!1,displayName:(0,i.AO)("settings|show_message_previews")},"RightPanel.phasesGlobal":{supportedLevels:[h.p.DEVICE],default:null},"RightPanel.phases":{supportedLevels:[h.p.ROOM_DEVICE],default:null},enableEventIndexing:{supportedLevels:q,displayName:(0,i.AO)("settings|security|enable_message_search"),default:!0},crawlerSleepTime:{supportedLevels:q,displayName:(0,i.AO)("settings|security|message_search_sleep_time"),default:3e3},showCallButtonsInComposer:{supportedLevels:Y,default:!0,controller:new f(y.f.Voip)},ircDisplayNameWidth:{supportedLevels:[h.p.ROOM_DEVICE,h.p.DEVICE],supportedLevelsAreOrdered:!0,default:80},layout:{supportedLevels:G,default:b.P.Group},"Images.size":{supportedLevels:G,default:x.h.Normal},showChatEffects:{supportedLevels:J,displayName:(0,i.AO)("settings|show_chat_effects"),default:!0,controller:new E},"Performance.addSendMessageTimingMetadata":{supportedLevels:[h.p.CONFIG],default:!1},"Widgets.pinned":{supportedLevels:K,default:{},shouldExportToRageshake:!1},"Widgets.layout":{supportedLevels:K,default:{}},"Spaces.allRoomsInHome":{displayName:(0,i.AO)("settings|all_rooms_home"),description:(0,i.AO)("settings|all_rooms_home_description"),supportedLevels:G,default:!1},"Spaces.enabledMetaSpaces":{supportedLevels:G,default:{[A._b.Home]:!0}},"Spaces.showPeopleInSpace":{supportedLevels:[h.p.ROOM_ACCOUNT],default:!0},developerMode:{displayName:(0,i.AO)("devtools|developer_mode"),supportedLevels:G,default:!1},automaticErrorReporting:{displayName:(0,i.AO)("labs|automatic_debug_logs"),supportedLevels:G,default:!1,controller:new c.A},automaticDecryptionErrorReporting:{displayName:(0,i.AO)("labs|automatic_debug_logs_decryption"),supportedLevels:q,default:!1,controller:new c.A},automaticKeyBackNotEnabledReporting:{displayName:(0,i.AO)("labs|automatic_debug_logs_key_backup"),supportedLevels:Y,default:!1},debug_scroll_panel:{supportedLevels:q,default:!1},debug_timeline_panel:{supportedLevels:q,default:!1},debug_registration:{supportedLevels:q,default:!1},debug_animation:{supportedLevels:q,default:!1},debug_legacy_call_handler:{supportedLevels:q,default:!1},audioInputMuted:{supportedLevels:q,default:!1},videoInputMuted:{supportedLevels:q,default:!1},activeCallRoomIds:{supportedLevels:q,default:[],shouldExportToRageshake:!1},[ee.ReleaseAnnouncement]:{isFeature:!0,labsGroup:X.Ui,supportedLevels:Y,default:!0,displayName:(0,i.AO)("labs|release_announcement")},releaseAnnouncementData:{supportedLevels:G,default:{}},[y.f.RoomHistorySettings]:{supportedLevels:Q,default:!0},[y.f.AdvancedEncryption]:{supportedLevels:Q,default:!0},[y.f.URLPreviews]:{supportedLevels:Q,default:!0},[y.f.Widgets]:{supportedLevels:Q,default:!0},[y.f.LocationSharing]:{supportedLevels:Q,default:!0},[y.f.Voip]:{supportedLevels:Q,default:!0},[y.f.Feedback]:{supportedLevels:Q,default:!0},[y.f.Registration]:{supportedLevels:Q,default:!0},[y.f.PasswordReset]:{supportedLevels:Q,default:!0},[y.f.Deactivate]:{supportedLevels:Q,default:!0},[y.f.ShareQRCode]:{supportedLevels:Q,default:!0},[y.f.ShareSocial]:{supportedLevels:Q,default:!0},[y.f.IdentityServer]:{supportedLevels:Q,default:!0,controller:new f(y.f.ThirdPartyID)},[y.f.ThirdPartyID]:{supportedLevels:Q,default:!0},[y.f.AdvancedSettings]:{supportedLevels:Q,default:!0},[y.f.TimelineEnableRelativeDates]:{supportedLevels:Q,default:!0},[y.f.BulkUnverifiedSessionsReminder]:{supportedLevels:Q,default:!0},[y.f.AllowCreatingPublicSpaces]:{supportedLevels:Q,default:!0},[y.f.AllowCreatingPublicRooms]:{supportedLevels:Q,default:!0},"Electron.autoLaunch":{supportedLevels:[h.p.PLATFORM],displayName:(0,i.AO)("settings|start_automatically|label"),options:[{value:"enabled",label:(0,i.AO)("settings|start_automatically|enabled")},{value:"disabled",label:(0,i.AO)("settings|start_automatically|disabled")},{value:"minimised",label:(0,i.AO)("settings|start_automatically|minimised")}],default:"disabled"},"Electron.warnBeforeExit":{supportedLevels:[h.p.PLATFORM],displayName:(0,i.AO)("settings|warn_quit"),default:!0},"Electron.alwaysShowMenuBar":{supportedLevels:[h.p.PLATFORM],displayName:(0,i.AO)("settings|preferences|always_show_menu_bar"),default:!1},"Electron.showTrayIcon":{supportedLevels:[h.p.PLATFORM],displayName:(0,i.AO)("settings|preferences|enable_tray_icon"),default:!0},"Electron.enableHardwareAcceleration":{supportedLevels:[h.p.PLATFORM],displayName:(0,i.AO)("settings|preferences|enable_hardware_acceleration"),default:!0},"Electron.enableContentProtection":{supportedLevels:[h.p.PLATFORM],displayName:(0,i.AO)("settings|preferences|enable_content_protection"),default:!1},"Developer.elementCallUrl":{supportedLevels:[h.p.DEVICE],displayName:(0,i.AO)("devtools|settings|elementCallUrl"),default:""}}},"./src/settings/SettingsStore.ts":(e,t,s)=>{"use strict";s.d(t,{s:()=>z,A:()=>J});var n,o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./node_modules/matrix-js-sdk/src/matrix.ts"),a=s("./src/settings/SettingLevel.ts"),l=s("./src/settings/handlers/SettingsHandler.ts");class c extends l.A{static clear(){c.itemCache.clear(),c.objectCache.clear()}constructor(){super(),c.storageListenerBound||(c.storageListenerBound=!0,window.addEventListener("storage",c.onStorageEvent))}getItem(e){if(!c.itemCache.has(e)){const t=localStorage.getItem(e);return c.itemCache.set(e,t),t}return c.itemCache.get(e)}getBoolean(e){const t=this.getItem(e);return"true"===t||"false"!==t&&null}getObject(e){if(!c.objectCache.has(e))try{const t=JSON.parse(localStorage.getItem(e));return c.objectCache.set(e,t),t}catch(e){return console.error("Failed to parse localStorage object",e),null}return c.objectCache.get(e)}setItem(e,t){c.itemCache.set(e,t),localStorage.setItem(e,t)}setBoolean(e,t){this.setItem(e,`${t}`)}setObject(e,t){c.objectCache.set(e,t),localStorage.setItem(e,JSON.stringify(t))}removeItem(e){localStorage.removeItem(e),c.itemCache.delete(e),c.objectCache.delete(e)}isSupported(){return void 0!==localStorage&&null!==localStorage}reset(){c.clear()}}n=c,(0,o.A)(c,"itemCache",new Map),(0,o.A)(c,"objectCache",new Map),(0,o.A)(c,"storageListenerBound",!1),(0,o.A)(c,"onStorageEvent",e=>{null===e.key?n.clear():(n.itemCache.delete(e.key),n.objectCache.delete(e.key))});var d=s("./node_modules/matrix-js-sdk/src/utils.ts");class m extends l.A{constructor(e,t){super(),this.defaults=e,this.invertedDefaults=t}getValue(e,t){let s=this.defaults[e];return void 0===s&&(s=this.invertedDefaults[e]),s}async setValue(e,t,s){throw new Error("Cannot set values on the default level handler")}canSetValue(e,t){return!1}isSupported(){return!0}}var u=s("./src/settings/handlers/MatrixClientBackedSettingsHandler.ts"),h=s("./src/utils/objects.ts"),p=s("./src/@types/media_preview.ts");const g="im.vector.setting.allowed_widgets",v="im.vector.web.settings";class _ extends u.A{constructor(e){super(),(0,o.A)(this,"onAccountData",(e,t,s)=>{const n=t.roomId;if("org.matrix.room.preview_urls"===e.getType()){let t=e.getContent().disable;t="boolean"!=typeof t?null:!t,this.watchers.notifyUpdate("urlPreviewsEnabled",n,a.p.ROOM_ACCOUNT,t)}else if(e.getType()===v){var o;const t=null!==(o=null==s?void 0:s.getContent())&&void 0!==o?o:{},i=(0,h.Eg)(t,e.getContent());for(const t of i){const s=e.getContent()[t];this.watchers.notifyUpdate(t,n,a.p.ROOM_ACCOUNT,s)}}else e.getType()===g?this.watchers.notifyUpdate("allowedWidgets",n,a.p.ROOM_ACCOUNT,e.getContent()):e.getType()===p.E&&this.watchers.notifyUpdate("mediaPreviewConfig",n,a.p.ROOM_ACCOUNT,e.getContent())}),this.watchers=e}initMatrixClient(e,t){e&&e.removeListener(r.RoomEvent.AccountData,this.onAccountData),t.on(r.RoomEvent.AccountData,this.onAccountData)}getValue(e,t){if("urlPreviewsEnabled"===e){const e=this.getSettings(t,"org.matrix.room.preview_urls")||{};return"boolean"!=typeof e.disable?null:!e.disable}if("allowedWidgets"===e)return this.getSettings(t,g);return(this.getSettings(t)||{})[e]}async setRoomAccountData(e,t,s,n){let o;null===s?o=n:(o=this.getSettings(e,t)||{},o[s]=n),await this.client.setRoomAccountData(e,t,o);const i=Promise.withResolvers(),a=(o,l)=>{l.roomId===e&&o.getType()===t&&(null!==s&&o.getContent()[s]!==n||(this.client.off(r.RoomEvent.AccountData,a),i.resolve()))};this.client.on(r.RoomEvent.AccountData,a),await i.promise}async setValue(e,t,s){switch(e){case"urlPreviewsEnabled":return this.setRoomAccountData(t,"org.matrix.room.preview_urls","disable",!s);case"allowedWidgets":return this.setRoomAccountData(t,g,null,s);case"mediaPreviewConfig":case"inviteRules":return;default:return this.setRoomAccountData(t,v,e,s)}}canSetValue(e,t){return!!this.client.getRoom(t)}isSupported(){return this.client&&!this.client.isGuest()}getSettings(e,t=v){var s;const n=null===(s=this.client.getRoom(e))||void 0===s?void 0:s.getAccountData(t);return n&&n.getContent()?(0,h.ZV)(n.getContent()):null}}var f=s("./node_modules/lodash/lodash.js");const y="im.vector.riot.breadcrumb_rooms",b="im.vector.setting.breadcrumbs",E=[y,b],w="io.element.recent_emoji",x="im.vector.setting.integration_provisioning",A="im.vector.analytics",S="im.vector.web.settings";class C extends u.A{constructor(e){super(),(0,o.A)(this,"onAccountData",(e,t)=>{if("org.matrix.preview_urls"===e.getType()){let t=e.getContent().disable;t="boolean"!=typeof t?null:!t,this.watchers.notifyUpdate("urlPreviewsEnabled",null,a.p.ACCOUNT,t)}else if(e.getType()===S||e.getType()===A){var s;const n=null!==(s=null==t?void 0:t.getContent())&&void 0!==s?s:{},o=(0,h.Eg)(n,e.getContent());for(const t of o){const s=e.getContent()[t];this.watchers.notifyUpdate(t,null,a.p.ACCOUNT,s)}}else if(E.includes(e.getType()))this.notifyBreadcrumbsUpdate(e);else if(e.getType()===x){const t=e.getContent().enabled;this.watchers.notifyUpdate("integrationProvisioning",null,a.p.ACCOUNT,t)}else if(e.getType()===w){const t=e.getContent().enabled;this.watchers.notifyUpdate("recent_emoji",null,a.p.ACCOUNT,t)}else e.getType()===p.E&&this.watchers.notifyUpdate("mediaPreviewConfig",null,a.p.ROOM_ACCOUNT,e.getContent())}),this.watchers=e}get level(){return a.p.ACCOUNT}initMatrixClient(e,t){null==e||e.removeListener(r.ClientEvent.AccountData,this.onAccountData),t.on(r.ClientEvent.AccountData,this.onAccountData)}getValue(e,t){if("urlPreviewsEnabled"===e){const e=this.getSettings("org.matrix.preview_urls")||{};return"boolean"!=typeof e.disable?null:!e.disable}if("breadcrumb_rooms"===e){let e=this.getSettings(b);return e&&e.recent_rooms||(e=this.getSettings(y),e&&(e.recent_rooms=e.rooms)),e&&e.recent_rooms?e.recent_rooms:[]}if("recent_emoji"===e){const e=this.getSettings(w);return e?e.recent_emoji:null}if("integrationProvisioning"===e){const e=this.getSettings(x);return e?e.enabled:null}if("pseudonymousAnalyticsOptIn"===e){const t=this.getSettings(A)||{};return"boolean"!=typeof t[e]?null:t[e]}if("MessageComposerInput.insertTrailingColon"===e){const s=(this.getSettings()||{})[e];return null==s?(this.setValue(e,t,!0),!0):s}const s=this.getSettings()||{};let n=s[e];return null==n&&("hideAvatarChanges"!==e&&"hideDisplaynameChanges"!==e||(n=s.hideAvatarDisplaynameChanges)),n}async setAccountData(e,t,s,n){var o;let i=this.getSettings(e);!n||null!==(o=i)&&void 0!==o&&o[t]||(i=this.getSettings(n)),i||(i={}),i[t]=s;const a=Promise.withResolvers(),l=n=>{n.getType()===e&&(0,f.isEqual)(n.getContent()[t],s)&&(this.client.off(r.ClientEvent.AccountData,l),a.resolve())};this.client.on(r.ClientEvent.AccountData,l),await this.client.setAccountData(e,i),await a.promise}async setValue(e,t,s){switch(e){case"urlPreviewsEnabled":return this.setAccountData("org.matrix.preview_urls","disable",!s);case"breadcrumb_rooms":return this.setAccountData(b,"recent_rooms",s,y);case"recent_emoji":return this.setAccountData(w,"recent_emoji",s);case"integrationProvisioning":return this.setAccountData(x,"enabled",s);case"pseudonymousAnalyticsOptIn":return this.setAccountData(A,"pseudonymousAnalyticsOptIn",s);case"mediaPreviewConfig":case"inviteRules":return;default:return this.setAccountData(S,e,s)}}canSetValue(e,t){return!0}isSupported(){return this.client&&!this.client.isGuest()}getSettings(e="im.vector.web.settings"){if(!this.client)return null;const t=this.client.getAccountData(e);return t&&t.getContent()?(0,h.ZV)(t.getContent()):null}notifyBreadcrumbsUpdate(e){let t=[];if(e.getType()===y){const s=this.getSettings(b);t=s?s.recent_rooms:e.getContent().rooms}else{if(e.getType()!==b)return;t=e.getContent().recent_rooms}this.watchers.notifyUpdate("breadcrumb_rooms",null,a.p.ACCOUNT,t||[])}}const R="im.vector.web.settings";class k extends u.A{constructor(e){super(),(0,o.A)(this,"onEvent",(e,t,s)=>{const n=e.getRoomId(),o=this.client.getRoom(n);if(o&&(!o||t===o.currentState))if("org.matrix.room.preview_urls"===e.getType()){let t=e.getContent().disable;t="boolean"!=typeof t?null:!t,this.watchers.notifyUpdate("urlPreviewsEnabled",n,a.p.ROOM,t)}else if(e.getType()===R){var i;const t=null!==(i=null==s?void 0:s.getContent())&&void 0!==i?i:{},o=(0,h.Eg)(t,e.getContent());for(const t of o)this.watchers.notifyUpdate(t,n,a.p.ROOM,e.getContent()[t])}}),this.watchers=e}initMatrixClient(e,t){e&&e.removeListener(r.RoomStateEvent.Events,this.onEvent),t.on(r.RoomStateEvent.Events,this.onEvent)}getValue(e,t){if("urlPreviewsEnabled"===e){const e=this.getSettings(t,"org.matrix.room.preview_urls")||{};return"boolean"!=typeof e.disable?null:!e.disable}return(this.getSettings(t)||{})[e]}async sendStateEvent(e,t,s,n){const o=this.getSettings(e,t)||{};o[s]=n;const{event_id:i}=await this.client.sendStateEvent(e,t,o),a=Promise.withResolvers(),l=e=>{e.getId()===i&&(this.client.off(r.RoomStateEvent.Events,l),a.resolve())};this.client.on(r.RoomStateEvent.Events,l),await a.promise}setValue(e,t,s){return"urlPreviewsEnabled"===e?this.sendStateEvent(t,"org.matrix.room.preview_urls","disable",!s):this.sendStateEvent(t,R,e,s)}canSetValue(e,t){var s;const n=this.client.getRoom(t);let o=R;return"urlPreviewsEnabled"===e&&(o="org.matrix.room.preview_urls"),null!==(s=null==n?void 0:n.currentState.maySendStateEvent(o,this.client.getUserId()))&&void 0!==s&&s}isSupported(){return!!this.client}getSettings(e,t=R){var s;const n=null===(s=this.client.getRoom(e))||void 0===s?void 0:s.currentState.getStateEvents(t,"");return null!=n&&n.getContent()?(0,h.ZV)(n.getContent()):null}}var I=s("./src/SdkConfig.ts"),P=s("./src/utils/SnakedObject.ts");class T extends l.A{constructor(e){super(),this.featureNames=e}getValue(e,t){const s=new P.Q(I.Ay.get());if(this.featureNames.includes(e)){const t=(s.get("features")||{})[e];return(0,d.hX)(t)?null:!0===t||!1===t?t:"enable"===t||"disable"!==t&&null}if("theme"===e)return s.get("default_theme");const n=s.get("setting_defaults");return!n||(0,d.hX)(n[e])?null:n[e]}async setValue(e,t,s){throw new Error("Cannot change settings at the config level")}canSetValue(e,t){return!1}isSupported(){return!0}}var O=s("./src/languageHandler.tsx"),M=s("./src/dispatcher/dispatcher.ts"),N=s("./src/settings/Settings.tsx");class D extends l.A{constructor(e,t){super(),(0,o.A)(this,"cache",{}),this.handler=e,this.level=t}getValue(e,t){const s=null!=t?t:"UNDEFINED",n=this.cache[e];return null!=n&&n.hasOwnProperty(s)?n[s]:this.handler.getValue(e,t)}async setValue(e,t,s){var n;this.cache[e]||(this.cache[e]={});const o=this.cache[e],i=null!=t?t:"UNDEFINED";o[i]=s;const r=this.handler.getValue(e,t),a=this.handler.setValue(e,t,s);null===(n=this.handler.watchers)||void 0===n||n.notifyUpdate(e,t,this.level,s);try{await a}catch{var l;null===(l=this.handler.watchers)||void 0===l||l.notifyUpdate(e,t,this.level,r)}finally{o[i]===s&&delete o[i]}}canSetValue(e,t){return this.handler.canSetValue(e,t)}isSupported(){return this.handler.isSupported()}reset(){this.cache={},this.handler.reset()}}var j=s("./src/dispatcher/actions.ts"),U=s("./src/PlatformPeg.ts");class F extends l.A{constructor(){super(),(0,o.A)(this,"store",{}),this.setup()}async setup(){const e=await U.A.platformPromise;await e.initialised,Object.entries(N.yy).forEach(([t,s])=>{var n;null!==(n=s.supportedLevels)&&void 0!==n&&n.includes(a.p.PLATFORM)&&e.supportsSetting(t)&&e.getSettingValue(t).then(e=>{this.store[t]=e})})}canSetValue(e,t){var s,n;return null!==(s=null===(n=U.A.get())||void 0===n?void 0:n.supportsSetting(e))&&void 0!==s&&s}getValue(e,t){return this.store[e]}async setValue(e,t,s){var n;this.store[e]=s,await(null===(n=U.A.get())||void 0===n?void 0:n.setSettingValue(e,s))}isSupported(){var e,t;return null!==(e=null===(t=U.A.get())||void 0===t?void 0:t.supportsSetting())&&void 0!==e&&e}}var L=s("./src/settings/controllers/ReloadOnChangeController.ts"),B=s("./src/MatrixClientPeg.ts");const V={},H={},W=[];for(const e in N.yy){const t=N.yy[e];V[e]=t.default,t.isFeature&&W.push(e),t.invertedSettingName&&(H[t.invertedSettingName]=!t.default)}const $={[a.p.DEVICE]:new class extends c{constructor(e,t){super(),this.featureNames=e,this.watchers=t}getValue(e,t){if(this.featureNames.includes(e))return this.readFeature(e);if("notificationsEnabled"===e)return this.getBoolean("notifications_enabled");if("notificationBodyEnabled"===e)return this.getBoolean("notifications_body_enabled");if("audioNotificationsEnabled"===e)return this.getBoolean("audio_notifications_enabled");return(this.getSettings()||{})[e]}setValue(e,t,s){if(this.featureNames.includes(e))return this.writeFeature(e,s),Promise.resolve();if("notificationsEnabled"===e)return this.setBoolean("notifications_enabled",s),this.watchers.notifyUpdate(e,null,a.p.DEVICE,s),Promise.resolve();if("notificationBodyEnabled"===e)return this.setBoolean("notifications_body_enabled",s),this.watchers.notifyUpdate(e,null,a.p.DEVICE,s),Promise.resolve();if("audioNotificationsEnabled"===e)return this.setBoolean("audio_notifications_enabled",s),this.watchers.notifyUpdate(e,null,a.p.DEVICE,s),Promise.resolve();if("layout"===e){const t=this.getSettings()||{};return delete t.useIRCLayout,t.layout=s,this.setObject("mx_local_settings",t),this.watchers.notifyUpdate(e,null,a.p.DEVICE,s),Promise.resolve()}const n=this.getSettings()||{};return n[e]=s,this.setObject("mx_local_settings",n),this.watchers.notifyUpdate(e,null,a.p.DEVICE,s),Promise.resolve()}canSetValue(e,t){return!0}watchSetting(e,t,s){this.watchers.watchSetting(e,t,s)}unwatchSetting(e){this.watchers.unwatchSetting(e)}getSettings(){return this.getObject("mx_local_settings")}readFeature(e){return this.getBoolean("mx_labs_feature_"+e)}writeFeature(e,t){this.setBoolean("mx_labs_feature_"+e,t),this.watchers.notifyUpdate(e,null,a.p.DEVICE,t)}}(W,N.WA),[a.p.ROOM_DEVICE]:new class extends c{constructor(e){super(),this.watchers=e}getValue(e,t){if("blacklistUnverifiedDevices"===e){const e=this.read("mx_local_settings");if(null!=e&&e.blacklistUnverifiedDevicesPerRoom)return e.blacklistUnverifiedDevicesPerRoom[t]}const s=this.read(this.getKey(e,t));return s?s.value:null}setValue(e,t,s){if("blacklistUnverifiedDevices"===e){let n=this.read("mx_local_settings");return n||(n={}),n.blacklistUnverifiedDevicesPerRoom||(n.blacklistUnverifiedDevicesPerRoom={}),(0,d.C6)(n.blacklistUnverifiedDevicesPerRoom,t,s),this.setObject("mx_local_settings",n),this.watchers.notifyUpdate(e,t,a.p.ROOM_DEVICE,s),Promise.resolve()}return null===s?this.removeItem(this.getKey(e,t)):this.setObject(this.getKey(e,t),{value:s}),this.watchers.notifyUpdate(e,t,a.p.ROOM_DEVICE,s),Promise.resolve()}canSetValue(e,t){return!0}read(e){return this.getObject(e)}getKey(e,t){return"mx_setting_"+e+"_"+t}}(N.WA),[a.p.ROOM_ACCOUNT]:new D(new _(N.WA),a.p.ROOM_ACCOUNT),[a.p.ACCOUNT]:new D(new C(N.WA),a.p.ACCOUNT),[a.p.ROOM]:new D(new k(N.WA),a.p.ROOM),[a.p.PLATFORM]:new D(new F,a.p.PLATFORM),[a.p.CONFIG]:new T(W),[a.p.DEFAULT]:new m(V,H)},z=[a.p.DEVICE,a.p.ROOM_DEVICE,a.p.ROOM_ACCOUNT,a.p.ACCOUNT,a.p.ROOM,a.p.CONFIG,a.p.DEFAULT];function K(e){return e.supportedLevelsAreOrdered||1===e.supportedLevels.length?[...e.supportedLevels]:z}class J{static reset(){for(const e of Object.values($))e.reset()}static getFeatureSettingNames(){return Object.keys(N.yy).filter(e=>J.isFeature(e))}static watchSetting(e,t,s){var n;const o=N.yy[e];if(!o)throw new Error(`${e} is not a setting`);const r=null!==(n=o.invertedSettingName)&&void 0!==n?n:e,a=`${(new Date).getTime()}_${J.watcherCount++}_${r}_${t}`,l=(t,n,o)=>{var r;if(!J.doesSettingSupportLevel(e,n))return void i.vF.warn(`Setting handler notified for an update of an invalid setting level: ${e}@${n} - this likely means a weird setting value made it into the level's storage. The notification will be ignored.`);const a=J.getValue(e),l=null!==(r=J.getValueAt(n,e))&&void 0!==r?r:o;s(e,t,n,l,a)};return J.watchers.set(a,l),N.WA.watchSetting(r,t,l),a}static unwatchSetting(e){e&&(J.watchers.has(e)?(N.WA.unwatchSetting(J.watchers.get(e)),J.watchers.delete(e)):i.vF.warn(`Ending non-existent watcher ID ${e}`))}static monitorSetting(e,t){t=t||null,this.monitors.has(e)||this.monitors.set(e,new Map);const s=()=>{this.monitors.get(e).set(t,J.watchSetting(e,t,(e,t,s,n,o)=>{M.A.dispatch({action:j.r.SettingUpdated,settingName:e,roomId:t,level:s,newValueAtLevel:n,newValue:o})}))},n=Array.from(this.monitors.get(e).keys());n.find(e=>e===t||null===e)?null===t&&(n.forEach(t=>{J.unwatchSetting(this.monitors.get(e).get(t))}),this.monitors.get(e).clear(),s()):s()}static getDisplayName(e,t=a.p.DEFAULT){if(!N.yy[e]||!N.yy[e].displayName)return null;const s=N.yy[e].displayName;return"string"==typeof s?(0,O._t)(s):null!=s&&s[t]?(0,O._t)(s[t]):null!=s&&s.default?(0,O._t)(s.default):null}static getDescription(e){var t;const s=null===(t=N.yy[e])||void 0===t?void 0:t.description;return s?"string"!=typeof s?s():(0,O._t)(s):null}static isFeature(e){return!!N.yy[e]&&!!N.yy[e].isFeature}static shouldHaveWarning(e){var t;return!!N.yy[e]&&(null!==(t=N.yy[e].shouldWarn)&&void 0!==t&&t)}static getBetaInfo(e){if(J.isFeature(e)&&!1!==J.getValueAt(a.p.CONFIG,e,null,!0,!0)){const s=N.yy[e].betaInfo;var t;if(s)s.requiresRefresh=null!==(t=s.requiresRefresh)&&void 0!==t?t:N.yy[e].controller instanceof L.A;return s}}static getLabGroup(e){if(J.isFeature(e))return N.yy[e].labsGroup}static disabledMessage(e){var t;const s=null===(t=N.yy[e].controller)||void 0===t?void 0:t.settingDisabled;return"string"==typeof s?s:void 0}static getValue(e,t=null,s=!1){if(!N.yy[e])throw new Error("Setting '"+e+"' does not appear to be a setting.");const n=K(N.yy[e]);return J.getValueAt(n[0],e,t,!1,s)}static getValueAt(e,t,s=null,n=!1,o=!1){const i=N.yy[t];if(!i)throw new Error("Setting '"+t+"' does not appear to be a setting.");const r=K(i);r.includes(a.p.DEFAULT)||r.push(a.p.DEFAULT);const l=r.indexOf(e);if(-1===l)throw new Error(`Level "${e}" for setting "${t}" is not prioritized`);const c=J.getHandlers(t);let d=t;if(i.invertedSettingName&&(d=i.invertedSettingName),n){const t=c[e];if(!t)return J.getFinalValue(i,e,s,null,null);const n=t.getValue(d,s);return J.getFinalValue(i,e,s,n,e)}for(let t=l;t<r.length;t++){const n=c[r[t]];if(!n)continue;if(o&&"default"===r[t])continue;const a=n.getValue(d,s);if(null!=a)return J.getFinalValue(i,e,s,a,r[t])}return J.getFinalValue(i,e,s,null,null)}static getDefaultValue(e){if(!N.yy[e])throw new Error("Setting '"+e+"' does not appear to be a setting.");return N.yy[e].default}static getFinalValue(e,t,s,n,o){let i=n;if(e.controller){const r=e.controller.getValueOverride(t,s,n,o);null!=r&&(i=r)}return e.invertedSettingName&&(i=!i),i}static async setValue(e,t,s,n){var o;const i=N.yy[e];if(!i)throw new Error("Setting '"+e+"' does not appear to be a setting.");const r=J.getHandler(e,s);if(!r)throw new Error("Setting "+e+" does not have a handler for "+s);let a=e;if(i.invertedSettingName&&(a=i.invertedSettingName,n=!n),!r.canSetValue(a,t))throw new Error("User cannot set "+a+" at "+s+" in "+t);i.controller&&!await i.controller.beforeChange(s,t,n)||(await r.setValue(a,t,n),null===(o=i.controller)||void 0===o||o.onChange(s,t,n))}static canSetValue(e,t,s){var n;const o=N.yy[e];if(!o)throw new Error("Setting '"+e+"' does not appear to be a setting.");if(null!==(n=o.controller)&&void 0!==n&&n.settingDisabled)return!1;if(null!=o&&o.supportedLevelsAreOrdered&&J.settingIsOveriddenAtConfigLevel(e,t,s))return!1;const i=J.getHandler(e,s);return!!i&&i.canSetValue(e,t)}static settingIsOveriddenAtConfigLevel(e,t,s){const n=K(N.yy[e]),o=n.indexOf(a.p.CONFIG),i=n.indexOf(s);if(-1===o||-1===i||o>=i)return!1;const r=J.getValueAt(a.p.CONFIG,e,t,!0,!0);return!0===r||!1===r}static isLevelSupported(e){return!!$[e]&&$[e].isSupported()}static doesSettingSupportLevel(e,t){var s;const n=N.yy[e];if(!n)throw new Error("Setting '"+e+"' does not appear to be a setting.");return t===a.p.DEFAULT||!(null===(s=n.supportedLevels)||void 0===s||!s.includes(t))}static firstSupportedLevel(e){const t=N.yy[e];if(!t)throw new Error("Setting '"+e+"' does not appear to be a setting.");const s=K(t);s.includes(a.p.DEFAULT)||s.push(a.p.DEFAULT);const n=J.getHandlers(e);for(const e of s){if(n[e])return e}return null}static async migrateURLPreviewsE2EE(e){const t="url_previews_e2ee_migration_done";if(localStorage.getItem(t))return;if(e)return;const s=B.J.safeGet();for(;!s.isInitialSyncComplete();)await new Promise(e=>s.once(r.ClientEvent.Sync,e));i.vF.info("Performing one-time settings migration of URL previews in E2EE rooms");const n=$[a.p.ROOM_ACCOUNT];for(const e of s.getRooms()){const t=n.getValue("urlPreviewsEnabled_e2ee",e.roomId);void 0!==t&&await J.setValue("urlPreviewsEnabled_e2ee",e.roomId,a.p.ROOM_DEVICE,t)}localStorage.setItem(t,"true")}static migrateShowImagesToSettings(){const e="mx_show_images_migration_done";if(localStorage.getItem(e))return;i.vF.info("Performing one-time settings migration of shown images to settings store");const t=Object.fromEntries(Object.keys(localStorage).filter(e=>e.startsWith("mx_ShowImage_")).map(e=>[e.slice(13),!0]));this.setValue("showMediaEventIds",null,a.p.DEVICE,t),localStorage.setItem(e,"true")}static async migrateMediaControlsToSetting(e){if(e)return;const t=B.J.safeGet();for(;!t.isInitialSyncComplete();)await new Promise(e=>t.once(r.ClientEvent.Sync,e));if(t.getAccountData("io.element.msc4278.media_preview_config"))return;i.vF.info("Performing one-time settings migration of show images and invite avatars to account data");const s=$[a.p.ACCOUNT],n=s.getValue("showImages",null),o=s.getValue("showAvatarsOnInvites",null);"boolean"!=typeof n&&"boolean"!=typeof o||this.setValue("mediaPreviewConfig",null,a.p.ACCOUNT,{invite_avatars:!1===o?p.M.Off:p.M.On,media_previews:!1===n?p.M.Off:p.M.On})}static runMigrations(e){J.migrateURLPreviewsE2EE(e).catch(e=>{i.vF.error("Failed to migrate URL previews in E2EE rooms:",e)}),J.migrateShowImagesToSettings(),J.migrateMediaControlsToSetting(e).catch(e=>{i.vF.error("Failed to migrate media config settings",e)})}static debugSetting(e,t){i.vF.log(`--- DEBUG ${e}`);const s=N.yy[e];i.vF.log(`--- definition: ${s?JSON.stringify(s):"<NOT_FOUND>"}`),i.vF.log(`--- default level order: ${JSON.stringify(z)}`),i.vF.log(`--- registered handlers: ${JSON.stringify(Object.keys($))}`);const n=e=>{for(const s of Object.keys($)){const n=$[s];try{const o=n.getValue(e,t);i.vF.log(`--- ${s}@${t||"<no_room>"} = ${JSON.stringify(o)}`)}catch(e){i.vF.log(`--- ${n.constructor.name}@${t||"<no_room>"} THREW ERROR: ${e instanceof Error?e.message:e}`),i.vF.error(e)}if(t)try{const t=n.getValue(e,null);i.vF.log(`--- ${s}@<no_room> = ${JSON.stringify(t)}`)}catch(e){i.vF.log(`--- ${n.constructor.name}@<no_room> THREW ERROR: ${e instanceof Error?e.message:e}`),i.vF.error(e)}}i.vF.log("--- calculating as returned by SettingsStore"),i.vF.log("--- these might not match if the setting uses a controller - be warned!");try{const s=J.getValue(e,t);i.vF.log(`--- SettingsStore#generic@${t||"<no_room>"} = ${JSON.stringify(s)}`)}catch(e){i.vF.log(`--- SettingsStore#generic@${t||"<no_room>"} THREW ERROR: ${e instanceof Error?e.message:e}`),i.vF.error(e)}if(t)try{const t=J.getValue(e,null);i.vF.log(`--- SettingsStore#generic@<no_room> = ${JSON.stringify(t)}`)}catch(e){i.vF.log(`--- SettingsStore#generic@$<no_room> THREW ERROR: ${e instanceof Error?e.message:e}`),i.vF.error(e)}for(const s of z){try{const n=J.getValueAt(s,e,t);i.vF.log(`--- SettingsStore#${s}@${t||"<no_room>"} = ${JSON.stringify(n)}`)}catch(e){i.vF.log(`--- SettingsStore#${s}@${t||"<no_room>"} THREW ERROR: ${e instanceof Error?e.message:e}`),i.vF.error(e)}if(t)try{const t=J.getValueAt(s,e,null);i.vF.log(`--- SettingsStore#${s}@<no_room> = ${JSON.stringify(t)}`)}catch(e){i.vF.log(`--- SettingsStore#${s}@$<no_room> THREW ERROR: ${e instanceof Error?e.message:e}`),i.vF.error(e)}}};n(e),s.invertedSettingName&&(i.vF.log("--- TESTING INVERTED SETTING NAME"),i.vF.log(`--- inverted: ${s.invertedSettingName}`),n(s.invertedSettingName)),i.vF.log("--- END DEBUG")}static exportForRageshake(){const e={};for(const t of Object.keys(N.yy).filter(e=>!1!==N.yy[e].shouldExportToRageshake))e[t]=J.getValue(t);return JSON.stringify(e)}static getHandler(e,t){const s=J.getHandlers(e);return s[t]?s[t]:null}static getHandlers(e){if(!N.yy[e])return{};const t={};for(const s of N.yy[e].supportedLevels){if(!$[s])throw new Error("Unexpected level "+s);J.isLevelSupported(s)&&(t[s]=$[s])}return t.default||(t.default=$.default),t}}(0,o.A)(J,"watchers",new Map),(0,o.A)(J,"monitors",new Map),(0,o.A)(J,"watcherCount",1),window.mxSettingsStore=J},"./src/settings/UIFeature.ts":(e,t,s)=>{"use strict";s.d(t,{C:()=>o,f:()=>n});let n=function(e){return e.AdvancedEncryption="UIFeature.advancedEncryption",e.URLPreviews="UIFeature.urlPreviews",e.Widgets="UIFeature.widgets",e.LocationSharing="UIFeature.locationSharing",e.Voip="UIFeature.voip",e.Feedback="UIFeature.feedback",e.Registration="UIFeature.registration",e.PasswordReset="UIFeature.passwordReset",e.Deactivate="UIFeature.deactivate",e.ShareQRCode="UIFeature.shareQrCode",e.ShareSocial="UIFeature.shareSocial",e.IdentityServer="UIFeature.identityServer",e.ThirdPartyID="UIFeature.thirdPartyId",e.AdvancedSettings="UIFeature.advancedSettings",e.RoomHistorySettings="UIFeature.roomHistorySettings",e.TimelineEnableRelativeDates="UIFeature.timelineEnableRelativeDates",e.BulkUnverifiedSessionsReminder="UIFeature.BulkUnverifiedSessionsReminder",e.AllowCreatingPublicRooms="UIFeature.allowCreatingPublicRooms",e.AllowCreatingPublicSpaces="UIFeature.allowCreatingPublicSpaces",e}({}),o=function(e){return e.InviteUsers="UIComponent.sendInvites",e.CreateRooms="UIComponent.roomCreation",e.CreateSpaces="UIComponent.spaceCreation",e.ExploreRooms="UIComponent.exploreRooms",e.AddIntegrations="UIComponent.addIntegrations",e.FilterContainer="UIComponent.filterContainer",e.RoomOptionsMenu="UIComponent.roomOptionsMenu",e}({})},"./src/settings/controllers/DeviceIsolationModeController.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>r,y:()=>a});var n=s("./node_modules/matrix-js-sdk/src/crypto-api/index.ts"),o=s("./src/settings/controllers/SettingController.ts"),i=s("./src/MatrixClientPeg.ts");class r extends o.A{onChange(e,t,s){a(i.J.safeGet(),s)}}function a(e,t){var s;null===(s=e.getCrypto())||void 0===s||s.setDeviceIsolationMode(t?new n.hI:new n.ux(!1))}},"./src/settings/controllers/MatrixClientBackedController.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>i});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./src/settings/controllers/SettingController.ts");class i extends o.A{static set matrixClient(e){const t=i._matrixClient;i._matrixClient=e;for(const n of i.instances){var s;null===(s=n.initMatrixClient)||void 0===s||s.call(n,e,t)}}constructor(){super(),i.instances.push(this)}get client(){return i._matrixClient}}(0,n.A)(i,"_matrixClient",void 0),(0,n.A)(i,"instances",[])},"./src/settings/controllers/NotificationControllers.ts":(e,t,s)=>{"use strict";s.d(t,{Al:()=>c,Mv:()=>a,ju:()=>d});var n=s("./node_modules/matrix-js-sdk/src/logger.ts"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./src/settings/controllers/SettingController.ts"),r=s("./src/MatrixClientPeg.ts");function a(){const e=r.J.safeGet().pushProcessor.getPushRuleById(".m.rule.master");return e?e.enabled&&!e.actions.includes(o.PushRuleActionName.Notify):(n.vF.warn("No master push rule! Notifications are disabled for this user."),!0)}function l(){let e=s("./src/Notifier.ts");return e.default&&(e=e.default),e}class c extends i.A{getValueOverride(e,t,s,n){return!!l().isPossible()&&(null===s||"default"===n?!a():s)}onChange(e,t,s){l().supportsDesktopNotifications()&&l().setEnabled(s)}}class d extends i.A{getValueOverride(e,t,s){return!!l().isPossible()&&(null===s?!a():s)}}},"./src/settings/controllers/ReloadOnChangeController.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>i});var n=s("./src/settings/controllers/SettingController.ts"),o=s("./src/PlatformPeg.ts");class i extends n.A{onChange(e,t,s){var n;null===(n=o.A.get())||void 0===n||n.reload()}}},"./src/settings/controllers/SettingController.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>n});class n{getValueOverride(e,t,s,n){return null}async beforeChange(e,t,s){return!0}onChange(e,t,s){}get settingDisabled(){return!1}}},"./src/settings/controllers/ThemeController.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./src/settings/controllers/SettingController.ts"),i=s("./src/theme.ts");class r extends o.A{getValueOverride(e,t,s,n){if(!s)return null;if(r.isLogin)return"light";return(0,i.v2)()[s]?null:i.SS}}(0,n.A)(r,"isLogin",!1)},"./src/settings/enums/ImageSize.ts":(e,t,s)=>{"use strict";s.d(t,{P:()=>a,h:()=>r});const n={w:800,h:600},o={w:324,h:324},i={w:Math.ceil(182.25),h:324};let r=function(e){return e.Normal="normal",e.Large="large",e}({});function a(e,t,s){const a=t.w/t.h,l=a<1,c=e===r.Large?n:l?i:o;if(!t.w||!t.h)return c;const d={w:Math.min(c.w,t.w),h:s?Math.min(c.h,t.h,s):Math.min(c.h,t.h)};return d.h*a<d.w?{w:Math.floor(d.h*a),h:d.h}:{w:d.w,h:Math.floor(d.w/a)}}},"./src/settings/enums/Layout.ts":(e,t,s)=>{"use strict";s.d(t,{P:()=>n});let n=function(e){return e.IRC="irc",e.Group="group",e.Bubble="bubble",e}({})},"./src/settings/handlers/MatrixClientBackedSettingsHandler.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>i});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./src/settings/handlers/SettingsHandler.ts");class i extends o.A{static set matrixClient(e){const t=i._matrixClient;i._matrixClient=e;for(const s of i.instances)s.initMatrixClient(t,e)}constructor(){super(),i.instances.push(this)}get client(){return i._matrixClient}}(0,n.A)(i,"_matrixClient",void 0),(0,n.A)(i,"instances",[])},"./src/settings/handlers/SettingsHandler.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>o});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");class o{constructor(){(0,n.A)(this,"watchers",void 0)}reset(){}}},"./src/settings/watchers/FontWatcher.ts":(e,t,s)=>{"use strict";s.d(t,{g:()=>c});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./src/dispatcher/dispatcher.ts"),i=s("./src/settings/SettingsStore.ts"),r=s("./src/utils/units.ts"),a=s("./src/dispatcher/actions.ts"),l=s("./src/settings/SettingLevel.ts");class c{constructor(){(0,n.A)(this,"dispatcherRef",void 0),(0,n.A)(this,"onAction",e=>{e.action===a.r.MigrateBaseFontSize?this.migrateBaseFontSize():e.action===a.r.UpdateFontSizeDelta?this.setRootFontSize(e.delta):e.action===a.r.UpdateSystemFont?this.setSystemFont(e):e.action===a.r.OnLoggedOut?(this.setRootFontSize(c.DEFAULT_DELTA),this.setSystemFont({useBundledEmojiFont:!1,useSystemFont:!1,font:""})):e.action===a.r.OnLoggedIn&&this.updateFont()}),(0,n.A)(this,"setRootFontSize",async e=>{document.querySelector(":root").style.fontSize=`calc(${c.DEFAULT_SIZE} + ${(0,r.c)(e)})`}),(0,n.A)(this,"setSystemFont",({useBundledEmojiFont:e,useSystemFont:t,font:s})=>{if(t){let t=s.split(",").map(e=>((e=e.trim()).startsWith('"')||e.endsWith('"')||(e=`"${e}"`),e)).join(",");e&&(t+=", "+c.BUNDLED_EMOJI_FONT),document.body.style.setProperty(c.FONT_FAMILY_CUSTOM_PROPERTY,t)}else document.body.style.removeProperty(c.FONT_FAMILY_CUSTOM_PROPERTY),e?document.body.style.setProperty(c.EMOJI_FONT_FAMILY_CUSTOM_PROPERTY,c.BUNDLED_EMOJI_FONT):document.body.style.removeProperty(c.EMOJI_FONT_FAMILY_CUSTOM_PROPERTY)})}async start(){this.updateFont(),this.dispatcherRef=o.A.register(this.onAction),await this.migrateBaseFontSize()}async migrateBaseFontSize(){await this.migrateBaseFontV1toFontSizeDelta(),await this.migrateBaseFontV2toFontSizeDelta()}async migrateBaseFontV1toFontSizeDelta(){const e=i.A.getValue("baseFontSize");if(!e)return;console.log("Migrating base font size -> base font size V2 -> font size delta for Compound, current value",e);const t=this.computeBaseFontSizeV1toV2(e),s=this.computeFontSizeDeltaFromV2BaseFontSize(t);await i.A.setValue("fontSizeDelta",null,l.p.DEVICE,s),await i.A.setValue("baseFontSize",null,l.p.DEVICE,0),console.log("Migration complete, deleting legacy `baseFontSize`")}async migrateBaseFontV2toFontSizeDelta(){const e=i.A.getValue("baseFontSizeV2");if(!e)return;console.log("Migrating base font size V2 for Compound, current value",e);const t=this.computeFontSizeDeltaFromV2BaseFontSize(e);await i.A.setValue("fontSizeDelta",null,l.p.DEVICE,t),await i.A.setValue("baseFontSizeV2",null,l.p.DEVICE,0),console.log("Migration complete, deleting legacy `baseFontSizeV2`")}computeBaseFontSizeV1toV2(e){return e+1+5}computeFontSizeDeltaFromV2BaseFontSize(e){return e-c.getRootFontSize()}static getRootFontSize(){return parseInt(window.getComputedStyle(document.documentElement).getPropertyValue("font-size"),10)||16}static getBrowserDefaultFontSize(){return this.getRootFontSize()-i.A.getValue("fontSizeDelta")}stop(){o.A.unregister(this.dispatcherRef)}updateFont(){this.setRootFontSize(i.A.getValue("fontSizeDelta")),this.setSystemFont({useBundledEmojiFont:i.A.getValue("useBundledEmojiFont"),useSystemFont:i.A.getValue("useSystemFont"),font:i.A.getValue("systemFont")})}}(0,n.A)(c,"DEFAULT_SIZE","var(--cpd-font-size-root)"),(0,n.A)(c,"DEFAULT_DELTA",0),(0,n.A)(c,"FONT_FAMILY_CUSTOM_PROPERTY","--cpd-font-family-sans"),(0,n.A)(c,"EMOJI_FONT_FAMILY_CUSTOM_PROPERTY","--emoji-font-family"),(0,n.A)(c,"BUNDLED_EMOJI_FONT","Twemoji")},"./src/settings/watchers/ThemeWatcher.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>h,S:()=>u});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/logger.ts"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./src/settings/SettingsStore.ts"),a=s("./src/dispatcher/dispatcher.ts"),l=s("./src/dispatcher/actions.ts"),c=s("./src/settings/controllers/ThemeController.ts"),d=s("./src/theme.ts"),m=s("./src/settings/SettingLevel.ts");let u=function(e){return e.Change="change",e}({});class h extends i.TypedEventEmitter{constructor(){super(),(0,n.A)(this,"themeWatchRef",void 0),(0,n.A)(this,"systemThemeWatchRef",void 0),(0,n.A)(this,"dispatcherRef",void 0),(0,n.A)(this,"preferDark",void 0),(0,n.A)(this,"preferLight",void 0),(0,n.A)(this,"preferHighContrast",void 0),(0,n.A)(this,"currentTheme",void 0),(0,n.A)(this,"onChange",()=>{this.recheck()}),(0,n.A)(this,"onAction",e=>{e.action===l.r.RecheckTheme&&this.recheck(e.forceTheme)}),this.preferDark=s.g.matchMedia("(prefers-color-scheme: dark)"),this.preferLight=s.g.matchMedia("(prefers-color-scheme: light)"),this.preferHighContrast=s.g.matchMedia("(prefers-contrast: more)"),this.currentTheme=this.getEffectiveTheme()}start(){this.themeWatchRef=r.A.watchSetting("theme",null,this.onChange),this.systemThemeWatchRef=r.A.watchSetting("use_system_theme",null,this.onChange),this.preferDark.addEventListener("change",this.onChange),this.preferLight.addEventListener("change",this.onChange),this.preferHighContrast.addEventListener("change",this.onChange),this.dispatcherRef=a.A.register(this.onAction)}stop(){this.preferDark.removeEventListener("change",this.onChange),this.preferLight.removeEventListener("change",this.onChange),this.preferHighContrast.removeEventListener("change",this.onChange),r.A.unwatchSetting(this.systemThemeWatchRef),r.A.unwatchSetting(this.themeWatchRef),a.A.unregister(this.dispatcherRef)}recheck(e){const t=this.currentTheme;this.currentTheme=void 0===e?this.getEffectiveTheme():e,t!==this.currentTheme&&this.emit(u.Change,this.currentTheme)}getEffectiveTheme(){if(c.A.isLogin)return"light";if(r.A.getValueAt(m.p.DEVICE,"use_system_theme",null,!1,!0)){o.vF.log("returning explicit system theme");const e=this.themeBasedOnSystem();if(e)return e}const e=r.A.getValueAt(m.p.DEVICE,"theme",null,!1,!0);if(e)return o.vF.log("returning explicit theme: "+e),e;if(r.A.getValue("use_system_theme")){const e=this.themeBasedOnSystem();if(e)return e}return o.vF.log("returning theme value"),r.A.getValue("theme")}themeBasedOnSystem(){let e;if(this.preferDark.matches?e="dark":this.preferLight.matches&&(e="light"),e&&this.preferHighContrast.matches){const t=(0,d.TJ)(e);t&&(e=t)}return e}isSystemThemeSupported(){return this.preferDark.matches||this.preferLight.matches}}},"./src/shouldHideEvent.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>r});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./node_modules/matrix-js-sdk/src/types.ts"),i=s("./src/settings/SettingsStore.ts");function r(e,t){const s=t?e=>t[e]:t=>i.A.getValue(t,e.getRoomId());if(e.isRedacted()&&!s("showRedactions")&&!e.getThread())return!0;if(e.isRelation(n.RelationType.Replace))return!0;const r=function(e){const t={isMemberEvent:e.getType()===n.EventType.RoomMember};if(!t.isMemberEvent)return t;const s=e.getContent(),i=e.getPrevContent(),r=s.membership!==i.membership;t.isJoin=r&&s.membership===o.O.Join,t.isPart=r&&s.membership===o.O.Leave&&e.getStateKey()===e.getSender();const a=!r&&s.membership===o.O.Join;return t.isDisplaynameChange=a&&s.displayname!==i.displayname,t.isAvatarChange=a&&s.avatar_url!==i.avatar_url,t}(e);if(r.isMemberEvent){if((r.isJoin||r.isPart)&&!s("showJoinLeaves"))return!0;if(r.isAvatarChange&&!s("showAvatarChanges"))return!0;if(r.isDisplaynameChange&&!s("showDisplaynameChanges"))return!0}return!1}},"./src/stores/ActiveWidgetStore.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>m,y:()=>d});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/events/events.js"),i=s.n(o),r=s("./node_modules/matrix-js-sdk/src/matrix.ts"),a=s("./src/MatrixClientPeg.ts"),l=s("./src/utils/WidgetUtils.ts"),c=s("./src/stores/widgets/WidgetMessagingStore.ts");let d=function(e){return e.Persistence="persistence",e.Dock="dock",e.Undock="undock",e}({});class m extends(i()){constructor(...e){super(...e),(0,n.A)(this,"persistentWidgetId",null),(0,n.A)(this,"persistentRoomId",null),(0,n.A)(this,"dockedWidgetsByUid",new Map),(0,n.A)(this,"onRoomStateEvents",(e,{roomId:t})=>{"im.vector.modular.widgets"===e.getType()&&this.destroyPersistentWidget(e.getStateKey(),t)})}static get instance(){return m.internalInstance||(m.internalInstance=new m),m.internalInstance}start(){a.J.safeGet().on(r.RoomStateEvent.Events,this.onRoomStateEvents)}stop(){var e;null===(e=a.J.get())||void 0===e||e.removeListener(r.RoomStateEvent.Events,this.onRoomStateEvents)}destroyPersistentWidget(e,t){this.getWidgetPersistence(e,t)&&(this.setWidgetPersistence(e,t,!1),c.c.instance.stopMessagingByUid(l.A.calcWidgetUid(e,null!=t?t:void 0)))}setWidgetPersistence(e,t,s){const n=this.getWidgetPersistence(e,t);n&&!s?(this.persistentWidgetId=null,this.persistentRoomId=null):!n&&s&&(this.persistentWidgetId=e,this.persistentRoomId=t),this.emit(d.Persistence)}getWidgetPersistence(e,t){return this.persistentWidgetId===e&&this.persistentRoomId===t}getPersistentWidgetId(){return this.persistentWidgetId}getPersistentRoomId(){return this.persistentRoomId}dockWidget(e,t){var s;const n=l.A.calcWidgetUid(e,null!=t?t:void 0),o=null!==(s=this.dockedWidgetsByUid.get(n))&&void 0!==s?s:0;this.dockedWidgetsByUid.set(n,o+1),0===o&&this.emit(d.Dock)}undockWidget(e,t){const s=l.A.calcWidgetUid(e,null!=t?t:void 0),n=this.dockedWidgetsByUid.get(s);n&&this.dockedWidgetsByUid.set(s,n-1),1===n&&this.emit(d.Undock)}isDocked(e,t){var s;const n=l.A.calcWidgetUid(e,null!=t?t:void 0);return(null!==(s=this.dockedWidgetsByUid.get(n))&&void 0!==s?s:0)>0}isLive(e,t){return this.isDocked(e,t)||this.getWidgetPersistence(e,t)}}(0,n.A)(m,"internalInstance",void 0),window.mxActiveWidgetStore=m.instance},"./src/stores/AsyncStore.ts":(e,t,s)=>{"use strict";s.d(t,{H:()=>a,y:()=>l});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/events/events.js"),i=s("./node_modules/await-lock/build/AwaitLock.js"),r=s.n(i);const a="update";class l extends o.EventEmitter{constructor(e,t={}){super(),(0,n.A)(this,"storeState",void 0),(0,n.A)(this,"lock",new(r())),(0,n.A)(this,"dispatcherRef",void 0),this.dispatcher=e,this.dispatcherRef=e.register(this.onDispatch.bind(this)),this.storeState=t}get state(){return this.storeState}stop(){this.dispatcher.unregister(this.dispatcherRef)}async updateState(e){await this.lock.acquireAsync();try{this.storeState=Object.freeze(Object.assign({},this.storeState,e)),this.emit(a,this)}finally{await this.lock.release()}}async reset(e=null,t=!1){await this.lock.acquireAsync();try{this.storeState=Object.freeze(e||{}),t||this.emit(a,this)}finally{await this.lock.release()}}}},"./src/stores/AsyncStoreWithClient.ts":(e,t,s)=>{"use strict";s.d(t,{r:()=>r});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./src/stores/AsyncStore.ts"),i=s("./src/stores/ReadyWatchingStore.ts");class r extends o.y{constructor(e,t={}){super(e,t),(0,n.A)(this,"readyStore",void 0);const s=this;this.readyStore=new class extends i.g{get mxClient(){var e;return null!==(e=this.matrixClient)&&void 0!==e?e:null}async onReady(){return s.onReady()}async onNotReady(){return s.onNotReady()}}(e)}async start(){await this.readyStore.start()}get matrixClient(){return this.readyStore.mxClient}async onReady(){}async onNotReady(){}async onDispatch(e){await this.onAction(e)}}},"./src/stores/BreadcrumbsStore.ts":(e,t,s)=>{"use strict";s.d(t,{Y:()=>p});var n,o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./node_modules/matrix-js-sdk/src/types.ts"),a=s("./node_modules/matrix-js-sdk/src/utils.ts"),l=s("./src/settings/SettingsStore.ts"),c=s("./src/stores/AsyncStoreWithClient.ts"),d=s("./src/dispatcher/dispatcher.ts"),m=s("./src/utils/arrays.ts"),u=s("./src/settings/SettingLevel.ts"),h=s("./src/dispatcher/actions.ts");class p extends c.r{constructor(){super(d.A),(0,o.A)(this,"waitingRooms",[]),(0,o.A)(this,"onMyMembership",async e=>{const t=l.A.getValue("breadcrumbs",null,!0);this.meetsRoomRequirement&&(0,a.hX)(t)&&await l.A.setValue("breadcrumbs",null,u.p.ACCOUNT,!0)}),(0,o.A)(this,"onRoom",async e=>{const t=this.waitingRooms.find(t=>t.roomId===e.roomId);t&&(this.waitingRooms.splice(this.waitingRooms.indexOf(t),1),Date.now()-t.addedTs>9e4||await this.appendRoom(e))}),l.A.monitorSetting("breadcrumb_rooms",null),l.A.monitorSetting("breadcrumbs",null)}static get instance(){return p.internalInstance}get rooms(){return this.state.rooms||[]}get visible(){return!!this.state.enabled&&this.meetsRoomRequirement}get meetsRoomRequirement(){const e=l.A.getValue("feature_dynamic_room_predecessors");return!!this.matrixClient&&this.matrixClient.getVisibleRooms(e).length>=20}async onAction(e){if(this.matrixClient)if(e.action===h.r.SettingUpdated)"breadcrumb_rooms"===e.settingName?await this.updateRooms():"breadcrumbs"===e.settingName&&await this.updateState({enabled:l.A.getValue("breadcrumbs",null)});else if(e.action===h.r.ViewRoom)if(e.auto_join&&e.room_id&&!this.matrixClient.getRoom(e.room_id))this.waitingRooms.push({roomId:e.room_id,addedTs:Date.now()});else{const t=this.matrixClient.getRoom(e.room_id),s=null==t?void 0:t.getMyMembership();t&&s===r.O.Join&&await this.appendRoom(t)}else if(e.action===h.r.JoinRoom){const t=this.matrixClient.getRoom(e.roomId);t&&await this.appendRoom(t)}}async onReady(){await this.updateRooms(),await this.updateState({enabled:l.A.getValue("breadcrumbs",null)}),this.matrixClient&&(this.matrixClient.on(i.RoomEvent.MyMembership,this.onMyMembership),this.matrixClient.on(i.ClientEvent.Room,this.onRoom))}async onNotReady(){this.matrixClient&&(this.matrixClient.removeListener(i.RoomEvent.MyMembership,this.onMyMembership),this.matrixClient.removeListener(i.ClientEvent.Room,this.onRoom))}async updateRooms(){let e=l.A.getValue("breadcrumb_rooms");e&&0!==e.length||(e=[]);const t=(0,m.Bo)(e.map(e=>{var t;return null===(t=this.matrixClient)||void 0===t?void 0:t.getRoom(e)})),s=this.state.rooms||[];(0,m.dc)(t,s)&&await this.updateState({rooms:t})}async appendRoom(e){var t;let s=!1;const n=(this.state.rooms||[]).slice(),o=l.A.getValue("feature_dynamic_room_predecessors"),i=null===(t=this.matrixClient)||void 0===t?void 0:t.getRoomUpgradeHistory(e.roomId,!0,o);if(i&&i.length>1){e=i[i.length-1];for(let e=0;e<i.length-1;e++){const t=n.findIndex(t=>t.roomId===i[e].roomId);-1!==t&&(n.splice(t,1),s=!0)}}const r=n.findIndex(t=>t.roomId===e.roomId);if(0!==r&&(-1!==r&&n.splice(r,1),n.splice(0,0,e),s=!0),n.length>20&&(n.splice(20,n.length-20),s=!0),s){await this.updateState({rooms:n});const e=n.map(e=>e.roomId);e.length>0&&await l.A.setValue("breadcrumb_rooms",null,u.p.ACCOUNT,e)}}}n=p,(0,o.A)(p,"internalInstance",(()=>{const e=new n;return e.start(),e})())},"./src/stores/CallStore.ts":(e,t,s)=>{"use strict";s.d(t,{e:()=>p,s:()=>h});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/logger.ts"),i=s("./node_modules/matrix-js-sdk/src/matrixrtc/index.ts"),r=s("./src/dispatcher/dispatcher.ts"),a=s("./src/stores/AsyncStore.ts"),l=s("./src/stores/AsyncStoreWithClient.ts"),c=s("./src/stores/WidgetStore.ts"),d=s("./src/settings/SettingsStore.ts"),m=s("./src/settings/SettingLevel.ts"),u=s("./src/models/Call.ts");let h=function(e){return e.Call="call",e.ConnectedCalls="connected_calls",e}({});class p extends l.r{static get instance(){return this._instance||(this._instance=new p,this._instance.start()),this._instance}constructor(){super(r.A),(0,n.A)(this,"_connectedCalls",new Set),(0,n.A)(this,"calls",new Map),(0,n.A)(this,"callListeners",new Map),(0,n.A)(this,"inUpdateRoom",!1),(0,n.A)(this,"onWidgets",e=>{if(this.matrixClient)if(null===e)for(const e of this.matrixClient.getRooms())this.updateRoom(e);else{const t=this.matrixClient.getRoom(e);null!==t&&this.updateRoom(t)}}),(0,n.A)(this,"onRTCSessionStart",(e,t)=>{this.updateRoom(t.room)}),this.setMaxListeners(100)}async onAction(){}async onReady(){if(!this.matrixClient)return;for(const e of this.matrixClient.getRooms())this.updateRoom(e);this.matrixClient.matrixRTC.on(i.JY.SessionStarted,this.onRTCSessionStart),c.Ay.instance.on(a.H,this.onWidgets);const e=d.A.getValue("activeCallRoomIds");e.length&&await Promise.all([...e.map(async e=>{var t;o.vF.log(`Cleaning up call state for room ${e}`),await(null===(t=this.getCall(e))||void 0===t?void 0:t.clean())}),d.A.setValue("activeCallRoomIds",null,m.p.DEVICE,[])])}async onNotReady(){var e;for(const[e,t]of this.callListeners){for(const[s,n]of t)e.off(s,n);e.destroy()}this.callListeners.clear(),this.calls.clear(),this._connectedCalls.clear(),null===(e=this.matrixClient)||void 0===e||e.matrixRTC.off(i.JY.SessionStarted,this.onRTCSessionStart),c.Ay.instance.off(a.H,this.onWidgets)}get connectedCalls(){return this._connectedCalls}set connectedCalls(e){this._connectedCalls=e,this.emit(h.ConnectedCalls,e),d.A.setValue("activeCallRoomIds",null,m.p.DEVICE,[...e].map(e=>e.roomId))}updateRoom(e){if(!this.inUpdateRoom&&!this.calls.has(e.roomId)){this.inUpdateRoom=!0;const t=u.Je.get(e);if(t){const s=e=>{e===u.KN.Connected?this.connectedCalls=new Set([...this.connectedCalls,t]):e===u.KN.Disconnected&&(this.connectedCalls=new Set([...this.connectedCalls].filter(e=>e!==t)))},n=()=>{this.calls.delete(e.roomId);for(const[e,s]of this.callListeners.get(t))t.off(e,s);this.updateRoom(e)};t.on(u.$E.ConnectionState,s),t.on(u.$E.Destroy,n),this.calls.set(e.roomId,t),this.callListeners.set(t,new Map([[u.$E.ConnectionState,s],[u.$E.Destroy,n]]))}this.emit(h.Call,t,e.roomId),this.inUpdateRoom=!1}}getCall(e){var t;return null!==(t=this.calls.get(e))&&void 0!==t?t:null}getActiveCall(e){const t=this.getCall(e);return null!==t&&this.connectedCalls.has(t)?t:null}}(0,n.A)(p,"_instance",void 0)},"./src/stores/NonUrgentToastStore.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>a});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/events/events.js"),i=s.n(o),r=s("./src/stores/AsyncStore.ts");class a extends(i()){constructor(...e){super(...e),(0,n.A)(this,"toasts",new Map)}static get instance(){return a._instance||(a._instance=new a),a._instance}get components(){return Array.from(this.toasts.values())}addToast(e){const t=Symbol();return this.toasts.set(t,e),this.emit(r.H),t}removeToast(e){this.toasts.delete(e),this.emit(r.H)}}(0,n.A)(a,"_instance",void 0)},"./src/stores/OwnBeaconStore.ts":(e,t,s)=>{"use strict";s.d(t,{g:()=>E,q:()=>f});var n,o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/lodash/lodash.js"),r=s("./node_modules/matrix-js-sdk/src/matrix.ts"),a=s("./node_modules/matrix-js-sdk/src/types.ts"),l=s("./node_modules/matrix-js-sdk/src/logger.ts"),c=s("./src/dispatcher/dispatcher.ts"),d=s("./src/stores/AsyncStoreWithClient.ts"),m=s("./src/utils/arrays.ts"),u=s("./src/utils/beacon/index.ts"),h=s("./src/utils/local-room.ts"),p=s("./src/settings/SettingsStore.ts");function g(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function v(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?g(Object(s),!0).forEach(function(t){(0,o.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):g(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const _=(e,t)=>e.beaconInfoOwner===t;let f=function(e){return e.LivenessChange="OwnBeaconStore.LivenessChange",e.MonitoringLivePosition="OwnBeaconStore.MonitoringLivePosition",e.LocationPublishError="LocationPublishError",e.BeaconUpdateError="BeaconUpdateError",e}({});const y="mx_live_beacon_created_id",b=()=>{let e;try{var t;if(e=JSON.parse(null!==(t=window.localStorage.getItem(y))&&void 0!==t?t:"[]"),!Array.isArray(e))throw new Error("Invalid stored value")}catch(t){l.vF.error("Failed to retrieve locally created beacon event ids",t),e=[]}return e};class E extends d.r{constructor(){super(c.A),(0,o.A)(this,"beacons",new Map),(0,o.A)(this,"beaconsByRoomId",new Map),(0,o.A)(this,"beaconLocationPublishErrorCounts",new Map),(0,o.A)(this,"beaconUpdateErrors",new Map),(0,o.A)(this,"liveBeaconIds",[]),(0,o.A)(this,"locationInterval",void 0),(0,o.A)(this,"clearPositionWatch",void 0),(0,o.A)(this,"lastPublishedPositionTimestamp",void 0),(0,o.A)(this,"dynamicWatcherRef",void 0),(0,o.A)(this,"hasLiveBeacons",e=>!!this.getLiveBeaconIds(e).length),(0,o.A)(this,"hasLocationPublishErrors",e=>this.getLiveBeaconIds(e).some(this.beaconHasLocationPublishError)),(0,o.A)(this,"beaconHasLocationPublishError",e=>{const t=this.beaconLocationPublishErrorCounts.get(e);return void 0!==t&&t>=2}),(0,o.A)(this,"resetLocationPublishError",e=>{this.incrementBeaconLocationPublishErrorCount(e,!1),this.publishCurrentLocationToBeacons()}),(0,o.A)(this,"getLiveBeaconIds",e=>e?this.liveBeaconIds.filter(t=>{var s;return null===(s=this.beaconsByRoomId.get(e))||void 0===s?void 0:s.has(t)}):this.liveBeaconIds),(0,o.A)(this,"getLiveBeaconIdsWithLocationPublishError",e=>this.getLiveBeaconIds(e).filter(this.beaconHasLocationPublishError)),(0,o.A)(this,"getBeaconById",e=>this.beacons.get(e)),(0,o.A)(this,"stopBeacon",async e=>{var t;const s=this.beacons.get(e);null!=s&&null!==(t=s.beaconInfo)&&void 0!==t&&t.live&&(await this.updateBeaconEvent(s,{live:!1}),(e=>{const t=b();window.localStorage.setItem(y,JSON.stringify(t.filter(t=>t!==e)))})(s.beaconInfoId))}),(0,o.A)(this,"onNewBeacon",(e,t)=>{this.matrixClient&&_(t,this.matrixClient.getUserId())&&(this.addBeacon(t),this.checkLiveness())}),(0,o.A)(this,"onUpdateBeacon",(e,t)=>{this.matrixClient&&_(t,this.matrixClient.getUserId())&&(this.checkLiveness(),t.monitorLiveness())}),(0,o.A)(this,"onDestroyBeacon",e=>{this.beacons.has(e)&&this.checkLiveness()}),(0,o.A)(this,"onBeaconLiveness",(e,t)=>{this.beacons.has(t.identifier)&&(e||this.stopBeacon(t.identifier),this.checkLiveness(),this.emit(f.LivenessChange,this.getLiveBeaconIds()))}),(0,o.A)(this,"onRoomStateMembers",(e,t,s)=>{var n;this.matrixClient&&this.beaconsByRoomId.has(t.roomId)&&s.userId===this.matrixClient.getUserId()&&(s.membership!==a.O.Leave&&s.membership!==a.O.Ban||(null===(n=this.beaconsByRoomId.get(t.roomId))||void 0===n||n.forEach(this.removeBeacon),this.beaconsByRoomId.delete(t.roomId)))}),(0,o.A)(this,"reinitialiseBeaconState",()=>{this.clearBeacons(),this.initialiseBeaconState()}),(0,o.A)(this,"initialiseBeaconState",()=>{if(!this.matrixClient)return;const e=this.matrixClient.getSafeUserId();this.matrixClient.getVisibleRooms(p.A.getValue("feature_dynamic_room_predecessors")).forEach(t=>{[...t.currentState.beacons.values()].filter(t=>_(t,e)).forEach(e=>this.addBeacon(e))}),this.checkLiveness()}),(0,o.A)(this,"addBeacon",e=>{this.beacons.set(e.identifier,e),this.beaconsByRoomId.has(e.roomId)||this.beaconsByRoomId.set(e.roomId,new Set),this.beaconsByRoomId.get(e.roomId).add(e.identifier),e.monitorLiveness()}),(0,o.A)(this,"removeBeacon",e=>{this.beacons.has(e)&&(this.beacons.get(e).destroy(),this.beacons.delete(e),this.checkLiveness())}),(0,o.A)(this,"checkLiveness",()=>{const e=b(),t=this.getLiveBeaconIds();this.liveBeaconIds=[...this.beacons.values()].filter(t=>t.isLive&&e.includes(t.beaconInfoId)).sort(u.d0).map(e=>e.identifier);const s=(0,m.ZQ)(t,this.liveBeaconIds);(s.added.length||s.removed.length)&&this.emit(f.LivenessChange,this.liveBeaconIds),s.added.length&&this.isMonitoringLiveLocation&&this.publishCurrentLocationToBeacons(),!(null==t||!t.length)!=!!this.liveBeaconIds.length&&this.togglePollingLocation()}),(0,o.A)(this,"createLiveBeacon",async(e,t)=>{if(!this.matrixClient)return;const s=this.getLiveBeaconIds(e);await Promise.all(s.map(e=>this.stopBeacon(e)));const{event_id:n}=await(0,h.Y)(e,e=>this.matrixClient.unstable_createLiveBeacon(e,t),this.matrixClient);(e=>{const t=b();window.localStorage.setItem(y,JSON.stringify([...t,e]))})(n)}),(0,o.A)(this,"togglePollingLocation",()=>{this.liveBeaconIds.length?this.startPollingLocation():this.stopPollingLocation()}),(0,o.A)(this,"startPollingLocation",async()=>{this.stopPollingLocation();try{this.clearPositionWatch=(0,u.jS)(this.onWatchedPosition,this.onGeolocationError)}catch(e){return void(e instanceof Error?this.onGeolocationError(e.message):console.error("Unexpected error",e))}this.locationInterval=window.setInterval(()=>{this.lastPublishedPositionTimestamp&&this.lastPublishedPositionTimestamp<=Date.now()-3e4&&this.publishCurrentLocationToBeacons()},3e4),this.emit(f.MonitoringLivePosition)}),(0,o.A)(this,"stopPollingLocation",()=>{clearInterval(this.locationInterval),this.locationInterval=void 0,this.lastPublishedPositionTimestamp=void 0,this.clearPositionWatch&&(this.clearPositionWatch(),this.clearPositionWatch=void 0),this.emit(f.MonitoringLivePosition)}),(0,o.A)(this,"onWatchedPosition",e=>{const t=(0,u.nq)(e);this.lastPublishedPositionTimestamp?this.debouncedPublishLocationToBeacons(t):this.publishLocationToBeacons(t)}),(0,o.A)(this,"onGeolocationError",async e=>{l.vF.error("Geolocation failed",e),[u.b1.Unavailable,u.b1.PermissionDenied].includes(e)&&(this.stopPollingLocation(),await Promise.all(this.liveBeaconIds.map(this.stopBeacon)))}),(0,o.A)(this,"publishCurrentLocationToBeacons",async()=>{try{const e=await(0,u.J1)();this.publishLocationToBeacons((0,u.nq)(e))}catch(e){e instanceof Error?this.onGeolocationError(e.message):console.error("Unexpected error",e)}}),(0,o.A)(this,"updateBeaconEvent",async(e,t)=>{const{description:s,timeout:n,timestamp:o,live:i,assetType:a}=v(v({},e.beaconInfo),t),c=r.ContentHelpers.makeBeaconInfoContent(n,i,s,a,o);try{await this.matrixClient.unstable_setLiveBeacon(e.roomId,c);this.beaconUpdateErrors.has(e.identifier)&&(this.beaconUpdateErrors.delete(e.identifier),this.emit(f.BeaconUpdateError,e.identifier,!1))}catch(t){throw l.vF.error("Failed to update beacon",t),this.beaconUpdateErrors.set(e.identifier,t),this.emit(f.BeaconUpdateError,e.identifier,!0),t}}),(0,o.A)(this,"publishLocationToBeacons",async e=>{this.lastPublishedPositionTimestamp=Date.now(),await Promise.all(this.healthyLiveBeaconIds.map(t=>this.beacons.has(t)?this.sendLocationToBeacon(this.beacons.get(t),e):null))}),(0,o.A)(this,"debouncedPublishLocationToBeacons",(0,i.debounce)(this.publishLocationToBeacons,5e3)),(0,o.A)(this,"sendLocationToBeacon",async(e,{geoUri:t,timestamp:s})=>{const n=r.ContentHelpers.makeBeaconContent(t,s,e.beaconInfoId);try{await this.matrixClient.sendEvent(e.roomId,r.M_BEACON.name,n),this.incrementBeaconLocationPublishErrorCount(e.identifier,!1)}catch(t){l.vF.error(t),this.incrementBeaconLocationPublishErrorCount(e.identifier,!0)}}),(0,o.A)(this,"incrementBeaconLocationPublishErrorCount",(e,t)=>{const s=this.beaconHasLocationPublishError(e);var n;t?this.beaconLocationPublishErrorCounts.set(e,(null!==(n=this.beaconLocationPublishErrorCounts.get(e))&&void 0!==n?n:0)+1):this.beaconLocationPublishErrorCounts.delete(e);this.beaconHasLocationPublishError(e)!==s&&this.emit(f.LocationPublishError,e)})}static get instance(){return E.internalInstance}get isMonitoringLiveLocation(){return!!this.clearPositionWatch}async onNotReady(){this.matrixClient&&(this.matrixClient.removeListener(r.BeaconEvent.LivenessChange,this.onBeaconLiveness),this.matrixClient.removeListener(r.BeaconEvent.New,this.onNewBeacon),this.matrixClient.removeListener(r.BeaconEvent.Update,this.onUpdateBeacon),this.matrixClient.removeListener(r.BeaconEvent.Destroy,this.onDestroyBeacon),this.matrixClient.removeListener(r.RoomStateEvent.Members,this.onRoomStateMembers)),p.A.unwatchSetting(this.dynamicWatcherRef),this.clearBeacons()}clearBeacons(){this.beacons.forEach(e=>e.destroy()),this.stopPollingLocation(),this.beacons.clear(),this.beaconsByRoomId.clear(),this.liveBeaconIds=[],this.beaconLocationPublishErrorCounts.clear(),this.beaconUpdateErrors.clear()}async onReady(){this.matrixClient&&(this.matrixClient.on(r.BeaconEvent.LivenessChange,this.onBeaconLiveness),this.matrixClient.on(r.BeaconEvent.New,this.onNewBeacon),this.matrixClient.on(r.BeaconEvent.Update,this.onUpdateBeacon),this.matrixClient.on(r.BeaconEvent.Destroy,this.onDestroyBeacon),this.matrixClient.on(r.RoomStateEvent.Members,this.onRoomStateMembers)),this.dynamicWatcherRef=p.A.watchSetting("feature_dynamic_room_predecessors",null,this.reinitialiseBeaconState),this.initialiseBeaconState()}async onAction(e){}get healthyLiveBeaconIds(){return this.liveBeaconIds.filter(e=>!this.beaconHasLocationPublishError(e)&&!this.beaconUpdateErrors.has(e))}}n=E,(0,o.A)(E,"internalInstance",(()=>{const e=new n;return e.start(),e})())},"./src/stores/OwnProfileStore.ts":(e,t,s)=>{"use strict";s.d(t,{V:()=>p});var n,o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./node_modules/lodash/lodash.js"),a=s("./src/stores/AsyncStoreWithClient.ts"),l=s("./src/dispatcher/dispatcher.ts"),c=s("./src/MatrixClientPeg.ts"),d=s("./src/languageHandler.tsx"),m=s("./src/customisations/Media.ts");const u="mx_profile_displayname",h="mx_profile_avatar_url";class p extends a.r{constructor(){super(l.A,{displayName:window.localStorage.getItem(u)||void 0,avatarUrl:window.localStorage.getItem(h)||void 0}),(0,o.A)(this,"monitoredUser",null),(0,o.A)(this,"onProfileUpdate",(0,r.throttle)(async()=>{if(!this.matrixClient)return;let e={displayname:void 0,avatar_url:void 0};try{e=await this.matrixClient.getProfileInfo(this.matrixClient.getSafeUserId())}catch(e){if(!(e instanceof i.MatrixError)||"M_NOT_FOUND"!==e.errcode)throw e}e.displayname?window.localStorage.setItem(u,e.displayname):window.localStorage.removeItem(u),e.avatar_url?window.localStorage.setItem(h,e.avatar_url):window.localStorage.removeItem(h),await this.updateState({displayName:e.displayname,avatarUrl:e.avatar_url,fetchedAt:Date.now()})},200,{trailing:!0,leading:!0})),(0,o.A)(this,"onStateEvents",async e=>{const t=c.J.safeGet().getUserId();e.getType()===i.EventType.RoomMember&&e.getSender()===t&&e.getStateKey()===t&&await this.onProfileUpdate()})}static get instance(){return p.internalInstance}get displayName(){return this.matrixClient?this.matrixClient.isGuest()?(0,d._t)("common|guest"):this.state.displayName?this.state.displayName:this.matrixClient.getUserId():this.state.displayName||null}get isProfileInfoFetched(){return!!this.state.fetchedAt}get avatarMxc(){return this.state.avatarUrl||null}getHttpAvatarUrl(e=0){if(!this.avatarMxc)return null;const t=(0,m.mediaFromMxc)(this.avatarMxc);return!e||e<=0?t.srcHttp:t.getSquareThumbnailHttp(e)}async onNotReady(){var e;this.onProfileUpdate.cancel(),this.monitoredUser&&(this.monitoredUser.removeListener(i.UserEvent.DisplayName,this.onProfileUpdate),this.monitoredUser.removeListener(i.UserEvent.AvatarUrl,this.onProfileUpdate)),null===(e=this.matrixClient)||void 0===e||e.removeListener(i.RoomStateEvent.Events,this.onStateEvents),await this.reset({})}async onReady(){if(!this.matrixClient)return;const e=this.matrixClient.getSafeUserId();this.monitoredUser=this.matrixClient.getUser(e),this.monitoredUser&&(this.monitoredUser.on(i.UserEvent.DisplayName,this.onProfileUpdate),this.monitoredUser.on(i.UserEvent.AvatarUrl,this.onProfileUpdate)),this.matrixClient.on(i.RoomStateEvent.Events,this.onStateEvents),await this.onProfileUpdate()}async onAction(e){}}n=p,(0,o.A)(p,"internalInstance",(()=>{const e=new n;return e.start(),e})())},"./src/stores/ReadyWatchingStore.ts":(e,t,s)=>{"use strict";s.d(t,{g:()=>l});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/events/events.js"),r=s("./src/MatrixClientPeg.ts"),a=s("./src/dispatcher/actions.ts");class l extends i.EventEmitter{constructor(e){super(),(0,n.A)(this,"matrixClient",void 0),(0,n.A)(this,"dispatcherRef",void 0),(0,n.A)(this,"onAction",async e=>{this.onDispatcherAction(e),"MatrixActions.sync"===e.action?e.prevState!==o.SyncState.Prepared&&e.state===o.SyncState.Prepared&&this.matrixClient!==e.matrixClient&&(this.matrixClient&&await this.onNotReady(),this.matrixClient=e.matrixClient,await this.onReady()):"on_client_not_viable"!==e.action&&e.action!==a.r.OnLoggedOut||this.matrixClient&&(await this.onNotReady(),this.matrixClient=void 0)}),this.dispatcher=e}async start(){this.dispatcherRef=this.dispatcher.register(this.onAction);const e=null===r.J||void 0===r.J?void 0:r.J.get();e&&(this.matrixClient=e,await this.onReady())}get mxClient(){var e;return null!==(e=this.matrixClient)&&void 0!==e?e:null}useUnitTestClient(e){this.matrixClient=e}destroy(){this.dispatcher.unregister(this.dispatcherRef)}async onReady(){}async onNotReady(){}onDispatcherAction(e){}}},"./src/stores/ToastStore.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>a});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/events/events.js"),i=s.n(o),r=s("./node_modules/matrix-js-sdk/src/logger.ts");class a extends(i()){constructor(...e){super(...e),(0,n.A)(this,"toasts",[]),(0,n.A)(this,"countSeen",0)}static sharedInstance(){return window.mxToastStore||(window.mxToastStore=new a),window.mxToastStore}reset(){this.toasts=[],this.countSeen=0}addOrReplaceToast(e){const t=this.toasts.findIndex(t=>t.key===e.key);if(-1===t){r.vF.info(`Opening toast with key '${e.key}': title '${e.title}'`);let t=this.toasts.length;for(;t>0&&this.toasts[t-1].priority<e.priority;)--t;this.toasts.splice(t,0,e)}else r.vF.info(`Replacing existing toast with key '${e.key}': title now '${e.title}'`),this.toasts[t]=e;this.emit("update")}dismissToast(e){this.toasts[0]&&this.toasts[0].key===e&&this.countSeen++;const t=this.toasts.length;this.toasts=this.toasts.filter(t=>t.key!==e),t!==this.toasts.length&&(r.vF.info(`Removed toast with key '${e}'`),0===this.toasts.length&&(this.countSeen=0),this.emit("update"))}getToasts(){return this.toasts}getCountSeen(){return this.countSeen}}},"./src/stores/UIStore.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>a,x:()=>r});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/events/events.js"),i=s.n(o);let r=function(e){return e.Resize="resize",e}({});class a extends(i()){constructor(){super(),(0,n.A)(this,"resizeObserver",void 0),(0,n.A)(this,"uiElementDimensions",new Map),(0,n.A)(this,"trackedUiElements",new Map),(0,n.A)(this,"windowWidth",void 0),(0,n.A)(this,"windowHeight",void 0),(0,n.A)(this,"resizeObserverCallback",e=>{const t=e.find(e=>e.target===document.body);t&&(this.windowWidth=t.contentRect.width,this.windowHeight=t.contentRect.height),e.forEach(e=>{const t=this.trackedUiElements.get(e.target);t&&(this.uiElementDimensions.set(t,e.contentRect),this.emit(t,r.Resize,e))}),this.emit(r.Resize,e)}),this.windowWidth=window.innerWidth,this.windowHeight=window.innerHeight,this.resizeObserver=new ResizeObserver(this.resizeObserverCallback),this.resizeObserver.observe(document.body)}static get instance(){return a._instance||(a._instance=new a),a._instance}static destroy(){a._instance&&(a._instance.resizeObserver.disconnect(),a._instance.removeAllListeners(),a._instance=null)}getElementDimensions(e){return this.uiElementDimensions.get(e)}trackElementDimensions(e,t){this.trackedUiElements.set(t,e),this.resizeObserver.observe(t)}stopTrackingElementDimensions(e){let t;this.trackedUiElements.forEach((s,n)=>{s===e&&(t=n)}),t&&(this.resizeObserver.unobserve(t),this.uiElementDimensions.delete(e),this.trackedUiElements.delete(t))}isTrackingElementDimensions(e){return this.uiElementDimensions.has(e)}}(0,n.A)(a,"_instance",null),window.mxUIStore=a.instance},"./src/stores/WidgetEchoStore.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>l});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/events/events.js"),i=s.n(o);class r extends(i()){constructor(){super(),(0,n.A)(this,"roomWidgetEcho",void 0),this.roomWidgetEcho={}}getEchoedRoomWidgets(e,t){const s=[],n=Object.assign({},this.roomWidgetEcho[e]);for(const e of t){const t=e.getStateKey();n[t]&&0===Object.keys(n[t]).length||s.push(e),delete n[t]}return s}roomHasPendingWidgetsOfType(e,t,s){const n=Object.assign({},this.roomWidgetEcho[e]);for(const e of t){delete n[e.getStateKey()]}return void 0===s?Object.keys(n).length>0:Object.values(n).some(e=>s.matches(e.type))}roomHasPendingWidgets(e,t){return this.roomHasPendingWidgetsOfType(e,t)}setRoomWidgetEcho(e,t,s){void 0===this.roomWidgetEcho[e]&&(this.roomWidgetEcho[e]={}),this.roomWidgetEcho[e][t]=s,this.emit("update",e,t)}removeRoomWidgetEcho(e,t){delete this.roomWidgetEcho[e][t],0===Object.keys(this.roomWidgetEcho[e]).length&&delete this.roomWidgetEcho[e],this.emit("update",e,t)}}let a=null;a||(a=new r);const l=a},"./src/stores/WidgetStore.ts":(e,t,s)=>{"use strict";s.d(t,{Ay:()=>p,Sw:()=>h});var n,o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./node_modules/matrix-js-sdk/src/logger.ts"),a=s("./src/stores/AsyncStoreWithClient.ts"),l=s("./src/dispatcher/dispatcher.ts"),c=s("./src/stores/WidgetEchoStore.ts"),d=s("./src/stores/ActiveWidgetStore.ts"),m=s("./src/utils/WidgetUtils.ts"),u=s("./src/stores/AsyncStore.ts");function h(e){return"roomId"in e&&"string"==typeof e.roomId}class p extends a.r{constructor(){super(l.A,{}),(0,o.A)(this,"widgetMap",new Map),(0,o.A)(this,"roomMap",new Map),(0,o.A)(this,"onWidgetEchoStoreUpdate",e=>{var t,s;this.initRoom(e),this.loadRoomWidgets(null!==(t=null===(s=this.matrixClient)||void 0===s?void 0:s.getRoom(e))&&void 0!==t?t:null),this.emit(u.H,e)}),(0,o.A)(this,"onRoom",e=>{this.initRoom(e.roomId),this.loadRoomWidgets(e),this.emit(u.H,e.roomId)}),(0,o.A)(this,"onRoomStateEvents",e=>{var t,s;if("im.vector.modular.widgets"!==e.getType())return;const n=e.getRoomId();this.initRoom(n),this.loadRoomWidgets(null!==(t=null===(s=this.matrixClient)||void 0===s?void 0:s.getRoom(n))&&void 0!==t?t:null),this.emit(u.H,n)}),c.A.on("update",this.onWidgetEchoStoreUpdate)}static get instance(){return p.internalInstance}initRoom(e){this.roomMap.has(e)||this.roomMap.set(e,{widgets:[]})}async onReady(){this.matrixClient&&(this.matrixClient.on(i.ClientEvent.Room,this.onRoom),this.matrixClient.on(i.RoomStateEvent.Events,this.onRoomStateEvents),this.matrixClient.getRooms().forEach(e=>{this.loadRoomWidgets(e)}),this.emit(u.H,null))}async onNotReady(){this.matrixClient&&(this.matrixClient.off(i.ClientEvent.Room,this.onRoom),this.matrixClient.off(i.RoomStateEvent.Events,this.onRoomStateEvents)),this.widgetMap=new Map,this.roomMap=new Map,await this.reset({})}async onAction(e){}generateApps(e){return c.A.getEchoedRoomWidgets(e.roomId,m.A.getRoomWidgets(e)).map(e=>m.A.makeAppConfig(e.getStateKey(),e.getContent(),e.getSender(),e.getRoomId(),e.getId()))}loadRoomWidgets(e){if(!e)return;const t=this.roomMap.get(e.roomId)||{};t.widgets=[],Array.from(this.widgetMap.values()).forEach(s=>{s.roomId===e.roomId&&(void 0===s.eventId?t.widgets.push(s):this.widgetMap.delete(m.A.getWidgetUid(s)))});let s=!1;this.generateApps(e).forEach(e=>{const n=this.widgetMap.get(m.A.getWidgetUid(e));n&&r.vF.warn(`Possible widget ID conflict for ${e.id} - wants to store in room ${e.roomId} but is currently stored as ${n.roomId} - letting the want win`),this.widgetMap.set(m.A.getWidgetUid(e),e),t.widgets.push(e),s=!0}),s&&!this.roomMap.has(e.roomId)&&this.roomMap.set(e.roomId,t);const n=d.A.instance.getPersistentWidgetId();n&&d.A.instance.getPersistentRoomId()===e.roomId&&!t.widgets.some(e=>e.id===n)&&(r.vF.log(`Persistent widget ${n} removed from room ${e.roomId}: destroying.`),d.A.instance.destroyPersistentWidget(n,e.roomId)),this.emit(e.roomId)}get(e,t){return this.widgetMap.get(m.A.calcWidgetUid(e,t))}getRoom(e,t=!1){return t&&this.initRoom(e),this.roomMap.get(e)}getApps(e){const t=this.getRoom(e);return(null==t?void 0:t.widgets)||[]}addVirtualWidget(e,t){this.initRoom(t);const s=m.A.makeAppConfig(e.id,e,e.creatorUserId,t,void 0);return this.widgetMap.set(m.A.getWidgetUid(s),s),this.roomMap.get(t).widgets.push(s),this.emit(u.H,t),s}removeVirtualWidget(e,t){this.widgetMap.delete(m.A.calcWidgetUid(e,t));const s=this.roomMap.get(t);s&&(s.widgets=s.widgets.filter(s=>!(s.id===e&&s.roomId===t))),this.emit(u.H,t)}}n=p,(0,o.A)(p,"internalInstance",(()=>{const e=new n;return e.start(),e})()),window.mxWidgetStore=p.instance},"./src/stores/local-echo/EchoChamber.ts":(e,t,s)=>{"use strict";s.d(t,{s:()=>I});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./src/stores/local-echo/RoomEchoChamber.ts"),i=s("./src/stores/local-echo/EchoTransaction.ts"),r=s("./src/utils/arrays.ts"),a=s("./src/utils/Whenable.ts");let l=function(e){return e[e.NotStarted=0]="NotStarted",e[e.PendingErrors=1]="PendingErrors",e[e.AllSuccessful=2]="AllSuccessful",e}({});class c extends a.b{constructor(...e){super(...e),(0,n.A)(this,"_transactions",[]),(0,n.A)(this,"_state",l.NotStarted),(0,n.A)(this,"checkTransactions",()=>{let e=l.AllSuccessful;for(const t of this.transactions){if(t.status===i.x.Error||t.didPreviouslyFail){e=l.PendingErrors;break}t.status===i.x.Pending&&(e=l.NotStarted)}this._state=e,this.notifyCondition(e)})}get transactions(){return(0,r.PF)(this._transactions)}get state(){return this._state}get firstFailedTime(){const e=this.transactions.find(e=>e.didPreviouslyFail||e.status===i.x.Error);return e?e.startTime:null}disownTransaction(e){const t=this._transactions.indexOf(e);t>=0&&this._transactions.splice(t,1),e.destroy(),this.checkTransactions()}beginTransaction(e,t){const s=new i.M(e,t);return this._transactions.push(s),s.whenAnything(this.checkTransactions),s.when(i.x.Success,()=>s.destroy()),s}destroy(){for(const e of this.transactions)e.destroy();this._transactions=[],super.destroy()}}class d extends c{constructor(e){super(),this.room=e}}var m=s("./src/stores/AsyncStoreWithClient.ts"),u=s("./src/dispatcher/dispatcher.ts"),h=s("./src/stores/NonUrgentToastStore.ts"),p=s("./node_modules/react/index.js"),g=s("./src/languageHandler.tsx"),v=s("./src/components/views/elements/AccessibleButton.tsx"),_=s("./src/Modal.tsx"),f=s("./src/components/views/dialogs/BaseDialog.tsx"),y=s("./src/DateUtils.ts"),b=s("./src/settings/SettingsStore.ts"),E=s("./src/components/views/avatars/RoomAvatar.tsx"),w=s("./src/components/views/elements/Spinner.tsx"),x=s("./src/stores/AsyncStore.ts"),A=s("./src/MatrixClientPeg.ts");class S extends p.PureComponent{constructor(...e){super(...e),(0,n.A)(this,"onEchosUpdated",()=>{this.forceUpdate()})}componentDidMount(){k.instance.on(x.H,this.onEchosUpdated)}componentWillUnmount(){k.instance.off(x.H,this.onEchosUpdated)}renderTimeline(){return k.instance.contexts.map((e,t)=>{if(!e.firstFailedTime)return null;if(!(e instanceof d))throw new Error("Cannot render unknown context: "+e.constructor.name);const s=p.createElement("div",{className:"mx_ServerOfflineDialog_content_context_timeline_header"},p.createElement(E.A,{size:"24px",room:e.room}),p.createElement("span",null,e.room.name)),n=e.transactions.filter(e=>e.status===i.x.Error||e.didPreviouslyFail).map((e,t)=>{let s=p.createElement(w.A,{w:19,h:19});return e.status===i.x.Error&&(s=p.createElement(v.A,{kind:"link",onClick:()=>e.run()},(0,g._t)("action|resend"))),p.createElement("div",{className:"mx_ServerOfflineDialog_content_context_txn",key:`txn-${t}`},p.createElement("span",{className:"mx_ServerOfflineDialog_content_context_txn_desc"},e.auditName),s)});return p.createElement("div",{className:"mx_ServerOfflineDialog_content_context",key:`context-${t}`},p.createElement("div",{className:"mx_ServerOfflineDialog_content_context_timestamp"},(0,y.fU)(e.firstFailedTime,b.A.getValue("showTwelveHourTimestamps"))),p.createElement("div",{className:"mx_ServerOfflineDialog_content_context_timeline"},s,n))})}render(){let e=this.renderTimeline().filter(e=>!!e);0===e.length&&(e=[p.createElement("div",{key:1},(0,g._t)("server_offline|empty_timeline"))]);const t=A.J.safeGet().getDomain();return p.createElement(f.A,{title:(0,g._t)("server_offline|title"),className:"mx_ServerOfflineDialog",contentId:"mx_Dialog_content",onFinished:this.props.onFinished,hasCancel:!0},p.createElement("div",{className:"mx_ServerOfflineDialog_content"},p.createElement("p",null,(0,g._t)("server_offline|description")),p.createElement("ul",null,p.createElement("li",null,(0,g._t)("server_offline|description_1",{serverName:t})),p.createElement("li",null,(0,g._t)("server_offline|description_2")),p.createElement("li",null,(0,g._t)("server_offline|description_3")),p.createElement("li",null,(0,g._t)("server_offline|description_4")),p.createElement("li",null,(0,g._t)("server_offline|description_5")),p.createElement("li",null,(0,g._t)("server_offline|description_6")),p.createElement("li",null,(0,g._t)("server_offline|description_7")),p.createElement("li",null,(0,g._t)("server_offline|description_8"))),p.createElement("hr",null),p.createElement("h2",null,(0,g._t)("server_offline|recent_changes_heading")),e))}}class C extends p.PureComponent{constructor(...e){super(...e),(0,n.A)(this,"openDialog",()=>{_.Ay.createDialog(S,{})})}render(){return p.createElement("div",{className:"mx_NonUrgentEchoFailureToast"},p.createElement("span",{className:"mx_NonUrgentEchoFailureToast_icon"}),(0,g._t)("error|non_urgent_echo_failure_toast",{},{a:e=>p.createElement(v.A,{kind:"link_inline",onClick:this.openDialog},e)}))}}const R=e=>`room-${e.roomId}`;class k extends m.r{constructor(){super(u.A),(0,n.A)(this,"caches",new Map)}static get instance(){return this._instance||(this._instance=new k,this._instance.start()),this._instance}get contexts(){return Array.from(this.caches.values()).map(e=>e.context)}getOrCreateChamberForRoom(e){if(this.caches.has(R(e)))return this.caches.get(R(e));const t=new d(e);t.whenAnything(()=>this.checkContexts());const s=new o.T(t);return s.setClient(this.matrixClient),this.caches.set(R(e),s),s}async checkContexts(){let e=!1;for(const t of this.caches.values())if(e=t.context.state===l.PendingErrors,e)break;if(e&&!this.state.toastRef){const e=h.A.instance.addToast(C);await this.updateState({toastRef:e})}else!e&&this.state.toastRef&&(h.A.instance.removeToast(this.state.toastRef),await this.updateState({toastRef:null}))}async onReady(){if(this.caches)for(const e of this.caches.values())e.setClient(this.matrixClient)}async onNotReady(){for(const e of this.caches.values())e.setClient(null)}async onAction(e){}}(0,n.A)(k,"_instance",void 0);class I{constructor(){}static forRoom(e){return k.instance.getOrCreateChamberForRoom(e)}}},"./src/stores/local-echo/EchoTransaction.ts":(e,t,s)=>{"use strict";s.d(t,{M:()=>r,x:()=>i});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./src/utils/Whenable.ts");let i=function(e){return e[e.Pending=0]="Pending",e[e.Success=1]="Success",e[e.Error=2]="Error",e}({});class r extends o.b{constructor(e,t){super(),(0,n.A)(this,"_status",i.Pending),(0,n.A)(this,"didFail",!1),(0,n.A)(this,"startTime",new Date),this.auditName=e,this.runFn=t}get didPreviouslyFail(){return this.didFail}get status(){return this._status}run(){if(this.status===i.Success)throw new Error("Cannot re-run a successful echo transaction");this.setStatus(i.Pending),this.runFn().then(()=>this.setStatus(i.Success)).catch(()=>this.setStatus(i.Error))}cancel(){this.setStatus(i.Success)}setStatus(e){this._status=e,e===i.Error?this.didFail=!0:e===i.Success&&(this.didFail=!1),this.notifyCondition(e)}}},"./src/stores/local-echo/GenericEchoChamber.ts":(e,t,s)=>{"use strict";s.d(t,{Nj:()=>l,Qj:()=>a,c_:()=>r});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/events/events.js"),i=s("./src/stores/local-echo/EchoTransaction.ts");async function r(){}const a="property_updated";class l extends o.EventEmitter{constructor(e,t){super(),(0,n.A)(this,"cache",new Map),(0,n.A)(this,"matrixClient",null),this.context=e,this.lookupFn=t}setClient(e){const t=this.matrixClient;this.matrixClient=e,this.onClientChanged(t,e)}getValue(e){return this.cache.has(e)?this.cache.get(e).val:this.lookupFn(e)}cacheVal(e,t,s){this.cache.set(e,{txn:s,val:t}),this.emit(a,e)}decacheKey(e){this.cache.has(e)&&(this.context.disownTransaction(this.cache.get(e).txn),this.cache.delete(e),this.emit(a,e))}markEchoReceived(e){if(this.cache.has(e)){const t=this.cache.get(e).txn;this.context.disownTransaction(t),t.cancel()}this.decacheKey(e)}setValue(e,t,s,n,o){this.cache.has(t)&&this.cache.get(t).txn.cancel();const r=this.context.beginTransaction(e,n);this.cacheVal(t,s,r),r.when(i.x.Pending,()=>this.cacheVal(t,s,r)).when(i.x.Error,()=>o()),r.run()}}},"./src/stores/local-echo/RoomEchoChamber.ts":(e,t,s)=>{"use strict";s.d(t,{T:()=>c,Z:()=>l});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./src/stores/local-echo/GenericEchoChamber.ts"),r=s("./src/RoomNotifs.ts"),a=s("./src/languageHandler.tsx");let l=function(e){return e[e.NotificationVolume=0]="NotificationVolume",e}({});class c extends i.Nj{constructor(e){super(e,e=>this.properties.get(e)),(0,n.A)(this,"properties",new Map),(0,n.A)(this,"onAccountData",e=>{if(this.matrixClient&&e.getType()===o.EventType.PushRules){this.properties.get(l.NotificationVolume)!==(0,r.Gg)(this.matrixClient,this.context.room.roomId)&&this.updateNotificationVolume()}})}onClientChanged(e,t){this.properties.clear(),null==e||e.removeListener(o.ClientEvent.AccountData,this.onAccountData),t&&(t.on(o.ClientEvent.AccountData,this.onAccountData),this.updateNotificationVolume())}updateNotificationVolume(){const e=this.matrixClient?(0,r.Gg)(this.matrixClient,this.context.room.roomId):null;e?this.properties.set(l.NotificationVolume,e):this.properties.delete(l.NotificationVolume),this.markEchoReceived(l.NotificationVolume),this.emit(i.Qj,l.NotificationVolume)}get notificationVolume(){return this.getValue(l.NotificationVolume)}set notificationVolume(e){void 0!==e&&this.setValue((0,a._t)("notifications|error_change_title"),l.NotificationVolume,e,async()=>(0,r.wh)(this.context.room.client,this.context.room.roomId,e),i.c_)}}},"./src/stores/notifications/NotificationLevel.ts":(e,t,s)=>{"use strict";s.d(t,{S:()=>o,z:()=>i});var n=s("./src/languageHandler.tsx");let o=function(e){return e[e.Muted=0]="Muted",e[e.None=1]="None",e[e.Activity=2]="Activity",e[e.Notification=3]="Notification",e[e.Highlight=4]="Highlight",e[e.Unsent=5]="Unsent",e}({});function i(e){switch(e){case o.None:return(0,n._t)("notifications|level_none");case o.Activity:return(0,n._t)("notifications|level_activity");case o.Notification:return(0,n._t)("notifications|level_notification");case o.Highlight:return(0,n._t)("notifications|level_highlight");case o.Unsent:return(0,n._t)("notifications|level_unsent");case o.Muted:return(0,n._t)("notifications|level_muted")}}},"./src/stores/notifications/NotificationState.ts":(e,t,s)=>{"use strict";s.d(t,{Br:()=>l,ce:()=>a});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./src/stores/notifications/NotificationLevel.ts"),r=s("./src/settings/SettingsStore.ts");let a=function(e){return e.Update="update",e}({});class l extends o.TypedEventEmitter{constructor(){super(),(0,n.A)(this,"_symbol",null),(0,n.A)(this,"_count",0),(0,n.A)(this,"_level",i.S.None),(0,n.A)(this,"_muted",!1),(0,n.A)(this,"_knocked",!1),(0,n.A)(this,"_invited",!1),(0,n.A)(this,"watcherReferences",[]),this.watcherReferences.push(r.A.watchSetting("feature_hidebold",null,()=>{this.emit(a.Update)}))}get symbol(){return this._symbol}get count(){return this._count}get level(){return this._level}get muted(){return this._muted}get knocked(){return this._knocked}get invited(){return this._invited}get isIdle(){return this.level<=i.S.None}get isUnread(){if(this.level>i.S.Activity)return!0;{const e=r.A.getValue("feature_hidebold");return this.level===i.S.Activity&&!e}}get hasUnreadCount(){return this.level>=i.S.Notification&&(!!this.count||!!this.symbol)}get hasMentions(){return this.level>=i.S.Highlight}emitIfUpdated(e){e.isDifferentFrom(this)&&this.emit(a.Update)}snapshot(){return new c(this)}destroy(){this.removeAllListeners(a.Update);for(const e of this.watcherReferences)r.A.unwatchSetting(e);this.watcherReferences=[]}}class c{constructor(e){(0,n.A)(this,"symbol",void 0),(0,n.A)(this,"count",void 0),(0,n.A)(this,"level",void 0),(0,n.A)(this,"muted",void 0),(0,n.A)(this,"knocked",void 0),(0,n.A)(this,"isInvitation",void 0),this.symbol=e.symbol,this.count=e.count,this.level=e.level,this.muted=e.muted,this.knocked=e.knocked,this.isInvitation=e.invited}isDifferentFrom(e){const t={count:this.count,symbol:this.symbol,level:this.level,muted:this.muted,knocked:this.knocked,is:this.isInvitation},s={count:e.count,symbol:e.symbol,level:e.level,muted:e.muted,knocked:e.knocked};return JSON.stringify(t)!==JSON.stringify(s)}}},"./src/stores/notifications/RoomNotificationStateStore.ts":(e,t,s)=>{"use strict";s.d(t,{n:()=>A,N:()=>x});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./src/stores/AsyncStoreWithClient.ts"),r=s("./src/dispatcher/dispatcher.ts"),a=s("./src/stores/room-list/models.ts"),l=s("./src/stores/notifications/NotificationLevel.ts"),c=s("./src/utils/arrays.ts"),d=s("./src/stores/notifications/NotificationState.ts");class m extends d.Br{constructor(e=!1,t){super(),(0,n.A)(this,"rooms",[]),(0,n.A)(this,"states",{}),(0,n.A)(this,"onRoomNotificationStateUpdate",()=>{this.calculateTotalState()}),this.byTileCount=e,this.getRoomFn=t}get symbol(){return this._level===l.S.Unsent?"!":null}setRooms(e){if(this.byTileCount)return this.rooms=e,void this.calculateTotalState();const t=this.rooms,s=(0,c.ZQ)(t,e);this.rooms=[...e];for(const e of s.removed){const t=this.states[e.roomId];t&&(delete this.states[e.roomId],t.off(d.ce.Update,this.onRoomNotificationStateUpdate))}for(const e of s.added){const t=this.getRoomFn(e);t.on(d.ce.Update,this.onRoomNotificationStateUpdate),this.states[e.roomId]=t}this.calculateTotalState()}getForRoom(e){const t=this.states[e.roomId];if(!t)throw new Error("Unknown room for notification state");return t}destroy(){super.destroy();for(const e of Object.values(this.states))e.off(d.ce.Update,this.onRoomNotificationStateUpdate);this.states={}}calculateTotalState(){const e=this.snapshot();if(this.byTileCount)this._level=l.S.Highlight,this._count=this.rooms.length;else{this._count=0,this._level=l.S.None;for(const e of Object.values(this.states))this._count+=e.count,this._level=Math.max(this.level,e.level)}this.emitIfUpdated(e)}}var u=s("./node_modules/matrix-js-sdk/src/types.ts"),h=s("./src/MatrixClientPeg.ts"),p=s("./src/utils/read-receipts.ts"),g=s("./src/RoomNotifs.ts"),v=s("./src/settings/SettingsStore.ts"),_=s("./src/utils/notifications.ts");class f extends d.Br{constructor(e,t){super(),(0,n.A)(this,"handleLocalEchoUpdated",()=>{this.updateNotificationState()}),(0,n.A)(this,"handleReadReceipt",(e,t)=>{(0,p.A)(e,h.J.safeGet())&&t.roomId===this.room.roomId&&this.updateNotificationState()}),(0,n.A)(this,"handleMembershipUpdate",()=>{this.updateNotificationState()}),(0,n.A)(this,"handleNotificationCountUpdate",()=>{this.updateNotificationState()}),(0,n.A)(this,"onEventDecrypted",e=>{e.getRoomId()===this.room.roomId&&this.updateNotificationState()}),(0,n.A)(this,"handleRoomEventUpdate",e=>{(null==e?void 0:e.getRoomId())===this.room.roomId&&this.updateNotificationState()}),(0,n.A)(this,"handleAccountDataUpdate",e=>{"m.push_rules"===e.getType()&&this.updateNotificationState()}),(0,n.A)(this,"handleRoomAccountDataUpdate",e=>{[_.uk,_.HG].includes(e.getType())&&this.updateNotificationState()}),this.room=e,this.includeThreads=t;const s=this.room.client;this.room.on(o.RoomEvent.Receipt,this.handleReadReceipt),this.room.on(o.RoomEvent.MyMembership,this.handleMembershipUpdate),this.room.on(o.RoomEvent.LocalEchoUpdated,this.handleLocalEchoUpdated),this.room.on(o.RoomEvent.Timeline,this.handleRoomEventUpdate),this.room.on(o.RoomEvent.Redaction,this.handleRoomEventUpdate),this.room.on(o.RoomEvent.AccountData,this.handleRoomAccountDataUpdate),this.room.on(o.RoomEvent.UnreadNotifications,this.handleNotificationCountUpdate),s.on(o.MatrixEventEvent.Decrypted,this.onEventDecrypted),s.on(o.ClientEvent.AccountData,this.handleAccountDataUpdate),this.updateNotificationState()}destroy(){super.destroy();const e=this.room.client;this.room.removeListener(o.RoomEvent.Receipt,this.handleReadReceipt),this.room.removeListener(o.RoomEvent.MyMembership,this.handleMembershipUpdate),this.room.removeListener(o.RoomEvent.LocalEchoUpdated,this.handleLocalEchoUpdated),this.room.removeListener(o.RoomEvent.Timeline,this.handleRoomEventUpdate),this.room.removeListener(o.RoomEvent.Redaction,this.handleRoomEventUpdate),this.room.removeListener(o.RoomEvent.AccountData,this.handleRoomAccountDataUpdate),e.removeListener(o.MatrixEventEvent.Decrypted,this.onEventDecrypted),e.removeListener(o.ClientEvent.AccountData,this.handleAccountDataUpdate)}get isMention(){return!this.invited&&!this.knocked&&this.level===l.S.Highlight}get isUnsentMessage(){return this.level===l.S.Unsent}get isActivityNotification(){return this.level===l.S.Activity}get hasAnyNotificationOrActivity(){if(this.knocked)return!0;return!v.A.getValue("feature_hidebold")&&this.level===l.S.Activity||this.level>=l.S.Notification}get isNotification(){return this.level===l.S.Notification}updateNotificationState(){const e=this.snapshot(),{level:t,symbol:s,count:n,invited:o}=g.m5(this.room,void 0,this.includeThreads),i=g.Gg(this.room.client,this.room.roomId)===g.dC.Mute,r=v.A.getValue("feature_ask_to_join")&&this.room.getMyMembership()===u.O.Knock;this._level=t,this._symbol=s,this._count=n,this._muted=i,this._knocked=r,this._invited=o,this.emitIfUpdated(e)}}class y extends d.Br{constructor(){super(),(0,n.A)(this,"totalStatesWithUnread",0),this._symbol=null,this._count=0,this._level=l.S.None}get numUnreadStates(){return this.totalStatesWithUnread}add(e,t=!1){e.symbol&&t&&(this._symbol=e.symbol),e.count&&(this._count+=e.count),e.level>this.level&&(this._level=e.level),e.hasUnreadCount&&this.totalStatesWithUnread++}}var b,E=s("./src/stores/room-list/filters/VisibilityProvider.ts"),w=s("./src/PosthogAnalytics.ts");const x=Symbol("update-status-indicator");class A extends i.r{constructor(e=r.A){super(e,{}),(0,n.A)(this,"roomMap",new Map),(0,n.A)(this,"listMap",new Map),(0,n.A)(this,"_globalState",new y),(0,n.A)(this,"onSync",(e,t)=>{this.emitUpdateIfStateChanged(e,e!==t)}),(0,n.A)(this,"emitUpdateIfStateChanged",(e,t)=>{if(!this.matrixClient)return;const s=v.A.getValue("feature_dynamic_room_predecessors"),n=new y,o=this.matrixClient.getVisibleRooms(s);let i=0;for(const e of o)E.W.instance.isRoomVisible(e)&&(n.add(this.getRoomState(e)),e.tags[a.zO.Favourite]&&!e.getType()&&i++);w.Vo.instance.setProperty("numFavouriteRooms",i),(this.globalState.symbol!==n.symbol||this.globalState.count!==n.count||this.globalState.level!==n.level||this.globalState.numUnreadStates!==n.numUnreadStates||t)&&(this._globalState=n,this.emit(x,n,e))}),v.A.watchSetting("feature_dynamic_room_predecessors",null,()=>{this.emitUpdateIfStateChanged(o.SyncState.Syncing,!1)})}static testInstance(e){return new A}get globalState(){return this._globalState}getListState(e){if(this.listMap.has(e))return this.listMap.get(e);const t=e===a.zO.Invite,s=new m(t,e=>this.getRoomState(e));return this.listMap.set(e,s),s}getRoomState(e){return this.roomMap.has(e)||this.roomMap.set(e,new f(e,!1)),this.roomMap.get(e)}static get instance(){return A.internalInstance}async onReady(){var e;null===(e=this.matrixClient)||void 0===e||e.on(o.ClientEvent.Sync,this.onSync)}async onNotReady(){var e;null===(e=this.matrixClient)||void 0===e||e.off(o.ClientEvent.Sync,this.onSync);for(const e of this.roomMap.values())e.destroy()}async onAction(e){}}b=A,(0,n.A)(A,"internalInstance",(()=>{const e=new b;return e.start(),e})())},"./src/stores/notifications/StaticNotificationState.ts":(e,t,s)=>{"use strict";s.d(t,{d:()=>a});var n,o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./src/stores/notifications/NotificationLevel.ts"),r=s("./src/stores/notifications/NotificationState.ts");class a extends r.Br{constructor(e,t,s){super(),this._symbol=e,this._count=t,this._level=s}static forCount(e,t){return new a(null,e,t)}static forSymbol(e,t){return new a(e,0,t)}}n=a,(0,o.A)(a,"RED_EXCLAMATION",n.forSymbol("!",i.S.Highlight))},"./src/stores/right-panel/RightPanelStore.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>f});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/logger.ts"),i=s("./node_modules/matrix-js-sdk/src/crypto-api/index.ts"),r=s("./src/dispatcher/dispatcher.ts"),a=s("./src/verification.ts"),l=s("./src/settings/SettingsStore.ts"),c=s("./src/stores/right-panel/RightPanelStorePhases.ts"),d=s("./src/settings/SettingLevel.ts"),m=s("./src/stores/AsyncStore.ts"),u=s("./src/stores/ReadyWatchingStore.ts");function h(e){if(!e)return;const t=[...e.history].map(e=>function(e){var t,s,n,o,i;const r=null!==(t=e.state)&&void 0!==t?t:{};return{state:{widgetId:r.widgetId,isInitialEventHighlighted:r.isInitialEventHighlighted,initialEventScrollIntoView:r.initialEventScrollIntoView,threadHeadEventId:null!=r&&null!==(s=r.threadHeadEvent)&&void 0!==s&&s.getId()?r.threadHeadEvent.getId():void 0,memberInfoEventId:null!=r&&null!==(n=r.memberInfoEvent)&&void 0!==n&&n.getId()?r.memberInfoEvent.getId():void 0,initialEventId:null!=r&&null!==(o=r.initialEvent)&&void 0!==o&&o.getId()?r.initialEvent.getId():void 0,memberId:null!=r&&null!==(i=r.member)&&void 0!==i&&i.userId?r.member.userId:void 0},phase:e.phase}}(e));return{isOpen:e.isOpen,history:t}}function p(e,t){if(!e)return e;const s=[...e.history].map(e=>function(e,t){var s;const n=null!==(s=e.state)&&void 0!==s?s:{},o={widgetId:n.widgetId,isInitialEventHighlighted:n.isInitialEventHighlighted,initialEventScrollIntoView:n.initialEventScrollIntoView,threadHeadEvent:null!=n&&n.threadHeadEventId?t.findEventById(n.threadHeadEventId):void 0,memberInfoEvent:null!=n&&n.memberInfoEventId?t.findEventById(n.memberInfoEventId):void 0,initialEvent:null!=n&&n.initialEventId?t.findEventById(n.initialEventId):void 0,member:!(null==n||!n.memberId)&&t.getMember(n.memberId)||void 0};return{state:o,phase:e.phase}}(e,t));return{history:s,isOpen:e.isOpen}}var g=s("./src/dispatcher/actions.ts"),v=s("./src/contexts/SDKContext.ts"),_=s("./src/MatrixClientPeg.ts");class f extends u.g{constructor(){super(r.A),(0,n.A)(this,"global",void 0),(0,n.A)(this,"byRoom",{}),(0,n.A)(this,"viewedRoomId",void 0),(0,n.A)(this,"onVerificationRequestUpdate",()=>{var e;if(null===(e=this.currentCard)||void 0===e||!e.state)return;const{member:t}=this.currentCard.state;if(!t)return;const s=(0,a.m)(_.J.safeGet(),t);s&&(this.currentCard.state.verificationRequest=s,this.emitAndUpdateSettings())}),this.reset()}reset(){this.global=void 0,this.byRoom={},this.viewedRoomId=null}async onReady(){var e;this.viewedRoomId=v.M.instance.roomViewStore.getRoomId(),null===(e=this.matrixClient)||void 0===e||e.on(i.cr.VerificationRequestReceived,this.onVerificationRequestUpdate),this.loadCacheFromSettings(),this.emitAndUpdateSettings()}async onNotReady(){var e;null===(e=this.matrixClient)||void 0===e||e.off(i.cr.VerificationRequestReceived,this.onVerificationRequestUpdate)}onDispatcherAction(e){switch(e.action){case g.r.ActiveRoomChanged:{const t=e;this.handleViewedRoomChange(t.oldRoomId,t.newRoomId);break}case g.r.FocusMessageSearch:this.currentCard.phase!==c.n.RoomSummary&&this.setCard({phase:c.n.RoomSummary,state:{focusRoomSearch:!0}}),this.show(null)}}get isOpen(){var e,t,s;return null!==(e=null===(t=this.byRoom[null!==(s=this.viewedRoomId)&&void 0!==s?s:""])||void 0===t?void 0:t.isOpen)&&void 0!==e&&e}isOpenForRoom(e){var t,s;return null!==(t=null===(s=this.byRoom[e])||void 0===s?void 0:s.isOpen)&&void 0!==t&&t}get roomPhaseHistory(){var e,t,s;return null!==(e=null===(t=this.byRoom[null!==(s=this.viewedRoomId)&&void 0!==s?s:""])||void 0===t?void 0:t.history)&&void 0!==e?e:[]}get currentCard(){const e=this.roomPhaseHistory;return e.length>=1?e[e.length-1]:{state:{},phase:null}}currentCardForRoom(e){var t,s;const n=null!==(t=null===(s=this.byRoom[e])||void 0===s?void 0:s.history)&&void 0!==t?t:[];return n.length>0?n[n.length-1]:{state:{},phase:null}}get previousCard(){const e=this.roomPhaseHistory;return(null==e?void 0:e.length)>=2?e[e.length-2]:{state:{},phase:null}}setCard(e,t=!0,s){var n,o,i,r,a,l;const c=null!==(n=null!=s?s:this.viewedRoomId)&&void 0!==n?n:"",d=this.getVerificationRedirect(e),m=null!==(o=null==d?void 0:d.phase)&&void 0!==o?o:e.phase,u=null!==(i=null==d?void 0:d.state)&&void 0!==i?i:0===Object.keys(null!==(r=e.state)&&void 0!==r?r:{}).length?void 0:e.state;if(this.isPhaseValid(m,Boolean(c)))if(m===(null===(a=this.currentCardForRoom(c))||void 0===a?void 0:a.phase)&&u){var h,p;const e=null!==(h=null===(p=this.byRoom[c])||void 0===p?void 0:p.history)&&void 0!==h?h:[];e[e.length-1].state=u,this.emitAndUpdateSettings()}else if(m===(null===(l=this.currentCardForRoom(c))||void 0===l?void 0:l.phase)&&this.byRoom[c])this.show(c),this.emitAndUpdateSettings();else{const e=this.generateHistoryForPhase(m,null!=u?u:{});this.byRoom[c]={history:e,isOpen:!0},this.emitAndUpdateSettings()}}setCards(e,t=!0,s=null){var n;const o=null!==(n=null!=s?s:this.viewedRoomId)&&void 0!==n?n:"",i=e.map(e=>{var t;return{phase:e.phase,state:null!==(t=e.state)&&void 0!==t?t:{}}});this.byRoom[o]={history:i,isOpen:!0},this.show(o),this.emitAndUpdateSettings()}pushCard(e,t=!0,s=null){var n,o,i,r;const a=null!==(n=null!=s?s:this.viewedRoomId)&&void 0!==n?n:"",l=this.getVerificationRedirect(e),c=null!==(o=null==l?void 0:l.phase)&&void 0!==o?o:e.phase,d=null!==(i=null!==(r=null==l?void 0:l.state)&&void 0!==r?r:e.state)&&void 0!==i?i:{};if(!this.isPhaseValid(c,Boolean(a)))return;const m=this.byRoom[a];m?(m.history.push({state:d,phase:c}),m.isOpen=!t||m.isOpen):this.byRoom[a]={history:[{phase:c,state:d}],isOpen:!t},this.show(a),this.emitAndUpdateSettings()}popCard(e=null){var t;const s=null!==(t=null!=e?e:this.viewedRoomId)&&void 0!==t?t:"";if(!this.byRoom[s])return;const n=this.byRoom[s].history.pop();return this.emitAndUpdateSettings(),n}togglePanel(e){var t;const s=null!==(t=null!=e?e:this.viewedRoomId)&&void 0!==t?t:"";this.byRoom[s]&&(this.byRoom[s].isOpen=!this.byRoom[s].isOpen,this.emitAndUpdateSettings())}show(e){var t;this.isOpenForRoom(null!==(t=null!=e?e:this.viewedRoomId)&&void 0!==t?t:"")||this.togglePanel(e)}hide(e){var t;this.isOpenForRoom(null!==(t=null!=e?e:this.viewedRoomId)&&void 0!==t?t:"")&&this.togglePanel(e)}showOrHidePhase(e,t){this.currentCard.phase===e&&!t&&this.isOpen?this.togglePanel(null):(this.setCard({phase:e,state:t}),this.isOpen||this.togglePanel(null))}generateHistoryForPhase(e,t){const s={phase:e,state:t};if(!this.isCardStateValid(s))return[];const n=function(e){switch(e){case c.n.ThreadPanel:case c.n.MemberList:case c.n.PinnedMessages:return[c.n.RoomSummary];case c.n.MemberInfo:case c.n.ThreePidMemberInfo:return[c.n.RoomSummary,c.n.MemberList];default:return[]}}(e).map(e=>({phase:e,state:{}}));return[...n,s]}loadCacheFromSettings(){if(this.viewedRoomId){var e;const r=null===(e=this.mxClient)||void 0===e?void 0:e.getRoom(this.viewedRoomId);var t,s,n,i;if(r)this.global=null!==(t=null!==(s=this.global)&&void 0!==s?s:p(l.A.getValue("RightPanel.phasesGlobal"),r))&&void 0!==t?t:void 0,this.byRoom[this.viewedRoomId]=null!==(n=null!==(i=this.byRoom[this.viewedRoomId])&&void 0!==i?i:p(l.A.getValue("RightPanel.phases",this.viewedRoomId),r))&&void 0!==n?n:void 0;else o.vF.warn("Could not restore the right panel after load because there was no associated room object.")}}emitAndUpdateSettings(){this.filterValidCards(this.global);const e=h(this.global);if(l.A.setValue("RightPanel.phasesGlobal",null,d.p.DEVICE,e),this.viewedRoomId){const e=this.byRoom[this.viewedRoomId];this.filterValidCards(e);const t=h(e);l.A.setValue("RightPanel.phases",this.viewedRoomId,d.p.ROOM_DEVICE,t)}this.emit(m.H,null)}filterValidCards(e){null!=e&&e.history&&(e.history=e.history.filter(e=>this.isCardStateValid(e)),e.history.length||(e.isOpen=!1))}isCardStateValid(e){var t,s,n,i,r,a,l,d;switch(e.phase){case c.n.ThreadView:return null!==(t=e.state)&&void 0!==t&&t.threadHeadEvent||o.vF.warn("removed card from right panel because of missing threadHeadEvent in card state"),!(null===(s=e.state)||void 0===s||!s.threadHeadEvent);case c.n.MemberInfo:case c.n.EncryptionPanel:return null!==(n=e.state)&&void 0!==n&&n.member||o.vF.warn("removed card from right panel because of missing member in card state"),!(null===(i=e.state)||void 0===i||!i.member);case c.n.ThreePidMemberInfo:return null!==(r=e.state)&&void 0!==r&&r.memberInfoEvent||o.vF.warn("removed card from right panel because of missing memberInfoEvent in card state"),!(null===(a=e.state)||void 0===a||!a.memberInfoEvent);case c.n.Widget:return null!==(l=e.state)&&void 0!==l&&l.widgetId||o.vF.warn("removed card from right panel because of missing widgetId in card state"),!(null===(d=e.state)||void 0===d||!d.widgetId)}return!0}getVerificationRedirect(e){if(e.phase===c.n.MemberInfo&&e.state){const{member:t}=e.state,s=t?(0,a.m)(_.J.safeGet(),t):void 0;if(s)return{phase:c.n.EncryptionPanel,state:{verificationRequest:s,member:t}}}return null}isPhaseValid(e,t){return e&&c.n[e]?!!t||(o.vF.warn(`Tried to switch right panel to a room phase: ${e}, but we are currently not viewing a room`),!1):(o.vF.warn(`Tried to switch right panel to unknown phase: ${e}`),!1)}handleViewedRoomChange(e,t){var s,n;if(this.mxClient){if(this.viewedRoomId=t,this.loadCacheFromSettings(),(null===(s=this.currentCard)||void 0===s?void 0:s.phase)!==c.n.EncryptionPanel){var o;const e=this.byRoom[null!==(o=this.viewedRoomId)&&void 0!==o?o:""];null!=e&&e.history&&(e.history=e.history.filter(e=>e.phase!=c.n.MemberInfo&&e.phase!=c.n.ThreePidMemberInfo))}(null===(n=this.currentCard)||void 0===n?void 0:n.phase)===c.n.ThreadView&&this.currentCard.state&&(this.currentCard.state.initialEvent=void 0,this.currentCard.state.isInitialEventHighlighted=void 0,this.currentCard.state.initialEventScrollIntoView=void 0),this.emitAndUpdateSettings()}}static get instance(){return this.internalInstance||(this.internalInstance=new f,this.internalInstance.start()),this.internalInstance}}(0,n.A)(f,"internalInstance",void 0),window.mxRightPanelStore=f.instance},"./src/stores/right-panel/RightPanelStorePhases.ts":(e,t,s)=>{"use strict";s.d(t,{n:()=>o,s:()=>i});var n=s("./src/languageHandler.tsx");let o=function(e){return e.MemberList="MemberList",e.MemberInfo="MemberInfo",e.ThreePidMemberInfo="ThreePidMemberInfo",e.FilePanel="FilePanel",e.NotificationPanel="NotificationPanel",e.EncryptionPanel="EncryptionPanel",e.RoomSummary="RoomSummary",e.Widget="Widget",e.PinnedMessages="PinnedMessages",e.Timeline="Timeline",e.Extensions="Extensions",e.ThreadView="ThreadView",e.ThreadPanel="ThreadPanel",e}({});function i(e){switch(e){case o.ThreadPanel:return(0,n._t)("common|threads");case o.Timeline:return(0,n._t)("chat_card_back_action_label");case o.RoomSummary:return(0,n._t)("room_summary_card_back_action_label");case o.MemberList:return(0,n._t)("member_list_back_action_label");case o.ThreadView:return(0,n._t)("thread_view_back_action_label")}return null}},"./src/stores/room-list-v3/skip-list/sorters/index.ts":(e,t,s)=>{"use strict";s.d(t,{U:()=>n});let n=function(e){return e.Recency="Recency",e.Alphabetic="Alphabetic",e}({})},"./src/stores/room-list/MessagePreviewStore.ts":(e,t,s)=>{"use strict";s.d(t,{X:()=>R});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/utils.ts"),r=s("./src/stores/AsyncStoreWithClient.ts"),a=s("./src/dispatcher/dispatcher.ts"),l=s("./src/languageHandler.tsx"),c=s("./src/MatrixClientPeg.ts"),d=s("./src/stores/room-list/models.ts");function m(e){const t=c.J.safeGet().getSafeUserId();return"m.room.member"===e.getType()?e.getStateKey()===t:e.getSender()===t}function u(e,t){if(t!==d.zO.DM)return!0;const s=c.J.safeGet().getRoom(e);return!s||2!==s.currentState.getJoinedMemberCount()}function h(e){var t,s,n;return null!==(t=null!==(s=null===(n=e.sender)||void 0===n?void 0:n.name)&&void 0!==s?s:e.getSender())&&void 0!==t?t:""}var p=s("./src/HtmlUtils.tsx"),g=s("./src/utils/Reply.ts");var v=s("./node_modules/matrix-js-sdk/src/extensible_events_v1/InvalidEventError.ts"),_=s("./node_modules/matrix-js-sdk/src/extensible_events_v1/PollStartEvent.ts"),f=s("./src/contexts/MatrixClientContext.tsx");class y{getTextFor(e,t,s){let n=e.getContent();if(e.isRelation("m.replace")&&(n=e.getContent()["m.new_content"]),!n)return null;try{let o=new _.m({type:e.getType(),content:n}).question.text.trim();return o=(0,l.ot)(o),s||m(e)||!u(e.getRoomId(),t)?o:(0,l._t)("event_preview|m.text",{senderName:h(e),message:o})}catch(e){if(e instanceof v._)return null;throw e}}}(0,n.A)(y,"contextType",f.Ay);var b,E=s("./src/stores/AsyncStore.ts"),w=s("./src/shouldHideEvent.ts");const x={"m.room.message":{isState:!1,previewer:new class{getTextFor(e,t,s){var n,i,r;let a=e.getContent();if(e.isRelation(o.RelationType.Replace)&&(a=e.getContent()["m.new_content"]),null===(n=a)||void 0===n||!n.body)return null;let c=a.body.trim();if(!c)return null;const d=null!==(i=a.msgtype)&&void 0!==i?i:o.MsgType.Text,v="org.matrix.custom.html"===a.format&&a.formatted_body;if(v&&(c=a.formatted_body),null!==(r=e.getWireContent()["m.relates_to"])&&void 0!==r&&r["m.in_reply_to"]&&(c=v?((0,g.kH)(c)||"").trim():((0,g.fJ)(c)||"").trim(),!c))return null;if(v){const e=(0,p.hk)(c.replace(/<br\/?>/gi,"\n"));c=(new DOMParser).parseFromString(e,"text/html").documentElement.textContent}if(c=(0,l.ot)(c),d===o.MsgType.Emote)return(0,l._t)("event_preview|m.emote",{senderName:h(e),emote:c});const _=e.getRoomId();return s||m(e)||_&&!u(_,t)?c:(0,l._t)("event_preview|m.text",{senderName:h(e),message:c})}}},"m.call.invite":{isState:!1,previewer:new class{getTextFor(e,t){return u(e.getRoomId(),t)?m(e)?(0,l._t)("event_preview|m.call.invite|you"):(0,l._t)("event_preview|m.call.invite|user",{senderName:h(e)}):m(e)?(0,l._t)("event_preview|m.call.invite|dm_send"):(0,l._t)("event_preview|m.call.invite|dm_receive",{senderName:h(e)})}}},"m.call.answer":{isState:!1,previewer:new class{getTextFor(e,t){return u(e.getRoomId(),t)?m(e)?(0,l._t)("event_preview|m.call.answer|you"):(0,l._t)("event_preview|m.call.answer|user",{senderName:h(e)}):(0,l._t)("event_preview|m.call.answer|dm")}}},"m.call.hangup":{isState:!1,previewer:new class{getTextFor(e,t){return u(e.getRoomId(),t)?m(e)?(0,l._t)("event_preview|m.call.hangup|you"):(0,l._t)("event_preview|m.call.hangup|user",{senderName:h(e)}):(0,l._t)("timeline|m.call.hangup|dm")}}},"m.sticker":{isState:!1,previewer:new class{getTextFor(e,t,s){const n=e.getContent().body;return n?s||m(e)||!u(e.getRoomId(),t)?n:(0,l._t)("event_preview|m.sticker",{senderName:h(e),stickerName:n}):null}}},"m.reaction":{isState:!1,previewer:new class{getTextFor(e,t,s){const n=e.getRoomId();if(!n)return null;const o=e.getRelation();if(!o)return null;const i=o.key;if(!i)return null;const r=c.J.get(),a=null==r?void 0:r.getRoom(n),d=o.event_id?null==a?void 0:a.findEventById(o.event_id):null;if(!d)return null;const u=R.instance.generatePreviewForEvent(d);return m(e)?(0,l._t)("event_preview|m.reaction|you",{reaction:i,message:u}):(0,l._t)("event_preview|m.reaction|user",{sender:h(e),reaction:i,message:u})}}},[o.M_POLL_START.name]:{isState:!1,previewer:new y},[o.M_POLL_START.altName]:{isState:!1,previewer:new y}},A="im.vector.any",S=e=>{var t;if(e.isThreadRoot)return!1;const s=e.getThread();if(!s)return!1;const n=e.getRelation();return!n||n.rel_type!==o.RelationType.Annotation||n.event_id!==(null===(t=s.rootEvent)||void 0===t?void 0:t.getId())},C=(e,t)=>({event:t,text:e,isThreadReply:S(t)});class R extends r.r{static testInstance(){return new R}constructor(){super(a.A,{}),(0,n.A)(this,"previews",new Map),(0,n.A)(this,"onLocalEchoUpdated",async(e,t)=>{this.previews.has(t.roomId)&&await this.generatePreview(t,A)})}static get instance(){return R.internalInstance}static getPreviewChangedEventName(e){return`room_preview_changed:${null==e?void 0:e.roomId}`}async getPreviewForRoom(e,t){var s;if(!e)return null;this.previews.has(e.roomId)||await this.generatePreview(e,t);const n=this.previews.get(e.roomId);return n?n.has(t)?n.get(t):null!==(s=n.get(A))&&void 0!==s?s:null:null}generatePreviewForEvent(e){var t;const s=x[e.getType()];return null!==(t=null==s?void 0:s.previewer.getTextFor(e,void 0,!0))&&void 0!==t?t:""}async generatePreview(e,t){const s=[...e.getLiveTimeline().getEvents(),...e.getPendingEvents()];if(e.getThreads().forEach(e=>{const t=e.lastReply();t&&s.push(t)}),s.sort((e,t)=>e.getTs()-t.getTs()),!s)return;let n=this.previews.get(e.roomId);n||(n=new Map,this.previews.set(e.roomId,n)),n.has(A)||n.set(A,null),t&&!n.has(t)&&n.set(t,null);let o=!1;for(let t=s.length-1;t>=0;t--){var r,a;if(t===s.length-50)break;const d=s[t];await(null===(r=this.matrixClient)||void 0===r?void 0:r.decryptEventIfNeeded(d));if((0,w.A)(d))continue;const m=x[d.getType()];if(!m)continue;if(m.isState&&(0,i.hX)(d.getStateKey()))continue;const u=m.previewer.getTextFor(d);if(!u)continue;o=o||u!==(null===(a=n.get(A))||void 0===a?void 0:a.text),n.set(A,C(u,d));const h=Array.from(n.keys()).filter(e=>e!==A);for(const e of h){const t=e===A?void 0:e,s=m.previewer.getTextFor(d,t);var l,c;if(s===u)o=o||u!==(null===(l=n.get(e))||void 0===l?void 0:l.text),n.delete(e);else o=o||s!==(null===(c=n.get(e))||void 0===c?void 0:c.text),n.set(e,s?C(u,d):null)}return void(o&&(this.previews.set(e.roomId,n),this.emit(E.H,this),this.emit(R.getPreviewChangedEventName(e),e)))}this.previews.set(e.roomId,new Map),this.emit(E.H,this),this.emit(R.getPreviewChangedEventName(e),e)}async onAction(e){if(this.matrixClient&&("MatrixActions.Room.timeline"===e.action||"MatrixActions.Event.decrypted"===e.action)){const t=e.event.getRoomId(),s=e.hasOwnProperty("isLiveEvent")&&!e.isLiveEvent;if(!t||!this.previews.has(t)||s)return;const n=this.matrixClient.getRoom(t);if(!n)return;await this.generatePreview(n,A)}}async onReady(){this.matrixClient&&this.matrixClient.on(o.RoomEvent.LocalEchoUpdated,this.onLocalEchoUpdated)}async onNotReady(){this.matrixClient&&this.matrixClient.off(o.RoomEvent.LocalEchoUpdated,this.onLocalEchoUpdated)}}b=R,(0,n.A)(R,"internalInstance",(()=>{const e=new b;return e.start(),e})())},"./src/stores/room-list/RoomListLayoutStore.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>l});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/logger.ts");class i{constructor(e){(0,n.A)(this,"_n",0),(0,n.A)(this,"_previews",!1),(0,n.A)(this,"_collapsed",!1),this.tagId=e;const t=localStorage.getItem(this.key);if(t){const e=JSON.parse(t);this._n=e.numTiles,this._previews=e.showPreviews,this._collapsed=e.collapsed}}get isCollapsed(){return this._collapsed}set isCollapsed(e){this._collapsed=e,this.save()}get showPreviews(){return this._previews}set showPreviews(e){this._previews=e,this.save()}get tileHeight(){return 44}get key(){return`mx_sublist_layout_${this.tagId}_boxed`}get visibleTiles(){return 0===this._n?this.defaultVisibleTiles:Math.max(this._n,this.minVisibleTiles)}set visibleTiles(e){this._n=e,this.save()}get minVisibleTiles(){return 1}get defaultVisibleTiles(){return 8}tilesWithPadding(e,t){return this.pixelsToTiles(this.tilesToPixelsWithPadding(e,t))}tilesToPixelsWithPadding(e,t){return this.tilesToPixels(e)+t}tilesToPixels(e){return e*this.tileHeight}pixelsToTiles(e){return e/this.tileHeight}reset(){localStorage.removeItem(this.key)}save(){localStorage.setItem(this.key,JSON.stringify(this.serialize()))}serialize(){return{numTiles:this.visibleTiles,showPreviews:this.showPreviews,collapsed:this.isCollapsed}}}var r=s("./src/stores/AsyncStoreWithClient.ts"),a=s("./src/dispatcher/dispatcher.ts");class l extends r.r{constructor(){super(a.A),(0,n.A)(this,"layoutMap",new Map)}static get instance(){return this.internalInstance||(this.internalInstance=new l,this.internalInstance.start()),l.internalInstance}ensureLayoutExists(e){this.layoutMap.has(e)||this.layoutMap.set(e,new i(e))}getLayoutFor(e){return this.layoutMap.has(e)||this.layoutMap.set(e,new i(e)),this.layoutMap.get(e)}async resetLayouts(){o.vF.warn("Resetting layouts for room list");for(const e of this.layoutMap.values())e.reset()}async onNotReady(){this.layoutMap.clear()}async onAction(e){}}(0,n.A)(l,"internalInstance",void 0),window.mxRoomListLayoutStore=l.instance},"./src/stores/room-list/RoomListStore.ts":(e,t,s)=>{"use strict";s.d(t,{Ov:()=>J,lA:()=>K,Ay:()=>q});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./src/settings/SettingsStore.ts"),a=s("./src/stores/room-list/models.ts"),l=s("./src/stores/room-list/algorithms/models.ts"),c=s("./src/dispatcher/dispatcher.ts"),d=s("./src/utils/read-receipts.ts");const m="filter_changed";var u=s("./node_modules/matrix-js-sdk/src/types.ts"),h=s("./node_modules/matrix-js-sdk/src/utils.ts"),p=s("./node_modules/events/events.js"),g=s("./src/utils/DMRoomMap.ts"),v=s("./src/utils/arrays.ts"),_=s("./src/utils/membership.ts");var f=s("./src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts");const y={[l.G.Recent]:new f.V7,[l.G.Alphabetic]:new class{sortRooms(e,t){const s=new Intl.Collator;return e.sort((e,t)=>s.compare(e.name,t.name))}},[l.G.Manual]:new class{sortRooms(e,t){const s=e=>e.tags[t].order||0;return e.sort((e,t)=>s(e)-s(t))}}};function b(e,t,s){return function(e){if(!y[e])throw new Error(`${e} is not a known algorithm`);return y[e]}(s).sortRooms(e,t)}class E{constructor(e,t){(0,n.A)(this,"cachedOrderedRooms",[]),(0,n.A)(this,"sortingAlgorithm",void 0),this.tagId=e,this.setSortAlgorithm(t)}get orderedRooms(){return this.cachedOrderedRooms}get isMutedToBottom(){return this.sortingAlgorithm===l.G.Recent}setSortAlgorithm(e){if(!e)throw new Error("A sorting algorithm must be defined");this.sortingAlgorithm=e,this.setRooms(this.orderedRooms)}getRoomIndex(e){let t=this.cachedOrderedRooms.indexOf(e);return-1===t&&(i.vF.warn(`Degrading performance to find missing room in "${this.tagId}": ${e.roomId}`),t=this.cachedOrderedRooms.findIndex(t=>t.roomId===e.roomId)),t}}var w=s("./src/stores/notifications/NotificationLevel.ts"),x=s("./src/stores/notifications/RoomNotificationStateStore.ts");const A=[w.S.Unsent,w.S.Highlight,w.S.Notification,w.S.Activity,w.S.None,w.S.Muted];class S extends E{constructor(e,t){super(e,t),(0,n.A)(this,"indices",{})}categorizeRooms(e){const t={[w.S.Unsent]:[],[w.S.Highlight]:[],[w.S.Notification]:[],[w.S.Activity]:[],[w.S.None]:[],[w.S.Muted]:[]};for(const n of e){var s;null===(s=t[this.getRoomCategory(n)])||void 0===s||s.push(n)}return t}getRoomCategory(e){const t=x.n.instance.getRoomState(e);return this.isMutedToBottom&&t.muted?w.S.Muted:t.level}setRooms(e){if(this.sortingAlgorithm===l.G.Manual)this.cachedOrderedRooms=b(e,this.tagId,this.sortingAlgorithm);else{const t=this.categorizeRooms(e);for(const e of Object.keys(t)){const s=e,n=t[s];t[s]=b(n,this.tagId,this.sortingAlgorithm)}const s=[],n={};for(const e of A)n[e]=s.length,s.push(...t[e]);this.indices=n,this.cachedOrderedRooms=s}}getCategoryIndex(e){const t=this.indices[e];if(void 0===t)throw new Error(`Index of category ${e} not found`);return t}handleSplice(e,t){if(t===a.w4.NewRoom){const t=this.getRoomCategory(e);this.alterCategoryPositionBy(t,1,this.indices),this.cachedOrderedRooms.splice(this.getCategoryIndex(t),0,e),this.sortCategory(t)}else{if(t!==a.w4.RoomRemoved)throw new Error(`Unhandled splice: ${t}`);{const t=this.getRoomIndex(e);if(-1===t)return i.vF.warn(`Tried to remove unknown room from ${this.tagId}: ${e.roomId}`),!1;const s=this.getCategoryFromIndices(t,this.indices);this.alterCategoryPositionBy(s,-1,this.indices),this.cachedOrderedRooms.splice(t,1)}}return!0}handleRoomUpdate(e,t){if(t===a.w4.NewRoom||t===a.w4.RoomRemoved)return this.handleSplice(e,t);if(t!==a.w4.Timeline&&t!==a.w4.ReadReceipt&&t!==a.w4.PossibleMuteChange)throw new Error(`Unsupported update cause: ${t}`);if(t===a.w4.PossibleMuteChange&&!this.isMutedToBottom)return!1;if(this.sortingAlgorithm===l.G.Manual)return!1;const s=this.getRoomCategory(e),n=this.getRoomIndex(e);if(-1===n)throw new Error(`Room ${e.roomId} has no index in ${this.tagId}`);const o=this.getCategoryFromIndices(n,this.indices);return o!==s&&(this.moveRoomIndexes(1,o,s,this.indices),this.cachedOrderedRooms.splice(n,1),this.cachedOrderedRooms.splice(this.getCategoryIndex(s),0,e)),this.sortCategory(s),!0}sortCategory(e){const t=e===A[A.length-1]?Number.MAX_SAFE_INTEGER:this.getCategoryIndex(A[A.indexOf(e)+1]),s=this.getCategoryIndex(e),n=t-s,o=b(this.cachedOrderedRooms.splice(s,n),this.tagId,this.sortingAlgorithm);this.cachedOrderedRooms.splice(s,0,...o)}getCategoryFromIndices(e,t){for(let s=0;s<A.length;s++){const n=A[s],o=s===A.length-1,i=t[n],r=o?Number.MAX_SAFE_INTEGER:t[A[s+1]];if(void 0!==i&&void 0!==r&&(e>=i&&e<r))return n}throw new Error("Programming error: somehow you've ended up with an index that isn't in a category")}moveRoomIndexes(e,t,s,n){this.alterCategoryPositionBy(t,-e,n),this.alterCategoryPositionBy(s,+e,n)}alterCategoryPositionBy(e,t,s){const n=A.indexOf(e)+1;if(t>0)for(let o=n;o<A.length;o++){const n=A[o];if(void 0===s[n])throw new Error(`Index of category ${e} not found`);s[n]+=Math.abs(t)}else if(t<0)for(let o=n;o<A.length;o++){const n=A[o];if(void 0===s[n])throw new Error(`Index of category ${e} not found`);s[n]-=Math.abs(t)}for(let e=1;e<A.length;e++){const t=A[e-1],n=s[t],o=A[e],r=s[o];(void 0===n||void 0===r||n>r)&&i.vF.warn(`!! Room list index corruption: ${t} (i:${s[t]}) is greater than ${o} (i:${s[o]}) - category indices are likely desynced from reality`)}}}class C extends E{constructor(e,t){super(e,t),(0,n.A)(this,"cachedCategorizedOrderedRooms",{defaultRooms:[],mutedRooms:[]})}setRooms(e){const{defaultRooms:t,mutedRooms:s}=this.categorizeRooms(e);this.cachedCategorizedOrderedRooms={defaultRooms:b(t,this.tagId,this.sortingAlgorithm),mutedRooms:b(s,this.tagId,this.sortingAlgorithm)},this.buildCachedOrderedRooms()}handleRoomUpdate(e,t){const s=t===a.w4.NewRoom||t===a.w4.RoomRemoved,n=t===a.w4.Timeline||t===a.w4.ReadReceipt||t===a.w4.PossibleMuteChange,o=this.isMutedToBottom&&this.getRoomIsMuted(e);if(!s&&!n)throw new Error(`Unsupported update cause: ${t}`);return t===a.w4.NewRoom?(o?this.cachedCategorizedOrderedRooms.mutedRooms=b([...this.cachedCategorizedOrderedRooms.mutedRooms,e],this.tagId,this.sortingAlgorithm):this.cachedCategorizedOrderedRooms.defaultRooms=b([...this.cachedCategorizedOrderedRooms.defaultRooms,e],this.tagId,this.sortingAlgorithm),this.buildCachedOrderedRooms(),!0):t===a.w4.RoomRemoved?this.removeRoom(e):t===a.w4.PossibleMuteChange?!!this.isMutedToBottom&&this.onPossibleMuteChange(e):(o?this.cachedCategorizedOrderedRooms.mutedRooms=b(this.cachedCategorizedOrderedRooms.mutedRooms,this.tagId,this.sortingAlgorithm):this.cachedCategorizedOrderedRooms.defaultRooms=b(this.cachedCategorizedOrderedRooms.defaultRooms,this.tagId,this.sortingAlgorithm),this.buildCachedOrderedRooms(),!0)}removeRoom(e){const t=this.cachedCategorizedOrderedRooms.defaultRooms.findIndex(t=>t.roomId===e.roomId);if(t>-1)return this.cachedCategorizedOrderedRooms.defaultRooms.splice(t,1),this.buildCachedOrderedRooms(),!0;const s=this.cachedCategorizedOrderedRooms.mutedRooms.findIndex(t=>t.roomId===e.roomId);return s>-1?(this.cachedCategorizedOrderedRooms.mutedRooms.splice(s,1),this.buildCachedOrderedRooms(),!0):(i.vF.warn(`Tried to remove unknown room from ${this.tagId}: ${e.roomId}`),!1)}buildCachedOrderedRooms(){this.cachedOrderedRooms=[...this.cachedCategorizedOrderedRooms.defaultRooms,...this.cachedCategorizedOrderedRooms.mutedRooms]}getRoomIsMuted(e){return x.n.instance.getRoomState(e).muted}categorizeRooms(e){return this.isMutedToBottom?e.reduce((e,t)=>(this.getRoomIsMuted(t)?e.mutedRooms.push(t):e.defaultRooms.push(t),e),{defaultRooms:[],mutedRooms:[]}):{defaultRooms:e,mutedRooms:[]}}onPossibleMuteChange(e){if(this.getRoomIsMuted(e)){const t=this.cachedCategorizedOrderedRooms.defaultRooms.findIndex(t=>t.roomId===e.roomId);if(t>-1)return this.cachedCategorizedOrderedRooms.defaultRooms.splice(t,1),this.cachedCategorizedOrderedRooms.mutedRooms=b([...this.cachedCategorizedOrderedRooms.mutedRooms,e],this.tagId,this.sortingAlgorithm),this.buildCachedOrderedRooms(),!0}else{const t=this.cachedCategorizedOrderedRooms.mutedRooms.findIndex(t=>t.roomId===e.roomId);if(t>-1)return this.cachedCategorizedOrderedRooms.mutedRooms.splice(t,1),this.cachedCategorizedOrderedRooms.defaultRooms=b([...this.cachedCategorizedOrderedRooms.defaultRooms,e],this.tagId,this.sortingAlgorithm),this.buildCachedOrderedRooms(),!0}return!1}}const R={[l.K.Natural]:(e,t)=>new C(e,t),[l.K.Importance]:(e,t)=>new S(e,t)};function k(e,t,s){if(!R[e])throw new Error(`${e} is not a known algorithm`);return R[e](t,s)}var I=s("./src/stores/room-list/filters/VisibilityProvider.ts"),P=s("./src/stores/CallStore.ts");const T="list_updated_event",O=[a.w4.Timeline,a.w4.ReadReceipt];class M extends p.EventEmitter{constructor(...e){super(...e),(0,n.A)(this,"_cachedRooms",{}),(0,n.A)(this,"_cachedStickyRooms",{}),(0,n.A)(this,"_stickyRoom",null),(0,n.A)(this,"_lastStickyRoom",null),(0,n.A)(this,"sortAlgorithms",null),(0,n.A)(this,"listAlgorithms",null),(0,n.A)(this,"algorithms",null),(0,n.A)(this,"rooms",[]),(0,n.A)(this,"roomIdsToTags",{}),(0,n.A)(this,"updatesInhibited",!1),(0,n.A)(this,"onConnectedCalls",()=>{this.recalculateStickyRoom(),this.recalculateActiveCallRooms(),this.updatesInhibited||this.emit(T,!0)})}start(){P.e.instance.on(P.s.ConnectedCalls,this.onConnectedCalls)}stop(){P.e.instance.off(P.s.ConnectedCalls,this.onConnectedCalls)}get stickyRoom(){return this._stickyRoom?this._stickyRoom.room:null}get hasTagSortingMap(){return!!this.sortAlgorithms}set cachedRooms(e){this._cachedRooms=e,this.recalculateStickyRoom(),this.recalculateActiveCallRooms()}get cachedRooms(){return this._cachedRooms}setStickyRoom(e){try{this.updateStickyRoom(e)}catch(e){i.vF.warn("Failed to update sticky room",e)}}getTagSorting(e){return this.sortAlgorithms?this.sortAlgorithms[e]:null}setTagSorting(e,t){if(!e)throw new Error("Tag ID must be defined");if(!t)throw new Error("Algorithm must be defined");if(!this.sortAlgorithms)throw new Error("this.sortAlgorithms must be defined before calling setTagSorting");if(!this.algorithms)throw new Error("this.algorithms must be defined before calling setTagSorting");this.sortAlgorithms[e]=t;const s=this.algorithms[e];s.setSortAlgorithm(t),this._cachedRooms[e]=s.orderedRooms,this.recalculateStickyRoom(e),this.recalculateActiveCallRooms(e)}getListOrdering(e){return this.listAlgorithms?this.listAlgorithms[e]:null}setListOrdering(e,t){if(!e)throw new Error("Tag ID must be defined");if(!t)throw new Error("Algorithm must be defined");if(!this.sortAlgorithms)throw new Error("this.sortAlgorithms must be defined before calling setListOrdering");if(!this.listAlgorithms)throw new Error("this.listAlgorithms must be defined before calling setListOrdering");if(!this.algorithms)throw new Error("this.algorithms must be defined before calling setListOrdering");this.listAlgorithms[e]=t;const s=k(t,e,this.sortAlgorithms[e]);this.algorithms[e]=s,s.setRooms(this._cachedRooms[e]),this._cachedRooms[e]=s.orderedRooms,this.recalculateStickyRoom(e),this.recalculateActiveCallRooms(e)}updateStickyRoom(e){this.doUpdateStickyRoom(e),this._lastStickyRoom=null}doUpdateStickyRoom(e){var t,s;if(null!==(t=e)&&void 0!==t&&t.isSpaceRoom()&&e.getMyMembership()!==u.O.Invite&&(e=null),e&&!I.W.instance.isRoomVisible(e)&&(e=null),this._lastStickyRoom=this._stickyRoom||{},!e){if(this._stickyRoom){const e=this._stickyRoom.room;return this._stickyRoom=null,void this.handleRoomUpdate(e,a.w4.NewRoom)}return}let n=null===(s=this.roomIdsToTags[e.roomId])||void 0===s?void 0:s[0];if(!n)throw new Error(`${e.roomId} does not belong to a tag and cannot be sticky`);let o=(this.getOrderedRoomsWithoutSticky()[n]||[]).indexOf(e);const r=!!this._lastStickyRoom.room&&this._lastStickyRoom.room.roomId===e.roomId;if(this._lastStickyRoom.tag&&n!==this._lastStickyRoom.tag&&r&&o<0&&(i.vF.warn(`Sticky room ${e.roomId} changed tags during sticky room handling`),o=0),o<0)throw new Error(`${e.roomId} does not appear to be known and cannot be sticky`);const l=this._stickyRoom;if(this._stickyRoom=null,this.recalculateStickyRoom(),l&&l.room&&l.room.roomId!==e.roomId&&this.handleRoomUpdate(l.room,a.w4.NewRoom),this.handleRoomUpdate(e,a.w4.RoomRemoved),this._stickyRoom=this.stickyRoomMightBeModified(),this._stickyRoom){if(this._stickyRoom.room!==e){if(this._stickyRoom.room.roomId!==e.roomId)throw new Error("Sticky room changed while the sticky room was changing");i.vF.warn("Sticky room changed references")}i.vF.warn(`Sticky room changed tag & position from ${n} / ${o} to ${this._stickyRoom.tag} / ${this._stickyRoom.position}`),n=this._stickyRoom.tag,o=this._stickyRoom.position}l&&l.tag===n&&l.position<=o&&o++,this._stickyRoom={room:e,position:o,tag:n},this.recalculateStickyRoom(),this.recalculateActiveCallRooms(n),l&&l.tag!==n&&this.recalculateActiveCallRooms(l.tag),this.updatesInhibited||this.emit(T)}stickyRoomMightBeModified(){return this._stickyRoom}initCachedStickyRooms(){this._cachedStickyRooms={};for(const e of Object.keys(this.cachedRooms))this._cachedStickyRooms[e]=[...this.cachedRooms[e]]}recalculateStickyRoom(e=null){if(!this._stickyRoom){if(this._cachedStickyRooms){if(this._cachedStickyRooms=null,this.updatesInhibited)return;this.emit(T)}return}this._cachedStickyRooms&&e||this.initCachedStickyRooms(),e&&this._cachedStickyRooms&&(this._cachedStickyRooms[e]=[...this.cachedRooms[e]]);const t=this._stickyRoom;!t||e&&e!==t.tag||!this._cachedStickyRooms||this._cachedStickyRooms[t.tag].splice(t.position,0,t.room),this.updatesInhibited||this.emit(T)}recalculateActiveCallRooms(e=null){if(e){if(P.e.instance.connectedCalls.size){this._cachedStickyRooms||this.initCachedStickyRooms();const t=this._cachedStickyRooms[e],s=new Set([...P.e.instance.connectedCalls].map(e=>e.roomId)),n=[],o=[];for(const e of t)(s.has(e.roomId)?n:o).push(e);this._cachedStickyRooms[e]=[...n,...o]}}else for(const e of Object.keys(this.cachedRooms)){if(!e)throw new Error("Unexpected recursion: falsy tag");this.recalculateActiveCallRooms(e)}}populateTags(e,t){if(!e)throw new Error("Sorting map cannot be null or empty");if(!t)throw new Error("Ordering ma cannot be null or empty");if((0,v.dc)(Object.keys(e),Object.keys(t)))throw new Error("Both maps must contain the exact same tags");this.sortAlgorithms=e,this.listAlgorithms=t,this.algorithms={};for(const t of Object.keys(e))this.algorithms[t]=k(this.listAlgorithms[t],t,this.sortAlgorithms[t]);return this.setKnownRooms(this.rooms)}getOrderedRooms(){return this._cachedStickyRooms||this.cachedRooms}getOrderedRoomsWithoutSticky(){return this.cachedRooms}setKnownRooms(e){if((0,h.hX)(e))throw new Error("Array of rooms cannot be null");if(!this.sortAlgorithms)throw new Error("Cannot set known rooms without a tag sorting map");this.updatesInhibited||i.vF.warn("Resetting known rooms, initiating regeneration");const t=this._stickyRoom;t&&this.updateStickyRoom(null),this.rooms=e;const s={};for(const e in this.sortAlgorithms)s[e]=[];if(!e.length)return this.generateFreshTags(s),void(this.cachedRooms=s);const n=(0,_.cd)(e);for(const e of n[_._T.Invite])s[a.zO.Invite].push(e);for(const e of n[_._T.Leave])void 0===s[a.zO.Archived]&&(s[a.zO.Archived]=[]),s[a.zO.Archived].push(e);for(const e of n[_._T.Join]){const t=this.getTagsOfJoinedRoom(e);let n=!1;if(t.length>0)for(const o of t)(0,h.hX)(s[o])||(s[o].push(e),n=!0);n||(g.A.shared().getUserIdForRoomId(e.roomId)?s[a.zO.DM].push(e):s[a.zO.Untagged].push(e))}this.generateFreshTags(s),this.cachedRooms=s,this.updateTagsFromCache(),t&&t.room&&(this.updateStickyRoom(t.room),this._stickyRoom&&this._stickyRoom.room&&this._stickyRoom.tag!==t.tag&&(this._stickyRoom.position=0,this.recalculateStickyRoom(this._stickyRoom.tag)))}getTagsForRoom(e){const t=[];if(!(0,_.Cs)(e.getMyMembership()))return[];const s=(0,_.E3)(e);return s===_._T.Invite?t.push(a.zO.Invite):s===_._T.Leave?t.push(a.zO.Archived):t.push(...this.getTagsOfJoinedRoom(e)),t.length||t.push(a.zO.Untagged),t}getTagsOfJoinedRoom(e){let t=Object.keys(e.tags||{});return 0===t.length&&g.A.shared().getUserIdForRoomId(e.roomId)&&(t=[a.zO.DM]),!e.isCallRoom()||e.getJoinRule()!==o.JoinRule.Public&&e.getJoinRule()!==o.JoinRule.Knock||t.push(a.zO.Conference),t}updateTagsFromCache(){const e={},t=Object.keys(this.cachedRooms);for(const s of t){const t=this.cachedRooms[s];for(const n of t)e[n.roomId]||(e[n.roomId]=[]),e[n.roomId].push(s)}this.roomIdsToTags=e}generateFreshTags(e){if(!this.algorithms)throw new Error("Not ready: no algorithms to determine tags from");for(const t of Object.keys(e)){const s=this.algorithms[t];if(!s)throw new Error(`No algorithm for ${t}`);s.setRooms(e[t]),e[t]=s.orderedRooms}}handleRoomUpdate(e,t){var s;if(!this.algorithms)throw new Error("Not ready: no algorithms to determine tags from");const n=(null===(s=this._stickyRoom)||void 0===s||null===(s=s.room)||void 0===s?void 0:s.roomId)===e.roomId;if(t===a.w4.NewRoom){var o;const s=(null===(o=this._lastStickyRoom)||void 0===o?void 0:o.room)===e,r=this.roomIdsToTags[e.roomId],l=r&&r.length>0;l&&!s&&(i.vF.warn(`${e.roomId} is reportedly new but is already known - assuming TagChange instead`),t=a.w4.PossibleTagChange);let c=this.rooms.includes(e);if(l&&!c&&(i.vF.warn(`${e.roomId} might be a reference change - attempting to update reference`),this.rooms=this.rooms.map(t=>t.roomId===e.roomId?e:t),c=this.rooms.includes(e),c||i.vF.warn(`${e.roomId} is still not referenced. It may be sticky.`)),l&&!c&&!n)throw new Error(`${e.roomId} is missing from room array but is known - trying to find duplicate`);l&&n&&this._stickyRoom&&(this._stickyRoom.room=e),t!==a.w4.NewRoom||n||c||this.rooms.push(e)}let r=!1;if(t===a.w4.PossibleTagChange){const s=this.roomIdsToTags[e.roomId]||[],o=this.getTagsForRoom(e),i=(0,v.ZQ)(s,o);if(!(i.removed.length>0||i.added.length>0))return!1;for(const t of i.removed){const s=this.algorithms[t];if(!s)throw new Error(`No algorithm for ${t}`);s.handleRoomUpdate(e,a.w4.RoomRemoved),this._cachedRooms[t]=s.orderedRooms,this.recalculateStickyRoom(t),this.recalculateActiveCallRooms(t)}for(const t of i.added){const s=this.algorithms[t];if(!s)throw new Error(`No algorithm for ${t}`);s.handleRoomUpdate(e,a.w4.NewRoom),this._cachedRooms[t]=s.orderedRooms}this.roomIdsToTags[e.roomId]=o,t=a.w4.Timeline,r=!0,r&&n&&(this._lastStickyRoom?this._stickyRoom={room:e,tag:this.roomIdsToTags[e.roomId][0],position:0}:this.setStickyRoom(e))}if(t!==a.w4.NewRoom&&t!==a.w4.RoomRemoved&&this.stickyRoom===e)return!1;if(!this.roomIdsToTags[e.roomId]){if(O.includes(t))return!1;const s=this.getTagsForRoom(e).filter(e=>!(0,h.hX)(this.cachedRooms[e]));if(!s.length)throw new Error(`Tags cannot be determined for ${e.roomId}`);this.roomIdsToTags[e.roomId]=s}const l=this.roomIdsToTags[e.roomId];if(!l)return i.vF.warn(`No tags known for "${e.name}" (${e.roomId})`),!1;let c=r;for(const s of l){const n=this.algorithms[s];if(!n)throw new Error(`No algorithm for ${s}`);n.handleRoomUpdate(e,t),this._cachedRooms[s]=n.orderedRooms,this.recalculateStickyRoom(s),this.recalculateActiveCallRooms(s),c=!0}return c}}var N=s("./src/stores/room-list/RoomListLayoutStore.ts"),D=s("./src/utils/MarkedExecution.ts"),j=s("./src/stores/AsyncStoreWithClient.ts"),U=s("./src/stores/spaces/SpaceStore.ts"),F=s("./src/stores/spaces/index.ts"),L=s("./src/utils/sets.ts");class B extends p.EventEmitter{constructor(...e){super(...e),(0,n.A)(this,"roomIds",new Set),(0,n.A)(this,"userIds",new Set),(0,n.A)(this,"showPeopleInSpace",!0),(0,n.A)(this,"space",F._b.Home),(0,n.A)(this,"onStoreUpdate",async(e=!1)=>{const t=this.roomIds;this.roomIds=new Set(U.Ay.instance.getSpaceFilteredRoomIds(this.space));const s=this.userIds;this.userIds=new Set(U.Ay.instance.getSpaceFilteredUserIds(this.space));const n=this.showPeopleInSpace;this.showPeopleInSpace=(0,F.ww)(this.space[0])||r.A.getValue("Spaces.showPeopleInSpace",this.space),(e||n!==this.showPeopleInSpace||(0,L.Y)(t,this.roomIds)||(0,L.Y)(s,this.userIds))&&(this.emit(m),setTimeout(()=>{this.emit(m)}))})}isVisible(e){return U.Ay.instance.isRoomInSpace(this.space,e.roomId)}updateSpace(e){U.Ay.instance.off(this.space,this.onStoreUpdate),U.Ay.instance.on(this.space=e,this.onStoreUpdate),this.onStoreUpdate(!0)}destroy(){U.Ay.instance.off(this.space,this.onStoreUpdate)}}class V{constructor(e){(0,n.A)(this,"filter",new B),(0,n.A)(this,"activeSpace",U.Ay.instance.activeSpace),(0,n.A)(this,"allRoomsInHome",U.Ay.instance.allRoomsInHome),(0,n.A)(this,"onSelectedSpaceUpdated",(e,t=this.allRoomsInHome)=>{if(e===this.activeSpace&&t===this.allRoomsInHome)return;const s=V.needsFilter(this.activeSpace,this.allRoomsInHome),n=V.needsFilter(e,t);this.activeSpace=e,this.allRoomsInHome=t,n&&this.updateFilter(),!s&&n?this.store.addFilter(this.filter):s&&!n&&this.store.removeFilter(this.filter)}),(0,n.A)(this,"onHomeBehaviourUpdated",e=>{this.onSelectedSpaceUpdated(this.activeSpace,e)}),(0,n.A)(this,"updateFilter",()=>{this.filter.updateSpace(this.activeSpace)}),this.store=e,V.needsFilter(this.activeSpace,this.allRoomsInHome)&&(this.updateFilter(),e.addFilter(this.filter)),U.Ay.instance.on(F.tw,this.onSelectedSpaceUpdated),U.Ay.instance.on(F.EC,this.onHomeBehaviourUpdated)}static needsFilter(e,t){return!(e===F._b.Home&&t)}}let H=function(e){return e.ListsUpdate="lists_update",e.ListsLoading="lists_loading",e}({});var W=s("./src/stores/AsyncStore.ts"),$=s("./src/contexts/SDKContext.ts"),z=s("./src/stores/room-list/utils/roomMute.ts");const K=H.ListsUpdate,J=H.ListsLoading;class G extends j.r{constructor(e){super(e),(0,n.A)(this,"initialListsGenerated",!1),(0,n.A)(this,"msc3946ProcessDynamicPredecessor",void 0),(0,n.A)(this,"msc3946SettingWatcherRef",void 0),(0,n.A)(this,"algorithm",new M),(0,n.A)(this,"prefilterConditions",[]),(0,n.A)(this,"updateFn",new D.L(()=>{for(const e of Object.keys(this.orderedLists))x.n.instance.getListState(e).setRooms(this.orderedLists[e]);this.emit(K)})),(0,n.A)(this,"onAlgorithmListUpdated",e=>{this.updateFn.mark(),e&&this.updateFn.trigger()}),(0,n.A)(this,"onAlgorithmFilterUpdated",()=>{this.updateFn.trigger()}),(0,n.A)(this,"onPrefilterUpdated",async()=>{await this.recalculatePrefiltering(),this.updateFn.trigger()}),this.setMaxListeners(20),this.algorithm.start(),this.msc3946ProcessDynamicPredecessor=r.A.getValue("feature_dynamic_room_predecessors"),this.msc3946SettingWatcherRef=r.A.watchSetting("feature_dynamic_room_predecessors",null,(e,t,s,n,o)=>{this.msc3946ProcessDynamicPredecessor=o,this.regenerateAllLists({trigger:!0})})}componentWillUnmount(){r.A.unwatchSetting(this.msc3946SettingWatcherRef)}setupWatchers(){new V(this)}get orderedLists(){return this.algorithm?this.algorithm.getOrderedRooms():{}}async resetStore(){await this.reset(),this.prefilterConditions=[],this.initialListsGenerated=!1,this.algorithm.off(T,this.onAlgorithmListUpdated),this.algorithm.off(m,this.onAlgorithmListUpdated),this.algorithm.stop(),this.algorithm=new M,this.algorithm.on(T,this.onAlgorithmListUpdated),this.algorithm.on(m,this.onAlgorithmListUpdated),await this.reset(null,!0)}async makeReady(e){e&&this.readyStore.useUnitTestClient(e),$.M.instance.roomViewStore.addListener(W.H,()=>this.handleRVSUpdate({})),this.algorithm.on(T,this.onAlgorithmListUpdated),this.algorithm.on(m,this.onAlgorithmFilterUpdated),this.setupWatchers(),i.vF.log("Regenerating room lists: Startup"),this.updateAlgorithmInstances(),this.regenerateAllLists({trigger:!1}),this.handleRVSUpdate({trigger:!1}),this.updateFn.mark(),this.updateFn.trigger()}handleRVSUpdate({trigger:e=!0}){if(!this.matrixClient)return;const t=$.M.instance.roomViewStore.getRoomId();if(!t&&this.algorithm.stickyRoom)this.algorithm.setStickyRoom(null);else if(t){const e=this.matrixClient.getRoom(t);e?e!==this.algorithm.stickyRoom&&this.algorithm.setStickyRoom(e):(i.vF.warn(`${t} is current in RVS but missing from client - clearing sticky room`),this.algorithm.setStickyRoom(null))}e&&this.updateFn.trigger()}async onReady(){await this.makeReady()}async onNotReady(){await this.resetStore()}async onAction(e){this.matrixClient&&this.initialListsGenerated&&(G.TEST_MODE?await this.onDispatchAsync(e):setTimeout(()=>this.onDispatchAsync(e)))}async onDispatchAsync(e){if(!this.matrixClient||!this.initialListsGenerated)return;if(!this.algorithm)throw new Error("Room list store has no algorithm to process dispatcher update with");if("MatrixActions.Room.receipt"===e.action){if((0,d.A)(e.event,this.matrixClient)){const t=e.room;return t?(await this.handleRoomUpdate(t,a.w4.ReadReceipt),void this.updateFn.trigger()):void i.vF.warn(`Own read receipt was in unknown room ${t.roomId}`)}}else if("MatrixActions.Room.tags"===e.action){const t=e;await this.handleRoomUpdate(t.room,a.w4.PossibleTagChange),this.updateFn.trigger()}else if("MatrixActions.Room.timeline"===e.action){const t=e;if(!t.isLiveEvent||!t.isLiveUnfilteredRoomTimelineEvent||!t.room)return;const s=t.event.getRoomId(),n=this.matrixClient.getRoom(s),r=async e=>{if(t.event.getType()===o.EventType.RoomTombstone&&""===t.event.getStateKey()){var s;if(null===(s=this.matrixClient)||void 0===s?void 0:s.getRoom(t.event.getContent().replacement_room))return}t.event.getType()===o.EventType.RoomJoinRules?await this.handleRoomUpdate(e,a.w4.PossibleTagChange):await this.handleRoomUpdate(e,a.w4.Timeline),this.updateFn.trigger()};if(!n)return i.vF.warn(`Live timeline event ${t.event.getId()} received without associated room`),i.vF.warn("Queuing failed room update for retry as a result."),void window.setTimeout(async()=>{var e;const t=null===(e=this.matrixClient)||void 0===e?void 0:e.getRoom(s);t&&await r(t)},100);await r(n)}else if("MatrixActions.Event.decrypted"===e.action){const t=e,s=t.event.getRoomId();if(!s)return;const n=this.matrixClient.getRoom(s);if(!n)return void i.vF.warn(`Event ${t.event.getId()} was decrypted in an unknown room ${s}`);await this.handleRoomUpdate(n,a.w4.Timeline),this.updateFn.trigger()}else if("MatrixActions.accountData"===e.action&&e.event_type===o.EventType.Direct){const t=e.event.getContent();for(const e of Object.keys(t)){const s=t[e];for(const e of s){const t=this.matrixClient.getRoom(e);t?await this.handleRoomUpdate(t,a.w4.PossibleTagChange):i.vF.warn(`${e} was found in DMs but the room is not in the store`)}}this.updateFn.trigger()}else if("MatrixActions.Room.myMembership"===e.action)return void this.onDispatchMyMembership(e);const t=(0,z.Q)(e);if(t){for(const e of t){const t=e&&this.matrixClient.getRoom(e);t&&await this.handleRoomUpdate(t,a.w4.PossibleMuteChange)}this.updateFn.trigger()}}async onDispatchMyMembership(e){const t=(0,_.Cs)(e.oldMembership),s=(0,_.E3)(e.room,e.membership);if(t!==_._T.Join&&s===_._T.Join){const t=e.room,s=t.client.getRoomUpgradeHistory(t.roomId,!0,this.msc3946ProcessDynamicPredecessor),n=s.slice(0,s.indexOf(t));for(const e of n){this.algorithm.stickyRoom===e&&this.algorithm.setStickyRoom(null),this.algorithm.handleRoomUpdate(e,a.w4.RoomRemoved)}return await this.handleRoomUpdate(e.room,a.w4.NewRoom),void this.updateFn.trigger()}return t!==_._T.Invite&&s===_._T.Invite?(await this.handleRoomUpdate(e.room,a.w4.NewRoom),void this.updateFn.trigger()):t!==s?(await this.handleRoomUpdate(e.room,a.w4.PossibleTagChange),void this.updateFn.trigger()):void 0}async handleRoomUpdate(e,t){if(!I.W.instance.isRoomVisible(e))return;if((t===a.w4.NewRoom||t===a.w4.PossibleTagChange)&&!this.prefilterConditions.every(t=>t.isVisible(e)))return;this.algorithm.handleRoomUpdate(e,t)&&this.updateFn.mark()}async recalculatePrefiltering(){if(!this.algorithm)return;if(!this.algorithm.hasTagSortingMap)return;this.algorithm.updatesInhibited=!0;const e=this.getPlausibleRooms(),t=this.algorithm.stickyRoom,s=t&&e.includes(t);this.algorithm.setStickyRoom(null),this.algorithm.setKnownRooms(e),s&&this.algorithm.setStickyRoom(t),this.updateFn.mark(),this.algorithm.updatesInhibited=!1}setTagSorting(e,t){this.setAndPersistTagSorting(e,t),this.updateFn.mark(),this.updateFn.trigger()}setAndPersistTagSorting(e,t){this.algorithm.setTagSorting(e,t),localStorage.setItem(`mx_tagSort_${e}`,t)}getTagSorting(e){return this.algorithm.getTagSorting(e)}getStoredTagSorting(e){return localStorage.getItem(`mx_tagSort_${e}`)}calculateTagSorting(e){const t=this.getTagSorting(e),s=this.getStoredTagSorting(e);let n=l.G.Recent;return s?n=s:t&&(n=t),n}setListOrder(e,t){this.setAndPersistListOrder(e,t),this.updateFn.trigger()}setAndPersistListOrder(e,t){this.algorithm.setListOrdering(e,t),localStorage.setItem(`mx_listOrder_${e}`,t)}getListOrder(e){return this.algorithm.getListOrdering(e)}getStoredListOrder(e){return localStorage.getItem(`mx_listOrder_${e}`)}calculateListOrder(e){const t=l.K.Natural,s=this.getListOrder(e),n=this.getStoredListOrder(e);let o=t;return n?o=n:s&&(o=s),o}updateAlgorithmInstances(){this.updateFn.mark();for(const e of Object.keys(this.orderedLists)){const t=this.getTagSorting(e),s=this.getListOrder(e),n=this.calculateTagSorting(e),o=this.calculateListOrder(e);n!==t&&this.setAndPersistTagSorting(e,n),o!==s&&this.setAndPersistListOrder(e,o)}}getPlausibleRooms(){if(!this.matrixClient)return[];let e=this.matrixClient.getVisibleRooms(this.msc3946ProcessDynamicPredecessor);return e=e.filter(e=>I.W.instance.isRoomVisible(e)),this.prefilterConditions.length>0&&(e=e.filter(e=>{for(const t of this.prefilterConditions)if(!t.isVisible(e))return!1;return!0})),e}regenerateAllLists({trigger:e=!0}){i.vF.warn("Regenerating all room lists");const t=this.getPlausibleRooms(),s={},n={},o=[...a.HP];for(const e of o)s[e]=this.calculateTagSorting(e),n[e]=this.calculateListOrder(e),N.A.instance.ensureLayoutExists(e);this.algorithm.populateTags(s,n),this.algorithm.setKnownRooms(t),this.initialListsGenerated=!0,e&&this.updateFn.trigger()}async addFilter(e){e.on(m,this.onPrefilterUpdated),this.prefilterConditions.push(e);this.recalculatePrefiltering().then(()=>this.updateFn.trigger())}removeFilter(e){let t=Promise.resolve(),s=!1;const n=this.prefilterConditions.indexOf(e);n>=0&&(e.off(m,this.onPrefilterUpdated),this.prefilterConditions.splice(n,1),t=this.recalculatePrefiltering(),s=!0),s&&t.then(()=>this.updateFn.trigger())}getTagsForRoom(e){const t=this.algorithm.getTagsForRoom(e);return t||[a.zO.Untagged]}getCount(e){return this.orderedLists[e].length||0}async manualRoomUpdate(e,t){await this.handleRoomUpdate(e,t),this.updateFn.trigger()}}(0,n.A)(G,"TEST_MODE",!1);class q{static get instance(){if(!q.internalInstance){const e=new G(c.A);e.start(),q.internalInstance=e}return this.internalInstance}}(0,n.A)(q,"internalInstance",void 0),window.mxRoomListStore=q.instance},"./src/stores/room-list/algorithms/models.ts":(e,t,s)=>{"use strict";s.d(t,{G:()=>n,K:()=>o});let n=function(e){return e.Manual="MANUAL",e.Alphabetic="ALPHABETIC",e.Recent="RECENT",e}({}),o=function(e){return e.Importance="IMPORTANCE",e.Natural="NATURAL",e}({})},"./src/stores/room-list/algorithms/tag-sorting/RecentAlgorithm.ts":(e,t,s)=>{"use strict";s.d(t,{Qi:()=>c,V7:()=>d,pP:()=>l});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./src/MatrixClientPeg.ts"),i=s("./src/Unread.ts"),r=s("./src/utils/membership.ts");function a(e){const t=e.getType(),s=e.getContent(),o=e.getPrevContent();return t===n.EventType.RoomMember&&o.membership!==s.membership||(t!==n.EventType.RoomMember||o.displayname===s.displayname)&&(t!==n.EventType.RoomMember||o.avatar_url===s.avatar_url)}const l=e=>{let t="";o.J.get()&&(t=o.J.get().getSafeUserId());const s={};return e.sort((e,n)=>{var o,i;const r=null!==(o=s[e.roomId])&&void 0!==o?o:c(e,t),a=null!==(i=s[n.roomId])&&void 0!==i?i:c(n,t);return s[e.roomId]=r,s[n.roomId]=a,a-r})},c=(e,t)=>{const s=((s,o)=>{if(null==e||!e.timeline)return Number.MAX_SAFE_INTEGER;const l=e.getBumpStamp();if(l)return l;if((0,r.Cs)(e.getMyMembership())!==r._T.Join){const s=e.currentState.getStateEvents(n.EventType.RoomMember,t);if(s&&!Array.isArray(s))return s.getTs()}for(let s=e.timeline.length-1;s>=0;--s){const n=e.timeline[s];if(n.getTs()&&(n.getSender()===t&&a(n)||i.aA(e.client,n)))return n.getTs()}return null!==(s=null===(o=e.timeline[0])||void 0===o?void 0:o.getTs())&&void 0!==s?s:Number.MAX_SAFE_INTEGER})(),o=e.getThreads().map(e=>{var t,s;const n=null!==(t=e.replyToEvent)&&void 0!==t?t:e.rootEvent;return null!==(s=null==n?void 0:n.getTs())&&void 0!==s?s:0});return Math.max(s,...o)};class d{sortRooms(e,t){return l(e)}getLastTs(e,t){return c(e,t)}}},"./src/stores/room-list/filters/VisibilityProvider.ts":(e,t,s)=>{"use strict";s.d(t,{W:()=>r});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./src/customisations/RoomList.ts"),i=s("./src/utils/localRoom/isLocalRoom.ts");class r{constructor(){}static get instance(){return r.internalInstance||(r.internalInstance=new r),r.internalInstance}isRoomVisible(e){if(!e)return!1;if(e.isSpaceRoom())return!1;if((0,i.F)(e))return!1;const t=o.B.isRoomVisible;return!t||t(e)}}(0,n.A)(r,"internalInstance",void 0)},"./src/stores/room-list/models.ts":(e,t,s)=>{"use strict";s.d(t,{HP:()=>o,w4:()=>i,zO:()=>n});let n=function(e){return e.Invite="im.vector.fake.invite",e.Untagged="im.vector.fake.recent",e.Archived="im.vector.fake.archived",e.LowPriority="m.lowpriority",e.Favourite="m.favourite",e.DM="im.vector.fake.direct",e.Conference="im.vector.fake.conferences",e.ServerNotice="m.server_notice",e.Suggested="im.vector.fake.suggested",e}({});const o=[n.Invite,n.Favourite,n.DM,n.Conference,n.Untagged,n.LowPriority,n.ServerNotice,n.Suggested,n.Archived];let i=function(e){return e.Timeline="TIMELINE",e.PossibleTagChange="POSSIBLE_TAG_CHANGE",e.PossibleMuteChange="POSSIBLE_MUTE_CHANGE",e.ReadReceipt="READ_RECEIPT",e.NewRoom="NEW_ROOM",e.RoomRemoved="ROOM_REMOVED",e}({})},"./src/stores/room-list/utils/roomMute.ts":(e,t,s)=>{"use strict";s.d(t,{Q:()=>r});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./src/RoomNotifs.ts"),i=s("./src/utils/arrays.ts");const r=e=>{var t,s,r;if("MatrixActions.accountData"!==e.action||(null===(t=e.event)||void 0===t?void 0:t.getType())!==n.EventType.PushRules)return;const a=e.event,l=e.previousEvent;if(!a||!l)return;const c=null===(s=a.getContent())||void 0===s||null===(s=s.global)||void 0===s||null===(s=s.override)||void 0===s?void 0:s.filter(o.Db),d=null==l||null===(r=l.getContent())||void 0===r||null===(r=r.global)||void 0===r||null===(r=r.override)||void 0===r?void 0:r.filter(o.Db),{added:m,removed:u}=(0,i.ZQ)((null==d?void 0:d.map(e=>e.rule_id))||[],(null==c?void 0:c.map(e=>e.rule_id))||[]);return[...m,...u]}},"./src/stores/spaces/SpaceStore.ts":(e,t,s)=>{"use strict";s.d(t,{Ay:()=>$,tK:()=>V});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/lodash/lodash.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./node_modules/matrix-js-sdk/src/types.ts"),a=s("./node_modules/matrix-js-sdk/src/logger.ts"),l=s("./src/stores/AsyncStoreWithClient.ts"),c=s("./src/dispatcher/dispatcher.ts"),d=s("./src/stores/room-list/RoomListStore.ts"),m=s("./src/settings/SettingsStore.ts"),u=s("./src/utils/DMRoomMap.ts"),h=s("./src/stores/notifications/NotificationLevel.ts"),p=s("./src/utils/arrays.ts"),g=s("./src/stores/notifications/NotificationState.ts"),v=s("./src/stores/room-list/models.ts");class _ extends g.Br{constructor(e){super(),(0,n.A)(this,"rooms",[]),(0,n.A)(this,"states",{}),(0,n.A)(this,"onRoomNotificationStateUpdate",()=>{this.calculateTotalState()}),this.getRoomFn=e}get symbol(){return this._level===h.S.Unsent?"!":null}setRooms(e){const t=this.rooms,s=(0,p.ZQ)(t,e);this.rooms=e;for(const e of s.removed){const t=this.states[e.roomId];t&&(delete this.states[e.roomId],t.off(g.ce.Update,this.onRoomNotificationStateUpdate))}for(const e of s.added){const t=this.getRoomFn(e);t.on(g.ce.Update,this.onRoomNotificationStateUpdate),this.states[e.roomId]=t}this.calculateTotalState()}getFirstRoomWithNotifications(){var e;return null===(e=Object.values(this.states).find(e=>e.level>=this.level))||void 0===e?void 0:e.room.roomId}destroy(){super.destroy();for(const e of Object.values(this.states))e.off(g.ce.Update,this.onRoomNotificationStateUpdate);this.states={}}calculateTotalState(){const e=this.snapshot();this._count=0,this._level=h.S.None;for(const[e,t]of Object.entries(this.states)){const s=this.rooms.find(t=>t.roomId===e);(s?d.Ay.instance.getTagsForRoom(s):[]).includes(v.zO.LowPriority)&&t.level===h.S.Activity||(this._count+=t.count,this._level=Math.max(this.level,t.level))}this.emitIfUpdated(e)}}var f=s("./src/stores/notifications/RoomNotificationStateStore.ts"),y=s("./src/utils/maps.ts"),b=s("./src/utils/sets.ts"),E=s("./src/dispatcher/actions.ts"),w=s("./node_modules/matrix-js-sdk/src/utils.ts");function x(e,t,s,n,o=w.Mf){const i=Math.min(Math.max(e.length,t.length),n),r=(0,w.tf)(e,i,o),a=(0,w.tf)(t,i,o),l=(0,w._4)(r,o),c=(0,w._4)(a,o);if(c-l-BigInt(1)<s)return i<n?x((0,w.tf)(r,i+1,o),(0,w.tf)(a,i+1,o),s,i+1,o):[];const d=(c-l)/BigInt(s+1),m=BigInt(l+d);return Array(s).fill(void 0).map((e,t)=>(0,w.c7)(m+BigInt(t)*d,o))}const A=(e,t,s,n=50)=>{var o,i,r,a,l,c;if(t<0||s<0||t>e.length||s>e.length||t===s)return[];const d=e.map((e,t)=>({index:t,order:e})),m=(0,p.cZ)(d,t,s),u=void 0===(null===(o=m[s-1])||void 0===o?void 0:o.order);let h=s,g=s,v=!0;const _=void 0!==(null===(i=m[s+1])||void 0===i?void 0:i.order)?(0,w._4)(m[s+1].order):BigInt(Number.MAX_VALUE);for(let e=s-1,t=1;e>=0;e--,t++){var f;if(void 0!==(null===(f=m[e])||void 0===f?void 0:f.order)&&_-(0,w._4)(m[e].order)>t)break;h=e}const y=void 0===m[0].order?void 0:(0,w._4)(m[0].order),b=BigInt(s);0===h&&void 0!==y&&_-y<=b&&y<=b&&(v=!1);const E=!u;let A=E;if(E){var S,C;const e=void 0!==(null===(S=m[s-1])||void 0===S?void 0:S.order)?(0,w._4)(m[s-1].order):BigInt(Number.MIN_VALUE);for(let t=s+1,n=1;t<m.length;t++,n++){var R;if(void 0===(null===(R=m[t])||void 0===R?void 0:R.order)||(0,w._4)(m[t].order)-e>n)break;g=t}g===m.length-1&&(null!==(C=m[g])&&void 0!==C&&C.order?(0,w._4)(m[g].order):BigInt(Number.MAX_VALUE))-e<=g-s&&(A=!1)}const k=v?s-h:Number.MAX_SAFE_INTEGER,I=A?g-s:Number.MAX_SAFE_INTEGER;u||k<I?g=s:h=s;const P=null!==(r=null===(a=m[h-1])||void 0===a?void 0:a.order)&&void 0!==r?r:"";return x(P,null!==(l=null===(c=m[g+1])||void 0===c?void 0:c.order)&&void 0!==l?l:w.Mf.charAt(w.Mf.length-1).repeat(P.length||1),1+g-h,n).map((e,t)=>({index:m[h+t].index,order:e}))};var S=s("./src/components/views/rooms/LegacyRoomList.tsx"),C=s("./src/stores/spaces/index.ts"),R=s("./src/RoomAliasCache.ts"),k=s("./src/utils/membership.ts");const I=(e,t,s=new Set)=>{s.add(t);const n=e.get(t);return null==n||n.forEach(t=>{s.has(t)||I(e,t,s)}),s},P=(e,t,s)=>{const n=I(t,s),o=new Set;return n.forEach(t=>{const s=e.get(t);null==s||s.forEach(o.add,o)}),o},T=e=>(t,s,n,o=!0)=>{if(o&&e.has(n))return e.get(n);const i=P(t,s,n);return e.set(n,i),i};var O=s("./src/PosthogAnalytics.ts"),M=s("./src/contexts/SDKContext.ts");function N(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function D(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?N(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):N(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const j="mx_active_space",U=[C._b.Home,C._b.Favourites,C._b.People,C._b.Orphans,C._b.VideoRooms],F=e=>`mx_space_context_${e}`,L=e=>e.reduce((e,t)=>(e[t.isSpaceRoom()?0:1].push(t),e),[[],[]]),B=e=>{if("string"==typeof e&&e.length<=50&&Array.from(e).every(e=>{const t=e.charCodeAt(0);return t>=32&&t<=126}))return e},V=(e,t,s)=>{var n;return[null!==(n=B(e))&&void 0!==n?n:NaN,t,s]},H=e=>f.n.instance.getRoomState(e);class W extends l.r{constructor(){super(c.A,{}),(0,n.A)(this,"rootSpaces",[]),(0,n.A)(this,"parentMap",new y.h),(0,n.A)(this,"notificationStateMap",new Map),(0,n.A)(this,"roomIdsBySpace",new Map),(0,n.A)(this,"childSpacesBySpace",new Map),(0,n.A)(this,"userIdsBySpace",new Map),(0,n.A)(this,"_aggregatedSpaceCache",{roomIdsBySpace:new Map,userIdsBySpace:new Map}),(0,n.A)(this,"_activeSpace",C._b.Home),(0,n.A)(this,"_suggestedRooms",[]),(0,n.A)(this,"_invitedSpaces",new Set),(0,n.A)(this,"spaceOrderLocalEchoMap",new Map),(0,n.A)(this,"_allRoomsInHome",!1),(0,n.A)(this,"_enabledMetaSpaces",[]),(0,n.A)(this,"_msc3946ProcessDynamicPredecessor",m.A.getValue("feature_dynamic_room_predecessors")),(0,n.A)(this,"_storeReadyDeferred",Promise.withResolvers()),(0,n.A)(this,"fetchSuggestedRooms",async(e,t=20)=>{try{const{rooms:s}=await this.matrixClient.getRoomHierarchy(e.roomId,t,1,!0),n=new y.h;return s.forEach(e=>{e.children_state.forEach(e=>{var t;e.type===i.EventType.SpaceChild&&null!==(t=e.content.via)&&void 0!==t&&t.length&&e.content.via.forEach(t=>{n.getOrCreate(e.state_key,new Set).add(t)})})}),s.filter(e=>{var t;return e.room_type!==i.RoomType.Space&&(null===(t=this.matrixClient)||void 0===t||null===(t=t.getRoom(e.room_id))||void 0===t?void 0:t.getMyMembership())!==r.O.Join}).map(e=>D(D({},e),{},{viaServers:Array.from(n.get(e.room_id)||[])}))}catch(e){a.vF.error(e)}return[]}),(0,n.A)(this,"getSpaceFilteredRoomIds",(e,t=!0,s=!0)=>e===C._b.Home&&this.allRoomsInHome?new Set(this.matrixClient.getVisibleRooms(this._msc3946ProcessDynamicPredecessor).map(e=>e.roomId)):!t||(0,C.ww)(e)?this.roomIdsBySpace.get(e)||new Set:this.getAggregatedRoomIdsBySpace(this.roomIdsBySpace,this.childSpacesBySpace,e,s)),(0,n.A)(this,"getSpaceFilteredUserIds",(e,t=!0,s=!0)=>{if(!(e===C._b.Home&&this.allRoomsInHome||(0,C.ww)(e)))return!t||(0,C.ww)(e)?this.userIdsBySpace.get(e)||new Set:this.getAggregatedUserIdsBySpace(this.userIdsBySpace,this.childSpacesBySpace,e,s)}),(0,n.A)(this,"getAggregatedRoomIdsBySpace",T(this._aggregatedSpaceCache.roomIdsBySpace)),(0,n.A)(this,"getAggregatedUserIdsBySpace",T(this._aggregatedSpaceCache.userIdsBySpace)),(0,n.A)(this,"markTreeChildren",(e,t)=>{const s=[e];for(;s.length;){const e=s.pop();t.delete(e),this.getChildSpaces(e.roomId).forEach(e=>{t.has(e)&&s.push(e)})}}),(0,n.A)(this,"findRootSpaces",e=>{const t=new Set(e);e.forEach(e=>{this.getChildSpaces(e.roomId).forEach(e=>{t.delete(e)})});const s=Array.from(t),n=new Set((0,o.sortBy)(e,e=>e.roomId));return s.forEach(e=>{this.markTreeChildren(e,n)}),Array.from(n).forEach(e=>{n.has(e)&&(s.push(e),this.markTreeChildren(e,n))}),s}),(0,n.A)(this,"rebuildSpaceHierarchy",()=>{if(!this.matrixClient)return;const e=this.matrixClient.getVisibleRooms(this._msc3946ProcessDynamicPredecessor).filter(e=>e.isSpaceRoom()),[t,s]=e.reduce(([e,t],s)=>{switch((0,k.Cs)(s.getMyMembership())){case k._T.Join:e.push(s);break;case k._T.Invite:t.push(s)}return[e,t]},[[],[]]),n=this.findRootSpaces(t),o=this.rootSpaces;this.rootSpaces=this.sortRootSpaces(n),this.onRoomsUpdate(),(0,p.Oj)(o,this.rootSpaces)&&this.emit(C.bZ,this.spacePanelSpaces,this.enabledMetaSpaces);const i=this._invitedSpaces;this._invitedSpaces=new Set(this.sortRootSpaces(s)),(0,b.Y)(i,this._invitedSpaces)&&this.emit(C.kQ,this.invitedSpaces)}),(0,n.A)(this,"rebuildParentMap",()=>{if(!this.matrixClient)return;const e=this.matrixClient.getVisibleRooms(this._msc3946ProcessDynamicPredecessor).filter(e=>e.isSpaceRoom()&&e.getMyMembership()===r.O.Join);this.parentMap=new y.h,e.forEach(e=>{this.getChildren(e.roomId).forEach(t=>{this.parentMap.getOrCreate(t.roomId,new Set).add(e.roomId)})}),O.Vo.instance.setProperty("numSpaces",e.length)}),(0,n.A)(this,"rebuildHomeSpace",()=>{if(this.allRoomsInHome)this.roomIdsBySpace.delete(C._b.Home);else{const e=new Set(this.matrixClient.getVisibleRooms(this._msc3946ProcessDynamicPredecessor).filter(this.showInHomeSpace).map(e=>e.roomId));this.roomIdsBySpace.set(C._b.Home,e)}this.activeSpace===C._b.Home&&this.switchSpaceIfNeeded()}),(0,n.A)(this,"rebuildMetaSpaces",()=>{if(!this.matrixClient)return;const e=new Set(this.enabledMetaSpaces),t=this.matrixClient.getVisibleRooms(this._msc3946ProcessDynamicPredecessor);if(e.has(C._b.Home)?this.rebuildHomeSpace():this.roomIdsBySpace.delete(C._b.Home),e.has(C._b.Favourites)){const e=t.filter(e=>e.tags[v.zO.Favourite]);this.roomIdsBySpace.set(C._b.Favourites,new Set(e.map(e=>e.roomId)))}else this.roomIdsBySpace.delete(C._b.Favourites);if(e.has(C._b.Orphans)||e.has(C._b.Home)){const e=t.filter(e=>{var t;return!(null!==(t=this.parentMap.get(e.roomId))&&void 0!==t&&t.size||u.A.shared().getUserIdForRoomId(e.roomId))});this.roomIdsBySpace.set(C._b.Orphans,new Set(e.map(e=>e.roomId)))}(0,C.ww)(this.activeSpace)&&this.switchSpaceIfNeeded()}),(0,n.A)(this,"updateNotificationStates",e=>{if(!this.matrixClient)return;const t=new Set(this.enabledMetaSpaces),s=this.matrixClient.getVisibleRooms(this._msc3946ProcessDynamicPredecessor);let n;t.has(C._b.People)?n=C._b.People:t.has(C._b.Home)&&(n=C._b.Home),e||(e=[...this.roomIdsBySpace.keys()],n===C._b.People&&e.push(C._b.People),t.has(C._b.Home)&&!this.allRoomsInHome&&e.push(C._b.Home)),e.forEach(e=>{if(this.allRoomsInHome&&e===C._b.Home)return;const t=this.getSpaceFilteredRoomIds(e,!0);this.getNotificationState(e).setRooms(s.filter(s=>e===C._b.People?this.isRoomInSpace(C._b.People,s.roomId):!(s.isSpaceRoom()||!t.has(s.roomId))&&(!n||!u.A.shared().getUserIdForRoomId(s.roomId)||e===n)))}),n!==C._b.People&&this.notificationStateMap.delete(C._b.People)}),(0,n.A)(this,"showInHomeSpace",e=>{var t;return!!this.allRoomsInHome||!e.isSpaceRoom()&&!(null!==(t=this.parentMap.get(e.roomId))&&void 0!==t&&t.size&&!u.A.shared().getUserIdForRoomId(e.roomId)&&e.getMyMembership()!==r.O.Invite)}),(0,n.A)(this,"onMemberUpdate",(e,t)=>{const s=W.isInSpace(e.getMember(t));var n,o;s?null===(n=this.userIdsBySpace.get(e.roomId))||void 0===n||n.add(t):null===(o=this.userIdsBySpace.get(e.roomId))||void 0===o||o.delete(t);this._aggregatedSpaceCache.userIdsBySpace.clear();const i=this.getKnownParents(e.roomId,!0);this.emit(e.roomId),i.forEach(e=>this.emit(e)),s||this.switchSpaceIfNeeded()}),(0,n.A)(this,"onRoomsUpdate",()=>{if(!this.matrixClient)return;const e=this.matrixClient.getVisibleRooms(this._msc3946ProcessDynamicPredecessor),t=this.roomIdsBySpace,s=this.userIdsBySpace,n=this.childSpacesBySpace;this.roomIdsBySpace=new Map,this.userIdsBySpace=new Map,this.childSpacesBySpace=new Map,this.rebuildParentMap(),this.rebuildMetaSpaces();const o=new y.h;e.forEach(e=>{[r.O.Join,r.O.Invite].includes(e.getMyMembership())&&this.getParents(e.roomId).forEach(t=>{o.getOrCreate(t.roomId,new Set).add(e.roomId)})}),this.rootSpaces.forEach(e=>{const t=(e,s)=>{var n,i;if(s.has(e))return;if(this.roomIdsBySpace.has(e)&&this.userIdsBySpace.has(e))return[this.roomIdsBySpace.get(e),this.userIdsBySpace.get(e)];const[a,l]=L(this.getChildren(e));this.childSpacesBySpace.set(e,new Set(a.map(e=>e.roomId)));const c=new Set(l.map(e=>e.roomId)),d=null===(n=this.matrixClient)||void 0===n?void 0:n.getRoom(e),m=new Set(null==d?void 0:d.getMembers().filter(e=>e.membership===r.O.Join||e.membership===r.O.Invite).map(e=>e.userId)),u=new Set(s).add(e);a.forEach(e=>{t(e.roomId,u)}),null===(i=o.get(e))||void 0===i||i.forEach(e=>{c.add(e)});const h=new Set(Array.from(c).flatMap(e=>this.matrixClient.getRoomUpgradeHistory(e,!0,this._msc3946ProcessDynamicPredecessor).map(e=>e.roomId)));return this.roomIdsBySpace.set(e,h),this.userIdsBySpace.set(e,m),[h,m]};t(e.roomId,new Set)});const i=(0,y.C)(t,this.roomIdsBySpace),a=(0,y.C)(s,this.userIdsBySpace),l=(0,y.C)(n,this.childSpacesBySpace),c=i.changed.filter(e=>(0,b.Y)(t.get(e),this.roomIdsBySpace.get(e))),d=a.changed.filter(e=>(0,b.Y)(s.get(e),this.userIdsBySpace.get(e))),m=l.changed.filter(e=>(0,b.Y)(n.get(e),this.childSpacesBySpace.get(e))),u=new Set([...i.added,...a.added,...l.added,...i.removed,...a.removed,...l.removed,...c,...d,...m]);Array.from(u).flatMap(e=>[...this.getKnownParents(e,!0)]).forEach(e=>u.add(e)),this._aggregatedSpaceCache.roomIdsBySpace.clear(),this._aggregatedSpaceCache.userIdsBySpace.clear(),u.forEach(e=>{this.emit(e)}),u.has(this.activeSpace)&&this.switchSpaceIfNeeded();const h=[...u];this.enabledMetaSpaces.includes(C._b.People)&&h.push(C._b.People),this.updateNotificationStates(h)}),(0,n.A)(this,"switchSpaceIfNeeded",(e=M.M.instance.roomViewStore.getRoomId())=>{var t;e&&(this.isRoomInSpace(this.activeSpace,e)||null!==(t=this.matrixClient)&&void 0!==t&&null!==(t=t.getRoom(e))&&void 0!==t&&t.isSpaceRoom()||this.switchToRelatedSpace(e))}),(0,n.A)(this,"switchToRelatedSpace",e=>{var t;if(this.suggestedRooms.find(t=>t.room_id===e))return;let s=null===(t=this.getCanonicalParent(e))||void 0===t?void 0:t.roomId;var n;s||(s=null===(n=this.rootSpaces.find(t=>this.isRoomInSpace(t.roomId,e)))||void 0===n?void 0:n.roomId);s||(s=[...this.enabledMetaSpaces].reverse().find(t=>this.isRoomInSpace(t,e))),s?this.setActiveSpace(s,!1):this.goToFirstSpace()}),(0,n.A)(this,"onRoom",(e,t,s)=>{const n=e.getMyMembership();if(!n)return;const o=t||n;if(e.isSpaceRoom()){if(o===r.O.Invite){const t=this._invitedSpaces.size;this._invitedSpaces.add(e),t!==this._invitedSpaces.size&&this.emit(C.kQ,this.invitedSpaces)}else if(s===r.O.Invite&&o!==r.O.Join)this._invitedSpaces.delete(e)&&this.emit(C.kQ,this.invitedSpaces);else{var i;this.rebuildSpaceHierarchy(),null===(i=this.parentMap.get(e.roomId))||void 0===i||i.forEach(e=>{this.emit(e)}),this.emit(e.roomId)}o===r.O.Join&&e.roomId===M.M.instance.roomViewStore.getRoomId()?this.setActiveSpace(e.roomId,!1):o===r.O.Leave&&e.roomId===this.activeSpace&&this.goToFirstSpace(!0)}else if(this.onRoomsUpdate(),o===r.O.Join){const s=this._suggestedRooms.length;if(this._suggestedRooms=this._suggestedRooms.filter(t=>t.room_id!==e.roomId),s!==this._suggestedRooms.length)return void this.emit(C.b4,this._suggestedRooms);t===r.O.Join&&e.roomId===M.M.instance.roomViewStore.getRoomId()&&this.switchSpaceIfNeeded(e.roomId)}}),(0,n.A)(this,"onRoomState",e=>{var t;const s=null===(t=this.matrixClient)||void 0===t?void 0:t.getRoom(e.getRoomId());if(this.matrixClient&&s)switch(e.getType()){case i.EventType.SpaceChild:{const t=this.matrixClient.getRoom(e.getStateKey());s.isSpaceRoom()&&(null!=t&&t.isSpaceRoom()?(this.rebuildSpaceHierarchy(),this.emit(t.roomId)):this.onRoomsUpdate(),this.emit(s.roomId)),s.roomId===this.activeSpace&&(null==t?void 0:t.getMyMembership())!==r.O.Join&&e.getPrevContent().suggested!==e.getContent().suggested&&this.loadSuggestedRooms(s);break}case i.EventType.SpaceParent:s.isSpaceRoom()?this.rebuildSpaceHierarchy():this.onRoomsUpdate(),this.emit(s.roomId);break;case i.EventType.RoomPowerLevels:s.isSpaceRoom()&&this.onRoomsUpdate();break;case i.EventType.RoomCreate:this.onRoomsUpdate()}}),(0,n.A)(this,"onRoomStateMembers",e=>{var t;const s=null===(t=this.matrixClient)||void 0===t?void 0:t.getRoom(e.getRoomId()),n=e.getStateKey();null!=s&&s.isSpaceRoom()&&u.A.shared().getDMRoomsForUserId(n).length>0&&e.getPrevContent().membership!==e.getContent().membership&&this.onMemberUpdate(s,n)}),(0,n.A)(this,"onRoomAccountData",(e,t,s)=>{if(t.isSpaceRoom()&&e.getType()===i.EventType.SpaceOrder){var n,o;this.spaceOrderLocalEchoMap.delete(t.roomId);(null===(n=e.getContent())||void 0===n?void 0:n.order)!==(null==s||null===(o=s.getContent())||void 0===o?void 0:o.order)&&this.notifyIfOrderChanged()}else if(e.getType()===i.EventType.Tag){var r,a;const n=(null==s||null===(r=s.getContent())||void 0===r?void 0:r.tags)||{},o=(null===(a=e.getContent())||void 0===a?void 0:a.tags)||{};!!n[v.zO.Favourite]!=!!o[v.zO.Favourite]&&this.onRoomFavouriteChange(t)}}),(0,n.A)(this,"onAccountData",(e,t)=>{if(e.getType()===i.EventType.Direct){var s;const n=new Set(Object.values(null!==(s=null==t?void 0:t.getContent())&&void 0!==s?s:{}).flat()),o=new Set(Object.values(e.getContent()).flat()),i=(0,b.g)(n,o);[...i.added,...i.removed].forEach(e=>{var t;const s=null===(t=this.matrixClient)||void 0===t?void 0:t.getRoom(e);s&&this.onRoomDmChange(s,o.has(e))}),i.removed.length>0&&this.switchSpaceIfNeeded()}}),(0,n.A)(this,"getSpaceTagOrdering",e=>{var t;return this.spaceOrderLocalEchoMap.has(e.roomId)?this.spaceOrderLocalEchoMap.get(e.roomId):B(null===(t=e.getAccountData(i.EventType.SpaceOrder))||void 0===t||null===(t=t.getContent())||void 0===t?void 0:t.order)}),m.A.monitorSetting("Spaces.allRoomsInHome",null),m.A.monitorSetting("Spaces.enabledMetaSpaces",null),m.A.monitorSetting("Spaces.showPeopleInSpace",null),m.A.monitorSetting("feature_dynamic_room_predecessors",null)}get storeReadyPromise(){return this._storeReadyDeferred.promise}get metaSpaceOrder(){return m.A.getValue("feature_new_room_list")?U.filter(e=>e!==C._b.People&&e!==C._b.Favourites):U}get invitedSpaces(){return Array.from(this._invitedSpaces)}get enabledMetaSpaces(){return this._enabledMetaSpaces}get spacePanelSpaces(){return this.rootSpaces}get activeSpace(){return this._activeSpace}get activeSpaceRoom(){var e,t;return(0,C.ww)(this._activeSpace)?null:null!==(e=null===(t=this.matrixClient)||void 0===t?void 0:t.getRoom(this._activeSpace))&&void 0!==e?e:null}get suggestedRooms(){return this._suggestedRooms}get allRoomsInHome(){return this._allRoomsInHome}setActiveRoomInSpace(e){var t;if(!((0,C.ww)(e)||null!==(t=this.matrixClient)&&void 0!==t&&null!==(t=t.getRoom(e))&&void 0!==t&&t.isSpaceRoom()))return;let s;if(e!==this.activeSpace&&this.setActiveSpace(e,!1),e===C._b.Home&&this.allRoomsInHome){const e=f.n.instance.globalState.hasMentions,t=d.Ay.instance.orderedLists;e:for(let n=0;n<S.Q.length;n++){const o=S.Q[n];if(t[o])for(const n of t[o]){const t=f.n.instance.getRoomState(n);if(e?t.hasMentions:t.isUnread){s=n.roomId;break e}}}}else s=this.getNotificationState(e).getFirstRoomWithNotifications();s&&c.A.dispatch({action:E.r.ViewRoom,room_id:s,context_switch:!0,metricsTrigger:"WebSpacePanelNotificationBadge"})}setActiveSpace(e,t=!0){if(!e||!this.matrixClient||e===this.activeSpace)return;let s=null;var n;if((0,C.ww)(e)){if(!this.enabledMetaSpaces.includes(e))return}else if(s=this.matrixClient.getRoom(e),null===(n=s)||void 0===n||!n.isSpaceRoom())return;if(window.localStorage.setItem(j,this._activeSpace=e),t){var o,i;const t=this.getLastSelectedRoomIdForSpace(e);t&&(null===(o=s)||void 0===o?void 0:o.getMyMembership())!==r.O.Invite&&(null===(i=this.matrixClient.getRoom(t))||void 0===i?void 0:i.getMyMembership())===r.O.Join&&this.isRoomInSpace(e,t)?c.A.dispatch({action:E.r.ViewRoom,room_id:t,context_switch:!0,metricsTrigger:"WebSpaceContextSwitch"}):s?c.A.dispatch({action:E.r.ViewRoom,room_id:e,context_switch:!0,metricsTrigger:"WebSpaceContextSwitch"}):c.A.dispatch({action:E.r.ViewHomePage,context_switch:!0})}this.emit(C.tw,this.activeSpace),this.emit(C.b4,this._suggestedRooms=[]),s&&(this.loadSuggestedRooms(s),$.instance.traverseSpace(e,e=>{var t;null===(t=this.matrixClient)||void 0===t||null===(t=t.getRoom(e))||void 0===t||t.loadMembersIfNeeded()},!1))}getLastSelectedRoomIdForSpace(e){return window.localStorage.getItem(F(e))}async loadSuggestedRooms(e){const t=await this.fetchSuggestedRooms(e);this._activeSpace===e.roomId&&(this._suggestedRooms=t,this.emit(C.b4,this._suggestedRooms))}addRoomToSpace(e,t,s,n=!1){return this.matrixClient.sendStateEvent(e.roomId,i.EventType.SpaceChild,{via:s,suggested:n},t)}getChildren(e){var t;const s=null===(t=this.matrixClient)||void 0===t?void 0:t.getRoom(e),n=null==s?void 0:s.currentState.getStateEvents(i.EventType.SpaceChild).filter(e=>{var t;return null===(t=e.getContent())||void 0===t?void 0:t.via});return(0,o.sortBy)(n,e=>V(e.getContent().order,e.getTs(),e.getStateKey())).map(e=>{const t=this.matrixClient.getRoomUpgradeHistory(e.getStateKey(),!0,this._msc3946ProcessDynamicPredecessor);return t[t.length-1]}).filter(e=>(null==e?void 0:e.getMyMembership())===r.O.Join||(null==e?void 0:e.getMyMembership())===r.O.Invite)||[]}getChildRooms(e){return this.getChildren(e).filter(e=>!e.isSpaceRoom())}getChildSpaces(e){return this.getChildren(e).filter(e=>e.isSpaceRoom()&&e.getMyMembership()===r.O.Join)}getParents(e,t=!1){var s;if(!this.matrixClient)return[];const n=this.matrixClient.getSafeUserId(),o=this.matrixClient.getRoom(e),r=null!==(s=null==o?void 0:o.currentState.getStateEvents(i.EventType.SpaceParent))&&void 0!==s?s:[];return(0,p.Bo)(r.map(s=>{var o;const r=s.getContent();if(!Array.isArray(r.via)||t&&!r.canonical)return;const a=null===(o=this.matrixClient)||void 0===o?void 0:o.getRoom(s.getStateKey()),l=null==a?void 0:a.currentState.getStateEvents(i.EventType.SpaceChild,e);return null==a||!a.currentState.maySendStateEvent(i.EventType.SpaceChild,n)||l&&!Array.isArray(l.getContent().via)?void 0:a}))}getCanonicalParent(e){var t;const s=this.getParents(e,!0);return(null===(t=(0,o.sortBy)(s,e=>e.roomId))||void 0===t?void 0:t[0])||null}getKnownParents(e,t){return t?P(this.parentMap,this.parentMap,e):this.parentMap.get(e)||new Set}isRoomInSpace(e,t,s=!0){var n,o,i;if(e===C._b.Home&&this.allRoomsInHome)return!0;if(e===C._b.VideoRooms)return!(null===(i=this.matrixClient)||void 0===i||null===(i=i.getRoom(t))||void 0===i||!i.isCallRoom());if(null!==(n=this.getSpaceFilteredRoomIds(e,s))&&void 0!==n&&n.has(t))return!0;const r=u.A.shared().getUserIdForRoomId(t);return!!r&&(e===C._b.Home||e===C._b.People||!((0,C.ww)(e)||null===(o=this.getSpaceFilteredUserIds(e,s))||void 0===o||!o.has(r)||!m.A.getValue("Spaces.showPeopleInSpace",e)))}static isInSpace(e){return(null==e?void 0:e.membership)===r.O.Join||(null==e?void 0:e.membership)===r.O.Invite}notifyIfOrderChanged(){const e=this.sortRootSpaces(this.rootSpaces);(0,p.Oj)(this.rootSpaces,e)&&(this.rootSpaces=e,this.emit(C.bZ,this.spacePanelSpaces,this.enabledMetaSpaces))}onRoomFavouriteChange(e){if(this.enabledMetaSpaces.includes(C._b.Favourites)){var t,s;if(e.tags[v.zO.Favourite])null===(t=this.roomIdsBySpace.get(C._b.Favourites))||void 0===t||t.add(e.roomId);else null===(s=this.roomIdsBySpace.get(C._b.Favourites))||void 0===s||s.delete(e.roomId);this.emit(C._b.Favourites)}}onRoomDmChange(e,t){const s=new Set(this.enabledMetaSpaces);if(!this.allRoomsInHome&&s.has(C._b.Home)){var n;const t=this.roomIdsBySpace.get(C._b.Home);if(this.showInHomeSpace(e))null==t||t.add(e.roomId);else if(null===(n=this.roomIdsBySpace.get(C._b.Orphans))||void 0===n||!n.has(e.roomId)){var o;null===(o=this.roomIdsBySpace.get(C._b.Home))||void 0===o||o.delete(e.roomId)}this.emit(C._b.Home)}var i;(s.has(C._b.People)&&this.emit(C._b.People),s.has(C._b.Orphans)||s.has(C._b.Home))&&(t&&null!==(i=this.roomIdsBySpace.get(C._b.Orphans))&&void 0!==i&&i.delete(e.roomId)&&(this.emit(C._b.Orphans),this.emit(C._b.Home)))}async reset(){this.rootSpaces=[],this.parentMap=new y.h,this.notificationStateMap=new Map,this.roomIdsBySpace=new Map,this.userIdsBySpace=new Map,this._aggregatedSpaceCache.roomIdsBySpace.clear(),this._aggregatedSpaceCache.userIdsBySpace.clear(),this._activeSpace=C._b.Home,this._suggestedRooms=[],this._invitedSpaces=new Set,this._enabledMetaSpaces=[]}async onNotReady(){this.matrixClient&&(this.matrixClient.removeListener(i.ClientEvent.Room,this.onRoom),this.matrixClient.removeListener(i.RoomEvent.MyMembership,this.onRoom),this.matrixClient.removeListener(i.RoomEvent.AccountData,this.onRoomAccountData),this.matrixClient.removeListener(i.RoomStateEvent.Events,this.onRoomState),this.matrixClient.removeListener(i.RoomStateEvent.Members,this.onRoomStateMembers),this.matrixClient.removeListener(i.ClientEvent.AccountData,this.onAccountData)),await this.reset()}async onReady(){if(!this.matrixClient)return;this.matrixClient.on(i.ClientEvent.Room,this.onRoom),this.matrixClient.on(i.RoomEvent.MyMembership,this.onRoom),this.matrixClient.on(i.RoomEvent.AccountData,this.onRoomAccountData),this.matrixClient.on(i.RoomStateEvent.Events,this.onRoomState),this.matrixClient.on(i.RoomStateEvent.Members,this.onRoomStateMembers),this.matrixClient.on(i.ClientEvent.AccountData,this.onAccountData);const e=this._enabledMetaSpaces,t=m.A.getValue("Spaces.enabledMetaSpaces");this._enabledMetaSpaces=this.metaSpaceOrder.filter(e=>t[e]),this._allRoomsInHome=m.A.getValue("Spaces.allRoomsInHome"),this.sendUserProperties(),this.rebuildSpaceHierarchy(),(0,p.dc)(e,this._enabledMetaSpaces)&&this.emit(C.bZ,this.spacePanelSpaces,this.enabledMetaSpaces);const s=window.localStorage.getItem(j);s&&((0,C.ww)(s)?t[s]:this.matrixClient.getRoom(s))?this.setActiveSpace(s,!1):this.switchSpaceIfNeeded(),this._storeReadyDeferred.resolve()}sendUserProperties(){const e=new Set(this.enabledMetaSpaces);O.Vo.instance.setProperty("WebMetaSpaceHomeEnabled",e.has(C._b.Home)),O.Vo.instance.setProperty("WebMetaSpaceHomeAllRooms",this.allRoomsInHome),O.Vo.instance.setProperty("WebMetaSpacePeopleEnabled",e.has(C._b.People)),O.Vo.instance.setProperty("WebMetaSpaceFavouritesEnabled",e.has(C._b.Favourites)),O.Vo.instance.setProperty("WebMetaSpaceOrphansEnabled",e.has(C._b.Orphans))}goToFirstSpace(e=!1){var t,s;this.setActiveSpace(null!==(t=this.enabledMetaSpaces[0])&&void 0!==t?t:null===(s=this.spacePanelSpaces[0])||void 0===s?void 0:s.roomId,e)}async onAction(e){if(this.matrixClient)switch(e.action){case E.r.ViewRoom:{var t,s;const n=(null===(t=e.justCreatedOpts)||void 0===t?void 0:t.roomType)===i.RoomType.Space;if(e.context_switch||e.justCreatedOpts&&!n)break;let o=e.room_id;if(e.room_alias&&!o){const t=(0,R.K)(e.room_alias);t&&(o=t.roomId)}if(!o)return;const r=this.matrixClient.getRoom(o);null!=r&&r.isSpaceRoom()?this.setActiveSpace(r.roomId,!1):this.switchSpaceIfNeeded(o),window.localStorage.setItem(F(this.activeSpace),null!==(s=e.room_id)&&void 0!==s?s:"");break}case E.r.ViewHomePage:!e.context_switch&&this.enabledMetaSpaces.includes(C._b.Home)&&(this.setActiveSpace(C._b.Home,!1),window.localStorage.setItem(F(this.activeSpace),""));break;case E.r.AfterLeaveRoom:(0,C.ww)(this._activeSpace)||e.room_id!==this._activeSpace||this.goToFirstSpace(!0);break;case E.r.SwitchSpace:{if(e.num<1||e.num>9)break;const t=this.enabledMetaSpaces.length;e.num<=t?this.setActiveSpace(this.enabledMetaSpaces[e.num-1]):this.spacePanelSpaces.length>e.num-t-1&&this.setActiveSpace(this.spacePanelSpaces[e.num-t-1].roomId);break}case E.r.SettingUpdated:switch(e.settingName){case"Spaces.allRoomsInHome":{const e=m.A.getValue("Spaces.allRoomsInHome");this.allRoomsInHome!==e&&(this._allRoomsInHome=e,this.enabledMetaSpaces.includes(C._b.Home)&&this.rebuildHomeSpace(),this.sendUserProperties(),this.emit(C.EC,this.allRoomsInHome));break}case"Spaces.enabledMetaSpaces":{const e=m.A.getValue("Spaces.enabledMetaSpaces"),t=this.metaSpaceOrder.filter(t=>e[t]);if((0,p.dc)(this._enabledMetaSpaces,t)){const s=this.enabledMetaSpaces.some(e=>e===C._b.Home||e===C._b.People);this._enabledMetaSpaces=t;const n=this.enabledMetaSpaces.some(e=>e===C._b.Home||e===C._b.People);(0,C.ww)(this.activeSpace)&&!e[this.activeSpace]&&this.switchSpaceIfNeeded(),this.rebuildMetaSpaces(),s!==n?this.updateNotificationStates():this.updateNotificationStates(t),this.emit(C.bZ,this.spacePanelSpaces,this.enabledMetaSpaces),this.sendUserProperties()}break}case"Spaces.showPeopleInSpace":e.roomId&&(this.emit(e.roomId),this.enabledMetaSpaces.some(e=>e===C._b.Home||e===C._b.People)||this.updateNotificationStates([e.roomId]));break;case"feature_dynamic_room_predecessors":this._msc3946ProcessDynamicPredecessor=m.A.getValue("feature_dynamic_room_predecessors"),this.rebuildSpaceHierarchy()}}}getNotificationState(e){if(this.notificationStateMap.has(e))return this.notificationStateMap.get(e);const t=new _(H);return this.notificationStateMap.set(e,t),t}traverseSpace(e,t,s=!1,n){if(n&&n.has(e))return;t(e);const o=new Set(n).add(e),[i,r]=L(this.getChildren(e));s&&r.forEach(e=>t(e.roomId)),i.forEach(e=>this.traverseSpace(e.roomId,t,s,o))}sortRootSpaces(e){return(0,o.sortBy)(e,[this.getSpaceTagOrdering,"roomId"])}async setRootSpaceOrder(e,t){this.spaceOrderLocalEchoMap.set(e.roomId,t);try{var s;await(null===(s=this.matrixClient)||void 0===s?void 0:s.setRoomAccountData(e.roomId,i.EventType.SpaceOrder,{order:t}))}catch(s){a.vF.warn("Failed to set root space order",s),this.spaceOrderLocalEchoMap.get(e.roomId)===t&&this.spaceOrderLocalEchoMap.delete(e.roomId)}}moveRootSpace(e,t){const s=this.rootSpaces.map(this.getSpaceTagOrdering);A(s,e,t).forEach(({index:e,order:t})=>{this.setRootSpaceOrder(this.rootSpaces[e],t)}),this.notifyIfOrderChanged()}}class ${static get instance(){return $.internalInstance}static testInstance(){const e=new W;return e.start(),e}}(0,n.A)($,"internalInstance",(()=>{const e=new W;return e.start(),e})()),window.mxSpaceStore=$.instance},"./src/stores/spaces/index.ts":(e,t,s)=>{"use strict";s.d(t,{EC:()=>a,Ff:()=>d,_b:()=>c,b4:()=>l,bZ:()=>o,kQ:()=>i,tw:()=>r,ww:()=>m});var n=s("./src/languageHandler.tsx");const o=Symbol("top-level-spaces"),i=Symbol("invited-spaces"),r=Symbol("selected-space"),a=Symbol("home-behaviour"),l=Symbol("suggested-rooms");let c=function(e){return e.Home="home-space",e.Favourites="favourites-space",e.People="people-space",e.Orphans="orphans-space",e.VideoRooms="video-rooms-space",e}({});const d=(e,t=!1)=>{switch(e){case c.Home:return t?(0,n._t)("common|all_chats"):(0,n._t)("common|home");case c.Favourites:return(0,n._t)("common|favourites");case c.People:return(0,n._t)("common|people");case c.Orphans:return(0,n._t)("common|orphan_rooms");case c.VideoRooms:return(0,n._t)("voip|metaspace_video_rooms|conference_room_section")}};function m(e){return e===c.Home||e===c.Favourites||e===c.People||e===c.Orphans||e===c.VideoRooms}},"./src/stores/widgets/ElementWidgetActions.ts":(e,t,s)=>{"use strict";s.d(t,{k:()=>n});let n=function(e){return e.JoinCall="io.element.join",e.HangupCall="im.vector.hangup",e.Close="io.element.close",e.CallParticipants="io.element.participants",e.StartLiveStream="im.vector.start_live_stream",e.TileLayout="io.element.tile_layout",e.SpotlightLayout="io.element.spotlight_layout",e.OpenIntegrationManager="integration_manager_open",e.ViewRoom="io.element.view_room",e.DeviceMute="io.element.device_mute",e}({})},"./src/stores/widgets/WidgetLayoutStore.ts":(e,t,s)=>{"use strict";s.d(t,{mc:()=>v,yQ:()=>y,SQ:()=>g,aK:()=>b});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/utils.ts"),r=s("./src/settings/SettingsStore.ts"),a=s("./src/stores/WidgetStore.ts"),l=s("./src/widgets/WidgetType.ts"),c=s("./packages/shared-components/src/utils/numbers.ts"),d=s("./src/dispatcher/dispatcher.ts"),m=s("./src/stores/ReadyWatchingStore.ts"),u=s("./src/settings/SettingLevel.ts"),h=s("./src/utils/arrays.ts"),p=s("./src/stores/AsyncStore.ts");const g="io.element.widgets.layout";let v=function(e){return e.Top="top",e.Right="right",e.Center="center",e}({});function _(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function f(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?_(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):_(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const y=3;class b extends m.g{constructor(){super(d.A),(0,n.A)(this,"byRoom",new i.kG(()=>new Map)),(0,n.A)(this,"pinnedRef",void 0),(0,n.A)(this,"layoutRef",void 0),(0,n.A)(this,"dynamicRef",void 0),(0,n.A)(this,"updateAllRooms",()=>{const e=r.A.getValue("feature_dynamic_room_predecessors");if(this.matrixClient){this.byRoom=new i.kG(()=>new Map);for(const t of this.matrixClient.getVisibleRooms(e))this.recalculateRoom(t)}}),(0,n.A)(this,"updateFromWidgetStore",e=>{if(e){var t;const s=null===(t=this.matrixClient)||void 0===t?void 0:t.getRoom(e);s&&this.recalculateRoom(s)}else this.updateAllRooms()}),(0,n.A)(this,"updateRoomFromState",e=>{var t;if(e.getType()!==g)return;const s=null===(t=this.matrixClient)||void 0===t?void 0:t.getRoom(e.getRoomId());s&&this.recalculateRoom(s)}),(0,n.A)(this,"updateFromSettings",(e,t,s,n,o)=>{if(t){var i;const e=null===(i=this.matrixClient)||void 0===i?void 0:i.getRoom(t);e&&this.recalculateRoom(e)}else this.updateAllRooms()})}static get instance(){return this.internalInstance||(this.internalInstance=new b,this.internalInstance.start()),this.internalInstance}static emissionForRoom(e){return`update_${e.roomId}`}emitFor(e){this.emit(b.emissionForRoom(e))}async onReady(){var e;this.updateAllRooms(),null===(e=this.matrixClient)||void 0===e||e.on(o.RoomStateEvent.Events,this.updateRoomFromState),this.pinnedRef=r.A.watchSetting("Widgets.pinned",null,this.updateFromSettings),this.layoutRef=r.A.watchSetting("Widgets.layout",null,this.updateFromSettings),this.dynamicRef=r.A.watchSetting("feature_dynamic_room_predecessors",null,this.updateFromSettings),a.Ay.instance.on(p.H,this.updateFromWidgetStore)}async onNotReady(){var e;this.byRoom=new i.kG(()=>new Map),null===(e=this.matrixClient)||void 0===e||e.off(o.RoomStateEvent.Events,this.updateRoomFromState),r.A.unwatchSetting(this.pinnedRef),r.A.unwatchSetting(this.layoutRef),r.A.unwatchSetting(this.dynamicRef),a.Ay.instance.off(p.H,this.updateFromWidgetStore)}recalculateRoom(e){var t;const s=a.Ay.instance.getApps(e.roomId);if(null==s||!s.length)return this.byRoom.set(e.roomId,new Map),void this.emitFor(e);const n=this.byRoom.getOrCreate(e.roomId),o=JSON.stringify((0,i.HF)(n)),d=e.currentState.getStateEvents(g,""),m=r.A.getValue("Widgets.pinned",e.roomId);let u=r.A.getValue("Widgets.layout",e.roomId);d&&u&&u.overrides!==d.getId()&&(u=null);const h=null!==(t=null==d?void 0:d.getContent())&&void 0!==t?t:null,p=[],_=[],f=[];for(const e of s){var b,E;const t=null==h||null===(b=h.widgets)||void 0===b||null===(b=b[e.id])||void 0===b?void 0:b.container,s=null===(E=u)||void 0===E||null===(E=E.widgets)||void 0===E||null===(E=E[e.id])||void 0===E?void 0:E.container,n=!(null==m||!m[e.id]),o=l.x.JITSI.matches(e.type)?v.Top:v.Right;if(s?s===v.Center:t===v.Center){f.length?console.error("Tried to push a second widget into the center container"):f.push(e);continue}let i=o;s||t?i=null!=s?s:t:n&&!t&&(i=v.Top),(i===v.Top?p:_).push(e)}const w=p.slice(y);_.push(...w);const x=new Intl.Collator;p.sort((e,t)=>{var s,n,o,i;const r=null==h||null===(s=h.widgets)||void 0===s?void 0:s[e.id],a=null==h||null===(n=h.widgets)||void 0===n?void 0:n[t.id],d=null===(o=u)||void 0===o||null===(o=o.widgets)||void 0===o?void 0:o[e.id],m=null===(i=u)||void 0===i||null===(i=i.widgets)||void 0===i?void 0:i[t.id],p=l.x.JITSI.matches(e.type)?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,g=l.x.JITSI.matches(t.type)?Number.MIN_SAFE_INTEGER:Number.MAX_SAFE_INTEGER,v=(0,c.FZ)(null==d?void 0:d.index,(0,c.FZ)(null==r?void 0:r.index,p)),_=(0,c.FZ)(null==m?void 0:m.index,(0,c.FZ)(null==a?void 0:a.index,g));return v===_?x.compare(e.id,t.id):v-_});const A=[];let S=null,C=!0;for(let e=0;e<p.length;e++){var R,k;const t=p[e],s=null==h||null===(R=h.widgets)||void 0===R?void 0:R[t.id],n=null===(k=u)||void 0===k||null===(k=k.widgets)||void 0===k?void 0:k[t.id];if(Number.isFinite(null==n?void 0:n.width)||Number.isFinite(null==s?void 0:s.width)){const e=(null==n?void 0:n.width)||(null==s?void 0:s.width),t=(0,c.qE)(e,10,100);A.push(t),C=!1}else A.push(100);if(null!=s&&s.height||null!=n&&n.height){const e=(0,c.FZ)(null==s?void 0:s.height,2),t=(0,c.FZ)(null==n?void 0:n.height,e);S=Math.max(null!=S?S:0,(0,c.qE)(t,2,100))}}if(C)for(let e=0;e<A.length;e++)A[e]=100/A.length;else{const e=(0,c.cz)(...A)-100;if(e<0)for(let t=0;t<A.length;t++)A[t]+=Math.abs(e)/A.length;else if(e>0){for(let t=0;t<A.length;t++)A[t]=(0,c.qE)(A[t]-e/A.length,10,100);const t=(0,c.cz)(...A)-100;if(t>0){const e=A.map((e,t)=>[t,e]).filter(e=>e[1]>10).map(e=>e[0]);for(const s of e)A[s]-=t/e.length}}}const I=new Map;this.byRoom.set(e.roomId,I),p.length&&I.set(v.Top,{ordered:p,distributions:A,height:S}),_.length&&I.set(v.Right,{ordered:_}),f.length&&I.set(v.Center,{ordered:f});JSON.stringify((0,i.HF)(I))!==o&&this.emitFor(e)}getContainerWidgets(e,t){var s;return e&&(null===(s=this.byRoom.get(e.roomId))||void 0===s||null===(s=s.get(t))||void 0===s?void 0:s.ordered)||[]}isInContainer(e,t,s){return this.getContainerWidgets(e,s).some(e=>e.id===t.id)}canAddToContainer(e,t){switch(t){case v.Top:case v.Right:return this.getContainerWidgets(e,t).length<y;case v.Center:return this.getContainerWidgets(e,t).length<1}}getResizerDistributions(e,t){var s;let n=null===(s=this.byRoom.get(e.roomId))||void 0===s||null===(s=s.get(t))||void 0===s?void 0:s.distributions;return!n||n.length<2?[]:(2===n.length&&(n=[n[0]]),3===n.length&&(n=[n[0],n[2]]),n.map(e=>`${e.toFixed(1)}%`))}setResizerDistributions(e,t,s){if(t!==v.Top)return;const n=s.map(e=>Number(Number(e.substring(0,e.length-1)).toFixed(1))),o=this.getContainerWidgets(e,t),i=100-(0,c.cz)(...n);2===n.length&&n.splice(1,0,i),1===n.length&&n.push(i);const r={};o.forEach((s,o)=>{var i;r[s.id]={container:t,width:n[o],index:o,height:(null===(i=this.byRoom.get(e.roomId))||void 0===i||null===(i=i.get(t))||void 0===i?void 0:i.height)||2}}),this.updateUserLayout(e,r)}getContainerHeight(e,t){var s,n;return null!==(s=null===(n=this.byRoom.get(e.roomId))||void 0===n||null===(n=n.get(t))||void 0===n?void 0:n.height)&&void 0!==s?s:null}setContainerHeight(e,t,s){var n;const o=this.getContainerWidgets(e,t),i=null===(n=this.byRoom.get(e.roomId))||void 0===n||null===(n=n.get(t))||void 0===n?void 0:n.distributions,r={};o.forEach((e,n)=>{r[e.id]={container:t,width:null==i?void 0:i[n],index:n,height:s}}),this.updateUserLayout(e,r)}moveWithinContainer(e,t,s,n){var o,i;const r=(0,h.PF)(this.getContainerWidgets(e,t)),a=r.findIndex(e=>e.id===s.id);if(a<0)return;r.splice(a,1);const l=(0,c.qE)(a+n,0,r.length);r.splice(l,0,s);const d=null===(o=this.byRoom.get(e.roomId))||void 0===o||null===(o=o.get(t))||void 0===o?void 0:o.distributions,m=null===(i=this.byRoom.get(e.roomId))||void 0===i||null===(i=i.get(t))||void 0===i?void 0:i.height,u={};r.forEach((e,s)=>{u[e.id]={container:t,width:null==d?void 0:d[s],index:s,height:m}}),this.updateUserLayout(e,u)}moveToContainer(e,t,s){if(!this.getAllWidgets(e).some(([e])=>e.id===t.id))return;const n={};switch(s){case v.Right:break;case v.Center:for(const t of this.getContainerWidgets(e,v.Top))n[t.id]={container:v.Right};for(const t of this.getContainerWidgets(e,v.Center))n[t.id]={container:v.Right};break;case v.Top:if(this.hasMaximisedWidget(e)){n[this.getContainerWidgets(e,v.Center)[0].id]={container:v.Right}}}n[t.id]={container:s},this.updateUserLayout(e,n)}hasMaximisedWidget(e){return this.getContainerWidgets(e,v.Center).length>0}hasPinnedWidgets(e){return this.getContainerWidgets(e,v.Top).length>0}canCopyLayoutToRoom(e){return!!this.matrixClient&&e.currentState.maySendStateEvent(g,this.matrixClient.getUserId())}copyLayoutToRoom(e){var t;const s=this.getAllWidgets(e),n={widgets:{}};for(const[t,r]of s)if(n.widgets[t.id]={container:r},r===v.Top){var o,i;const s=this.getContainerWidgets(e,r).findIndex(e=>e.id===t.id),a=null===(o=this.byRoom.get(e.roomId))||void 0===o||null===(o=o.get(r))||void 0===o?void 0:o.distributions,l=null===(i=this.byRoom.get(e.roomId))||void 0===i||null===(i=i.get(r))||void 0===i?void 0:i.height;n.widgets[t.id]=f(f({},n.widgets[t.id]),{},{height:l?Math.round(l):void 0,width:null!=a&&a[s]?Math.round(a[s]):void 0,index:s})}null===(t=this.matrixClient)||void 0===t||t.sendStateEvent(e.roomId,g,n,"")}getAllWidgets(e){const t=this.byRoom.get(e.roomId);if(!t)return[];const s=[];for(const[e,n]of t){const t=n.ordered;for(const n of t)s.push([n,e])}return s}updateUserLayout(e,t){const s=this.getAllWidgets(e);for(const[i,r]of s){var n;const s=this.getContainerWidgets(e,r).findIndex(e=>e.id===i.id),a=null===(n=this.byRoom.get(e.roomId))||void 0===n||null===(n=n.get(r))||void 0===n?void 0:n.distributions;var o;if(!t[i.id])t[i.id]={container:r,index:s,height:null===(o=this.byRoom.get(e.roomId))||void 0===o||null===(o=o.get(r))||void 0===o?void 0:o.height,width:null==a?void 0:a[s]}}const i=e.currentState.getStateEvents(g,"");r.A.setValue("Widgets.layout",e.roomId,u.p.ROOM_ACCOUNT,{overrides:null==i?void 0:i.getId(),widgets:t}).catch(()=>this.recalculateRoom(e)),this.recalculateRoom(e)}}(0,n.A)(b,"internalInstance",void 0),window.mxWidgetLayoutStore=b.instance},"./src/stores/widgets/WidgetMessagingStore.ts":(e,t,s)=>{"use strict";s.d(t,{c:()=>d,w:()=>c});var n,o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./src/stores/AsyncStoreWithClient.ts"),r=s("./src/dispatcher/dispatcher.ts"),a=s("./src/utils/maps.ts"),l=s("./src/utils/WidgetUtils.ts");let c=function(e){return e.StoreMessaging="store_messaging",e.StopMessaging="stop_messaging",e}({});class d extends i.r{constructor(){super(r.A),(0,o.A)(this,"widgetMap",new a.h)}static get instance(){return d.internalInstance}async onAction(e){}async onReady(){this.widgetMap.clear()}storeMessaging(e,t,s){this.stopMessaging(e,t);const n=l.A.calcWidgetUid(e.id,t);this.widgetMap.set(n,s),this.emit(c.StoreMessaging,n,s)}stopMessaging(e,t){this.stopMessagingByUid(l.A.calcWidgetUid(e.id,t))}getMessaging(e,t){return this.widgetMap.get(l.A.calcWidgetUid(e.id,t))}stopMessagingByUid(e){const t=this.widgetMap.remove(e);void 0!==t&&(t.stop(),this.emit(c.StopMessaging,e))}getMessagingForUid(e){return this.widgetMap.get(e)}}n=d,(0,o.A)(d,"internalInstance",(()=>{const e=new n;return e.start(),e})())},"./src/stores/widgets/WidgetPermissionStore.ts":(e,t,s)=>{"use strict";s.d(t,{R:()=>r,r:()=>a});var n=s("./node_modules/matrix-widget-api/lib/index.js"),o=s("./src/settings/SettingsStore.ts"),i=s("./src/settings/SettingLevel.ts");let r=function(e){return e[e.Allowed=0]="Allowed",e[e.Denied=1]="Denied",e[e.Unknown=2]="Unknown",e}({});class a{constructor(e){this.context=e}packSettingKey(e,t,s){let o=s;var i;t!==n.WidgetKind.Room&&(o=null===(i=this.context.client)||void 0===i?void 0:i.getUserId());if(t===n.WidgetKind.Modal&&(o="*MODAL*-"+o),!o)throw new Error("Failed to determine a location to check the widget's OIDC state with");return encodeURIComponent(`${o}::${e.templateUrl}`)}getOIDCState(e,t,s){var n,i;const a=this.packSettingKey(e,t,s),l=o.A.getValue("widgetOpenIDPermissions");return null!=l&&null!==(n=l.deny)&&void 0!==n&&n.includes(a)?r.Denied:null!=l&&null!==(i=l.allow)&&void 0!==i&&i.includes(a)?r.Allowed:r.Unknown}setOIDCState(e,t,s,n){const a=this.packSettingKey(e,t,s);let l=o.A.getValue("widgetOpenIDPermissions");l||(l={}),l.allow||(l.allow=[]),l.deny||(l.deny=[]),n===r.Allowed?l.allow.push(a):n===r.Denied?l.deny.push(a):(l.allow=l.allow.filter(e=>e!==a),l.deny=l.deny.filter(e=>e!==a)),o.A.setValue("widgetOpenIDPermissions",null,i.p.DEVICE,l)}}},"./src/theme.ts":(e,t,s)=>{"use strict";s.d(t,{AZ:()=>m,E0:()=>h,SS:()=>a,TJ:()=>c,TP:()=>y,Yl:()=>b,kZ:()=>d,v2:()=>u});var n=s("./node_modules/matrix-js-sdk/src/logger.ts"),o=s("./src/languageHandler.tsx"),i=s("./src/settings/SettingsStore.ts"),r=s("./src/settings/watchers/ThemeWatcher.ts");const a="light",l={light:"light-high-contrast"};function c(e){return l[e]}function d(e){for(const t in l)if(l[t]===e)return t}function m(e){return Object.values(l).includes(e)}function u(){const e={light:(0,o._t)("common|light"),"light-high-contrast":(0,o._t)("theme|light_high_contrast"),dark:(0,o._t)("common|dark")},t=i.A.getValue("custom_themes")||[],s={};try{for(const{name:e}of t)s[`custom-${e}`]=e}catch(e){n.vF.warn("Error loading custom themes",{err:e,customThemes:t})}return Object.assign({},s,e)}function h(){const e=Object.entries(u()).map(e=>({id:e[0],name:e[1]})).filter(e=>!m(e.id)),t=e.filter(e=>!e.id.startsWith("custom-")),s=new Intl.Collator,n=e.filter(e=>!t.includes(e)).sort((e,t)=>s.compare(e.name,t.name));return[...t,...n]}const p=["font-display","font-family","font-stretch","font-style","font-weight","font-variant","font-feature-settings","font-variation-settings","src","unicode-range"];const g=/^--cpd-[a-z0-9-]+$/;function v(e){switch(e.length){case 4:case 5:return`#${e.slice(1).split("").map(e=>e+e).join("")}`;case 7:return`${e}ff`;default:return e}}function _(e,t){return v(e).slice(0,7)+Math.round(t).toString(16).padStart(2,"0")}function f(e){const{style:t}=document.body;function s(e,s,n=!0){t.setProperty(`--${e}`,s);const o=v(s),i=function(e){return parseInt(e.slice(7),16)}(o);n&&(t.setProperty(`--${e}-0pct`,_(o,0)),t.setProperty(`--${e}-15pct`,_(o,.15*i)),t.setProperty(`--${e}-50pct`,_(o,.5*i)))}if(e.colors)for(const[t,n]of Object.entries(e.colors))if(Array.isArray(n))for(let e=0;e<n.length;e+=1)s(`${t}_${e}`,n[e],!1);else s(t,n);if(e.fonts){const{fonts:s}=e;if(s.faces){const e=s.faces.map(e=>{var t;const s=null===(t=e.src)||void 0===t?void 0:t.map(e=>{let t="";return e.format&&(t=`format("${e.format}")`),e.url?`url("${e.url}") ${t}`:e.local?`local("${e.local}") ${t}`:""}).join(", ");return`@font-face {${Object.keys(e).filter(e=>p.includes(e)).map(t=>{let n;return n="src"===t?s:"font-family"===t?`"${e[t]}"`:e[t],`${t}: ${n}`}).join(";")}}`}).join("\n"),t=document.createElement("style");t.setAttribute("title","custom-theme-font-faces"),t.setAttribute("type","text/css"),t.appendChild(document.createTextNode(e)),document.head.appendChild(t)}s.general&&t.setProperty("--font-family",s.general),s.monospace&&t.setProperty("--font-family-monospace",s.monospace)}if(e.compound){const t=function(e){const t=[];for(const[s,o]of Object.entries(e))g.test(s)?t.push(`${s}: ${o};`):n.vF.warn(`'${s}' is not a valid Compound token`);return`@layer compound.custom { :root, [class*="cpd-theme-"] { ${t.join(" ")} } }`}(e.compound),s=document.createElement("style");s.setAttribute("title","custom-theme-compound"),s.setAttribute("type","text/css"),s.appendChild(document.createTextNode(t)),document.head.appendChild(s)}}function y(e){const t=i.A.getValue("custom_themes");if(!t)throw new Error(`No custom themes set, can't set custom theme "${e}"`);const s=t.find(t=>t.name===e);if(!s){const s=t.map(e=>e.name).join(", ");throw new Error(`Can't find custom theme "${e}", only know ${s}`)}return s}async function b(e){if(!e){e=(new r.A).getEffectiveTheme()}!function(){var e,t;const s=Object.values(document.body.style);for(const e of s)"string"==typeof e&&e.startsWith("--")&&document.body.style.removeProperty(e);null===(e=document.querySelector("head > style[title='custom-theme-font-faces']"))||void 0===e||e.remove(),null===(t=document.querySelector("head > style[title='custom-theme-compound']"))||void 0===t||t.remove()}();let t=e;if(e.startsWith("custom-")){const s=y(e.slice(7));t=s.is_dark?"dark-custom":"light-custom",f(s)}const n=new Map;if(Array.from(document.querySelectorAll("[data-mx-theme]")).forEach(e=>{n.set(e.dataset.mxTheme.toLowerCase(),e)}),!n.has(t))throw new Error("Unknown theme "+t);const o=n.get(t);o.disabled=!1,document.body.classList.remove("cpd-theme-light","cpd-theme-dark","cpd-theme-light-hc","cpd-theme-dark-hc");let i="cpd-theme-"+(t.includes("light")?"light":"dark");return(m(e)||window.matchMedia("(prefers-contrast: more)").matches)&&(i+="-hc"),document.body.classList.add(i),new Promise((e,t)=>{const i=function(){o.disabled=!1,n.forEach(e=>{e!=o&&(e.disabled=!0)});const t=s.g.getComputedStyle(document.body);if(t.backgroundColor){document.querySelector('meta[name="theme-color"]').content=t.backgroundColor}e()},r=()=>Boolean([...document.styleSheets].find(e=>(null==e?void 0:e.href)===o.href));!function(){if(r())return void i();let e=0;const s=window.setInterval(()=>{r()&&(clearInterval(s),o.onload=null,o.onerror=null,i()),e++,10===e&&(clearInterval(s),t())},200);o.onload=()=>{clearInterval(s),i()},o.onerror=e=>{clearInterval(s),t(e)}}()})}},"./src/toasts/DesktopNotificationsToast.ts":(e,t,s)=>{"use strict";s.d(t,{P:()=>p,Y:()=>g});var n=s("./src/languageHandler.tsx"),o=s("./src/Notifier.ts"),i=s("./src/components/views/toasts/GenericToast.tsx"),r=s("./src/stores/ToastStore.ts"),a=s("./src/MatrixClientPeg.ts"),l=s("./src/utils/notifications.ts"),c=s("./src/settings/SettingsStore.ts"),d=s("./src/settings/SettingLevel.ts");const m=async()=>{await c.A.setValue("notificationsEnabled",null,d.p.DEVICE,!0);const e=a.J.safeGet(),t=(0,l.uG)(e.deviceId);e.setAccountData(t,{is_silenced:!1})},u=()=>{o.default.setPromptHidden(!0)},h="desktopnotifications",p=e=>{r.A.sharedInstance().addOrReplaceToast({key:h,title:e?(0,n._t)("notifications|enable_prompt_toast_title_from_message_send"):(0,n._t)("notifications|enable_prompt_toast_title"),props:{description:(0,n._t)("notifications|enable_prompt_toast_description"),primaryLabel:(0,n._t)("action|enable"),onPrimaryClick:m,secondaryLabel:(0,n._t)("action|dismiss"),onSecondaryClick:u},component:i.A,priority:30})},g=()=>{r.A.sharedInstance().dismissToast(h)}},"./src/toasts/UpdateToast.tsx":(e,t,s)=>{"use strict";s.d(t,{Y:()=>b,P:()=>y});var n=s("./node_modules/react/index.js"),o=s("./src/languageHandler.tsx"),i=s("./src/SdkConfig.ts"),r=s("./src/components/views/toasts/GenericToast.tsx"),a=s("./src/stores/ToastStore.ts"),l=s("./src/components/views/dialogs/QuestionDialog.tsx"),c=s("./src/components/views/elements/Spinner.tsx"),d=s("./src/components/views/typography/Heading.tsx");const m=["element-hq/element-web","matrix-org/matrix-js-sdk"];function u(e){const t=e.split("-");if(3===t.length&&"js"===t[1]){const e={};for(let s=0;s<m.length;s++){const n=t[2*s];e[m[s]]=n}return e}return null}function h(e){return null!==u(e)}class p extends n.Component{constructor(e){super(e),this.state={}}async fetchChanges(e,t,s){const n=`https://riot.im/github/repos/${e}/compare/${t}...${s}`;try{const t=await fetch(n);if(!t.ok)return void this.setState({[e]:t.statusText});const s=await t.json();this.setState({[e]:s.commits})}catch(t){this.setState({[e]:t instanceof Error?t.message:(0,o._t)("error|unknown")})}}componentDidMount(){const e=u(this.props.version),t=u(this.props.newVersion);for(const s of m)this.fetchChanges(s,e[s],t[s])}elementsForCommit(e){return n.createElement("li",{key:e.sha,className:"mx_ChangelogDialog_li"},n.createElement("a",{href:e.html_url,target:"_blank",rel:"noreferrer noopener"},e.commit.message.split("\n")[0]))}render(){const e=m.map(e=>{let t;return t=null==this.state[e]?n.createElement(c.A,{key:e}):"string"==typeof this.state[e]?(0,o._t)("update|error_unable_load_commit",{msg:this.state[e]}):this.state[e].map(this.elementsForCommit),n.createElement("div",{key:e},n.createElement(d.A,{as:"h2",size:"4"},e),n.createElement("ul",null,t))}),t=n.createElement("div",{className:"mx_ChangelogDialog_content"},null==this.props.version||null==this.props.newVersion?n.createElement("h2",null,(0,o._t)("update|unavailable")):e);return n.createElement(l.A,{title:(0,o._t)("update|changelog"),description:t,button:(0,o._t)("action|update"),onFinished:this.props.onFinished})}}var g=s("./src/PlatformPeg.ts"),v=s("./src/Modal.tsx");const _="update";function f(){var e;null===(e=g.A.get())||void 0===e||e.installUpdate()}const y=(e,t,s)=>{let c,d=(0,o._t)("update|see_changes_button");s?c=()=>{const{finished:e}=v.Ay.createDialog(l.A,{title:(0,o._t)("update|release_notes_toast_title"),description:n.createElement("pre",null,s),button:(0,o._t)("action|update")});e.then(([e])=>{e&&g.A.get()&&g.A.get().installUpdate()})}:h(e)&&h(t)?c=()=>{const{finished:s}=v.Ay.createDialog(p,{version:e,newVersion:t});s.then(([e])=>{e&&g.A.get()&&g.A.get().installUpdate()})}:(c=f,d=(0,o._t)("action|update"));const m=i.Ay.get().brand;a.A.sharedInstance().addOrReplaceToast({key:_,title:(0,o._t)("update|toast_title",{brand:m}),props:{description:(0,o._t)("update|toast_description",{brand:m}),primaryLabel:d,onPrimaryClick:c,secondaryLabel:(0,o._t)("action|dismiss"),onSecondaryClick:function(){var e;null===(e=g.A.get())||void 0===e||e.deferUpdate(t)}},component:r.A,priority:20})},b=()=>{a.A.sharedInstance().dismissToast(_)}},"./src/utils/BrowserWorkarounds.ts":(e,t,s)=>{"use strict";function n(e){e.currentTarget.value=""}s.d(t,{e:()=>n})},"./src/utils/DMRoomMap.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>c});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/lodash/lodash.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./node_modules/matrix-js-sdk/src/types.ts"),a=s("./node_modules/matrix-js-sdk/src/logger.ts"),l=s("./src/utils/dm/filterValidMDirect.ts");class c{constructor(e){var t,s;(0,n.A)(this,"roomToUser",null),(0,n.A)(this,"userToRooms",null),(0,n.A)(this,"hasSentOutPatchDirectAccountDataPatch",void 0),(0,n.A)(this,"mDirectEvent",void 0),(0,n.A)(this,"onAccountData",e=>{e.getType()==i.EventType.Direct&&(this.setMDirectFromContent(e.getContent()),this.userToRooms=null,this.roomToUser=null)}),this.matrixClient=e,this.hasSentOutPatchDirectAccountDataPatch=!1;const o=null!==(t=null===(s=e.getAccountData(i.EventType.Direct))||void 0===s?void 0:s.getContent())&&void 0!==t?t:{};this.setMDirectFromContent(o)}static makeShared(e){return c.sharedInstance=new c(e),c.sharedInstance}static setShared(e){c.sharedInstance=e}static shared(){return c.sharedInstance}start(){this.populateRoomToUser(),this.matrixClient.on(i.ClientEvent.AccountData,this.onAccountData)}stop(){this.matrixClient.removeListener(i.ClientEvent.AccountData,this.onAccountData)}setMDirectFromContent(e){const{valid:t,filteredContent:s}=(0,l.d)(e);t||a.vF.warn("Invalid m.direct content occurred",e),this.mDirectEvent=s}patchUpSelfDMs(e){const t=this.matrixClient.getUserId(),s=e[t];if(s){const n=s.map(e=>{const s=this.matrixClient.getRoom(e);if(s){const n=s.guessDMUserId();if(n&&n!==t)return{userId:n,roomId:e}}}).filter(e=>!!e);return!!n.length&&(e[t]=s.filter(e=>!n.some(t=>t.roomId===e)),n.forEach(({userId:t,roomId:s})=>{const n=e[t];n?(n.push(s),e[t]=(0,o.uniq)(n)):e[t]=[s]}),!0)}return!1}getDMRoomsForUserId(e){return this.getUserToRooms()[e]||[]}getDMRoomForIdentifiers(e){let t=this.getDMRoomsForUserId(e[0]);for(let s=1;s<e.length;s++){const n=this.getDMRoomsForUserId(e[s]);t=t.filter(e=>n.includes(e))}return t.map(e=>this.matrixClient.getRoom(e)).filter(e=>e&&e.getMyMembership()===r.O.Join)[0]}getUserIdForRoomId(e){if(null==this.roomToUser&&this.populateRoomToUser(),void 0===this.roomToUser[e]){const t=this.matrixClient.getRoom(e);if(t)return t.getDMInviter()}return this.roomToUser[e]}getUniqueRoomsWithIndividuals(){return this.roomToUser?Object.keys(this.roomToUser).reduce((e,t)=>{const s=this.getUserIdForRoomId(t),n=this.matrixClient.getRoom(t),o=2===(null==n?void 0:n.getInvitedAndJoinedMemberCount());return s&&n&&o&&(e[s]=n),e},{}):{}}getRoomIds(){return Object.values(this.mDirectEvent).reduce((e,t)=>(t.forEach(t=>e.add(t)),e),new Set)}getUserToRooms(){if(!this.userToRooms){const e=this.mDirectEvent,t=e[this.matrixClient.getUserId()];if(null!=t&&t.length){const t=this.patchUpSelfDMs(e);a.vF.warn("Invalid m.direct account data detected (self-chats that shouldn't be), patching it up."),t&&!this.hasSentOutPatchDirectAccountDataPatch&&(this.hasSentOutPatchDirectAccountDataPatch=!0,this.matrixClient.setAccountData(i.EventType.Direct,e))}this.userToRooms=e}return this.userToRooms}populateRoomToUser(){this.roomToUser={};for(const e of Object.keys(this.getUserToRooms()))for(const t of this.userToRooms[e])this.roomToUser[t]=e}}(0,n.A)(c,"sharedInstance",void 0)},"./src/utils/DecryptFile.ts":(e,t,s)=>{"use strict";s.d(t,{It:()=>d,nV:()=>l,sR:()=>c});var n=s("./node_modules/matrix-encrypt-attachment/lib/browser-encrypt-attachment.js"),o=s.n(n),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./src/customisations/Media.ts"),a=s("./src/utils/blobs.ts");class l extends Error{constructor(e){super(e.message),this.name="DownloadError",this.stack=e.stack}}class c extends Error{constructor(e){super(e.message),this.name="DecryptError",this.stack=e.stack}}async function d(e,t){const s=(0,r.mediaFromContent)({file:e});let n;try{const e=await s.downloadSource();if(!e.ok)throw(0,i.parseErrorResponse)(e,await e.text());n=await e.arrayBuffer()}catch(e){throw new l(e)}try{const s=await o().decryptAttachment(n,e);let i=null!=t&&t.mimetype?t.mimetype.split(";")[0].trim():"";return i=(0,a.F)(i),new Blob([s],{type:i})}catch(e){throw new c(e)}}},"./src/utils/ErrorUtils.tsx":(e,t,s)=>{"use strict";s.d(t,{AB:()=>h,Ch:()=>m,Vp:()=>v,Y0:()=>g,aZ:()=>u,cQ:()=>p,tx:()=>_});var n=s("./node_modules/react/index.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./src/languageHandler.tsx"),a=s("./src/SdkConfig.ts"),l=s("./src/components/views/elements/ExternalLink.tsx"),c=s("./src/Modal.tsx"),d=s("./src/components/views/dialogs/ErrorDialog.tsx");const m={monthly_active_user:(0,r.AO)("error|mau"),hs_blocked:(0,r.AO)("error|hs_blocked"),"":(0,r.AO)("error|resource_limits")},u={"":(0,r.AO)("error|admin_contact")};function h(e,t,s,o){let i=e?s[e]:void 0;void 0===i&&(i=s[""]);const a=e=>t?n.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener"},e):e;return(0,r.w2)(i).includes("<a>")?(0,r._t)(i,{},Object.assign({a},o)):(0,r._t)(i,{},o)}function p(e){if(e instanceof o.MatrixError&&"M_RESOURCE_LIMIT_EXCEEDED"===e.errcode){const t=h(e.data.limit_type,e.data.admin_contact,m),s=h(e.data.limit_type,e.data.admin_contact,u);return n.createElement("div",null,n.createElement("div",null,t),n.createElement("div",null,s))}return n.createElement("div",null,(0,r._t)("error|sync"))}function g(e,t){if("M_RESOURCE_LIMIT_EXCEEDED"===e.errcode){const t=h(e.data.limit_type,e.data.admin_contact,m),s=h(e.data.limit_type,e.data.admin_contact,u);return n.createElement("div",null,n.createElement("div",null,t),n.createElement("div",{className:"mx_Login_smallError"},s))}return 401===e.httpStatus||403===e.httpStatus?"M_USER_DEACTIVATED"===e.errcode?(0,r._t)("auth|account_deactivated"):a.Ay.get("disable_custom_urls")?n.createElement("div",null,n.createElement("div",null,(0,r._t)("auth|incorrect_credentials")),n.createElement("div",{className:"mx_Login_smallError"},(0,r._t)("auth|incorrect_credentials_detail",{hs:t.hsName}))):(0,r._t)("auth|incorrect_credentials"):v(e,t)}function v(e,t){let s=(0,r._t)("error|connection");return e instanceof o.ConnectionError?"https:"!==window.location.protocol||!t.hsUrl.startsWith("http:")&&t.hsUrl.startsWith("http")?n.createElement("span",null,(0,r._t)("error|tls",{},{a:e=>n.createElement(l.A,{target:"_blank",rel:"noreferrer noopener",href:t.hsUrl},e)})):n.createElement("span",null,(0,r._t)("error|mixed_content",{},{a:e=>n.createElement("a",{target:"_blank",rel:"noreferrer noopener",href:"https://www.google.com/search?&q=enable%20unsafe%20scripts"},e)})):(e instanceof o.MatrixError&&(e.errcode?s+=`(${e.errcode})`:e.httpStatus&&(s+=` (HTTP ${e.httpStatus})`)),s)}function _(e,t){i.vF.error(`${e}:`,t),c.Ay.createDialog(d.A,{title:e,description:`${t}`})}},"./src/utils/EventUtils.ts":(e,t,s)=>{"use strict";s.d(t,{$I:()=>E,$k:()=>y,H3:()=>v,Iy:()=>g,Mp:()=>b,d1:()=>x,ju:()=>w,nZ:()=>C,qe:()=>m,wQ:()=>u,wq:()=>A,zr:()=>S});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./node_modules/matrix-js-sdk/src/logger.ts"),i=s("./src/shouldHideEvent.ts"),r=s("./src/settings/SettingsStore.ts"),a=s("./src/dispatcher/dispatcher.ts"),l=s("./src/components/views/messages/MPollBody.tsx"),c=s("./src/dispatcher/actions.ts"),d=s("./src/modules/Api.ts");function m(e){const{status:t}=e;if((!t||t===n.EventStatus.SENT)&&!e.isRedacted())if("m.room.message"===e.getType()){const t=e.getContent();if(t.msgtype&&"m.bad.encrypted"!==t.msgtype&&t.hasOwnProperty("body"))return!0}else if("m.sticker"===e.getType()||n.M_POLL_START.matches(e.getType())||n.M_POLL_END.matches(e.getType())||n.M_BEACON_INFO.matches(e.getType()))return!0;return!1}function u(e,t){var s;if(!(t.getType()===n.EventType.RoomMessage||n.M_POLL_START.matches(t.getType()))||t.status===n.EventStatus.CANCELLED||t.isRedacted()||t.isRelation(n.RelationType.Replace)||t.getSender()!==e.getUserId())return!1;if(!1===(null===(s=d.A.customComponents.getHintsForMessage(t))||void 0===s?void 0:s.allowEditingEvent))return!1;const{msgtype:o,body:i}=t.getOriginalContent();return n.M_POLL_START.matches(t.getType())||(o===n.MsgType.Text||o===n.MsgType.Emote)&&!!i&&"string"==typeof i}function h(e,t){return u(e,t)}const p=100;function g({matrixClient:e,events:t,isForward:s,fromEventId:n}){if(!t.length)return;const o=t.length-1,r=s?1:-1,a=s?0:o;let l=s?o:0;n||(l=Math.min(Math.max(0,a+r*p),o));let c=!n;for(let s=a;s!==l+r;s+=r){const a=t[s];if(c||a.getId()!==n){if(c&&!(0,i.A)(a)&&h(e,a))return a}else c=!0,l=Math.min(Math.max(0,s+r*p),o)}}let v=function(e){return e.VISIBLE_FOR_ALL="VISIBLE_FOR_ALL",e.HIDDEN_TO_CURRENT_USER="HIDDEN_TO_CURRENT_USER",e.SEE_THROUGH_FOR_CURRENT_USER="SEE_THROUGH_FOR_CURRENT_USER",e}({}),_=null;const f=()=>(null===_&&(_=r.A.getValue("feature_msc3531_hide_messages_pending_moderation")),_);function y(e,t){var s;if(!f())return v.VISIBLE_FOR_ALL;if(e.messageVisibility().visible)return v.VISIBLE_FOR_ALL;if((null===(s=e.sender)||void 0===s?void 0:s.userId)===t.getUserId())return v.SEE_THROUGH_FOR_CURRENT_USER;const o=t.getRoom(e.getRoomId());return n.EVENT_VISIBILITY_CHANGE_TYPE.name&&null!=o&&o.currentState.maySendStateEvent(n.EVENT_VISIBILITY_CHANGE_TYPE.name,t.getUserId())||n.EVENT_VISIBILITY_CHANGE_TYPE.altName&&null!=o&&o.currentState.maySendStateEvent(n.EVENT_VISIBILITY_CHANGE_TYPE.altName,t.getUserId())?v.SEE_THROUGH_FOR_CURRENT_USER:v.HIDDEN_TO_CURRENT_USER}function b(e){const t=e.getContent();return!!t["org.matrix.msc2516.voice"]||!!t["org.matrix.msc3245.voice"]}async function E(e,t,s){var i;let r;try{const o=await e.fetchRoomEvent(t,s);r=new n.MatrixEvent(o)}catch{o.vF.warn("Could not find initial event: "+s),r=null}if(e.supportsThreads()&&null!==(i=r)&&void 0!==i&&i.isRelation(n.THREAD_RELATION_TYPE.name)&&!r.getThread()){var a;const s=r.threadRootId,n=e.getRoom(t),i=e.getEventMapper(),l=null!==(a=null==n?void 0:n.findEventById(s))&&void 0!==a?a:i(await e.fetchRoomEvent(t,s));try{null==n||n.createThread(s,l,[r],!0)}catch{o.vF.warn("Could not find root event: "+s)}}return r}function w(e,t,s,o){u(e,t)&&(n.M_POLL_START.matches(t.getType())?(0,l.cc)(t,o):a.A.dispatch({action:c.r.EditEvent,event:t,timelineRenderingType:s}))}function x(e){return e===n.EventStatus.QUEUED||e===n.EventStatus.NOT_SENT||e===n.EventStatus.ENCRYPTING}const A=e=>{const t=e.getType();return n.M_LOCATION.matches(t)||t===n.EventType.RoomMessage&&n.M_LOCATION.matches(e.getContent().msgtype)};function S(e){var t;return e.isThreadRoot&&!(null===(t=e.getThread())||void 0===t||!t.length)&&!!e.getThread().replyToEvent}const C=(e,t)=>{a.A.dispatch({action:c.r.ViewRoom,event_id:t,highlighted:!0,room_id:e,metricsTrigger:void 0})}},"./src/utils/Feedback.ts":(e,t,s)=>{"use strict";s.d(t,{I:()=>r});var n=s("./src/SdkConfig.ts"),o=s("./src/settings/SettingsStore.ts"),i=s("./src/settings/UIFeature.ts");function r(){return!!n.Ay.get().bug_report_endpoint_url&&o.A.getValue(i.f.Feedback)}},"./src/utils/FileDownloader.ts":(e,t,s)=>{"use strict";s.d(t,{s:()=>c});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");function o(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function i(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?o(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):o(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const r={imgSrc:"",imgStyle:null,style:"",textContent:""};let a,l;class c{constructor(e){(0,n.A)(this,"onLoadPromise",void 0),this.iframeFn=e}get iframe(){var e;const t=null===(e=this.iframeFn)||void 0===e?void 0:e.call(this);if(!t){const e=(a||(a=document.createElement("iframe"),document.body.appendChild(a),a.style.display="none",a.sandbox="allow-scripts allow-downloads",l=new Promise(e=>{a.onload=()=>{e()},a.src="usercontent/"})),{iframe:a,onLoadPromise:l});return this.onLoadPromise=e.onLoadPromise,e.iframe}return this.onLoadPromise=void 0,t}async download({blob:e,name:t,autoDownload:s=!0,opts:n=r}){var o;const a=this.iframe;this.onLoadPromise&&await this.onLoadPromise,null===(o=a.contentWindow)||void 0===o||o.postMessage(i(i({},n),{},{blob:e,download:t,auto:s}),"*")}}},"./src/utils/FileUtils.ts":(e,t,s)=>{"use strict";s.d(t,{Ov:()=>c,eB:()=>a,q:()=>l});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/filesize/dist/filesize.js"),i=s("./src/languageHandler.tsx");function r(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function a(e,t=!0){var s;let n=(0,i._t)("action|download");return null!==(s=e.info)&&void 0!==s&&s.size&&t&&(n+=" ("+c(e.info.size,{base:2,standard:"jedec"})+")"),n}function l(e,t=(0,i._t)("common|attachment"),s=!0,n=!1){var o,r,a;let l=t;if(null!==(o=e.filename)&&void 0!==o&&o.length?l=e.filename:null!==(r=e.body)&&void 0!==r&&r.length&&(l=e.body),n&&l.length>19){const e=l.split(".");let t=e.slice(0,e.length-1).join(".").substring(0,15);const s=e[e.length-1];t=t.replace(/\.*$/g,""),l=`${t}...${s}`}return null!==(a=e.info)&&void 0!==a&&a.size&&s&&(l+=" ("+c(e.info.size,{base:2,standard:"jedec"})+")"),l}function c(e,t){const s=function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?r(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):r(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}({base:2,standard:"jedec"},t);return(0,o.O)(e,s)}},"./src/utils/FormattingUtils.ts":(e,t,s)=>{"use strict";s.d(t,{B4:()=>c,Zl:()=>m,ki:()=>h,yJ:()=>u,z3:()=>r.z});var n=s("./node_modules/@vector-im/compound-web/dist/components/Avatar/useIdColorHash.js"),o=s("./src/languageHandler.tsx"),i=s("./src/utils/ReactUtils.tsx"),r=s("./packages/shared-components/src/utils/FormattingUtils.ts");const a=(0,o.UK)(),l=new Intl.NumberFormat(a,{notation:"compact"});function c(e){return l.format(e)}const d=new Intl.NumberFormat(a);function m(e){return d.format(e)}function u(e){return`mx_Username_color${(0,n.K)(e)}`}function h(e,t=e.length,s=!1){let n=Math.max(e.length-t,0);var r;if(e.length<=1)return null!==(r=e[0])&&void 0!==r?r:"";const a=new Intl.ListFormat((0,o.mf)(),{style:"long",type:"conjunction"});if(n>0){let r;return s&&(t--,n++),e=e.slice(0,t),r=e.every(e=>"string"==typeof e)?e.join(", "):(0,i.i)(e,", "),(0,o._t)("items_and_n_others",{count:n},{Items:()=>r})}if(e.every(e=>"string"==typeof e))return a.format(e);const l=a.formatToParts(e.map((e,t)=>`${t}`));return(0,i.i)(l.map(t=>"literal"===t.type?t.value:e[parseInt(t.value,10)]))}},"./src/utils/IdentityServerUtils.ts":(e,t,s)=>{"use strict";s.d(t,{Os:()=>c,eF:()=>a,iR:()=>r,mn:()=>l});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./node_modules/matrix-js-sdk/src/logger.ts"),i=s("./src/SdkConfig.ts");function r(){var e;return null===(e=i.Ay.get("validated_server_config"))||void 0===e?void 0:e.isUrl}function a(e){const t=r();e.setAccountData("m.identity_server",{base_url:null!=t?t:null})}async function l(e,t){var s;let i;try{i=await e.getTerms(n.SERVICE_TYPES.IS,t)}catch(e){if(o.vF.error(e),!(e instanceof n.HTTPError&&404===e.httpStatus))throw e;i=null}return!(null===(s=i)||void 0===s||!s.policies)&&Object.keys(i.policies).length>0}function c(e){const t=e.getAccountData("m.identity_server");return null==t?void 0:t.getContent().base_url}},"./src/utils/Image.ts":(e,t,s)=>{"use strict";s.d(t,{C:()=>o,t:()=>l});var n=s("./src/utils/arrays.ts");function o(e){return["image/gif","image/webp","image/png","image/apng","image/avif"].includes(e)}function i(e,t,s){return new Uint8Array(e.slice(t,t+s))}function r(e,t){return new DataView(e,t,4).getUint32(0)}function a(e,t,s){return String.fromCharCode.apply(null,Array.from(i(e,t,s)))}async function l(e){try{const t=await e.arrayBuffer(),s=new ImageDecoder({data:t,type:e.type});if(await s.tracks.ready,[...s.tracks].some(e=>e.animated))return!0}catch(e){console.warn("ImageDecoder not supported or failed to decode image",e)}switch(e.type){case"image/webp":{const t=await e.slice(0,21).arrayBuffer();if("RIFF"===a(t,0,4)&&"WEBP"===a(t,8,4)&&"VP8X"===a(t,12,4)){const[e]=i(t,20,1);return 0!=(e&2)}return!1}case"image/gif":{const t=new DataView(await e.arrayBuffer(),10),s=t.getUint8(0);let n=0;128&s&&(n=3*Math.pow(2,1+(7&s)));const o=3+n,i=t.getUint8(o),r=t.getUint8(o+1);let a=0;return 33&i&&249&r&&(a=t.getUint16(o+4)),!!a}case"image/png":case"image/apng":{const t=await e.arrayBuffer();if((0,n.dc)([137,80,78,71,13,10,26,10],Array.from(i(t,0,8))))return!1;for(let s=8;s<e.size;){const e=r(t,s);s+=4;const n=a(t,s,4);switch(s+=4,n){case"acTL":return!0;case"IDAT":return!1}s+=e+4}return!1}}}},"./src/utils/KeyVerificationStateObserver.ts":(e,t,s)=>{"use strict";s.d(t,{M:()=>i,q:()=>o});var n=s("./src/languageHandler.tsx");function o(e,t,s){const n=e.getRoom(s),o=n&&n.getMember(t);return o?o.name:t}function i(e,t,s){const i=o(e,t,s);return i!==t?(0,n._t)("name_and_id",{name:i,userId:t}):t}},"./src/utils/MarkedExecution.ts":(e,t,s)=>{"use strict";s.d(t,{L:()=>o});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");class o{constructor(e,t){(0,n.A)(this,"marked",!1),this.fn=e,this.onMarkCallback=t}reset(){this.marked=!1}mark(){var e;this.marked||null===(e=this.onMarkCallback)||void 0===e||e.call(this),this.marked=!0}trigger(){this.marked&&(this.reset(),this.fn())}}},"./src/utils/MediaEventHelper.ts":(e,t,s)=>{"use strict";s.d(t,{j:()=>c});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/logger.ts");class r{constructor(e){(0,n.A)(this,"val",void 0),(0,n.A)(this,"prom",void 0),(0,n.A)(this,"done",!1),this.getFn=e}get present(){return this.done}get cachedValue(){return this.val}get value(){return this.prom?this.prom:(this.prom=this.getFn(),this.prom.then(e=>(this.val=e,this.done=!0,e)))}}var a=s("./src/customisations/Media.ts"),l=s("./src/utils/DecryptFile.ts");class c{constructor(e){(0,n.A)(this,"sourceUrl",void 0),(0,n.A)(this,"thumbnailUrl",void 0),(0,n.A)(this,"sourceBlob",void 0),(0,n.A)(this,"thumbnailBlob",void 0),(0,n.A)(this,"media",void 0),(0,n.A)(this,"prepareSourceUrl",async()=>{if(this.media.isEncrypted){const e=await this.sourceBlob.value;return URL.createObjectURL(e)}return this.media.srcHttp}),(0,n.A)(this,"prepareThumbnailUrl",async()=>{if(this.media.isEncrypted){const e=await this.thumbnailBlob.value;return null===e?null:URL.createObjectURL(e)}return this.media.thumbnailHttp}),(0,n.A)(this,"fetchSource",()=>{const e=this.event.getContent();return this.media.isEncrypted?(0,l.It)(e.file,e.info):this.media.downloadSource().then(e=>e.blob()).then(t=>{var s,n;return t.slice(0,t.size,null!==(s=null===(n=e.info)||void 0===n?void 0:n.mimetype)&&void 0!==s?s:t.type)})}),(0,n.A)(this,"fetchThumbnail",()=>{if(!this.media.hasThumbnail)return Promise.resolve(null);const e=this.event.getContent();var t;if(this.media.isEncrypted)return null!==(t=e.info)&&void 0!==t&&t.thumbnail_file?(0,l.It)(e.info.thumbnail_file,e.info.thumbnail_info):(i.vF.warn("Media claims to have thumbnail and is encrypted, but no thumbnail_file found"),Promise.resolve(null));const s=this.media.thumbnailHttp;return s?fetch(s).then(e=>e.blob()).then(t=>{var s,n;return t.slice(0,t.size,null!==(s=null===(n=e.info)||void 0===n||null===(n=n.thumbnail_info)||void 0===n?void 0:n.mimetype)&&void 0!==s?s:t.type)}):Promise.resolve(null)}),this.event=e,this.sourceUrl=new r(this.prepareSourceUrl),this.thumbnailUrl=new r(this.prepareThumbnailUrl),this.sourceBlob=new r(this.fetchSource),this.thumbnailBlob=new r(this.fetchThumbnail),this.media=(0,a.mediaFromContent)(this.event.getContent())}get fileName(){return this.event.getContent().filename||this.event.getContent().body||"download"}destroy(){this.media.isEncrypted&&(this.sourceUrl.cachedValue&&URL.revokeObjectURL(this.sourceUrl.cachedValue),this.thumbnailUrl.cachedValue&&URL.revokeObjectURL(this.thumbnailUrl.cachedValue))}static isEligible(e){if(!e)return!1;if(e.isRedacted())return!1;if(e.getType()===o.EventType.Sticker)return!0;if(e.getType()!==o.EventType.RoomMessage)return!1;const t=e.getContent();return!![o.MsgType.Video,o.MsgType.Audio,o.MsgType.Image,o.MsgType.File].includes(t.msgtype)||"string"==typeof t.url}static canHide(e){if(!e)return!1;if(e.isRedacted())return!1;const t=e.getContent();return!![o.MsgType.Video,o.MsgType.Image].includes(t.msgtype)}}},"./src/utils/MultiInviter.ts":(e,t,s)=>{"use strict";s.d(t,{jo:()=>_,Ay:()=>E});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/types.ts"),r=s("./node_modules/matrix-js-sdk/src/logger.ts"),a=s("./src/UserAddress.ts"),l=s("./src/languageHandler.tsx"),c=s("./src/Modal.tsx"),d=s("./src/settings/SettingsStore.ts"),m=s("./src/components/views/dialogs/AskInviteAnywayDialog.tsx"),u=s("./src/components/views/dialogs/ConfirmUserActionDialog.tsx"),h=s("./node_modules/react/index.js"),p=s("./src/components/views/dialogs/InviteProgressBody.tsx");const g=e=>h.createElement(p.A,null);let v=function(e){return e.Invited="invited",e.Error="error",e}({});const _=["M_NOT_FOUND","M_USER_NOT_FOUND","M_PROFILE_UNDISCLOSED","M_PROFILE_NOT_FOUND"],f="IO.ELEMENT.ALREADY_JOINED",y="IO.ELEMENT.ALREADY_INVITED",b="IO.ELEMENT.BANNED";class E{constructor(e,t,s={}){(0,n.A)(this,"addresses",[]),(0,n.A)(this,"_fatal",!1),(0,n.A)(this,"completionStates",{}),(0,n.A)(this,"errors",{}),(0,n.A)(this,"reason",void 0),this.matrixClient=e,this.roomId=t,this.options=s}get fatal(){return this._fatal}async invite(e,t){if(this.addresses.length>0)throw new Error("Already inviting/invited");let s;this.addresses.push(...e),this.reason=t,this.options.inhibitProgressDialog||(s=function(){const{close:e}=c.Ay.createDialog(g,{},void 0,!1,!1,{onBeforeClose:async e=>"backgroundClick"!=e});return e}());try{for(const e of this.addresses)null===(0,a.Z)(e)&&(this.completionStates[e]=v.Error,this.errors[e]={errcode:"M_INVALID",errorText:(0,l._t)("invite|invalid_address")});for(const e of this.addresses)if(null!==(0,a.Z)(e)&&this.completionStates[e]!==v.Invited&&(await this.doInvite(e,!1),this._fatal))return this.completionStates;if(Object.keys(this.errors).length>0){const e=Object.keys(this.errors).filter(e=>_.includes(this.errors[e].errcode));e.length>0&&await this.handleUnknownProfileUsers(e)}}finally{var n;null===(n=s)||void 0===n||n()}return this.completionStates}getCompletionState(e){return this.completionStates[e]}getErrorText(e){var t,s;return null!==(t=null===(s=this.errors[e])||void 0===s?void 0:s.errorText)&&void 0!==t?t:null}async inviteToRoom(e,t,s=!1){const n=(0,a.Z)(t);if(n===a.R.Email)return this.matrixClient.inviteByEmail(e,t);if(n===a.R.MatrixUserId){const n=this.matrixClient.getRoom(e);if(!n)throw new Error("Room not found");const r=n.getMember(t);if((null==r?void 0:r.membership)===i.O.Join)throw new o.MatrixError({errcode:f,error:"Member already joined"});if((null==r?void 0:r.membership)===i.O.Invite)throw new o.MatrixError({errcode:y,error:"Member already invited"});if((null==r?void 0:r.membership)===i.O.Ban){let t=!1;const s=n.getMember(this.matrixClient.getSafeUserId());if(s&&r.powerLevel<s.powerLevel&&n.currentState.hasSufficientPowerLevelFor("ban",s.powerLevel)&&n.currentState.hasSufficientPowerLevelFor("kick",s.powerLevel)){const{finished:s}=c.Ay.createDialog(u.A,{member:r,action:(0,l._t)("action|unban"),title:(0,l._t)("invite|unban_first_title")});[t=!1]=await s,t&&await this.matrixClient.unban(e,r.userId)}if(!t)throw new o.MatrixError({errcode:b,error:"Member is banned"})}if(!s&&d.A.getValue("promptBeforeInviteUnknownUsers",this.roomId))try{await this.matrixClient.getProfileInfo(t)}catch(e){switch(e instanceof o.MatrixError?e.errcode:e){case"M_FORBIDDEN":throw new o.MatrixError({errcode:"M_PROFILE_UNDISCLOSED"});case"M_NOT_FOUND":throw new o.MatrixError({errcode:"M_USER_NOT_FOUND"});default:throw e}}const a={};return void 0!==this.reason&&(a.reason=this.reason),d.A.getValue("feature_share_history_on_invite")&&(a.shareEncryptedHistory=!0),this.matrixClient.invite(e,t,a)}throw new Error("Unsupported address")}doInvite(e,t){return new Promise((s,n)=>{r.vF.log(`Inviting ${e}`);this.inviteToRoom(this.roomId,e,t).then(()=>{var t,n;this.completionStates[e]=v.Invited,delete this.errors[e],s(),null===(t=(n=this.options).progressCallback)||void 0===t||t.call(n)}).catch(i=>{var c;r.vF.error(i);const d=this.roomId?this.matrixClient.getRoom(this.roomId):null,m=null==d?void 0:d.isSpaceRoom(),u=null==d||null===(c=d.currentState.getStateEvents(o.EventType.RoomCreate,""))||void 0===c?void 0:c.getContent()["m.federate"];let h;switch(i.errcode){case"M_FORBIDDEN":h=m?!1===u?(0,l._t)("invite|error_unfederated_space"):(0,l._t)("invite|error_permissions_space"):!1===u?(0,l._t)("invite|error_unfederated_room"):(0,l._t)("invite|error_permissions_room"),this._fatal=!0;break;case y:h=m?(0,l._t)("invite|error_already_invited_space"):(0,l._t)("invite|error_already_invited_room");break;case f:h=m?(0,l._t)("invite|error_already_joined_space"):(0,l._t)("invite|error_already_joined_room");break;case"M_LIMIT_EXCEEDED":return void window.setTimeout(()=>{this.doInvite(e,t).then(s,n)},5e3);case"M_NOT_FOUND":case"M_USER_NOT_FOUND":h=(0,l._t)("invite|error_user_not_found");break;case"M_PROFILE_UNDISCLOSED":h=(0,l._t)("invite|error_profile_undisclosed");break;case"M_PROFILE_NOT_FOUND":if(!t)return r.vF.warn(`User ${e} does not have a profile - inviting anyways automatically`),void this.doInvite(e,!0).then(s,n);break;case"M_BAD_STATE":case b:h=(0,l._t)("invite|error_bad_state");break;case"M_UNSUPPORTED_ROOM_VERSION":h=m?(0,l._t)("invite|error_version_unsupported_space"):(0,l._t)("invite|error_version_unsupported_room");break;case"ORG.MATRIX.JSSDK_MISSING_PARAM":(0,a.Z)(e)===a.R.Email&&(h=(0,l._t)("cannot_invite_without_identity_server"))}h||(h=(0,l._t)("invite|error_unknown")),this.completionStates[e]=v.Error,this.errors[e]={errorText:h,errcode:i.errcode},s()})})}handleUnknownProfileUsers(e){return new Promise(t=>{const s=()=>{const s=e.map(e=>this.doInvite(e,!0));Promise.all(s).then(()=>t())};d.A.getValue("promptBeforeInviteUnknownUsers",this.roomId)?(r.vF.log("Showing failed to invite dialog..."),c.Ay.createDialog(m.A,{unknownProfileUsers:e.map(e=>({userId:e,errorText:this.errors[e].errorText})),onInviteAnyways:()=>s(),onGiveUp:()=>{for(const t of e)this.completionStates[t]=v.Invited;t()}})):s()})}}},"./src/utils/NativeEventUtils.ts":(e,t,s)=>{"use strict";s.d(t,{Z:()=>n});const n=e=>t=>{null==t||t.stopPropagation(),null==t||t.preventDefault(),e()}},"./src/utils/PinningUtils.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>a});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./src/utils/EventUtils.ts"),r=s("./src/components/views/right_panel/types.ts");class a{static isPinnable(e){return!e.isRedacted()&&a.isUnpinnable(e)}static isUnpinnable(e){return!!e&&(!!e.isRedacted()||this.PINNABLE_EVENT_TYPES.includes(e.getType()))}static isPinned(e,t){var s;const n=e.getRoom(t.getRoomId());if(!n)return!1;const i=null===(s=n.getLiveTimeline().getState(o.EventTimeline.FORWARDS))||void 0===s?void 0:s.getStateEvents(o.EventType.RoomPinnedEvents,"");if(!i)return!1;const r=i.getContent();return r.pinned&&Array.isArray(r.pinned)&&r.pinned.includes(t.getId())}static canPin(e,t){if(!(0,i.qe)(t))return!1;const s=e.getRoom(t.getRoomId());return!!s&&(a.userHasPinOrUnpinPermission(e,s)&&a.isPinnable(t))}static canUnpin(e,t){const s=e.getRoom(t.getRoomId());return!!s&&(a.userHasPinOrUnpinPermission(e,s)&&a.isUnpinnable(t))}static userHasPinOrUnpinPermission(e,t){var s;return Boolean(null===(s=t.getLiveTimeline().getState(o.EventTimeline.FORWARDS))||void 0===s?void 0:s.mayClientSendStateEvent(o.EventType.RoomPinnedEvents,e))}static async pinOrUnpinEvent(e,t){var s;const n=e.getRoom(t.getRoomId());if(!n)return;const i=t.getId();if(!i)return;const a=(null===(s=n.getLiveTimeline().getState(o.EventTimeline.FORWARDS))||void 0===s||null===(s=s.getStateEvents(o.EventType.RoomPinnedEvents,""))||void 0===s?void 0:s.getContent().pinned)||[];let l=Promise.resolve();var c;a.includes(i)?a.splice(a.indexOf(i),1):(a.push(i),l=e.setRoomAccountData(n.roomId,r.M,{event_ids:[...(null===(c=n.getAccountData(r.M))||void 0===c||null===(c=c.getContent())||void 0===c?void 0:c.event_ids)||[],i]}));await Promise.all([e.sendStateEvent(n.roomId,o.EventType.RoomPinnedEvents,{pinned:a},""),l])}static async unpinAllEvents(e,t){await e.sendStateEvent(t,o.EventType.RoomPinnedEvents,{pinned:[]},"")}}(0,n.A)(a,"PINNABLE_EVENT_TYPES",[o.EventType.RoomMessage,o.M_POLL_START.name,o.M_POLL_START.altName])},"./src/utils/PreferredRoomVersions.ts":(e,t,s)=>{"use strict";s.d(t,{W:()=>o,Y:()=>i});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");class o{constructor(){}}function i(e,t){return!!e.match(/[\d.]+/)&&Number(e)>=Number(t)}(0,n.A)(o,"KnockRooms","7"),(0,n.A)(o,"RestrictedRooms","9")},"./src/utils/ReactUtils.tsx":(e,t,s)=>{"use strict";s.d(t,{i:()=>o});var n=s("./node_modules/react/index.js");function o(e,t){return n.createElement(n.Fragment,null,e.map((s,o)=>n.createElement(n.Fragment,{key:o},s,o===e.length-1?null:t)))}},"./src/utils/Reply.ts":(e,t,s)=>{"use strict";s.d(t,{Ul:()=>d,c$:()=>h,fJ:()=>m,fh:()=>p,kH:()=>u});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/sanitize-html/index.js"),r=s.n(i),a=s("./src/utils/UrlUtils.ts");function l(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function c(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?l(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):l(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}function d(e){if(e&&!e.isRedacted())return e.replyEventId?e.replyEventId:void 0}function m(e){const t=e.split("\n");for(;t.length&&t[0].startsWith("> ");)t.shift();return""===t[0]&&t.shift(),t.join("\n")}function u(e){return r()(e,{allowedTags:!1,allowedAttributes:!1,allowVulnerableTags:!0,allowedSchemes:[...a._f,"mxc"],exclusiveFilter:e=>"mx-reply"===e.tag})}function h(e){var t;if(e.isRedacted())return!1;const s=null===(t=e.getWireContent())||void 0===t||null===(t=t["m.relates_to"])||void 0===t?void 0:t["m.in_reply_to"];if(!s)return!1;const n=e.getRelation();return((null==n?void 0:n.rel_type)!==o.THREAD_RELATION_TYPE.name||null==n||!n.is_falling_back)&&!!s.event_id}function p(e,t){e["m.relates_to"]=c(c({},e["m.relates_to"]||{}),function(e){if(!e)return{};const t={"m.in_reply_to":{event_id:e.getId()}};return e.threadRootId&&(t.is_falling_back=!1),t}(t))}},"./src/utils/RoomUpgrade.ts":(e,t,s)=>{"use strict";s.d(t,{R:()=>g,W:()=>v});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/types.ts"),r=s("./node_modules/matrix-js-sdk/src/logger.ts"),a=s("./src/RoomInvite.tsx"),l=s("./src/Modal.tsx"),c=s("./src/languageHandler.tsx"),d=s("./src/components/views/dialogs/ErrorDialog.tsx"),m=s("./src/stores/spaces/SpaceStore.ts"),u=s("./src/components/views/elements/Spinner.tsx");function h(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function p(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?h(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):h(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}async function g(e,t){const s=e.getRoom(t);return s||new Promise(s=>{const n=i=>{i.roomId===t&&(s(i),e.off(o.ClientEvent.Room,n))};e.on(o.ClientEvent.Room,n)})}async function v(e,t,s=!1,n=!0,h=!0,v=!1,_,f=!1){var y;const b=e.client;let E;_||(E=l.Ay.createDialog(u.A,void 0,"mx_Dialog_spinner"));let w=[];s&&(w=[...e.getMembersWithMembership(i.O.Join),...e.getMembersWithMembership(i.O.Invite)].map(e=>e.userId).filter(e=>e!==b.getUserId()));let x=[];h&&(x=Array.from(m.Ay.instance.getKnownParents(e.roomId)).map(e=>b.getRoom(e)).filter(e=>null==e?void 0:e.currentState.maySendStateEvent(o.EventType.SpaceChild,b.getUserId())));const A={roomUpgraded:!1,roomSynced:!v&&!s&&void 0,inviteUsersProgress:s?0:void 0,inviteUsersTotal:w.length,updateSpacesProgress:h?0:void 0,updateSpacesTotal:x.length};let S;null==_||_(A);try{({replacement_room:S}=await b.upgradeRoom(e.roomId,t))}catch(e){if(!n)throw e;throw r.vF.error(e),l.Ay.createDialog(d.A,{title:(0,c._t)("room|upgrade_error_title"),description:(0,c._t)("room|upgrade_error_description")}),e}if(A.roomUpgraded=!0,null==_||_(A),(v||s)&&(await g(e.client,S),A.roomSynced=!0,null==_||_(A)),w.length>0&&await async function(e,t,s,n){const o=await(0,a.wq)(e,t,s,n),i=e.getRoom(t);(0,a.uG)(o.states,i,o.inviter)}(b,S,w,{progressCallback:()=>{A.inviteUsersProgress++,null==_||_(A)},inhibitProgressDialog:f}),x.length>0)try{for(const t of x){const s=t.currentState.getStateEvents(o.EventType.SpaceChild,e.roomId);await b.sendStateEvent(t.roomId,o.EventType.SpaceChild,p(p({},(null==s?void 0:s.getContent())||{}),{},{via:[b.getDomain()]}),S),await b.sendStateEvent(t.roomId,o.EventType.SpaceChild,{},e.roomId),A.updateSpacesProgress++,null==_||_(A)}}catch(e){r.vF.warn("Failed to update parent spaces during room upgrade",e)}return null===(y=E)||void 0===y||y.close(),S}},"./src/utils/ShieldUtils.ts":(e,t,s)=>{"use strict";s.d(t,{G:()=>l,z:()=>a});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./node_modules/matrix-js-sdk/src/logger.ts"),i=s("./src/utils/DMRoomMap.ts"),r=s("./src/utils/arrays.ts");let a=function(e){return e.Warning="warning",e.Verified="verified",e.Normal="normal",e}({});async function l(e,t){const s=e.getCrypto();if(!s)return a.Warning;try{const n=(await t.getEncryptionTargetMembers()).map(({userId:e})=>e),l=!!i.A.shared().getUserIdForRoomId(t.roomId),c=[],d=[];for(const t of n){if(t===e.getUserId())continue;const n=await s.getUserVerificationStatus(t);if(n.wasCrossSigningVerified()&&!n.isCrossSigningVerified())return a.Warning;(n.isCrossSigningVerified()?c:d).push(t)}const m=c.length>0&&!l&&2!==n.length||1===n.length?[...c,e.getUserId()]:c,u=await s.getUserDeviceInfo(m);for(const e of m){const t=u.get(e);if(!t)return o.vF.warn(`No device info for user ${e}`),a.Warning;if(await(0,r.rm)(t.keys(),async t=>{const n=await s.getDeviceVerificationStatus(e,t);return!(null!=n&&n.isVerified())}))return a.Warning}return 0===d.length?a.Verified:a.Normal}catch(e){if(!(e instanceof n.ClientStoppedError))throw e;return o.vF.warn("shieldStatusForRoom: client stopped"),a.Normal}}},"./src/utils/Singleflight.ts":(e,t,s)=>{"use strict";s.d(t,{j:()=>r});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./src/utils/maps.ts");const i=new o.h;class r{constructor(){}static for(e,t){if(!e||!t)throw new Error("An instance and key must be supplied");return new a(e,t)}static forgetAllFor(e){i.delete(e)}static forgetAll(){for(const e of i.keys())i.remove(e)}}(0,n.A)(r,"Void",Symbol("void"));class a{constructor(e,t){this.instance=e,this.key=t}forget(){const e=i.get(this.instance);e&&(e.remove(this.key),e.size||i.remove(this.instance))}do(e){const t=i.getOrCreate(this.instance,new o.h);let s=t.get(this.key);return void 0===s&&(s=e(),t.set(this.key,s)),s}}},"./src/utils/SnakedObject.ts":(e,t,s)=>{"use strict";s.d(t,{Q:()=>o});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");class o{constructor(e){(0,n.A)(this,"fallbackWarnings",new Set),this.obj=e}get(e,t){const s=this.obj[e];if(void 0!==s)return s;const n=null!=t?t:e.replace(/._./g,e=>`${e[0]}${e[2].toUpperCase()}`);const o=this.obj[n];return o&&!this.fallbackWarnings.has(n)&&(this.fallbackWarnings.add(n),console.warn(`Using deprecated camelCase config ${n}`),console.warn("See https://github.com/vector-im/element-web/blob/develop/docs/config.md#-deprecation-notice")),o}toJSON(){return this.obj}}},"./src/utils/SortMembers.ts":(e,t,s)=>{"use strict";s.d(t,{_5:()=>c,j2:()=>r,nf:()=>l});var n=s("./node_modules/lodash/lodash.js"),o=s("./node_modules/matrix-js-sdk/src/types.ts"),i=s("./src/utils/DMRoomMap.ts");const r=(e,t)=>(s,n)=>{var o,i,r,a,l,c,d,m,u,h,p,g;const v=(null!==(o=null===(i=e[s.userId])||void 0===i?void 0:i.score)&&void 0!==o?o:0)+(null!==(r=null===(a=t[s.userId])||void 0===a?void 0:a.score)&&void 0!==r?r:0),_=null!==(l=null===(c=t[s.userId])||void 0===c?void 0:c.numRooms)&&void 0!==l?l:0,f=(null!==(d=null===(m=e[n.userId])||void 0===m?void 0:m.score)&&void 0!==d?d:0)+(null!==(u=null===(h=t[n.userId])||void 0===h?void 0:h.score)&&void 0!==u?u:0),y=null!==(p=null===(g=t[n.userId])||void 0===g?void 0:g.numRooms)&&void 0!==p?p:0;return v===f?_===y?0:y-_:f-v};function a(e){return e.getRooms().filter(e=>e.getMyMembership()===o.O.Join).filter(e=>!i.A.shared().getUserIdForRoomId(e.roomId)).filter(e=>!Object.keys(e.tags).includes("m.lowpriority"))}function l(e){const t=(new Date).getTime(),s=t-36e5,o=a(e).flatMap(e=>(0,n.takeRight)(e.getLiveTimeline().getEvents(),50)).filter(e=>e.getTs()>s),i=(0,n.groupBy)(o,e=>e.getSender());return(0,n.mapValues)(i,e=>{if(!e.length)return;const o=(0,n.maxBy)(e,e=>e.getTs()),i=Math.abs(t-o.getTs()),r=t-s-i;return{lastSpoke:o.getTs(),score:Math.max(1,r/9e5)}})}function c(e){const t=a(e).filter(e=>e.getJoinedMemberCount()<200).flatMap(e=>e.getJoinedMembers().map(t=>({member:t,roomSize:e.getJoinedMemberCount()}))),s=(0,n.groupBy)(t,({member:e})=>e.userId);return(0,n.mapValues)(s,e=>{if(!e.length)return;const t=200*e.length,s=(0,n.sumBy)(e,e=>e.roomSize);return{member:(0,n.minBy)(e,e=>e.roomSize).member,numRooms:e.length,score:Math.max(0,Math.pow(1-s/t,5))}})}},"./src/utils/StorageAccess.ts":(e,t,s)=>{"use strict";function n(){try{var e;return null!==(e=self)&&void 0!==e&&e.indexedDB?self.indexedDB:window.indexedDB}catch{}}s.d(t,{Cz:()=>n,Gt:()=>a,N6:()=>c,pr:()=>d,x7:()=>l});let o=null;async function i(){if(!n())throw new Error("IndexedDB not available");o=await new Promise((e,t)=>{const s=n().open("matrix-react-sdk",1);s.onerror=t,s.onsuccess=()=>{e(s.result)},s.onupgradeneeded=()=>{const e=s.result;e.createObjectStore("pickleKey"),e.createObjectStore("account")}})}async function r(e,t,s){return o||await i(),new Promise((n,i)=>{const r=o.transaction([e],t);r.onerror=i;const a=r.objectStore(e),l=s(a);l.onerror=i,l.onsuccess=()=>{n(l.result)}})}async function a(e,t){return o||await i(),r(e,"readonly",e=>e.get(t))}async function l(e,t,s){return o||await i(),r(e,"readwrite",e=>e.put(s,t))}async function c(e,t){return o||await i(),r(e,"readwrite",e=>e.delete(t))}async function d(e){return o||await i(),r(e,"readwrite",e=>e.clear())}},"./src/utils/StorageManager.ts":(e,t,s)=>{"use strict";s.d(t,{jy:()=>p,ng:()=>u,zV:()=>h});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./node_modules/matrix-js-sdk/src/logger.ts"),i=s("./src/utils/StorageAccess.ts");const r=window.localStorage,a="riot-web-sync",l="matrix-js-sdk:crypto",c="matrix-js-sdk::matrix-sdk-crypto";function d(e){o.vF.log(`StorageManager: ${e}`)}function m(e,...t){o.vF.error(`StorageManager: ${e}`,...t)}function u(){navigator.storage&&navigator.storage.persist?navigator.storage.persist().then(e=>{o.vF.log("StorageManager: Persistent?",e)}):document.requestStorageAccess?document.requestStorageAccess().then(()=>o.vF.log("StorageManager: Persistent?",!0),()=>o.vF.log("StorageManager: Persistent?",!1)):o.vF.log("StorageManager: Persistence unsupported")}async function h(){d("Checking storage consistency"),d(`Local storage supported? ${!!r}`),d(`IndexedDB supported? ${!!(0,i.Cz)()}`);let e=!1,t=!1,s=!1,o=!0;if(r?(e=r.length>0,d(`Local storage contains data? ${e}`),s=!!r.getItem("mx_crypto_initialised"),d(`Crypto initialised? ${s}`)):(o=!1,m("Local storage cannot be used on this browser")),(0,i.Cz)()&&r){(await async function(){let e=!1;try{return e=await n.IndexedDBStore.exists((0,i.Cz)(),a),d(`Sync store using IndexedDB contains data? ${e}`),{exists:e,healthy:!0}}catch(e){m("Sync store using IndexedDB inaccessible",e)}return d("Sync store using memory only"),{exists:e,healthy:!1}}()).healthy||(o=!1)}else o=!1,m("Sync store cannot be used on this browser");if((0,i.Cz)()){const e=await async function(){try{const e=await n.IndexedDBCryptoStore.exists((0,i.Cz)(),c);if(d(`Rust Crypto store using IndexedDB contains data? ${e}`),e)return{exists:!0,healthy:!0};try{const e=await n.IndexedDBCryptoStore.existsAndIsNotMigrated((0,i.Cz)(),l);return d(`Legacy Crypto store using IndexedDB contains non migrated data? ${e}`),{exists:e,healthy:!0}}catch(e){m("Legacy crypto store using IndexedDB inaccessible",e)}return{exists:!1,healthy:!1}}catch(e){return m("Rust crypto store using IndexedDB inaccessible",e),{exists:!1,healthy:!1}}}();t=e.exists,e.healthy||(o=!1)}else o=!1,m("Crypto store cannot be used on this browser");return e&&s&&!t&&(o=!1,m("Data exists in local storage and crypto is marked as initialised but no data found in crypto store. IndexedDB storage has likely been evicted by the browser!")),o?d("Storage consistency checks passed"):m("Storage consistency checks failed"),{dataInLocalStorage:e,dataInCryptoStore:t,cryptoInited:s,healthy:o}}function p(e){r.setItem("mx_crypto_initialised",String(e))}},"./src/utils/Timer.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>o});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");class o{constructor(e){(0,n.A)(this,"timerHandle",void 0),(0,n.A)(this,"startTs",void 0),(0,n.A)(this,"deferred",void 0),(0,n.A)(this,"onTimeout",()=>{const e=Date.now()-this.startTs;if(e>=this.timeout)this.deferred.resolve(),this.setNotStarted();else{const t=this.timeout-e;this.timerHandle=window.setTimeout(this.onTimeout,t)}}),this.timeout=e,this.setNotStarted()}setNotStarted(){this.timerHandle=void 0,this.startTs=void 0,this.deferred=Promise.withResolvers(),this.deferred.promise=this.deferred.promise.finally(()=>{this.timerHandle=void 0})}changeTimeout(e){if(e===this.timeout)return;const t=e<this.timeout;this.timeout=e,this.isRunning()&&t&&(clearTimeout(this.timerHandle),this.onTimeout())}start(){return this.isRunning()||(this.startTs=Date.now(),this.timerHandle=window.setTimeout(this.onTimeout,this.timeout)),this}restart(){return this.isRunning()?(this.startTs=Date.now(),this):this.start()}abort(){return this.isRunning()&&(clearTimeout(this.timerHandle),this.deferred.reject(new Error("Timer was aborted.")),this.setNotStarted()),this}finished(){return this.deferred.promise}isRunning(){return void 0!==this.timerHandle}}},"./src/utils/UrlUtils.ts":(e,t,s)=>{"use strict";function n(e){if(!e)return"";let t;try{t=i(e)}catch(t){return console.error(t),e}return"/"===t.pathname?t.host||"":e}function o(e){if(!e)return"";let t=e;e.startsWith("https://")||(t="https://"+e);return i(t).hostname?t:e}function i(e){return e.includes(":")||(e=window.location.protocol+e),new URL(e)}s.d(t,{Dl:()=>i,FO:()=>n,_f:()=>r,qe:()=>o});const r=["bitcoin","ftp","geo","http","https","im","irc","ircs","magnet","mailto","matrix","mms","news","nntp","openpgp4fpr","sip","sftp","sms","smsto","ssh","tel","urn","webcal","wtai","xmpp"]},"./src/utils/WellKnownUtils.ts":(e,t,s)=>{"use strict";s.d(t,{P2:()=>m,XP:()=>u,d_:()=>d,j5:()=>c,qh:()=>h});var n=s("./node_modules/matrix-js-sdk/src/NamespacedValue.ts");const o="io.element.call_behaviour",i="io.element.e2ee",r="im.vector.riot.e2ee",a=new n.qr("m.tile_server","org.matrix.msc3488.tile_server"),l="io.element.embedded_pages";function c(e){const t=e.getClientWellKnown();return null==t?void 0:t[o]}function d(e){const t=e.getClientWellKnown();return null!=t&&t[i]?t[i]:null!=t&&t[r]?t[r]:null}function m(e){return u(e.getClientWellKnown())}function u(e){var t;return null!==(t=null==e?void 0:e[a.name])&&void 0!==t?t:null==e?void 0:e[a.altName]}function h(e){return null==(t=null==e?void 0:e.getClientWellKnown())?void 0:t[l];var t}},"./src/utils/Whenable.ts":(e,t,s)=>{"use strict";s.d(t,{b:()=>r});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/logger.ts"),i=s("./src/utils/arrays.ts");class r{constructor(){(0,n.A)(this,"listeners",[])}when(e,t){return this.listeners.push({condition:e,fn:t}),this}whenAnyOf(e,t){for(const s of e)this.when(s,t);return this}whenAnything(e){return this.listeners.push({condition:null,fn:e}),this}notifyCondition(e){const t=(0,i.PF)(this.listeners);for(const s of t)if(null===s.condition||s.condition===e)try{s.fn(this)}catch(t){o.vF.error(`Error calling whenable listener for ${e}:`,t)}}destroy(){this.listeners=[]}}},"./src/utils/WidgetUtils.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>A,X:()=>S});var n=s("./node_modules/react/index.js"),o=s("./node_modules/rfc4648/lib/rfc4648.js"),i=s("./node_modules/lodash/lodash.js"),r=s("./node_modules/matrix-js-sdk/src/matrix.ts"),a=s("./node_modules/matrix-js-sdk/src/types.ts"),l=s("./node_modules/matrix-js-sdk/src/logger.ts"),c=s("./node_modules/matrix-js-sdk/src/webrtc/call.ts"),d=s("./node_modules/matrix-js-sdk/src/randomstring.ts"),m=s("./src/PlatformPeg.ts"),u=s("./src/SdkConfig.ts"),h=s("./src/dispatcher/dispatcher.ts"),p=s("./src/stores/WidgetEchoStore.ts"),g=s("./src/integrations/IntegrationManagers.ts"),v=s("./src/widgets/WidgetType.ts"),_=s("./src/widgets/Jitsi.ts"),f=s("./src/utils/objects.ts"),y=s("./src/languageHandler.tsx"),b=s("./src/stores/WidgetStore.ts"),E=s("./src/utils/UrlUtils.ts"),w=s("./src/hooks/useEventEmitter.ts"),x=s("./src/stores/widgets/WidgetLayoutStore.ts");class A{static canUserModifyWidgets(e,t){if(!t)return l.vF.warn("No room ID specified"),!1;if(!e)return l.vF.warn("User must be be logged in"),!1;const s=e.getRoom(t);if(!s)return l.vF.warn(`Room ID ${t} is not recognised`),!1;const n=e.getUserId();return n?s.getMyMembership()!==a.O.Join?(l.vF.warn(`User ${n} is not in room ${t}`),!1):s.currentState.maySendStateEvent("im.vector.modular.widgets",n):(l.vF.warn("Failed to get user ID"),!1)}static isScalarUrl(e){if(!e)return l.vF.error("Scalar URL check failed. No URL specified"),!1;const t=(0,E.Dl)(e);let s=u.Ay.get().integrations_widgets_urls;if(!s||0===s.length){const e=g.J.sharedInstance().getPrimaryManager();s=e?[e.apiUrl]:[]}for(let e=0;e<s.length;e++){const o=(0,E.Dl)(s[e]);var n;if(t&&o)if(t.protocol===o.protocol&&t.host===o.host&&o.pathname&&null!==(n=t.pathname)&&void 0!==n&&n.startsWith(o.pathname))return!0}return!1}static waitForUserWidget(e,t,s){return new Promise((n,o)=>{function i(e){return!!e&&(s?void 0!==e.getContent()[t]:void 0===e.getContent()[t])}if(i(e.getAccountData("m.widgets")))return void n();function a(t){i(e.getAccountData("m.widgets"))&&(e.removeListener(r.ClientEvent.AccountData,a),clearTimeout(l),n())}const l=window.setTimeout(()=>{e.removeListener(r.ClientEvent.AccountData,a),o(new Error("Timed out waiting for widget ID "+t+" to appear"))},2e4);e.on(r.ClientEvent.AccountData,a)})}static waitForRoomWidget(e,t,s,n){return new Promise((o,i)=>{function a(e){const s=null==e?void 0:e.some(e=>e.getContent()&&e.getContent().id===t);return n?!!s:!s}const l=e.getRoom(s);if(a(null==l?void 0:l.currentState.getStateEvents("im.vector.modular.widgets")))return void o();function c(t){if(t.getRoomId()!==s||"im.vector.modular.widgets"!==t.getType())return;a(null==l?void 0:l.currentState.getStateEvents("im.vector.modular.widgets"))&&(e.removeListener(r.RoomStateEvent.Events,c),clearTimeout(d),o())}const d=window.setTimeout(()=>{e.removeListener(r.RoomStateEvent.Events,c),i(new Error("Timed out waiting for widget ID "+t+" to appear"))},2e4);e.on(r.RoomStateEvent.Events,c)})}static setUserWidget(e,t,s,n,o,i){const r=(0,f.ZV)(A.getUserWidgets(e));try{delete r[t]}catch{l.vF.error("$widgetId is non-configurable")}const a=Boolean(n),c=e.getSafeUserId(),d={id:t,type:s.preferred,url:n,name:o,data:i,creatorUserId:c};return a&&(r[t]={content:d,sender:c,state_key:t,type:"m.widget",id:t}),e.setAccountData("m.widgets",r).then(()=>A.waitForUserWidget(e,t,a)).then(()=>{h.A.dispatch({action:"user_widget_updated"})})}static setRoomWidget(e,t,s,n,o,i,r,a){let l;return l=Boolean(o)?{type:null==n?void 0:n.legacy,url:o,name:i,data:r,avatar_url:a}:{},A.setRoomWidgetContent(e,t,s,l)}static setRoomWidgetContent(e,t,s,n){const o=!!n.url;return p.A.setRoomWidgetEcho(t,s,n),e.sendStateEvent(t,"im.vector.modular.widgets",n,s).then(()=>A.waitForRoomWidget(e,s,t,o)).finally(()=>{p.A.removeRoomWidgetEcho(t,s)})}static getRoomWidgets(e){const t=e.currentState.getStateEvents("im.vector.modular.widgets");return t?t.filter(e=>e.getContent().type&&e.getContent().url):[]}static getUserWidgets(e){if(!e)throw new Error("User not logged in");const t=e.getAccountData("m.widgets");return t&&t.getContent()?t.getContent():{}}static getUserWidgetsArray(e){return Object.values(A.getUserWidgets(e))}static getStickerpickerWidgets(e){return A.getUserWidgetsArray(e).filter(e=>{var t;return"m.stickerpicker"===(null===(t=e.content)||void 0===t?void 0:t.type)})}static getIntegrationManagerWidgets(e){return A.getUserWidgetsArray(e).filter(e=>{var t;return"m.integration_manager"===(null===(t=e.content)||void 0===t?void 0:t.type)})}static async removeStickerpickerWidgets(e){if(!e)throw new Error("User not logged in");const t=e.getAccountData("m.widgets");if(!t)return;const s=t.getContent()||{};Object.entries(s).forEach(([e,t])=>{t.content&&"m.stickerpicker"===t.content.type&&delete s[e]}),await e.setAccountData("m.widgets",s)}static async addJitsiWidget(e,t,s,n,r,a){var l,m;const u=_.k.getInstance().preferredDomain,h=null!==(l=await _.k.getInstance().getJitsiAuth())&&void 0!==l?l:void 0,p=(0,d.US)(24);let g;g="openidtoken-jwt"===h?o.RG.stringify((new TextEncoder).encode(t),{pad:!1}):`Jitsi${(0,i.capitalize)((0,d.Yi)(24,d.gQ))}`;const f=new URL(A.getLocalJitsiWrapperUrl({auth:h}));f.search="",f.searchParams.set("confId",g),await A.setRoomWidget(e,t,p,v.x.JITSI,f.toString(),n,{conferenceId:g,roomName:null!=a?a:null===(m=e.getRoom(t))||void 0===m?void 0:m.name,isAudioOnly:s===c.JG.Voice,isVideoChannel:r,domain:u,auth:h})}static makeAppConfig(e,t,s,n,o){if(!s)throw new Error("Widgets must be created by someone - provide a senderUserId");return t.creatorUserId=s,t.id=e,t.roomId=n,t.eventId=o,t.name=t.name||t.type,t}static getLocalJitsiWrapperUrl(e={}){var t;const s=["conferenceDomain=$domain","conferenceId=$conferenceId","isAudioOnly=$isAudioOnly","startWithAudioMuted=$startWithAudioMuted","startWithVideoMuted=$startWithVideoMuted","isVideoChannel=$isVideoChannel","displayName=$matrix_display_name","avatarUrl=$matrix_avatar_url","userId=$matrix_user_id","roomId=$matrix_room_id","theme=$theme","roomName=$roomName",`supportsScreensharing=${null===(t=m.A.get())||void 0===t?void 0:t.supportsJitsiScreensharing()}`,"language=$org.matrix.msc2873.client_language"];e.auth&&s.push(`auth=${e.auth}`);const n=s.join("&");let o=window.location.href;"https:"===window.location.protocol||e.forLocalRender||(o=m.A.get().baseUrl);return new URL("jitsi.html#"+n,o).href}static getWidgetName(e){var t;return(null==e||null===(t=e.name)||void 0===t?void 0:t.trim())||(0,y._t)("widget|no_name")}static getWidgetDataTitle(e){var t;return(null==e||null===(t=e.data)||void 0===t||null===(t=t.title)||void 0===t?void 0:t.trim())||""}static getWidgetUid(e){return e?A.calcWidgetUid(e.id,(0,b.Sw)(e)?e.roomId:void 0):""}static calcWidgetUid(e,t){return t?`room_${t}_${e}`:`user_${e}`}static editWidget(e,t){var s;null===(s=g.J.sharedInstance().getPrimaryManager())||void 0===s||s.open(e,"type_"+t.type,t.id)}static isManagedByManager(e){if(A.isScalarUrl(e.url)){const e=g.J.sharedInstance();if(e.hasManager()){const t=e.getPrimaryManager();return A.isScalarUrl(null==t?void 0:t.apiUrl)}}return!1}}const S=e=>{const[t,s]=(0,n.useState)(()=>b.Ay.instance.getApps(e.roomId)),o=(0,n.useCallback)(()=>{s([...b.Ay.instance.getApps(e.roomId)])},[e]);return(0,n.useEffect)(o,[e,o]),(0,w.ml)(b.Ay.instance,e.roomId,o),(0,w.ml)(x.aK.instance,x.aK.emissionForRoom(e),o),t}},"./src/utils/arrays.ts":(e,t,s)=>{"use strict";function n(e,t){if(e.length===t)return e;const s=[];if(e.length>t){const n=Math.round(e.length/t);for(let t=0;t<e.length;t+=n)s.push(e[t])}else{const n=Math.ceil(t/e.length);for(const t of e)s.push(...o(t,n))}return i(s,t,o(e[e.length-1],t))}function o(e,t){return new Array(t).fill(e)}function i(e,t,s){return e.length===t?e:e.length>t?e.slice(0,t):e.concat(s.slice(0,t-e.length))}function r(e){return e.slice(0,e.length)}function a(e,t){if(e.length===t.length){for(let s=0;s<e.length;s++)if(e[s]!==t[s])return!0;return!1}return!0}function l(e,t){return e.length!==t.length||(!!t.some(t=>!e.includes(t))||!!e.some(e=>!t.includes(e)))}function c(e,t){return{added:t.filter(t=>!e.includes(t)),removed:e.filter(e=>!t.includes(e))}}function d(e,t){return e.filter(e=>t.includes(e))}function m(...e){return Array.from(e.reduce((e,t)=>(t.forEach(t=>e.add(t)),e),new Set))}function u(e,t,s){const n=Array.from(e),[o]=n.splice(t,1);return n.splice(s,0,o),n}s.d(t,{$S:()=>n,Bo:()=>_,DG:()=>o,LY:()=>d,Oj:()=>a,PF:()=>r,ZQ:()=>c,cZ:()=>u,dc:()=>l,hq:()=>m,j7:()=>v,qM:()=>g,rm:()=>p,tT:()=>i,xW:()=>h});const h=(...e)=>e.reduce((e,t)=>{const s=new Uint8Array(e.length+t.length);return s.set(e,0),s.set(t,e.length),s},new Uint8Array(0));async function p(e,t){for(const s of e)if(await t(s))return!0;return!1}async function g(e,t){try{return await Promise.any(e.map(e=>t(e).then(e=>e?Promise.resolve(!0):Promise.reject(!1))))}catch(e){if(e instanceof AggregateError)return!1;throw e}}async function v(e,t){const s=await Promise.all(e.map(t));return e.filter((e,t)=>s[t])}function _(e){return e.filter(Boolean)}},"./src/utils/beacon/getShareableLocation.ts":(e,t,s)=>{"use strict";s.d(t,{q:()=>o});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts");const o=(e,t)=>{var s;const o=t.getRoom(e.getRoomId()),i=null==o||null===(s=o.currentState.beacons)||void 0===s?void 0:s.get((0,n.getBeaconInfoIdentifier)(e)),r=null==i?void 0:i.latestLocationEvent;return null!=i&&i.isLive&&r?r:null}},"./src/utils/beacon/index.ts":(e,t,s)=>{"use strict";s.d(t,{b1:()=>c,v9:()=>h,w7:()=>o,Mc:()=>n,J1:()=>v,mt:()=>p,R$:()=>a,nq:()=>g,d0:()=>r,dK:()=>w,fA:()=>A,jS:()=>_});const n=e=>{return t=e.timestamp||0,s=e.timeout,Math.max(0,t+s-Date.now());var t,s},o=e=>(e.beaconInfo.timestamp||0)+e.beaconInfo.timeout,i=(e,t)=>o(t)-o(e),r=(e,t)=>(t.beaconInfo.timestamp||0)-(e.beaconInfo.timestamp||0),a=e=>!e.isLive&&!!e.beaconInfo.timestamp&&e.beaconInfo.timestamp>Date.now()&&o(e)>Date.now();var l=s("./node_modules/matrix-js-sdk/src/logger.ts");let c=function(e){return e.Unavailable="Unavailable",e.PermissionDenied="PermissionDenied",e.PositionUnavailable="PositionUnavailable",e.Timeout="Timeout",e.Default="Default",e}({});const d={timeout:1e4,maximumAge:6e4},m=e=>{if(l.vF.error("Geolocation failed",e),!(e=>"object"==typeof e&&!!e.PERMISSION_DENIED)(e))return e instanceof Error&&e.message===c.Unavailable?c.Unavailable:c.Default;switch(null==e?void 0:e.code){case e.PERMISSION_DENIED:return c.PermissionDenied;case e.POSITION_UNAVAILABLE:return c.PositionUnavailable;case e.TIMEOUT:return c.Timeout;default:return c.Default}},u=()=>{if(!navigator.geolocation)throw new Error(c.Unavailable);return navigator.geolocation},h=e=>{const{latitude:t,longitude:s,altitude:n,accuracy:o}=e.coords;return{timestamp:Date.now(),latitude:t,longitude:s,altitude:null!=n?n:void 0,accuracy:o}},p=e=>`geo:${e.latitude},${e.longitude}${Number.isFinite(e.altitude)?`,${e.altitude}`:""}${Number.isFinite(e.accuracy)?`;u=${e.accuracy}`:""}`,g=e=>{const t=h(e);return{timestamp:t.timestamp,geoUri:p(t)}},v=async()=>{try{return await new Promise((e,t)=>{u().getCurrentPosition(e,t,d)})}catch(e){throw new Error(m(e))}},_=(e,t)=>{try{const s=e=>t(m(e)),n=u().watchPosition(e,s,d);return()=>{u().clearWatch(n)}}catch(e){throw new Error(m(e))}};var f=s("./node_modules/react/index.js"),y=s("./node_modules/matrix-js-sdk/src/matrix.ts"),b=s("./src/contexts/MatrixClientContext.tsx"),E=s("./src/hooks/useEventEmitter.ts");const w=e=>{const t=(0,f.useContext)(b.Ay),[s,n]=(0,f.useState)();(0,f.useEffect)(()=>{const s=e.getRoomId(),o=(0,y.getBeaconInfoIdentifier)(e),i=null==t?void 0:t.getRoom(s),r=null==i?void 0:i.currentState.beacons.get(o);(null==r?void 0:r.beaconInfoId)===e.getId()?n(r):n(void 0)},[e,t]);const o=(0,E.dF)(s,y.BeaconEvent.Update,()=>null==s?void 0:s.beaconInfoId);return(0,f.useEffect)(()=>{o&&o!==e.getId()&&n(void 0)},[o,e]),(0,f.useEffect)(()=>{s&&s.monitorLiveness()},[s]),s};var x=s("./src/stores/OwnBeaconStore.ts");const A=e=>{const[t,s]=(0,f.useState)(!1),n=(0,E.dF)(x.g.instance,x.q.LocationPublishError,()=>e.some(x.g.instance.beaconHasLocationPublishError)),o=(0,E.dF)(x.g.instance,x.q.BeaconUpdateError,()=>e.some(e=>x.g.instance.beaconUpdateErrors.has(e)));(0,f.useEffect)(()=>{o&&s(!1)},[o]),(0,f.useEffect)(()=>{s(!1)},[e]);return{onStopSharing:async()=>{s(!0);try{await Promise.all(e.map(e=>x.g.instance.stopBeacon(e)))}catch{s(!1)}},onResetLocationPublishError:()=>{e.forEach(e=>{x.g.instance.resetLocationPublishError(e)})},beacon:e.map(e=>x.g.instance.getBeaconById(e)).sort(i).shift(),stoppingInProgress:t,hasLocationPublishError:n,hasStopSharingError:o}}},"./src/utils/blobs.ts":(e,t,s)=>{"use strict";s.d(t,{F:()=>o});const n=["image/jpeg","image/gif","image/png","image/apng","image/webp","image/avif","video/mp4","video/webm","video/ogg","video/quicktime","audio/mp4","audio/webm","audio/aac","audio/mpeg","audio/ogg","audio/wave","audio/wav","audio/x-wav","audio/x-pn-wav","audio/flac","audio/x-flac"];function o(e){return n.includes(e)?e:"application/octet-stream"}},"./src/utils/colour.ts":(e,t,s)=>{"use strict";s.d(t,{a:()=>o});var n=s("./node_modules/lodash/lodash.js");function o(e){const t=2*Math.PI/e.length;return(0,n.split)(e,"").map((e,s)=>{if(" "===e)return e;const[n,o]=function(e,t){const s=127*t*Math.cos(e),n=127*t*Math.sin(e);return[s,n]}(s*t,1),[a,l,c]=function(e,t,s){let n=(e+16)/116;const o=.9505*i(n+t/500),a=1.089*i(n-s/200);n=i(n);const l=3.24096994*o-1.53738318*n-.49861076*a,c=-.96924364*o+1.8759675*n+.04155506*a,d=.05563008*o-.20397696*n+1.05697151*a;return[r(l),r(c),r(d)]}(75,n,o);return'<span data-mx-color="#'+a.toString(16).padStart(2,"0")+l.toString(16).padStart(2,"0")+c.toString(16).padStart(2,"0")+'">'+e+"</span>"}).join("")}function i(e){return e>.2069?Math.pow(e,3):.1284*e-.01771}function r(e){const t=function(e){return e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055}(e),s=Math.min(Math.max(t,0),1);return Math.round(255*s)}},"./src/utils/connection.ts":(e,t,s)=>{"use strict";s.d(t,{x:()=>o});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts");const o=e=>(t,s)=>{t!==n.SyncState.Error&&s!==t&&e()}},"./src/utils/createMatrixClient.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>d});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts");function i(e){return new Worker(new URL(s.p+s.u(3444),s.b),Object.assign({},e,{type:void 0}))}function r(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function a(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?r(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):r(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const l=window.localStorage;let c;try{c=window.indexedDB}catch{}function d(e){const t={useAuthorizationHeader:!0};return c&&l?t.store=new o.IndexedDBStore({indexedDB:c,dbName:"riot-web-sync",localStorage:l,workerFactory:i}):l&&(t.store=new o.MemoryStore({localStorage:l})),t.cryptoStore=c?new o.IndexedDBCryptoStore(c,"matrix-js-sdk:crypto"):l?new o.LocalStorageCryptoStore(l):new o.MemoryCryptoStore,(0,o.createClient)(a(a({},t),e))}},"./src/utils/crypto/deviceInfo.ts":(e,t,s)=>{"use strict";async function n(e,t,s,n){var o;const i=e.getCrypto();if(!i)return;return null===(o=(await i.getUserDeviceInfo([t],n)).get(t))||void 0===o?void 0:o.get(s)}async function o(e,t){var s,n;const o=e.getCrypto();if(!o)return new Set;const i=await o.getUserDeviceInfo([t]);return new Set(null!==(s=null===(n=i.get(t))||void 0===n?void 0:n.keys())&&void 0!==s?s:[])}s.d(t,{G:()=>n,a:()=>o})},"./src/utils/crypto/index.ts":(e,t,s)=>{"use strict";s.d(t,{Q:()=>n});const n="m.megolm.v1.aes-sha2"},"./src/utils/crypto/shouldForceDisableEncryption.ts":(e,t,s)=>{"use strict";s.d(t,{I:()=>o});var n=s("./src/utils/WellKnownUtils.ts");function o(e){const t=(0,n.d_)(e);if(t){return!0===t.force_disable}return!1}},"./src/utils/device/dehydration.ts":(e,t,s)=>{"use strict";s.d(t,{p:()=>o});var n=s("./node_modules/matrix-js-sdk/src/logger.ts");async function o(e,t={}){const s=e.getCrypto();s&&await s.isDehydrationSupported()&&(n.vF.debug("Starting device dehydration"),await s.startDehydration(t))}},"./src/utils/device/parseUserAgent.ts":(e,t,s)=>{"use strict";s.d(t,{b:()=>i,y:()=>a});var n=s("./node_modules/ua-parser-js/src/ua-parser.js"),o=s.n(n);let i=function(e){return e.Desktop="Desktop",e.Mobile="Mobile",e.Web="Web",e.Unknown="Unknown",e}({});const r=(e,t)=>e&&[e,t].filter(Boolean).join(" "),a=e=>{if(!e)return{deviceType:i.Unknown};const t=new(o())(e),s=t.getBrowser(),n=t.getDevice(),a=t.getOS(),l=((e,t,s,n)=>{var o;return"mobile"===t.type||null!==(o=n.name)&&void 0!==o&&o.includes("Android")||e.indexOf("; iOS ")>-1?i.Mobile:"Electron"===s.name?i.Desktop:s.name?i.Web:i.Unknown})(e,n,s,a),c=l===i.Web||l===i.Desktop,d=r(a.name,c?void 0:a.version),m=r(n.vendor,n.model),u=r(s.name,s.version),{customDeviceModel:h,customDeviceOS:p}=l!==i.Unknown?(e=>{if(e.includes("Mozilla/"))return{};if(!e.includes("("))return{};const t=e.substring(e.indexOf("(")+1).split("; ");return{customDeviceModel:t[0]||void 0,customDeviceOS:t[1]||void 0}})(e):{};return{deviceType:l,deviceModel:m||h,deviceOperatingSystem:d||p,client:u}}},"./src/utils/direct-messages.ts":(e,t,s)=>{"use strict";s.d(t,{qv:()=>A,OZ:()=>S,Cp:()=>w,rh:()=>C,UZ:()=>E});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./src/createRoom.ts"),a=s("./src/dispatcher/actions.ts"),l=s("./src/dispatcher/dispatcher.ts"),c=s("./src/models/LocalRoom.ts"),d=s("./src/utils/local-room.ts"),m=s("./src/utils/DMRoomMap.ts"),u=s("./src/utils/dm/findDMForUser.ts");var h=s("./src/utils/rooms.ts"),p=s("./node_modules/matrix-js-sdk/src/types.ts"),g=s("./src/utils/crypto/index.ts");var v=s("./src/utils/localRoom/isLocalRoom.ts"),_=s("./src/UserAddress.ts");async function f(e,t,s=!0){const n=t.map(e=>e.userId);let o;var i;1===n.length?o=(0,u.D)(e,n[0]):o=null!==(i=m.A.shared().getDMRoomForIdentifiers(n))&&void 0!==i?i:void 0;if(o&&!(0,v.F)(o))return l.A.dispatch({action:a.r.ViewRoom,room_id:o.roomId,should_peek:!1,joining:!1,metricsTrigger:"MessageUser"}),Promise.resolve(o.roomId);const c={inlineErrors:!0};await C(e,t)&&(c.encryption=!0);const d=1===n.length&&n[0]===e.getUserId();return 1!==n.length||d||(c.dmUserId=n[0]),n.length>1&&(c.createOpts=n.reduce((t,s)=>{const n=(0,_.Z)(s);if("email"===n){const n={id_server:e.getIdentityServerUrl(!0),medium:"email",address:s};t.invite_3pid.push(n)}else"mx-user-id"===n&&t.invite.push(s);return t},{invite:[],invite_3pid:[]})),c.spinner=s,(0,r.Ay)(e,c)}const y=async(e,t)=>{const s=e.filter(e=>e instanceof S);if(0===s.length)return e;const n=await b(s,t);return e.map(e=>{var t,s;if(!(e instanceof S))return e;const o=n.find(t=>t.threePidId===e.userId);return o?new A({user_id:o.mxid,avatar_url:null==o||null===(t=o.profile)||void 0===t?void 0:t.avatar_url,display_name:null==o||null===(s=o.profile)||void 0===s?void 0:s.displayname}):e})},b=async(e,t)=>{const s=await(async(e,t)=>{if(!t.identityServer)return[];if(0===e.length)return[];const s=await t.identityServer.getAccessToken();return s?(await t.bulkLookupThreePids(e.map(e=>[e.isEmail?"email":"msisdn",e.userId]),s)).threepids.map(([e,t,s])=>({threePidId:t,mxid:s})):[]})(e,t),n=s.map(async e=>{let s=null;try{s=await t.getProfileInfo(e.mxid)}catch{}return{threePidId:e.threePidId,mxid:e.mxid,profile:s}});return Promise.all(n)};async function E(e,t){let s=t;try{s=await y(t,e)}catch(e){i.vF.warn("Error resolving 3rd-party members",e)}const n=function(e,t){const s=t.map(e=>e.userId);let n;var o;return n=1===s.length?null!==(o=(0,u.D)(e,s[0]))&&void 0!==o?o:null:m.A.shared().getDMRoomForIdentifiers(s),n}(e,s);if(n)return l.A.dispatch({action:a.r.ViewRoom,room_id:n.roomId,should_peek:!1,joining:!1,metricsTrigger:"MessageUser"}),n.roomId;if(1===t.length&&t[0]instanceof S&&(0,h.u)(e))return await f(e,t);const r=await async function(e,t){const s=e.getUserId(),n=new c.Np(c.TM+e.makeTxnId(),e,s),i=[];return i.push(new o.MatrixEvent({event_id:`~${n.roomId}:${e.makeTxnId()}`,type:o.EventType.RoomCreate,content:{creator:s,room_version:o.KNOWN_SAFE_ROOM_VERSION},state_key:"",sender:s,room_id:n.roomId,origin_server_ts:Date.now()})),await C(e,t)&&(n.encrypted=!0,i.push(new o.MatrixEvent({event_id:`~${n.roomId}:${e.makeTxnId()}`,type:o.EventType.RoomEncryption,content:{algorithm:g.Q},sender:s,state_key:"",room_id:n.roomId,origin_server_ts:Date.now()}))),i.push(new o.MatrixEvent({event_id:`~${n.roomId}:${e.makeTxnId()}`,type:o.EventType.RoomMember,content:{displayname:s,membership:p.O.Join},state_key:s,sender:s,room_id:n.roomId})),t.forEach(t=>{var r,a;i.push(new o.MatrixEvent({event_id:`~${n.roomId}:${e.makeTxnId()}`,type:o.EventType.RoomMember,content:{displayname:t.name,avatar_url:null!==(r=t.getMxcAvatarUrl())&&void 0!==r?r:void 0,membership:p.O.Invite,isDirect:!0},state_key:t.userId,sender:s,room_id:n.roomId})),i.push(new o.MatrixEvent({event_id:`~${n.roomId}:${e.makeTxnId()}`,type:o.EventType.RoomMember,content:{displayname:t.name,avatar_url:null!==(a=t.getMxcAvatarUrl())&&void 0!==a?a:void 0,membership:p.O.Join},state_key:t.userId,sender:t.userId,room_id:n.roomId}))}),n.targets=t,n.updateMyMembership(p.O.Join),n.addLiveEvents(i,{addToState:!0}),n.currentState.setStateEvents(i),n.name=n.getDefaultRoomName(e.getUserId()),e.store.storeRoom(n),n}(e,s);return l.A.dispatch({action:a.r.ViewRoom,room_id:r.roomId,joining:!1,targets:s}),r.roomId}async function w(e,t){if(t.isNew)return t.state=c.cd.CREATING,e.emit(o.ClientEvent.Room,t),f(e,t.targets,!1).then(s=>{if(!s)throw new Error(`startDm for local room ${t.roomId} didn't return a room Id`);return t.actualRoomId=s,(0,d.m)(e,t,s)},()=>{i.vF.warn(`Error creating DM for local room ${t.roomId}`),t.state=c.cd.ERROR,e.emit(o.ClientEvent.Room,t)})}class x{}class A extends x{constructor(e){super(),(0,n.A)(this,"_userId",void 0),(0,n.A)(this,"displayName",void 0),(0,n.A)(this,"avatarUrl",void 0),this._userId=e.user_id,this.displayName=e.display_name,this.avatarUrl=e.avatar_url}get name(){return this.displayName||this._userId}get userId(){return this._userId}getMxcAvatarUrl(){return this.avatarUrl}}class S extends x{constructor(e){super(),(0,n.A)(this,"id",void 0),this.id=e}get isEmail(){return this.id.includes("@")}get name(){return this.id}get userId(){return this.id}getMxcAvatarUrl(){}}async function C(e,t){if((0,h.u)(e)){if(1===t.length&&t[0]instanceof S)return!0;if(!t.some(e=>e instanceof S)){const s=t.map(e=>e.userId);if(await(0,r.qX)(e,s))return!0}}return!1}},"./src/utils/dm/filterValidMDirect.ts":(e,t,s)=>{"use strict";s.d(t,{d:()=>n});const n=e=>{if(null===e||"object"!=typeof e)return{valid:!1,filteredContent:{}};const t=new Map;let s=!0;for(const[n,o]of Object.entries(e)){if("string"!=typeof n){s=!1;continue}if(!Array.isArray(o)){s=!1;continue}const e=[];t.set(n,e);for(const t of o)"string"==typeof t?e.push(t):s=!1}return{valid:s,filteredContent:Object.fromEntries(t.entries())}}},"./src/utils/dm/findDMForUser.ts":(e,t,s)=>{"use strict";s.d(t,{D:()=>c});var n=s("./node_modules/matrix-js-sdk/src/types.ts"),o=s("./src/utils/DMRoomMap.ts"),i=s("./src/utils/localRoom/isLocalRoom.ts"),r=s("./src/utils/membership.ts"),a=s("./src/utils/room/getFunctionalMembers.ts");function l(e,t,s){const o=e.filter(e=>{if(e&&e.getMyMembership()===n.O.Join){if((0,i.F)(e))return!1;const n=(0,a.B)(e),o=e.currentState.getMembers().filter(e=>!n.includes(e.userId)&&e.membership&&(0,r.bV)(e.membership));if(o.find(e=>e.userId===t)&&2===o.length)return!0;const l=e.currentState.getStateEvents("m.room.third_party_invite")||[];return s&&1===o.length&&1===l.length}return!1}).sort((e,t)=>t.getLastActiveTimestamp()-e.getLastActiveTimestamp());if(o.length)return o[0]}function c(e,t){const s=l(o.A.shared().getDMRoomsForUserId(t).map(t=>e.getRoom(t)).filter(e=>null!==e),t,!0);if(s)return s;const n=o.A.shared().getRoomIds();return l(Array.from(n).map(t=>e.getRoom(t)).filter(e=>null!==e),t,!1)}},"./src/utils/image-media.ts":(e,t,s)=>{"use strict";s.d(t,{f:()=>a,p:()=>d});var n,o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),i=s("./src/WorkerManager.ts");class r{constructor(){var e;(0,o.A)(this,"worker",new i.O(new Worker(new URL(s.p+s.u(4980),s.b),Object.assign({},e,{type:void 0}))))}static get instance(){return r.internalInstance}getBlurhash(e){return this.worker.call({imageData:e}).then(e=>e.blurhash)}}n=r,(0,o.A)(r,"internalInstance",new n);const a="xyz.amorgan.blurhash",l=800,c=600;async function d(e,t,s,n,o=!0){let i,d,m,u=t,h=s;h>c&&(u=Math.floor(u*(c/h)),h=c),u>l&&(h=Math.floor(h*(l/u)),u=l);try{i=new window.OffscreenCanvas(u,h),d=i.getContext("2d")}catch{i=document.createElement("canvas"),i.width=u,i.height=h,d=i.getContext("2d")}d.drawImage(e,0,0,u,h),m=window.OffscreenCanvas&&i instanceof OffscreenCanvas?i.convertToBlob({type:n}):new Promise(e=>i.toBlob(e,n));const p=d.getImageData(0,0,u,h),g=o?await r.instance.getBlurhash(p):void 0,v=await m;return{info:{thumbnail_info:{w:u,h,mimetype:v.type,size:v.size},w:t,h:s,[a]:g},thumbnail:v}}},"./src/utils/leave-behaviour.ts":(e,t,s)=>{"use strict";s.d(t,{U:()=>x,e:()=>A});var n=s("./node_modules/matrix-js-sdk/src/utils.ts"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./src/Modal.tsx"),a=s("./src/components/views/elements/Spinner.tsx"),l=s("./src/languageHandler.tsx"),c=s("./src/components/views/dialogs/ErrorDialog.tsx"),d=s("./src/stores/spaces/index.ts"),m=s("./src/stores/spaces/SpaceStore.ts"),u=s("./src/dispatcher/dispatcher.ts"),h=s("./src/dispatcher/actions.ts"),p=s("./src/components/views/elements/DialogButtons.tsx"),g=s("./src/components/views/dialogs/BaseDialog.tsx"),v=s("./src/components/views/spaces/SpaceChildrenPicker.tsx"),_=s("./src/utils/arrays.ts"),f=s("./src/utils/membership.ts");const y=({space:e,onFinished:t})=>{const s=(0,o.useMemo)(()=>{const t=new Set(m.Ay.instance.getSpaceFilteredRoomIds(e.roomId));return m.Ay.instance.traverseSpace(e.roomId,s=>{e.roomId!==s&&t.add(s)},!1),(0,_.Bo)(Array.from(t).map(t=>e.client.getRoom(t)))},[e]),[n,r]=(0,o.useState)([]),a=(0,o.useMemo)(()=>new Set(n),[n]);let c,d;if(e.getJoinRule()!==i.JoinRule.Public&&(c=(0,l._t)("space|leave_dialog_public_rejoin_warning")),(0,f.GR)(e))d=(0,l._t)("space|leave_dialog_only_admin_warning");else{n.filter(f.GR).length>0&&(d=(0,l._t)("space|leave_dialog_only_admin_room_warning"))}return o.createElement(g.A,{title:(0,l._t)("space|leave_dialog_title",{spaceName:e.name}),className:"mx_LeaveSpaceDialog",contentId:"mx_LeaveSpaceDialog",onFinished:()=>t(!1),fixedWidth:!1},o.createElement("div",{className:"mx_Dialog_content",id:"mx_LeaveSpaceDialog"},o.createElement("p",null,(0,l._t)("space|leave_dialog_description",{},{spaceName:()=>o.createElement("strong",null,e.name)})," ",c,c&&o.createElement(o.Fragment,null," "),s.length>0&&(0,l._t)("space|leave_dialog_option_intro")),s.length>0&&o.createElement(v.A,{space:e,spaceChildren:s,selected:a,onChange:r,noneLabel:(0,l._t)("space|leave_dialog_option_none"),allLabel:(0,l._t)("space|leave_dialog_option_all"),specificLabel:(0,l._t)("space|leave_dialog_option_specific")}),d&&o.createElement("div",{className:"mx_LeaveSpaceDialog_section_warning"},d)),o.createElement(p.A,{primaryButton:(0,l._t)("space|leave_dialog_action"),primaryButtonClass:"danger",onPrimaryButtonClick:()=>t(!0,n),hasCancel:!0,onCancel:()=>t(!1)}))};var b=s("./src/utils/space.tsx"),E=s("./src/contexts/SDKContext.ts"),w=s("./src/settings/SettingsStore.ts");async function x(e,t,s=!0,p=!0){var g;let v;p&&(v=r.Ay.createDialog(a.A,void 0,"mx_Dialog_spinner"));let _=!0;const f=e.getRoomUpgradeHistory(t,!0,w.A.getValue("feature_dynamic_room_predecessors"));if(f&&f.length>0){f[f.length-1].roomId!==t&&(_=!1)}const y=e.getRoom(t);if(!y)throw new Error(`Expected to find room for id ${t}`);await Promise.all(y.getPendingEvents().filter(e=>[i.EventStatus.QUEUED,i.EventStatus.ENCRYPTING,i.EventStatus.SENDING].includes(e.status)).map(e=>new Promise((t,s)=>{const n=()=>{var o;e.status===i.EventStatus.NOT_SENT&&(null===(o=v)||void 0===o||o.close(),s(e.error));e.status&&e.status!==i.EventStatus.SENT||(e.off(i.MatrixEventEvent.Status,n),t())};e.on(i.MatrixEventEvent.Status,n)})));let b={};if(_)b=await e.leaveRoomChain(t,s);else try{await e.leave(t)}catch(e){if(e instanceof i.MatrixError){const s=e.data.error||(0,l._t)("room|leave_unexpected_error");b[t]=Object.assign(new Error(s),{errcode:e.data.errcode,data:e.data})}else e instanceof Error?b[t]=e:b[t]=new Error("Failed to leave room for unknown causes")}if(s){const s=Object.values(b).find(e=>"M_LIMIT_EXCEEDED"===(null==e?void 0:e.errcode));var A;if(s)return await(0,n.yy)(null!==(A=s.data.retry_after_ms)&&void 0!==A?A:100),x(e,t,!1,!1)}null===(g=v)||void 0===g||g.close();const S=Object.entries(b).filter(e=>!!e[1]);if(S.length>0){const e=[];for(const s of S){const n=s[1];let i=(0,l._t)("room|leave_unexpected_error");if(null!=n&&n.errcode&&n.message){if("M_CANNOT_LEAVE_SERVER_NOTICE_ROOM"===n.errcode)return void r.Ay.createDialog(c.A,{title:(0,l._t)("room|leave_server_notices_title"),description:(0,l._t)("room|leave_server_notices_description")});i=b[t].message}e.push(i,o.createElement("BR"))}return void r.Ay.createDialog(c.A,{title:(0,l._t)("room|leave_error_title"),description:e})}if(E.M.instance.roomViewStore.getRoomId()===t)if((0,d.ww)(m.Ay.instance.activeSpace))u.A.dispatch({action:h.r.ViewHomePage});else if(m.Ay.instance.activeSpace===t){const e=m.Ay.instance.getCanonicalParent(t);null!==e?u.A.dispatch({action:h.r.ViewRoom,room_id:e.roomId,metricsTrigger:void 0}):u.A.dispatch({action:h.r.ViewHomePage})}else u.A.dispatch({action:h.r.ViewRoom,room_id:m.Ay.instance.activeSpace,metricsTrigger:void 0})}const A=e=>{const{finished:t}=r.Ay.createDialog(y,{space:e},"mx_LeaveSpaceDialog_wrapper");t.then(async([t,s])=>{t&&(await(0,b.Yt)(e,s,t=>x(e.client,t.roomId)),u.A.dispatch({action:h.r.AfterLeaveRoom,room_id:e.roomId}))})}},"./src/utils/local-room.ts":(e,t,s)=>{"use strict";s.d(t,{Y:()=>d,m:()=>m});var n=s("./node_modules/matrix-js-sdk/src/logger.ts"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./src/dispatcher/dispatcher.ts"),r=s("./src/models/LocalRoom.ts"),a=s("./src/utils/localRoom/isLocalRoom.ts");function l(e,t){var s;if(!t.actualRoomId)return!1;const n=e.getRoom(t.actualRoomId);if(!n)return!1;if(n.getInvitedAndJoinedMemberCount()!==1+(null===(s=t.targets)||void 0===s?void 0:s.length))return!1;if(0===n.currentState.getStateEvents(o.EventType.RoomHistoryVisibility).length)return!1;const i=n.currentState.getStateEvents(o.EventType.RoomEncryption);return!0!==t.encrypted||0!==i.length}const c=e=>{if(void 0===e)throw new Error("Local room in CREATED state without actual room Id occurred");return!0};async function d(e,t,s){if((0,a.F)(e)){const n=s.getRoom(e);return n.isCreated&&c(n.actualRoomId)?t(n.actualRoomId):new Promise((e,s)=>{n.afterCreateCallbacks.push(n=>{t(n).then(e).catch(s)}),i.A.dispatch({action:"local_room_event",roomId:n.roomId})})}return t(e)}async function m(e,t,s){return l(e,t)?u(t,s).then(()=>(t.state=r.cd.CREATED,e.emit(o.ClientEvent.Room,t),Promise.resolve(s))):new Promise((i,a)=>{const c=()=>{d&&clearInterval(d),m&&clearTimeout(m),u(t,s).then(()=>{t.state=r.cd.CREATED,e.emit(o.ClientEvent.Room,t),i(s)}).catch(e=>{a(e)})},d=window.setInterval(()=>{l(e,t)&&c()},500),m=window.setTimeout(()=>{n.vF.warn(`Assuming local room ${t.roomId} is ready after hitting timeout`),c()},5e3)})}async function u(e,t){for(const s of e.afterCreateCallbacks)await s(t);e.afterCreateCallbacks=[]}},"./src/utils/localRoom/isLocalRoom.ts":(e,t,s)=>{"use strict";s.d(t,{F:()=>o});var n=s("./src/models/LocalRoom.ts");function o(e){return"string"==typeof e?e.startsWith(n.TM):e instanceof n.Np}},"./src/utils/location/LocationShareErrors.ts":(e,t,s)=>{"use strict";s.d(t,{$:()=>o,C:()=>i});var n=s("./src/languageHandler.tsx");let o=function(e){return e.MapStyleUrlNotConfigured="MapStyleUrlNotConfigured",e.MapStyleUrlNotReachable="MapStyleUrlNotReachable",e.WebGLNotEnabled="WebGLNotEnabled",e.Default="Default",e}({});const i=e=>{switch(e){case o.MapStyleUrlNotConfigured:return(0,n._t)("location_sharing|MapStyleUrlNotConfigured");case o.WebGLNotEnabled:return(0,n._t)("location_sharing|WebGLNotEnabled");case o.MapStyleUrlNotReachable:default:return(0,n._t)("location_sharing|MapStyleUrlNotReachable")}}},"./src/utils/location/findMapStyleUrl.ts":(e,t,s)=>{"use strict";s.d(t,{M:()=>a});var n=s("./node_modules/matrix-js-sdk/src/logger.ts"),o=s("./src/SdkConfig.ts"),i=s("./src/utils/WellKnownUtils.ts"),r=s("./src/utils/location/LocationShareErrors.ts");function a(e){var t,s;const a=null!==(t=null===(s=(0,i.P2)(e))||void 0===s?void 0:s.map_style_url)&&void 0!==t?t:o.Ay.get().map_style_url;if(!a)throw n.vF.error("'map_style_url' missing from homeserver .well-known area, and missing from from config.json."),new Error(r.$.MapStyleUrlNotConfigured);return a}},"./src/utils/location/index.ts":(e,t,s)=>{"use strict";s.d(t,{$X:()=>a.$,Gn:()=>u,M0:()=>n.M,CZ:()=>a.C,qy:()=>i,jm:()=>r,eC:()=>m,XB:()=>d,Ff:()=>g});var n=s("./src/utils/location/findMapStyleUrl.ts"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts");const i=e=>{var t;const s=o.M_ASSET.findIn(e);return(null!==(t=null==s?void 0:s.type)&&void 0!==t?t:o.LocationAssetType.Self)==o.LocationAssetType.Self},r=e=>{var t;const s=e.getContent(),n=o.M_LOCATION.findIn(s);return null!==(t=null==n?void 0:n.uri)&&void 0!==t?t:s.geo_uri};var a=s("./src/utils/location/LocationShareErrors.ts"),l=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");function c(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}const d=e=>{function t(e){const t=parseFloat(e);return Number.isNaN(t)?null:t}const s=e.match(/^\s*geo:(.*?)\s*$/);if(!s)return;const n=s[1].split(";"),o=n[0].split(",");let i;for(const e of n.slice(1)){const s=e.match(/u=(.*)/);s&&(i=t(s[1]))}const r=t(o[0]),a=t(o[1]);if(null===r||null===a)return;const d={latitude:r,longitude:a,altitude:t(o[2]),accuracy:i,altitudeAccuracy:null,heading:null,speed:null};return function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?c(Object(s),!0).forEach(function(t){(0,l.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):c(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}({toJSON:()=>d},d)},m=e=>`https://www.openstreetmap.org/?mlat=${e.latitude}&mlon=${e.longitude}#map=16/${e.latitude}/${e.longitude}`,u=e=>{const t=e.getContent(),s=t[o.M_LOCATION.name];if(void 0!==s){const e=s.uri;if(void 0!==e){const t=d(e);return t?m(t):null}}else{const e=t.geo_uri;if(e){const t=d(e);return t?m(t):null}}return null};var h=s("./src/languageHandler.tsx"),p=s("./src/SdkConfig.ts");const g=e=>{const t=p.Ay.get().brand;switch(e){case 1:return(0,h._t)("location_sharing|failed_permission",{brand:t});case 2:return(0,h._t)("location_sharing|failed_generic");case 3:return(0,h._t)("location_sharing|failed_timeout");case 4:return(0,h._t)("location_sharing|failed_unknown")}}},"./src/utils/maps.ts":(e,t,s)=>{"use strict";s.d(t,{C:()=>o,h:()=>i});var n=s("./src/utils/arrays.ts");function o(e,t){const s=[...e.keys()],o=[...t.keys()],i=(0,n.ZQ)(s,o);return{changed:(0,n.LY)(s,o).filter(s=>e.get(s)!==t.get(s)),added:i.added,removed:i.removed}}class i extends Map{constructor(e){super(e)}getOrCreate(e,t){return this.has(e)?this.get(e):(this.set(e,t),t)}remove(e){const t=this.get(e);return this.delete(e),t}}},"./src/utils/membership.ts":(e,t,s)=>{"use strict";s.d(t,{Cs:()=>c,E3:()=>m,GR:()=>p,_T:()=>a,bV:()=>u,cd:()=>l,vB:()=>h,yE:()=>d});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./node_modules/matrix-js-sdk/src/types.ts"),i=s("./src/MatrixClientPeg.ts"),r=s("./src/settings/SettingsStore.ts");let a=function(e){return e.Join="JOIN",e.Invite="INVITE",e.Leave="LEAVE",e}({});function l(e){const t={[a.Invite]:[],[a.Join]:[],[a.Leave]:[]};for(const s of e){s.getMyMembership()&&t[m(s)].push(s)}return t}function c(e){return e===o.O.Invite?a.Invite:e===o.O.Join||r.A.getValue("feature_ask_to_join")&&e===o.O.Knock?a.Join:a.Leave}function d(e){var t,s;const n=null===(t=i.J.get())||void 0===t?void 0:t.getSafeUserId(),r=n?e.getMember(n):null,a=null==r||null===(s=r.events.member)||void 0===s?void 0:s.getPrevContent().membership;return(null==r?void 0:r.isKicked())&&a===o.O.Knock}function m(e,t){return d(e)?a.Join:c(null!=t?t:e.getMyMembership())}function u(e){const t=c(e);return t===a.Join||t===a.Invite}async function h(e,t,s,o={timeout:1500}){var i,r;const{timeout:a}=o;let l;return null!==(null!==(i=null===(r=e.getRoom(t))||void 0===r?void 0:r.getMember(s))&&void 0!==i?i:null)||new Promise(o=>{l=function(e,n,i){i.userId===s&&i.roomId===t&&o(!0)},e.on(n.RoomStateEvent.NewMember,l),window.setTimeout(o,a,!1)}).finally(()=>{e.removeListener(n.RoomStateEvent.NewMember,l)})}function p(e){var t;const s=null===(t=e.getMember(e.client.getSafeUserId()))||void 0===t?void 0:t.powerLevel,n=e.getJoinedMembers().map(e=>e.powerLevel),o=Math.max(...n.filter(e=>"number"==typeof e));return o===s&&n.lastIndexOf(o)==n.indexOf(o)}},"./src/utils/notifications.ts":(e,t,s)=>{"use strict";s.d(t,{G9:()=>h,HG:()=>a,J7:()=>u,W7:()=>_,XC:()=>p,aI:()=>m,bR:()=>v,gM:()=>f,nx:()=>g,uG:()=>d,uk:()=>l});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts"),o=s("./src/settings/SettingsStore.ts"),i=s("./src/stores/notifications/NotificationLevel.ts"),r=s("./src/Unread.ts");const a="com.famedly.marked_unread",l="m.marked_unread",c=["notificationsEnabled","notificationBodyEnabled","audioNotificationsEnabled"];function d(e){return`${n.LOCAL_NOTIFICATION_SETTINGS_PREFIX.name}.${e}`}async function m(e){if(e.isGuest())return;const t=d(e.deviceId);if(!e.getAccountData(t)){const s=!c.some(e=>o.A.getValue(e));await e.setAccountData(t,{is_silenced:s})}}function u(e){var t,s;const n=d(e.deviceId),o=e.getAccountData(n);return null!==(t=null==o||null===(s=o.getContent())||void 0===s?void 0:s.is_silenced)&&void 0!==t&&t}async function h(e,t){const s=e.getLastLiveEvent();await v(e,t,!1);try{if(s){const i=o.A.getValue("sendReadReceipts",e.roomId)?n.ReceiptType.Read:n.ReceiptType.ReadPrivate;return await t.sendReadReceipt(s,i,!0)}return{}}finally{e.setUnreadNotificationCount(n.NotificationCountType.Highlight,0),e.setUnreadNotificationCount(n.NotificationCountType.Total,0);for(const t of e.getThreads())e.setThreadUnreadNotificationCount(t.id,n.NotificationCountType.Highlight,0),e.setThreadUnreadNotificationCount(t.id,n.NotificationCountType.Total,0)}}function p(e){const t=e.getRooms().reduce((t,s)=>{if((0,r.GN)(s,!0)){const n=h(s,e);t.push(n)}return t},[]);return Promise.all(t)}function g(e){var t,s;const n=null===(t=e.getAccountData(l))||void 0===t||null===(t=t.getContent())||void 0===t?void 0:t.unread,o=null===(s=e.getAccountData(a))||void 0===s||null===(s=s.getContent())||void 0===s?void 0:s.unread;return null!=n?n:o}async function v(e,t,s){const n=g(e);Boolean(n)!==s&&await t.setRoomAccountData(e.roomId,l,{unread:s})}function _(e){return e<=i.S.None?void 0:e<=i.S.Activity?"default":e<=i.S.Notification?"success":"critical"}function f(e){switch(e.threadsAggregateNotificationType){case n.NotificationCountType.Highlight:return i.S.Highlight;case n.NotificationCountType.Total:return i.S.Notification;default:return i.S.Activity}}},"./src/utils/objects.ts":(e,t,s)=>{"use strict";s.d(t,{Eg:()=>l,Gv:()=>d,No:()=>a,ZV:()=>c,aG:()=>i,hn:()=>o,tn:()=>r});var n=s("./src/utils/arrays.ts");function o(e,t){const s=new Map(Object.entries(e));for(const e of t)s.delete(e);return Array.from(s.entries()).reduce((e,[t,s])=>(e[t]=s,e),{})}function i(e,t){const s=Object.keys(e),i=(0,n.ZQ)(s,t);return 0===i.removed.length?r(e):o(e,i.removed)}function r(e,t){const s={};for(const[n,o]of Object.entries(e))s[n]=o,t&&(s[n]=t(n,o));return s}function a(e,t){if(e===t)return!1;const s=Object.keys(e),o=Object.keys(t);if(s.length!==o.length)return!0;const i=(0,n.LY)(s,o);return i.length!==s.length||i.some(s=>e[s]!==t[s])}function l(e,t){const s=function(e,t){const s=Object.keys(e),o=Object.keys(t),i=(0,n.ZQ)(s,o);return{changed:(0,n.LY)(s,o).filter(s=>e[s]!==t[s]),added:i.added,removed:i.removed}}(e,t);return(0,n.hq)(s.removed,s.added,s.changed)}function c(e){return JSON.parse(JSON.stringify(e))}function d(e){return e&&"object"==typeof e&&!Array.isArray(e)}},"./src/utils/oidc/persistOidcSettings.ts":(e,t,s)=>{"use strict";s.d(t,{HB:()=>l,UF:()=>a,X5:()=>m,ag:()=>d,rW:()=>c});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts");const o="mx_oidc_client_id",i="mx_oidc_token_issuer",r="mx_oidc_id_token",a=(e,t,s)=>{localStorage.setItem(o,e),localStorage.setItem(i,t),localStorage.setItem(r,s)},l=()=>{var e;return null!==(e=localStorage.getItem(i))&&void 0!==e?e:void 0},c=()=>{const e=localStorage.getItem(o);if(!e)throw new Error("Oidc client id not found in storage");return e},d=()=>{const e=m();if(e)return(0,n.decodeIdToken)(e);const t=localStorage.getItem("mx_oidc_id_token_claims");return t?JSON.parse(t):void 0},m=()=>{var e;return null!==(e=localStorage.getItem(r))&&void 0!==e?e:void 0}},"./src/utils/permalinks/MatrixToPermalinkConstructor.ts":(e,t,s)=>{"use strict";s.d(t,{Ay:()=>a,Vi:()=>r,pc:()=>i});var n=s("./src/utils/permalinks/PermalinkConstructor.ts");const o="matrix.to",i=`https://${o}`,r=`^(?:https?://)?${o.replace(".","\\.")}/#/(.*)`;class a extends n.A{constructor(){super()}forEvent(e,t,s){return`${i}/#/${e}/${t}${this.encodeServerCandidates(s)}`}forRoom(e,t){return`${i}/#/${e}${this.encodeServerCandidates(t)}`}forUser(e){return`${i}/#/${e}`}forEntity(e){return`${i}/#/${e}`}isPermalinkHost(e){return e===o}encodeServerCandidates(e){return e&&0!==e.length?`?via=${e.map(e=>encodeURIComponent(e)).join("&via=")}`:""}parsePermalink(e){if(!e)throw new Error("Does not appear to be a permalink");const t=[...e.matchAll(new RegExp(r,"gi"))][0];if(!t||t.length<2)throw new Error("Does not appear to be a permalink");const s=t[1].split("/"),o=s[0];if("@"===o[0])return n.Y.forUser(o);if("#"===o[0]||"!"===o[0]){if(1===s.length){const[e,t=""]=o.split("?"),s=t.split(/&?via=/g).filter(e=>!!e);return n.Y.forRoom(e,s)}const e=s.length>1?s.slice(1).join("/"):"",[t,i=""]=e.split("?"),r=i.split(/&?via=/g).filter(e=>!!e);return n.Y.forEvent(o,t,r)}throw new Error("Unknown entity type in permalink")}}},"./src/utils/permalinks/PermalinkConstructor.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>n,Y:()=>o});class n{forEvent(e,t,s=[]){throw new Error("Not implemented")}forRoom(e,t=[]){throw new Error("Not implemented")}forUser(e){throw new Error("Not implemented")}forEntity(e){throw new Error("Not implemented")}isPermalinkHost(e){throw new Error("Not implemented")}parsePermalink(e){throw new Error("Not implemented")}}class o{constructor(e,t,s,n){this.roomIdOrAlias=e,this.eventId=t,this.userId=s,this.viaServers=n}static forUser(e){return new o(null,null,e,null)}static forRoom(e,t=[]){return new o(e,null,null,t)}static forEvent(e,t,s=[]){return new o(e,t,null,s)}get primaryEntityId(){return this.roomIdOrAlias||this.userId}}},"./src/utils/permalinks/Permalinks.ts":(e,t,s)=>{"use strict";s.d(t,{pE:()=>_,Ex:()=>T,h3:()=>A,aW:()=>E,rl:()=>f,B4:()=>b,Ne:()=>y,$N:()=>C,bP:()=>w,uK:()=>x});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/is-ip/index.js"),i=s.n(o),r=s("./node_modules/matrix-js-sdk/src/utils.ts"),a=s("./node_modules/matrix-js-sdk/src/matrix.ts"),l=s("./node_modules/matrix-js-sdk/src/types.ts"),c=s("./node_modules/matrix-js-sdk/src/logger.ts"),d=s("./src/utils/permalinks/MatrixToPermalinkConstructor.ts"),m=s("./src/utils/permalinks/PermalinkConstructor.ts");class u extends m.A{constructor(e){if(super(),(0,n.A)(this,"elementUrl",void 0),this.elementUrl=e,!this.elementUrl.startsWith("http:")&&!this.elementUrl.startsWith("https:"))throw new Error("Element prefix URL does not appear to be an HTTP(S) URL")}forEvent(e,t,s){return`${this.elementUrl}/#/room/${e}/${t}${this.encodeServerCandidates(s)}`}forRoom(e,t){return`${this.elementUrl}/#/room/${e}${this.encodeServerCandidates(t)}`}forUser(e){return`${this.elementUrl}/#/user/${e}`}forEntity(e){if("!"===e[0]||"#"===e[0])return this.forRoom(e);if("@"===e[0])return this.forUser(e);throw new Error("Unrecognized entity")}isPermalinkHost(e){const t=new URL(this.elementUrl);return e===(t.host||t.hostname)}encodeServerCandidates(e){return e&&0!==e.length?`?via=${e.map(e=>encodeURIComponent(e)).join("&via=")}`:""}parsePermalink(e){if(!e||!e.startsWith(this.elementUrl))throw new Error("Does not appear to be a permalink");const t=e.substring(`${this.elementUrl}/#/`.length);return u.parseAppRoute(t)}static parseAppRoute(e){const t=e.split("/");if(t.length<2)throw new Error("URL is missing parts");const[s]=t.splice(-1,1),[n,o=""]=s.split("?");t.push(n);const i=t[0],r=t[1];if("user"===i)return m.Y.forUser(r);if("room"===i){const e=t.length>2?t.slice(2).join("/"):"",s=o.split(/&?via=/).filter(e=>!!e);return m.Y.forEvent(r,e,s)}throw new Error("Unknown entity type in permalink")}}var h=s("./src/SdkConfig.ts"),p=s("./src/linkify-matrix.ts");class g extends m.A{constructor(){super()}encodeEntity(e){if("!"===e[0])return`roomid/${e.slice(1)}`;if("#"===e[0])return`r/${e.slice(1)}`;if("@"===e[0])return`u/${e.slice(1)}`;if("$"===e[0])return`e/${e.slice(1)}`;throw new Error("Cannot encode entity: "+e)}forEvent(e,t,s){return`matrix:${this.encodeEntity(e)}/${this.encodeEntity(t)}${this.encodeServerCandidates(s)}`}forRoom(e,t){return`matrix:${this.encodeEntity(e)}${this.encodeServerCandidates(t)}`}forUser(e){return`matrix:${this.encodeEntity(e)}`}forEntity(e){return`matrix:${this.encodeEntity(e)}`}isPermalinkHost(e){return""===e}encodeServerCandidates(e){return e&&0!==e.length?`?via=${e.map(e=>encodeURIComponent(e)).join("&via=")}`:""}parsePermalink(e){if(!e||!e.startsWith("matrix:"))throw new Error("Does not appear to be a permalink");const t=new URL(e).pathname.split("/"),s=t[0],n=t[1];if("u"===s)return m.Y.forUser(`@${n}`);if("r"===s||"roomid"===s){const e="r"===s?"#":"!";if(2===t.length){const[t,s=""]=n.split("?"),o=s.split(/&?via=/g).filter(e=>!!e);return m.Y.forRoom(`${e}${t}`,o)}if("e"===t[2]){const s=t.length>3?t.slice(3).join("/"):"",[o,i=""]=s.split("?"),r=i.split(/&?via=/g).filter(e=>!!e);return m.Y.forEvent(`${e}${n}`,`$${o}`,r)}throw new Error("Faulty room permalink")}throw new Error("Unknown entity type in permalink")}}const v=/.*/;class _{constructor(e,t=null,s=!0){if((0,n.A)(this,"roomId",void 0),(0,n.A)(this,"highestPlUserId",null),(0,n.A)(this,"populationMap",{}),(0,n.A)(this,"bannedHostsRegexps",[]),(0,n.A)(this,"allowedHostsRegexps",[]),(0,n.A)(this,"_serverCandidates",void 0),(0,n.A)(this,"started",!1),(0,n.A)(this,"onRoomStateUpdate",()=>{this.fullUpdate()}),(0,n.A)(this,"updateServerCandidates",()=>{const e=new Set;this.highestPlUserId&&e.add(R(this.highestPlUserId));const t=Object.keys(this.populationMap).sort((e,t)=>this.populationMap[t]-this.populationMap[e]);for(let n=0;n<t.length&&e.size<3;n++){var s;const o=t[n],i=null!==(s=k(o))&&void 0!==s?s:"";e.has(o)||P(i)||I(i,this.bannedHostsRegexps)||!I(i,this.allowedHostsRegexps)||e.add(o)}this._serverCandidates=[...e]}),this.room=e,this.roomId=e?e.roomId:t,!this.roomId)throw new Error("Failed to resolve a roomId for the permalink creator to use")}load(){this.room&&this.room.currentState?this.fullUpdate():c.vF.warn("Tried to load a permalink creator with no room state")}start(){var e;this.started||(this.load(),null===(e=this.room)||void 0===e||e.currentState.on(a.RoomStateEvent.Update,this.onRoomStateUpdate),this.started=!0)}stop(){var e;null===(e=this.room)||void 0===e||e.currentState.removeListener(a.RoomStateEvent.Update,this.onRoomStateUpdate),this.started=!1}get serverCandidates(){return this._serverCandidates}forEvent(e){return S().forEvent(this.roomId,e,this._serverCandidates)}forShareableRoom(){if(this.room){const e=this.room.getCanonicalAlias();if(e)return S().forRoom(e)}return S().forRoom(this.roomId,this._serverCandidates)}forRoom(){return S().forRoom(this.roomId,this._serverCandidates)}fullUpdate(){this.updateAllowedServers(),this.updateHighestPlUser(),this.updatePopulationMap(),this.updateServerCandidates()}updateHighestPlUser(){var e;const t=null===(e=this.room)||void 0===e?void 0:e.currentState.getStateEvents("m.room.power_levels","");if(t){const e=t.getContent();if(e){const t=e.users;if(t){const e=Object.entries(t).filter(([e])=>{var t,s;const n=null===(t=this.room)||void 0===t?void 0:t.getMember(e);if(!n||n.membership!==l.O.Join)return!1;const o=R(e),i=null!==(s=k(o))&&void 0!==s?s:o;return!P(i)&&!I(i,this.bannedHostsRegexps)&&I(i,this.allowedHostsRegexps)}),s=e.reduce((e,t)=>t[1]>e[1]?t:e,[null,0]),[n,o]=s;if(null!==n&&o>=50)return void(this.highestPlUserId=n)}}}this.highestPlUserId=null}updateAllowedServers(){var e;const t=[];let s=[v];if(null!==(e=this.room)&&void 0!==e&&e.currentState){var n;const e=null===(n=this.room)||void 0===n?void 0:n.currentState.getStateEvents(a.EventType.RoomServerAcl,"");if(e&&e.getContent()){const n=e=>new RegExp("^"+r.dn(e)+"$"),o=e.getContent().deny;Array.isArray(o)&&o.forEach(e=>t.push(n(e)));const i=e.getContent().allow;s=[],Array.isArray(o)&&i.forEach(e=>s.push(n(e)))}}this.bannedHostsRegexps=t,this.allowedHostsRegexps=s}updatePopulationMap(){const e={};if(this.room)for(const t of this.room.getJoinedMembers()){const s=R(t.userId);e[s]||(e[s]=0),e[s]++}this.populationMap=e}}function f(e,t=!1){return S(t).forEntity(e)}function y(e,t=!1){return S(t).forUser(e)}function b(e,t,s=!1){if(!t)throw new Error("can't permalink a falsy roomId");if("!"!==t[0])return S(s).forRoom(t,[]);const n=e.getRoom(t);if(!n)return S(s).forRoom(t,[]);const o=new _(n);return o.load(),o.forShareableRoom()}function E(e){return!!(new d.Ay).isPermalinkHost(e)||S().isPermalinkHost(e)}function w(e,t){if(!t)return null;if("#"===t[0]||"!"===t[0])return b(e,t);if("@"===t[0])return y(t);if("matrix:"===t.slice(0,7))try{const e=C(t);if(e){if(e.roomIdOrAlias){var s;const t=e.eventId?`/${e.eventId}`:"";let n=d.pc+`/#/${e.roomIdOrAlias}${t}`;return null!==(s=e.viaServers)&&void 0!==s&&s.length&&(n+=(new d.Ay).encodeServerCandidates(e.viaServers)),n}if(e.userId)return d.pc+`/#/${e.userId}`}}catch{}return t}function x(e){if(!(e.startsWith("http:")||e.startsWith("https:")||e.startsWith("matrix:")||e.startsWith("vector:")))return e;try{const t=decodeURIComponent(e).match(p.kD);if(t)return t[1]}catch{return e}try{const s=C(e);if(s)if(s.roomIdOrAlias){var t;const n=s.eventId?`/${s.eventId}`:"";e=`#/room/${s.roomIdOrAlias}${n}`,null!==(t=s.viaServers)&&void 0!==t&&t.length&&(e+=(new d.Ay).encodeServerCandidates(s.viaServers))}else s.userId&&(e=`#/user/${s.userId}`)}catch{}return e}function A(e){try{let t=C(e);if(!t){const s=e.match(p.kD);if(s){const e=new u("http://localhost"),n=s[1].split("#").slice(1).join("#");t=e.parsePermalink(`http://localhost/#${n}`)}}if(!t)return null;if(t.userId)return t.userId;if(t.roomIdOrAlias)return t.roomIdOrAlias}catch{}return null}function S(e=!1){const t=h.Ay.get("permalink_prefix");return t&&t!==d.pc&&!e?new u(t):new d.Ay}function C(e){try{const t=h.Ay.get("permalink_prefix"),s=decodeURIComponent(e);if(new RegExp(d.Vi,"i").test(s))return(new d.Ay).parsePermalink(s);if(e.startsWith("matrix:"))return(new g).parsePermalink(e);if(t&&e.startsWith(t))return new u(t).parsePermalink(e)}catch(e){c.vF.error("Failed to parse permalink",e)}return null}function R(e){return e.split(":").splice(1).join(":")}function k(e){if(!e)return null;try{return new URL(`https://${e}`).hostname}catch(e){return console.error("Error encountered while extracting hostname from server name",e),null}}function I(e,t){if(!e)return!0;if(t.length>0&&!t[0].test)throw new Error(t[0].toString());return t.some(t=>t.test(e))}function P(e){return!!e&&(e.startsWith("[")&&e.endsWith("]")&&(e=e.substring(1,e.length-1)),i()(e))}const T=e=>{var t;const s=new _(e);return s.load(),null!==(t=s.serverCandidates)&&void 0!==t?t:[]}},"./src/utils/permalinks/navigator.ts":(e,t,s)=>{"use strict";s.d(t,{O:()=>o});var n=s("./src/utils/permalinks/Permalinks.ts");function o(e){const t=(0,n.uK)(e);if(!t||t===e)throw new Error("Failed to transform URI");window.location.hash=t}},"./src/utils/presence.ts":(e,t,s)=>{"use strict";s.d(t,{T:()=>o});var n=s("./src/SdkConfig.ts");function o(e){const t=e.baseUrl,s=n.Ay.get("enable_presence_by_hs_url");return!s||!(!s[t]&&void 0!==s[t])}},"./src/utils/promise.ts":(e,t,s)=>{"use strict";async function n(e,t,s){const n=new Promise(n=>{const o=window.setTimeout(n,s,t);e.then(()=>{clearTimeout(o)})});return Promise.race([e,n])}async function o(e,t,s){let n;for(let o=0;o<t;o++)try{return await e()}catch(e){if(s&&!s(e))throw e;n=e}throw n}async function i(e,t){const s=[];for(let n=0;n<e.length;n+=t){const o=e.slice(n,n+t);s.push(...await Promise.all(o.map(e=>e())))}return s}s.d(t,{L5:()=>o,vA:()=>i,wR:()=>n})},"./src/utils/read-receipts.ts":(e,t,s)=>{"use strict";s.d(t,{A:()=>o});var n=s("./node_modules/matrix-js-sdk/src/utils.ts");function o(e,t){const s=t.getUserId();for(const t of Object.keys(e.getContent()))for(const[o,i]of Object.entries(e.getContent()[t]))if((0,n.ll)(o)&&Object.keys(i||{}).includes(s))return!0;return!1}},"./src/utils/room/getFunctionalMembers.ts":(e,t,s)=>{"use strict";s.d(t,{B:()=>o});var n=s("./node_modules/matrix-js-sdk/src/matrix.ts");const o=e=>{const[t]=e.currentState.getStateEvents(n.UNSTABLE_ELEMENT_FUNCTIONAL_USERS.name);return Array.isArray(null==t?void 0:t.getContent().service_members)?t.getContent().service_members:[]}},"./src/utils/room/getJoinedNonFunctionalMembers.ts":(e,t,s)=>{"use strict";s.d(t,{T:()=>o});var n=s("./src/utils/room/getFunctionalMembers.ts");const o=e=>{const t=(0,n.B)(e);return e.getJoinedMembers().filter(e=>!t.includes(e.userId))}},"./src/utils/rooms.ts":(e,t,s)=>{"use strict";s.d(t,{u:()=>i});var n=s("./src/utils/crypto/shouldForceDisableEncryption.ts"),o=s("./src/utils/WellKnownUtils.ts");function i(e){if((0,n.I)(e))return!1;const t=(0,o.d_)(e);if(t){return!(!1===t.default)}return!0}},"./src/utils/sets.ts":(e,t,s)=>{"use strict";s.d(t,{Y:()=>o,g:()=>i});var n=s("./src/utils/arrays.ts");function o(e,t){return e.size!==t.size||(!!Array.from(t).some(t=>!e.has(t))||!!Array.from(e).some(e=>!t.has(e)))}function i(e,t){return(0,n.ZQ)(Array.from(e),Array.from(t))}},"./src/utils/space.tsx":(e,t,s)=>{"use strict";s.d(t,{Yt:()=>L,Dz:()=>T,MI:()=>D,Kv:()=>P,yV:()=>M,K1:()=>U,PT:()=>N,Sl:()=>F,Lo:()=>j,Wi:()=>B,hL:()=>O});var n=s("./node_modules/react/index.js"),o=s("./node_modules/matrix-js-sdk/src/matrix.ts"),i=s("./node_modules/matrix-js-sdk/src/types.ts"),r=s("./src/utils/permalinks/Permalinks.ts"),a=s("./src/Modal.tsx"),l=s("./src/components/views/dialogs/CreateRoomDialog.tsx"),c=s("./src/createRoom.ts"),d=s("./src/languageHandler.tsx"),m=s("./src/components/views/spaces/SpacePublicShare.tsx"),u=s("./src/components/views/dialogs/InfoDialog.tsx"),h=s("./src/RoomInvite.tsx"),p=s("./node_modules/matrix-js-sdk/src/logger.ts"),g=s("./src/components/views/dialogs/BaseDialog.tsx"),v=s("./src/components/views/elements/AccessibleButton.tsx"),_=s("./src/contexts/MatrixClientContext.tsx"),f=s("./src/components/views/beta/BetaCard.tsx"),y=s("./src/components/views/spaces/SpaceCreateMenu.tsx"),b=s("./src/components/views/dialogs/AddExistingToSpaceDialog.tsx"),E=s("./src/components/views/elements/JoinRuleDropdown.tsx");const w=({space:e,onAddExistingSpaceClick:t,onFinished:s})=>{const[i,r]=(0,n.useState)(e),[a,l]=(0,n.useState)(!1),[c,m]=(0,n.useState)(""),u=(0,n.useRef)(null),[h,w]=(0,n.useState)(""),x=(0,n.useRef)(null),[A,S]=(0,n.useState)(),[C,R]=(0,n.useState)(""),k=e.getJoinRule();let I=o.JoinRule.Restricted;k===o.JoinRule.Public&&(I=o.JoinRule.Public);const[P,T]=(0,n.useState)(I),O=async t=>{if(t.preventDefault(),!a){if(l(!0),u.current&&!await u.current.validate({allowEmpty:!1}))return u.current.focus(),u.current.validate({allowEmpty:!1,focused:!0}),void l(!1);if(x.current&&P===o.JoinRule.Public&&!await x.current.validate({allowEmpty:!0}))return x.current.focus(),x.current.validate({allowEmpty:!0,focused:!0}),void l(!1);try{await(0,y.bz)(e.client,c,P===o.JoinRule.Public,h,C,A,{},{parentSpace:i,joinRule:P}),s(!0)}catch(t){p.vF.error(t)}}};let M;return P===o.JoinRule.Restricted?M=n.createElement("p",null,(0,d._t)("create_space|subspace_join_rule_restricted_description",{},{SpaceName:()=>n.createElement("strong",null,i.name)})):P===o.JoinRule.Public?M=n.createElement("p",null,(0,d._t)("create_space|subspace_join_rule_public_description",{},{SpaceName:()=>n.createElement("strong",null,i.name)})):P===o.JoinRule.Invite&&(M=n.createElement("p",null,(0,d._t)("create_space|subspace_join_rule_invite_description"))),n.createElement(g.A,{title:n.createElement(b.YZ,{title:(0,d._t)("create_space|subspace_dropdown_title"),space:e,value:i,onChange:r}),className:"mx_CreateSubspaceDialog",contentId:"mx_CreateSubspaceDialog",onFinished:s,fixedWidth:!1},n.createElement(_.Ay.Provider,{value:e.client},n.createElement("div",{className:"mx_CreateSubspaceDialog_content"},n.createElement("div",{className:"mx_CreateSubspaceDialog_betaNotice"},n.createElement(f.s,null),(0,d._t)("create_space|subspace_beta_notice")),n.createElement(y.R7,{busy:a,onSubmit:O,setAvatar:S,name:c,setName:m,nameFieldRef:u,topic:C,setTopic:R,alias:h,setAlias:w,showAliasField:P===o.JoinRule.Public,aliasFieldRef:x},n.createElement(E.A,{label:(0,d._t)("create_space|subspace_join_rule_label"),labelInvite:(0,d._t)("create_space|subspace_join_rule_invite_only"),labelPublic:(0,d._t)("common|public_space"),labelRestricted:(0,d._t)("create_room|join_rule_restricted"),width:478,value:P,onChange:T}),M)),n.createElement("div",{className:"mx_CreateSubspaceDialog_footer"},n.createElement("div",{className:"mx_CreateSubspaceDialog_footer_prompt"},n.createElement("div",null,(0,d._t)("create_space|subspace_existing_space_prompt")),n.createElement(v.A,{kind:"link",onClick:()=>{t(),s()}},(0,d._t)("space|add_existing_subspace|space_dropdown_title"))),n.createElement(v.A,{kind:"primary_outline",disabled:a,onClick:()=>s(!1)},(0,d._t)("action|cancel")),n.createElement(v.A,{kind:"primary",disabled:a,onClick:O},a?(0,d._t)("create_space|subspace_adding"):(0,d._t)("action|add")))))},x=({space:e,onCreateSubspaceClick:t,onFinished:s})=>{const[o,i]=(0,n.useState)(e);return n.createElement(g.A,{title:n.createElement(b.YZ,{title:(0,d._t)("space|add_existing_subspace|space_dropdown_title"),space:e,value:o,onChange:i}),className:"mx_AddExistingToSpaceDialog",contentId:"mx_AddExistingToSpace",onFinished:s,fixedWidth:!1},n.createElement(_.Ay.Provider,{value:e.client},n.createElement(b.sS,{space:e,onFinished:s,footerPrompt:n.createElement(n.Fragment,null,n.createElement("div",null,(0,d._t)("space|add_existing_subspace|create_prompt")),n.createElement(v.A,{onClick:t,kind:"link"},(0,d._t)("space|add_existing_subspace|create_button"))),filterPlaceholder:(0,d._t)("space|add_existing_subspace|filter_placeholder"),spacesRenderer:b.M})))};var A=s("./src/dispatcher/dispatcher.ts"),S=s("./src/dispatcher/actions.ts"),C=s("./src/components/views/elements/Spinner.tsx"),R=s("./src/customisations/helpers/UIComponents.ts"),k=s("./src/settings/UIFeature.ts"),I=s("./src/contexts/SDKContext.ts");const P=e=>{const t=e.client.getUserId();return e.getMyMembership()===i.O.Join&&(e.currentState.maySendStateEvent(o.EventType.RoomAvatar,t)||e.currentState.maySendStateEvent(o.EventType.RoomName,t)||e.currentState.maySendStateEvent(o.EventType.RoomTopic,t)||e.currentState.maySendStateEvent(o.EventType.RoomJoinRules,t))},T=(e,t=!1)=>({type:o.EventType.SpaceParent,content:{via:(0,r.Ex)(e),canonical:t},state_key:e.roomId});function O(e){A.A.dispatch({action:S.r.OpenSpaceSettings,space:e})}const M=e=>{A.A.dispatch({action:S.r.OpenAddToExistingSpaceDialog,space:e})},N=async(e,t)=>{const s=a.Ay.createDialog(l.A,{type:t,defaultPublic:e.getJoinRule()===o.JoinRule.Public,parentSpace:e}),[n,i]=await s.finished;return n&&await(0,c.Ay)(e.client,i),!!n},D=e=>((null==e?void 0:e.getMyMembership())===i.O.Join&&e.canInvite(e.client.getUserId())||e.getJoinRule()===o.JoinRule.Public)&&(0,R.g)(k.C.InviteUsers),j=(e,t="")=>{if("public"===e.getJoinRule()){const t=a.Ay.createDialog(u.A,{title:(0,d._t)("invite|to_space",{spaceName:e.name}),description:n.createElement(n.Fragment,null,n.createElement("span",null,(0,d._t)("space|share_public")),n.createElement(m.A,{space:e,onFinished:()=>t.close()})),fixedWidth:!1,button:!1,className:"mx_SpacePanel_sharePublicSpace",hasCloseButton:!0})}else(0,h._7)(e.roomId,t)},U=e=>{const{finished:t}=a.Ay.createDialog(x,{space:e,onCreateSubspaceClick:()=>F(e)},"mx_AddExistingToSpaceDialog_wrapper");t.then(([t])=>{t&&I.M.instance.roomViewStore.getRoomId()===e.roomId&&A.A.fire(S.r.UpdateSpaceHierarchy)})},F=e=>{const{finished:t}=a.Ay.createDialog(w,{space:e,onAddExistingSpaceClick:()=>U(e)},"mx_CreateSubspaceDialog_wrapper");t.then(([t])=>{t&&I.M.instance.roomViewStore.getRoomId()===e.roomId&&A.A.fire(S.r.UpdateSpaceHierarchy)})},L=async(e,t,s)=>{const n=a.Ay.createDialog(C.A,void 0,"mx_Dialog_spinner");try{for(const e of t)await s(e);await s(e)}finally{n.close()}},B=(e,t)=>{A.A.dispatch({action:S.r.OpenSpacePreferences,space:e,initialTabId:t})}},"./src/utils/strings.ts":(e,t,s)=>{"use strict";s.d(t,{A0:()=>i,Ee:()=>c,Ud:()=>r,eL:()=>l,j5:()=>a,nC:()=>o});var n=s("./node_modules/matrix-js-sdk/src/logger.ts");async function o(e){try{var t;if(null!==(t=navigator)&&void 0!==t&&null!==(t=t.clipboard)&&void 0!==t&&t.writeText)return await navigator.clipboard.writeText(e),!0;{const t=document.createElement("textarea");t.value=e,t.style.top="0",t.style.left="0",t.style.position="fixed",document.body.appendChild(t);const s=document.getSelection(),n=document.createRange();n.selectNode(t),s.removeAllRanges(),s.addRange(n);const o=document.execCommand("copy");return s.removeAllRanges(),document.body.removeChild(t),o}}catch(e){n.vF.error("copyPlaintext failed",e)}return!1}function i(e){const t=document.createRange();t.selectNodeContents(e);const s=window.getSelection();s.removeAllRanges(),s.addRange(t)}function r(e){return!!e&&(i(e),document.execCommand("copy"))}function a(){return window.getSelection().toString()}const l=new Intl.Segmenter;function c(e){const t=l.segment(e)[Symbol.iterator]().next();return t.done?"":t.value.segment}},"./src/utils/units.ts":(e,t,s)=>{"use strict";function n(e){return e+"px"}s.d(t,{c:()=>n})},"./src/utils/video-rooms.ts":(e,t,s)=>{"use strict";s.d(t,{j:()=>n});const n=e=>e.isElementVideoRoom()||e.isCallRoom()},"./src/vector/init.tsx":(e,t,s)=>{"use strict";s.d(t,{_t:()=>a._t,extractErrorMessageFromError:()=>de.$,loadApp:()=>_e,loadConfig:()=>pe,loadLanguage:()=>ge,loadModules:()=>be,loadPlugins:()=>Ee,loadTheme:()=>ve,preparePlatform:()=>ue,rageshakePromise:()=>me,setupLogStorage:()=>he,showError:()=>fe,showIncompatibleBrowser:()=>ye});var n=s("./node_modules/react-dom/client.js"),o=s("./node_modules/react/index.js"),i=s("./node_modules/matrix-js-sdk/src/logger.ts"),r=s("./node_modules/@element-hq/element-web-module-api/lib/element-web-plugin-engine.js"),a=s("./src/languageHandler.tsx"),l=s("./src/settings/SettingsStore.ts"),c=s("./src/PlatformPeg.ts"),d=s("./src/SdkConfig.ts"),m=s("./src/theme.ts"),u=s("./src/modules/ModuleRunner.ts"),h=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),p=s("./node_modules/lodash/lodash.js"),g=s("./src/BasePlatform.ts"),v=s("./src/dispatcher/dispatcher.ts"),_=s("./src/rageshake/rageshake.ts"),f=s("./src/Modal.tsx"),y=s("./src/components/views/dialogs/InfoDialog.tsx"),b=s("./src/components/views/elements/Spinner.tsx"),E=s("./src/dispatcher/actions.ts"),w=s("./src/toasts/UpdateToast.tsx"),x=s("./src/stores/ToastStore.ts"),A=s("./src/components/views/toasts/GenericToast.tsx"),S=s("./src/hooks/useTimeout.ts");const C=({description:e,primaryLabel:t,dismissLabel:s,onPrimaryClick:n,onDismiss:i,toastKey:r,numSeconds:a})=>{const l=()=>{i&&i(),x.A.sharedInstance().dismissToast(r)},c=(0,S.kD)(l,1e3,a);let d=s;return c>0&&(d+=` (${c})`),o.createElement(A.A,{description:e,primaryLabel:t,onPrimaryClick:n,secondaryLabel:d,onSecondaryClick:l})};var R=s("./src/stores/BreadcrumbsStore.ts"),k=s("./src/stores/AsyncStore.ts"),I=s("./src/Avatar.ts"),P=s("./node_modules/classnames/index.js"),T=s.n(P),O=s("./src/components/views/dialogs/BaseDialog.tsx"),M=s("./src/components/views/elements/DialogButtons.tsx"),N=s("./src/components/views/elements/AccessibleButton.tsx"),D=s("./src/components/structures/TabbedView.tsx");function j(){const e=c.A.get();return e?null==e?void 0:e.getDesktopCapturerSources({thumbnailSize:{height:176,width:312},types:["screen","window"]}):Promise.resolve([])}let U=function(e){return e.Screens="screen",e.Windows="window",e}({});class F extends o.Component{constructor(...e){super(...e),(0,h.A)(this,"onClick",()=>{this.props.onSelect(this.props.source)})}render(){const e=T()({mx_desktopCapturerSourcePicker_source_thumbnail:!0,mx_desktopCapturerSourcePicker_source_thumbnail_selected:this.props.selected});return o.createElement(N.A,{className:"mx_desktopCapturerSourcePicker_source",title:this.props.source.name,onClick:this.onClick},o.createElement("img",{alt:this.props.source.name,className:e,src:this.props.source.thumbnailURL}),o.createElement("span",{className:"mx_desktopCapturerSourcePicker_source_name"},this.props.source.name))}}class L extends o.Component{constructor(e){super(e),(0,h.A)(this,"interval",void 0),(0,h.A)(this,"onSelect",e=>{this.setState({selectedSource:e})}),(0,h.A)(this,"onShare",()=>{this.props.onFinished(this.state.selectedSource)}),(0,h.A)(this,"onTabChange",e=>{this.setState({selectedSource:void 0,selectedTab:e})}),(0,h.A)(this,"onCloseClick",()=>{this.props.onFinished()}),this.state={selectedTab:U.Screens,sources:[]}}async componentDidMount(){this.setState({sources:await j()}),this.interval=window.setInterval(async()=>{this.setState({sources:await j()})},500)}componentWillUnmount(){clearInterval(this.interval)}getTab(e,t){const s=this.state.sources.filter(t=>t.id.startsWith(e)).map(e=>{var t;return o.createElement(F,{selected:(null===(t=this.state.selectedSource)||void 0===t?void 0:t.id)===e.id,source:e,onSelect:this.onSelect,key:e.id})});return new D.oz(e,t,null,o.createElement("div",{className:"mx_desktopCapturerSourcePicker_tab"},s))}render(){const e=[this.getTab(U.Screens,(0,a.AO)("voip|screenshare_monitor")),this.getTab(U.Windows,(0,a.AO)("voip|screenshare_window"))];return o.createElement(O.A,{className:"mx_desktopCapturerSourcePicker",onFinished:this.onCloseClick,title:(0,a._t)("voip|screenshare_title")},o.createElement(D.Ay,{tabs:e,tabLocation:D.lX.TOP,activeTabId:this.state.selectedTab,onChange:this.onTabChange}),o.createElement(M.A,{primaryButton:(0,a._t)("action|share"),hasCancel:!0,onCancel:this.onCloseClick,onPrimaryButtonClick:this.onShare,primaryDisabled:!this.state.selectedSource}))}}var B=s("./src/MatrixClientPeg.ts");class V{async supportsEventIndexing(){return!0}async initEventIndex(e,t){throw new Error("Unimplemented")}async addEventToIndex(e,t){throw new Error("Unimplemented")}async deleteEvent(e){throw new Error("Unimplemented")}async isEventIndexEmpty(){throw new Error("Unimplemented")}isRoomIndexed(e){throw new Error("Unimplemented")}async getStats(){throw new Error("Unimplemented")}async getUserVersion(){throw new Error("Unimplemented")}async setUserVersion(e){throw new Error("Unimplemented")}async commitLiveEvents(){throw new Error("Unimplemented")}async searchEventIndex(e){throw new Error("Unimplemented")}async addHistoricEvents(e,t,s){throw new Error("Unimplemented")}async addCrawlerCheckpoint(e){throw new Error("Unimplemented")}async removeCrawlerCheckpoint(e){throw new Error("Unimplemented")}async loadCheckpoints(){throw new Error("Unimplemented")}async loadFileEvents(e){throw new Error("Unimplemented")}async closeEventIndex(){throw new Error("Unimplemented")}async deleteEventIndex(){throw new Error("Unimplemented")}}class H{constructor(e="ipcCall",t="ipcReply"){if((0,h.A)(this,"pendingIpcCalls",{}),(0,h.A)(this,"nextIpcCallId",0),(0,h.A)(this,"onIpcReply",(e,t)=>{if(void 0===t.id)return void i.vF.warn("Ignoring IPC reply with no ID");if(void 0===this.pendingIpcCalls[t.id])return void i.vF.warn("Unknown IPC payload ID: "+t.id);const s=this.pendingIpcCalls[t.id];if(delete this.pendingIpcCalls[t.id],t.error){let e=t.error;"object"==typeof e&&e.message&&(e=new Error(e.message)),s.reject(e)}else s.resolve(t.reply)}),this.sendChannel=e,this.recvChannel=t,!window.electron)throw new Error("Cannot instantiate ElectronPlatform, window.electron is not set");window.electron.on(this.recvChannel,this.onIpcReply)}async call(e,...t){const s=++this.nextIpcCallId,n=Promise.withResolvers();return this.pendingIpcCalls[s]=n,window.electron.send(this.sendChannel,{id:s,name:e,args:t}),n.promise}}class W extends V{constructor(...e){super(...e),(0,h.A)(this,"ipc",new H("seshat","seshatReply"))}async supportsEventIndexing(){return this.ipc.call("supportsEventIndexing")}async initEventIndex(e,t){return this.ipc.call("initEventIndex",e,t)}async addEventToIndex(e,t){return this.ipc.call("addEventToIndex",e,t)}async deleteEvent(e){return this.ipc.call("deleteEvent",e)}async isEventIndexEmpty(){return this.ipc.call("isEventIndexEmpty")}async isRoomIndexed(e){return this.ipc.call("isRoomIndexed",e)}async commitLiveEvents(){return this.ipc.call("commitLiveEvents")}async searchEventIndex(e){return this.ipc.call("searchEventIndex",e)}async addHistoricEvents(e,t,s){return this.ipc.call("addHistoricEvents",e,t,s)}async addCrawlerCheckpoint(e){return this.ipc.call("addCrawlerCheckpoint",e)}async removeCrawlerCheckpoint(e){return this.ipc.call("removeCrawlerCheckpoint",e)}async loadFileEvents(e){return this.ipc.call("loadFileEvents",e)}async loadCheckpoints(){return this.ipc.call("loadCheckpoints")}async closeEventIndex(){return this.ipc.call("closeEventIndex")}async getStats(){return this.ipc.call("getStats")}async getUserVersion(){return this.ipc.call("getUserVersion")}async setUserVersion(e){return this.ipc.call("setUserVersion",e)}async deleteEventIndex(){return this.ipc.call("deleteEventIndex")}}var $=s("./src/favicon.ts");function z(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function K(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?z(Object(s),!0).forEach(function(t){(0,h.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):z(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}const J="element-desktop-ssoid";class G extends g.Ay{constructor(){if(super(),(0,h.A)(this,"ipc",new H("ipcCall","ipcReply")),(0,h.A)(this,"eventIndexManager",new W),(0,h.A)(this,"initialised",void 0),(0,h.A)(this,"electron",void 0),(0,h.A)(this,"protocol",void 0),(0,h.A)(this,"sessionId",void 0),(0,h.A)(this,"badgeOverlayRenderer",void 0),(0,h.A)(this,"config",void 0),(0,h.A)(this,"supportedSettings",void 0),(0,h.A)(this,"clientStartedPromiseWithResolvers",Promise.withResolvers()),(0,h.A)(this,"onBreadcrumbsUpdate",()=>{const e=R.Y.instance.rooms.slice(0,7).map(e=>({roomId:e.roomId,avatarUrl:(0,I.ze)(e,Math.floor(60*window.devicePixelRatio),Math.floor(60*window.devicePixelRatio),"crop"),initial:(0,I.$R)(e.name)}));this.ipc.call("breadcrumbs",e)}),(0,h.A)(this,"onUpdateDownloaded",async(e,{releaseNotes:t,releaseName:s})=>{v.A.dispatch({action:E.r.CheckUpdates,status:g.Kn.Ready}),this.shouldShowUpdate(s)&&(0,w.P)(await this.getAppVersion(),s,t)}),!window.electron)throw new Error("Cannot instantiate ElectronPlatform, window.electron is not set");this.electron=window.electron,this.electron.on("check_updates",(e,t)=>{v.A.dispatch(K({action:E.r.CheckUpdates},function(e){return!0===e?{status:g.Kn.Downloading}:!1===e?{status:g.Kn.NotAvailable}:{status:g.Kn.Error,detail:e}}(t)))}),this.electron.on("userAccessToken",()=>{var e;this.electron.send("userAccessToken",null===(e=B.J.get())||void 0===e?void 0:e.getAccessToken())}),this.electron.on("homeserverUrl",()=>{var e;this.electron.send("homeserverUrl",null===(e=B.J.get())||void 0===e?void 0:e.getHomeserverUrl())}),this.electron.on("serverSupportedVersions",async()=>{var e;this.electron.send("serverSupportedVersions",await(null===(e=B.J.get())||void 0===e?void 0:e.getVersions()))}),this.electron.on("before-quit",function(){i.vF.log("element-desktop closing"),_.bX()}),this.electron.on("update-downloaded",this.onUpdateDownloaded),this.electron.on("preferences",()=>{v.A.fire(E.r.ViewUserSettings)}),this.electron.on("userDownloadCompleted",(e,{id:t,name:s})=>{const n=`DOWNLOAD_TOAST_${t}`;x.A.sharedInstance().addOrReplaceToast({key:n,title:(0,a._t)("download_completed"),props:{description:s,primaryLabel:(0,a._t)("action|open"),onPrimaryClick:()=>{this.electron.send("userDownloadAction",{id:t,open:!0}),x.A.sharedInstance().dismissToast(n)},dismissLabel:(0,a._t)("action|dismiss"),onDismiss:()=>{this.electron.send("userDownloadAction",{id:t})},numSeconds:10},component:C,priority:99})}),this.electron.on("openDesktopCapturerSourcePicker",async()=>{const{finished:e}=f.Ay.createDialog(L),[t]=await e;await this.ipc.call("callDisplayMediaCallback",null!=t?t:{id:"",name:"",thumbnailURL:""})}),this.electron.on("showToast",async(e,{title:t,description:s,priority:n=40})=>{await this.clientStartedPromiseWithResolvers.promise;const o=(0,p.uniqueId)("electron_showToast_");x.A.sharedInstance().addOrReplaceToast({key:o,title:t,props:{description:s,primaryLabel:(0,a._t)("action|dismiss"),onPrimaryClick:()=>{x.A.sharedInstance().dismissToast(o)}},component:A.A,priority:n})}),R.Y.instance.on(k.H,this.onBreadcrumbsUpdate),this.initialised=this.initialise()}onAction(e){super.onAction(e),["call_state"].includes(e.action)&&this.electron.send("app_onAction",e),"client_started"===e.action&&this.clientStartedPromiseWithResolvers.resolve()}async initialise(){const{protocol:e,sessionId:t,config:s,supportedSettings:n,supportsBadgeOverlay:o}=await this.electron.initialise();this.protocol=e,this.sessionId=t,this.config=s,this.supportedSettings=n,o&&(this.badgeOverlayRenderer=new $.J)}async getConfig(){return await this.initialised,this.config}getHumanReadableName(){return"Electron Platform"}supportsSpellCheckSettings(){return!0}allowOverridingNativeContextMenus(){return!0}setNotificationCount(e){this.notificationCount!==e&&(super.setNotificationCount(e),this.badgeOverlayRenderer?this.badgeOverlayRenderer.render(e).then(t=>{this.electron.send("setBadgeCount",e,t)}).catch(e=>{i.vF.warn("Unable to generate badge overlay",e)}):this.electron.send("setBadgeCount",e))}setErrorStatus(e){if(this.badgeOverlayRenderer){if(this.errorDidOccur!==e){let t;super.setErrorStatus(e),t=e?this.badgeOverlayRenderer.render(this.notificationCount||"×","#f00"):this.badgeOverlayRenderer.render(this.notificationCount),t.then(t=>{this.electron.send("setBadgeCount",this.notificationCount,t,e)}).catch(e=>{i.vF.warn("Unable to generate badge overlay",e)})}}else super.setErrorStatus(e)}supportsNotifications(){return!0}maySendNotifications(){return!0}displayNotification(e,t,s,n,o){navigator.userAgent.includes("Linux")&&(t=t.replace(/</g,"&lt;").replace(/>/g,"&gt;"));const i=super.displayNotification(e,t,s,n,o),r=i.onclick;return i.onclick=()=>{null==r||r(),this.ipc.call("focusWindow")},i}loudNotification(e,t){this.electron.send("loudNotification")}needsUrlTooltips(){return!0}async getAppVersion(){return this.ipc.call("getAppVersion")}supportsSetting(e){var t;return void 0===e||!0===(null===(t=this.supportedSettings)||void 0===t?void 0:t[e])}async getSettingValue(e){return await this.initialised,this.electron.getSettingValue(e)}async setSettingValue(e,t){return await this.initialised,this.electron.setSettingValue(e,t)}async canSelfUpdate(){const e=await this.ipc.call("getUpdateFeedUrl");return Boolean(e)}startUpdateCheck(){super.startUpdateCheck(),this.electron.send("check_updates")}installUpdate(){this.electron.send("install_update")}getDefaultDeviceDisplayName(){const e=d.Ay.get().brand;return(0,a._t)("desktop_default_device_name",{brand:e,platformName:navigator.userAgent.includes("Macintosh")?"macOS":navigator.userAgent.includes("FreeBSD")?"FreeBSD":navigator.userAgent.includes("OpenBSD")?"OpenBSD":navigator.userAgent.includes("SunOS")?"SunOS":navigator.userAgent.includes("Windows")?"Windows":navigator.userAgent.includes("Linux")?"Linux":"Unknown"})}requestNotificationPermission(){return Promise.resolve("granted")}reload(){window.location.reload()}getEventIndexingManager(){return this.eventIndexManager}async setLanguage(e){return this.ipc.call("setLanguage",e)}setSpellCheckEnabled(e){this.ipc.call("setSpellCheckEnabled",e).catch(e=>{i.vF.log("Failed to send setSpellCheckEnabled IPC to Electron"),i.vF.error(e)})}async getSpellCheckEnabled(){return this.ipc.call("getSpellCheckEnabled")}setSpellCheckLanguages(e){this.ipc.call("setSpellCheckLanguages",e).catch(e=>{i.vF.log("Failed to send setSpellCheckLanguages IPC to Electron"),i.vF.error(e)})}async getSpellCheckLanguages(){return this.ipc.call("getSpellCheckLanguages")}async getDesktopCapturerSources(e){return this.ipc.call("getDesktopCapturerSources",e)}supportsDesktopCapturer(){return!0}supportsJitsiScreensharing(){return!1}async getAvailableSpellCheckLanguages(){return this.ipc.call("getAvailableSpellCheckLanguages")}getSSOCallbackUrl(e){const t=super.getSSOCallbackUrl(e);return t.protocol="element",t.searchParams.set(J,this.sessionId),t}startSingleSignOn(e,t,s,n){super.startSingleSignOn(e,t,s,n),f.Ay.createDialog(y.A,{title:(0,a._t)("auth|sso_complete_in_browser_dialog_title"),description:o.createElement(b.A,null)})}navigateForwardBack(e){this.ipc.call(e?"navigateBack":"navigateForward")}overrideBrowserShortcuts(){return!0}async getPickleKey(e,t){try{return await this.ipc.call("getPickleKey",e,t)}catch{return null}}async createPickleKey(e,t){try{return await this.ipc.call("createPickleKey",e,t)}catch{return null}}async destroyPickleKey(e,t){try{await this.ipc.call("destroyPickleKey",e,t)}catch{}}async clearStorage(){try{await super.clearStorage(),await this.ipc.call("clearStorage")}catch{}}get baseUrl(){var e;return null!==(e=d.Ay.get().web_base_url)&&void 0!==e?e:"https://app.element.io"}get defaultOidcClientUri(){return"https://element.io"}async getOidcClientMetadata(){return K(K({},await super.getOidcClientMetadata()),{},{applicationType:"native"})}getOidcClientState(){return`:${J}:${this.sessionId}`}getOidcCallbackUrl(){const e=super.getOidcCallbackUrl();return e.protocol=this.protocol,e.href.startsWith(`${e.protocol}//`)&&(e.href=e.href.replace("://",":/")),e}checkSessionLockFree(){return!0}async getSessionLock(e){return!0}}var q=s("./node_modules/ua-parser-js/src/ua-parser.js"),Y=s.n(q),Z=s("./src/vector/url_utils.ts"),Q=s("./node_modules/uuid/dist/v4.js");const X="react_sdk_session_lock_ping",ee="react_sdk_session_lock_owner",te="react_sdk_session_lock_claimant",se=15e3;async function ne(e){const t=(0,Q.A)(),s=i.vF.getChild(`getSessionLock[${t}]`);let n=null;function o(){const e=window.localStorage.getItem(te);if(e!==t)return s.warn(`Lock was claimed by ${e} while we were waiting for it: aborting startup`),-1;const n=window.localStorage.getItem(X),o=window.localStorage.getItem(ee);if(null===n)return s.info("No other session has the lock: proceeding with startup"),0;const i=Date.now()-parseInt(n),r=se-Math.max(i,0);return r<=0?(s.info(`Last ping (from ${o}) was ${i}ms ago: proceeding with startup`),0):(s.info(`Last ping (from ${o}) was ${i}ms ago, waiting ${r}ms`),r)}function r(){window.localStorage.setItem(ee,t),window.localStorage.setItem(X,Date.now().toString())}function a(){null!==n&&(s.debug("page hide: clearing our claim"),window.clearInterval(n),window.localStorage.removeItem(X),window.localStorage.removeItem(ee),n=null)}for(window.localStorage.setItem(te,t);;){const t=o();if(0==t)break;if(t<0)return await e(),!1;let n;const i=new Promise(e=>{n=t=>{t.key!==X&&t.key!==te||e(t)}}),r=new Promise(e=>{setTimeout(e,t,void 0)});window.addEventListener("storage",n);const a=await Promise.race([r,i]);if(window.removeEventListener("storage",n),!(a instanceof StorageEvent)){s.info("Existing claim went stale: proceeding with startup");break}}return r(),n=window.setInterval(r,5e3),window.addEventListener("storage",function o(i){if(i.key===te){const i=window.localStorage.getItem(te);if(i===t)return;s.info(`Session ${i} is waiting for the lock`),window.removeEventListener("storage",o),async function(){await e(),null!==n&&window.clearInterval(n);window.localStorage.removeItem(X),window.localStorage.removeItem(ee),n=null}().catch(e=>{s.error("Error releasing session lock",e)})}}),window.addEventListener("pagehide",a),window.addEventListener("unload",a),!0}function oe(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function ie(e){return/^v\d+.\d+.\d+(-.+)?$/.test(e)?e.substring(1):e}class re extends g.Ay{constructor(){super(),(0,h.A)(this,"registerServiceWorkerPromise",void 0),(0,h.A)(this,"handleServiceWorkerRegistrationError",()=>{const e="service_worker_error",t=d.Ay.get().brand;x.A.sharedInstance().addOrReplaceToast({key:e,title:(0,a._t)("service_worker_error|title"),props:{description:(0,a._t)("service_worker_error|description",{brand:t}),primaryLabel:(0,a._t)("action|ok"),onPrimaryClick:()=>{x.A.sharedInstance().dismissToast(e)}},component:A.A,priority:95})}),(0,h.A)(this,"onServiceWorkerPostMessage",e=>{try{var t,s;if("userinfo"===(null===(t=e.data)||void 0===t?void 0:t.type)&&null!==(s=e.data)&&void 0!==s&&s.responseKey){var n;const t=localStorage.getItem("mx_user_id"),s=localStorage.getItem("mx_device_id"),o=null===(n=B.J.get())||void 0===n?void 0:n.getHomeserverUrl();e.source.postMessage({responseKey:e.data.responseKey,userId:t,deviceId:s,homeserver:o})}}catch(e){console.error("Error responding to service worker: ",e)}}),(0,h.A)(this,"pollForUpdate",(e,t)=>this.getMostRecentVersion().then(s=>{const n=ie(re.VERSION);return n!==s?(this.shouldShowUpdate(s)?(console.log("Update available to "+s+", will notify user"),e(n,s)):console.log("Update available to "+s+" but won't be shown"),{status:g.Kn.Ready}):(console.log("No update available, already on "+s),null==t||t(),{status:g.Kn.NotAvailable})},e=>(i.vF.error("Failed to poll for update",e),{status:g.Kn.Error,detail:e.message||(e.status?e.status.toString():"Unknown Error")}))),this.registerServiceWorkerPromise=this.registerServiceWorker(),this.registerServiceWorkerPromise.catch(e=>{console.error("Error registering/updating service worker:",e)})}onAction(e){if(super.onAction(e),"client_started"===e.action)this.registerServiceWorkerPromise.catch(this.handleServiceWorkerRegistrationError)}async registerServiceWorker(){const e=await navigator.serviceWorker.register("sw.js");if(!e)throw new Error("Service worker registration failed");navigator.serviceWorker.addEventListener("message",this.onServiceWorkerPostMessage),await e.update()}getHumanReadableName(){return"Web Platform"}supportsNotifications(){return Boolean(window.Notification)}maySendNotifications(){return"granted"===window.Notification.permission}requestNotificationPermission(){return new Promise(function(e,t){window.Notification.requestPermission(t=>{e(t)}).catch(t)})}async getMostRecentVersion(){const e=await fetch("version",{method:"GET",cache:"no-cache"});if(e.ok){return ie((await e.text()).trim())}return Promise.reject({status:e.status})}getAppVersion(){return Promise.resolve(ie(re.VERSION))}startUpdater(){console.log("startUpdater, current version is "+ie(re.VERSION)),this.pollForUpdate((e,t)=>{if((0,Z.u)(location).updated)return console.log("Update reloaded but still on an old version, stopping"),void(0,w.P)(e,t);const s=new URL(window.location.href);s.searchParams.set("updated",t),console.log("Update reloading to "+s.toString()),window.location.href=s.toString()}),setInterval(()=>this.pollForUpdate(w.P,w.Y),6e5)}async canSelfUpdate(){return!0}startUpdateCheck(){super.startUpdateCheck(),this.pollForUpdate(w.P,w.Y).then(e=>{v.A.dispatch(function(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?oe(Object(s),!0).forEach(function(t){(0,h.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):oe(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}({action:E.r.CheckUpdates},e))})}installUpdate(){window.location.reload()}getDefaultDeviceDisplayName(){const e=new URL(window.location.href),t=[e.host,e.pathname.replace(/\/$/,"")].join(""),s=new(Y()),n=s.getBrowser().name||"unknown browser";let o=s.getOS().name||"unknown OS";return"Mac OS"===o&&(o="macOS"),(0,a._t)("web_default_device_name",{appName:t,browserName:n,osName:o})}reload(){window.location.reload()}checkSessionLockFree(){return function(){const e=i.vF.getChild("checkSessionLockFree"),t=window.localStorage.getItem(X);if(null===t)return e.info("No other session has the lock"),!0;const s=window.localStorage.getItem(ee),n=Date.now()-parseInt(t);return se-n<=0?(e.info(`Last ping (from ${s}) was ${n}ms ago: lock is free`),!0):(e.info(`Last ping (from ${s}) was ${n}ms ago: lock is taken`),!1)}()}async getSessionLock(e){return ne(e)}}(0,h.A)(re,"VERSION","1.12.2");class ae extends re{setNotificationCount(e){if(!navigator.setAppBadge)return super.setNotificationCount(e);this.notificationCount!==e&&(this.notificationCount=e,navigator.setAppBadge(e).catch(e=>{i.vF.error("Failed to update PWA app badge",e)}))}}var le=s("./src/rageshake/submit-rageshake.ts");window.mxSendRageshake=function(e,t){const s=d.Ay.get().bug_report_endpoint_url;s?(void 0===t&&(t=!0),e&&e.trim()?(0,le.Ay)(s,{userText:e,sendLogs:t,progressCallback:i.vF.log.bind(console)}).then(()=>{i.vF.log("Bug report sent!")},e=>{i.vF.error(e)}):i.vF.error("Cannot send a rageshake without a message - please tell us what went wrong")):i.vF.error("Cannot send a rageshake - no bug_report_endpoint_url configured")};var ce=s("./src/modules/Api.ts"),de=s("./src/components/views/dialogs/ErrorDialog.tsx");const me=function(){const e=_.Ts(!1);return e.then(async()=>{i.vF.log("Initialised rageshake."),i.vF.log("To fix line numbers in Chrome: Meatball menu → Settings → Ignore list → Add /rageshake\\.ts & /logger\\.ts$"),window.addEventListener("beforeunload",()=>{i.vF.log("element-web closing"),_.bX()}),await _.tP()},e=>{i.vF.error("Failed to initialise rageshake: "+e)}),e}();function ue(){window.electron?(i.vF.log("Using Electron platform"),c.A.set(new G)):window.matchMedia("(display-mode: standalone)").matches?(i.vF.log("Using PWA platform"),c.A.set(new ae)):(i.vF.log("Using Web platform"),c.A.set(new re))}function he(){return d.Ay.get().bug_report_endpoint_url?_.fd():(i.vF.warn("No bug report endpoint set - logs will not be persisted"),Promise.resolve())}async function pe(){var e;const t=await(null===(e=c.A.get())||void 0===e?void 0:e.getConfig());t?d.Ay.put(t):d.Ay.reset()}async function ge(){const e=l.A.getValue("language",null,!0);let t=[];e?t=[e]:a.yR().forEach(e=>{t.push(...a.Ev(e))});try{await a.xC(...t),document.documentElement.setAttribute("lang",a.UK())}catch(e){i.vF.error("Unable to set language",e)}}async function ve(){return(0,m.Yl)()}async function _e(e){const t=await Promise.all([s.e(1869),s.e(6295),s.e(2702)]).then(s.bind(s,"./src/vector/app.tsx"));const o=await t.loadApp(e,function(e){window.matrixChat=e});(0,n.createRoot)(document.getElementById("matrixchat")).render(o)}async function fe(e,t){const{ErrorView:i}=await s.e(5607).then(s.bind(s,"./src/async-components/structures/ErrorView.tsx"));(0,n.createRoot)(document.getElementById("matrixchat")).render(o.createElement(o.StrictMode,null,o.createElement(i,{title:e,messages:t})))}async function ye(e){const{UnsupportedBrowserView:t}=await s.e(5607).then(s.bind(s,"./src/async-components/structures/ErrorView.tsx"));(0,n.createRoot)(document.getElementById("matrixchat")).render(o.createElement(o.StrictMode,null,o.createElement(t,{onAccept:e})))}async function be(){const{INSTALLED_MODULES:e}=await s.e(9381).then(s.bind(s,"./src/modules.js"));for(const t of e)u.r.instance.registerModule(e=>new t(e))}async function Ee(){window.React=o;const e=d.Ay.get("modules");if(null==e||!e.length)return;const t=new r.UO(ce.A);window.mxModuleLoader=t;for(const s of e){const e=await import(s);await t.load(e)}await t.start()}},"./src/verification.ts":(e,t,s)=>{"use strict";s.d(t,{F:()=>a,m:()=>l});var n=s("./src/dispatcher/dispatcher.ts"),o=s("./src/stores/right-panel/RightPanelStorePhases.ts"),i=s("./src/stores/right-panel/RightPanelStore.ts"),r=s("./src/utils/dm/findDMForUser.ts");async function a(e,t){if(e.isGuest())return void n.A.dispatch({action:"require_registration"});const s=l(e,t);var r;r={member:t,verificationRequest:s},i.A.instance.roomPhaseHistory.some(e=>e.phase==o.n.RoomSummary)?i.A.instance.pushCard({phase:o.n.EncryptionPanel,state:r}):i.A.instance.setCards([{phase:o.n.RoomSummary},{phase:o.n.MemberInfo,state:{member:r.member}},{phase:o.n.EncryptionPanel,state:r}])}function l(e,t){const s=(0,r.D)(e,t.userId);if(s)return e.getCrypto().findVerificationRequestDMInProgress(s.roomId,t.userId)}},"./src/viewmodels/base/BaseViewModel.ts":(e,t,s)=>{"use strict";s.d(t,{o:()=>c});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");class o{constructor(){(0,n.A)(this,"disposables",[]),(0,n.A)(this,"_isDisposed",!1)}dispose(){if(!this.isDisposed){this._isDisposed=!0;for(const e of this.disposables)"function"==typeof e?e():e.dispose()}}track(e){return this.throwIfDisposed(),this.disposables.push(e),e}trackListener(e,t,s){this.throwIfDisposed(),e.on(t,s),this.track(()=>{e.off(t,s)})}throwIfDisposed(){if(this.isDisposed)throw new Error("Disposable is already disposed")}get isDisposed(){return this._isDisposed}}function i(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function r(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?i(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):i(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}class a{constructor(e,t){this.snapshot=e,this.emit=t}set(e){this.snapshot=e,this.emit()}merge(e){this.snapshot=r(r({},this.snapshot),e),this.emit()}get current(){return this.snapshot}}class l{constructor(){(0,n.A)(this,"listeners",new Set),(0,n.A)(this,"add",e=>(this.listeners.add(e),()=>{this.listeners.delete(e)})),(0,n.A)(this,"emit",()=>{for(const e of this.listeners)e()})}}class c{constructor(e,t){(0,n.A)(this,"subs",void 0),(0,n.A)(this,"snapshot",void 0),(0,n.A)(this,"props",void 0),(0,n.A)(this,"disposables",new o),(0,n.A)(this,"subscribe",e=>this.subs.add(e)),(0,n.A)(this,"getSnapshot",()=>this.snapshot.current),this.props=e,this.subs=new l,this.snapshot=new a(t,()=>{this.subs.emit()})}dispose(){this.disposables.dispose()}get isDisposed(){return this.disposables.isDisposed}}},"./src/widgets/Jitsi.ts":(e,t,s)=>{"use strict";s.d(t,{k:()=>l});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/logger.ts"),i=s("./node_modules/matrix-js-sdk/src/matrix.ts"),r=s("./src/SdkConfig.ts"),a=s("./src/MatrixClientPeg.ts");class l{constructor(){(0,n.A)(this,"domain",void 0),(0,n.A)(this,"_useFor1To1Calls",!1),(0,n.A)(this,"update",async e=>{var t,s;let n=(null===(t=r.Ay.getObject("jitsi"))||void 0===t?void 0:t.get("preferred_domain"))||"meet.element.io";o.vF.log("Attempting to get Jitsi conference information from homeserver");const i=null!==(s=null==e?void 0:e["io.element.jitsi"])&&void 0!==s?s:null==e?void 0:e["im.vector.riot.jitsi"],a=null==i?void 0:i.preferredDomain;a&&(n=a),this.domain=n,o.vF.log("Jitsi conference domain:",this.preferredDomain),this._useFor1To1Calls=(null==i?void 0:i.useFor1To1Calls)||!1,o.vF.log("Jitsi use for 1:1 calls:",this.useFor1To1Calls)})}get preferredDomain(){return this.domain||"meet.element.io"}get useFor1To1Calls(){return this._useFor1To1Calls}async getJitsiAuth(){if(!this.preferredDomain)return null;let e;try{const t=await fetch(`https://${this.preferredDomain}/.well-known/element/jitsi`);e=await t.json()}catch{return null}return e.auth?e.auth:null}start(){const e=a.J.safeGet();e.on(i.ClientEvent.ClientWellKnown,this.update),this.update(e.getClientWellKnown())}parsePreferredConferenceUrl(e){const t=new URL(e);return t.hostname!==this.preferredDomain?null:{conferenceId:t.pathname.substring(1),domain:t.hostname,isAudioOnly:!1}}static getInstance(){return l.instance||(l.instance=new l),l.instance}}(0,n.A)(l,"instance",void 0)},"./src/widgets/ManagedHybrid.ts":(e,t,s)=>{"use strict";s.d(t,{dq:()=>g,ec:()=>_,ry:()=>v});var n=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js"),o=s("./node_modules/matrix-js-sdk/src/logger.ts"),i=s("./src/utils/WellKnownUtils.ts"),r=s("./src/utils/WidgetUtils.ts"),a=s("./src/stores/widgets/WidgetLayoutStore.ts"),l=s("./src/stores/WidgetEchoStore.ts"),c=s("./src/stores/WidgetStore.ts"),d=s("./src/SdkConfig.ts"),m=s("./src/utils/room/getJoinedNonFunctionalMembers.ts");function u(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,n)}return s}function h(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?u(Object(s),!0).forEach(function(t){(0,n.A)(e,t,s[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):u(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}function p(e){const t=2===(0,m.T)(e).length;if(d.Ay.get().widget_build_url){if(t&&d.Ay.get().widget_build_url_ignore_dm)return;return d.Ay.get().widget_build_url}const s=(0,i.j5)(e.client);if(!t||null==s||!s.ignore_dm)return null==s?void 0:s.widget_build_url}function g(e){return!!p(e)}async function v(e){if(!r.A.canUserModifyWidgets(e.client,e.roomId))return void o.vF.error(`User not allowed to modify widgets in ${e.roomId}`);const t=p(e);if(!t)return;let s;try{const n=await fetch(`${t}?roomId=${e.roomId}`);s=await n.json()}catch(t){return void o.vF.error(`Managed hybrid widget builder failed for room ${e.roomId}`,t)}if(!s)return;const{widget_id:n,widget:i,layout:d}=s;let m=c.Ay.instance.getApps(e.roomId);if(m.some(e=>e.id===n)||l.A.roomHasPendingWidgets(e.roomId,[]))return void o.vF.error(`Managed hybrid widget already present in room ${e.roomId}`);try{await r.A.setRoomWidgetContent(e.client,e.roomId,n,h(h({},i),{},{"io.element.managed_hybrid":!0}))}catch(t){return void o.vF.error(`Unable to add managed hybrid widget in room ${e.roomId}`,t)}if(!a.aK.instance.canCopyLayoutToRoom(e))return;m=c.Ay.instance.getApps(e.roomId);const u=m.find(e=>e.id===n);u&&(a.aK.instance.moveToContainer(e,u,d.container),a.aK.instance.setContainerHeight(e,d.container,d.height),a.aK.instance.copyLayoutToRoom(e))}function _(e){return!!e["io.element.managed_hybrid"]}},"./src/widgets/WidgetType.ts":(e,t,s)=>{"use strict";s.d(t,{x:()=>i});var n,o=s("./node_modules/@babel/runtime/helpers/esm/defineProperty.js");class i{constructor(e,t){this.preferred=e,this.legacy=t}matches(e){return e===this.preferred||e===this.legacy}static fromString(e){const t=Object.values(i).filter(e=>e instanceof i).find(t=>t.matches(e));return t||new i(e,e)}}n=i,(0,o.A)(i,"JITSI",new n("m.jitsi","jitsi")),(0,o.A)(i,"STICKERPICKER",new n("m.stickerpicker","m.stickerpicker")),(0,o.A)(i,"INTEGRATION_MANAGER",new n("m.integration_manager","m.integration_manager")),(0,o.A)(i,"CUSTOM",new n("m.custom","m.custom")),(0,o.A)(i,"CALL",new n("m.call","m.call"))},"?0784":()=>{},"?1873":()=>{},"?2904":()=>{},"?3465":()=>{},"?b1db":()=>{},"?c838":()=>{}}]);
//# sourceMappingURL=init.js.map