(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({"--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{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{"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{"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{"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{"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{"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{"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{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{"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;ts}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{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;ethis.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;tt(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{try{return new RegExp("\\p{RGI_Emoji}(?!\\uFE0E)(?:(?{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=`${e}`;return this.highlightLink&&(s=`${s}`),s}}const D=e=>`${e}`,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