element-web-app.js (1303373B)
1 (self.webpackChunkelement_web=self.webpackChunkelement_web||[]).push([[2702],{"./src/components/structures/ErrorMessage.tsx"(e,t,n){"use strict";var i=n("../../node_modules/.pnpm/react@19.2.7/node_modules/react/index.js"),s=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/error-solid.js");n.d(t,["K",0,({message:e})=>{const t=e?i.createElement(s.A,{width:"20px",height:"20px"}):null;return i.createElement("div",{className:"mx_ErrorMessage"},t,e)}])},"./src/components/views/auth/LoginWithQR-types.ts"(e,t,n){"use strict";n.d(t,{HY:()=>o,Kt:()=>i,a0:()=>s});let i=function(e){return e.Show="show",e}({}),s=function(e){return e[e.Loading=0]="Loading",e[e.ShowingQR=1]="ShowingQR",e[e.OutOfBandConfirmation=2]="OutOfBandConfirmation",e[e.WaitingForDevice=3]="WaitingForDevice",e[e.Verifying=4]="Verifying",e[e.Error=5]="Error",e}({}),o=function(e){return e[e.Cancel=0]="Cancel",e[e.Decline=1]="Decline",e[e.Approve=2]="Approve",e[e.ShowQr=3]="ShowQr",e}({})},"./src/components/views/auth/PassphraseConfirmField.tsx"(e,t,n){"use strict";var i=n("../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/react@19.2.7/node_modules/react/index.js"),o=n("./src/components/views/elements/Field.tsx"),r=n("./src/components/views/elements/Validation.tsx"),a=n("./src/languageHandler.tsx");class l extends s.PureComponent{constructor(...e){super(...e),(0,i.A)(this,"validate",(0,r.A)({rules:[{key:"required",test:({value:e,allowEmpty:t})=>t||!!e,invalid:()=>(0,a._t)(this.props.labelRequired)},{key:"match",test:({value:e})=>!e||e===this.props.password,invalid:()=>(0,a._t)(this.props.labelInvalid)}]})),(0,i.A)(this,"onValidate",async e=>{const t=await this.validate(e);return this.props.onValidate&&this.props.onValidate(t),t})}render(){return s.createElement(o.A,{id:this.props.id,ref:this.props.fieldRef,type:"password",label:(0,a._t)(this.props.label),autoComplete:this.props.autoComplete,value:this.props.value,onChange:this.props.onChange,onValidate:this.onValidate,autoFocus:this.props.autoFocus,tooltipAlignment:this.props.tooltipAlignment})}}(0,i.A)(l,"defaultProps",{label:(0,a.AO)("auth|change_password_confirm_label"),labelRequired:(0,a.AO)("auth|change_password_confirm_label"),labelInvalid:(0,a.AO)("auth|change_password_confirm_invalid")});const c=l;n.d(t,["A",0,c])},"./src/components/views/auth/PassphraseField.tsx"(e,t,n){"use strict";var i=n("../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/react@19.2.7/node_modules/react/index.js"),o=n("../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js"),r=n.n(o),a=n("./src/SdkConfig.ts"),l=n("./src/components/views/elements/Validation.tsx"),c=n("./src/languageHandler.tsx"),d=n("./src/components/views/elements/Field.tsx"),m=n("./src/MatrixClientPeg.ts");class u extends s.PureComponent{constructor(...e){super(...e),(0,i.A)(this,"validate",(0,l.A)({description:function(e){const t=e?e.score:0;return s.createElement("progress",{className:"mx_PassphraseField_progress",max:4,value:t})},deriveData:async({value:e})=>{if(!e)return null;const{scorePassword:t}=await Promise.all([n.e(4961),n.e(9175)]).then(n.bind(n,"./src/utils/PasswordScorer.ts"));return t(m.J.get(),e,this.props.userInputs)},rules:[{key:"required",test:({value:e,allowEmpty:t})=>t||!!e,invalid:()=>(0,c._t)(this.props.labelEnterPassword)},{key:"complexity",test:async function({value:e},t){if(!e||!t)return!1;const n=t.score>=this.props.minScore;return a.A.get("dangerously_allow_unsafe_and_insecure_passwords")||n},valid:function(e){return e&&e.score>=this.props.minScore?(0,c._t)(this.props.labelStrongPassword):(0,c._t)(this.props.labelAllowedButUnsafe)},invalid:function(e){if(!e)return null;const{feedback:t}=e;return t.warning||t.suggestions[0]||(0,c._t)("auth|password_field_keep_going_prompt")}}],memoize:!0})),(0,i.A)(this,"onValidate",async e=>{const t=await this.validate(e);return this.props.onValidate&&this.props.onValidate(t),t})}render(){return s.createElement(d.A,{id:this.props.id,autoFocus:this.props.autoFocus,className:r()("mx_PassphraseField",this.props.className),ref:this.props.fieldRef,type:"password",autoComplete:"new-password",label:(0,c._t)(this.props.label),value:this.props.value,onChange:this.props.onChange,onValidate:this.onValidate,tooltipAlignment:this.props.tooltipAlignment})}}(0,i.A)(u,"defaultProps",{label:(0,c.AO)("common|password"),labelEnterPassword:(0,c.AO)("auth|password_field_label"),labelStrongPassword:(0,c.AO)("auth|password_field_strong_label"),labelAllowedButUnsafe:(0,c.AO)("auth|password_field_weak_label")});const p=u;n.d(t,["A",0,p])},"./src/components/views/rooms/CollapsibleButton.tsx"(e,t,n){"use strict";var i=n("../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/extends.js"),s=n("../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),o=n("../../node_modules/.pnpm/react@19.2.7/node_modules/react/index.js"),r=n("./src/components/views/elements/AccessibleButton.tsx"),a=n("./src/components/views/context_menus/IconizedContextMenu.tsx");const l=["title","children","className","inputRef"],c=(0,o.createContext)(null);n.d(t,["J",0,e=>{let{title:t,children:n,className:d,inputRef:m}=e,u=(0,s.A)(e,l);return!!(0,o.useContext)(c)?o.createElement(a.R$,(0,i.A)({},u,{icon:n,label:t,inputRef:m})):o.createElement(r.A,(0,i.A)({},u,{title:t,className:d,ref:m}),n)},"Z",0,c])},"./src/components/views/rooms/EmojiButton.tsx"(e,t,n){"use strict";n.d(t,{h:()=>u});var i=n("../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/extends.js"),s=n("../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js"),o=n.n(s),r=n("../../node_modules/.pnpm/react@19.2.7/node_modules/react/index.js"),a=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/reaction.js"),l=n("./src/languageHandler.tsx"),c=n("./src/components/structures/ContextMenu.tsx"),d=n("./src/components/views/emojipicker/EmojiPicker.tsx"),m=n("./src/components/views/rooms/CollapsibleButton.tsx");function u({addEmoji:e,menuPosition:t,className:n}){const s=(0,r.useContext)(m.Z),[u,p,h,g]=(0,c.EF)();let v=null;if(u&&p.current){const n=null!=t?t:(0,c.qv)(p.current.getBoundingClientRect()),o=()=>{g(),null==s||s()};v=r.createElement(c.Ay,(0,i.A)({},n,{onFinished:o,managed:!1,focusLock:!0}),r.createElement(d.A,{onChoose:e,onFinished:o}))}const _=o()("mx_EmojiButton",n,{mx_EmojiButton_highlight:u});return r.createElement(r.Fragment,null,r.createElement(m.J,{className:_,onClick:h,title:(0,l._t)("common|emoji"),inputRef:p},r.createElement(a.A,null)),v)}},"./src/indexing/EventIndexPeg.ts"(e,t,n){"use strict";n.d(t,{A:()=>_});var i=n("../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/logger.ts"),o=n("./src/PlatformPeg.ts"),r=n("../../node_modules/.pnpm/events@3.3.0/node_modules/events/events.js"),a=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/matrix.ts"),l=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/@types/membership.ts"),c=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/utils.ts"),d=n("./src/MatrixClientPeg.ts"),m=n("./src/settings/SettingsStore.ts"),u=n("./src/settings/SettingLevel.ts"),p=n("./src/utils/arrays.ts"),h=n("./src/utils/ErrorUtils.tsx");class g extends r.EventEmitter{constructor(){super(),(0,i.A)(this,"crawler",null),(0,i.A)(this,"crawlerCheckpoints",[]),(0,i.A)(this,"currentCheckpoint",null),(0,i.A)(this,"needsInitialCheckpoints",!1),(0,i.A)(this,"logger",void 0),(0,i.A)(this,"onSync",(e,t,n)=>{if(e!=a.Lmg.Syncing)return;(async()=>{var e;const t=null===(e=o.A.get())||void 0===e?void 0:e.getEventIndexingManager();t&&(this.needsInitialCheckpoints&&await this.addInitialCheckpoints(),this.startCrawler(),await t.commitLiveEvents())})().catch(e=>{(0,h.tx)("Event indexer threw an unexpected error",e)})}),(0,i.A)(this,"onRoomTimeline",async(e,t,n,i,s)=>{if(!t)return;const o=d.J.safeGet();return o.isRoomEncrypted(e.getRoomId())?e.isRedaction()?this.redactEvent(e):void(!n&&s&&s.liveEvent&&!e.isRedacted()&&(await o.decryptEventIfNeeded(e),await this.addLiveEventToIndex(e))):void 0}),(0,i.A)(this,"onRoomStateEvent",async(e,t)=>{d.J.safeGet().isRoomEncrypted(t.roomId)&&(e.getType()!==a.Bx4.RoomEncryption||await this.isRoomIndexed(t.roomId)||(this.logger.debug("Adding a checkpoint for a newly encrypted room",t.roomId),this.addRoomCheckpoint(t.roomId,!0)))}),(0,i.A)(this,"redactEvent",async e=>{var t;const n=null===(t=o.A.get())||void 0===t?void 0:t.getEventIndexingManager();if(!n)return;const i=e.getAssociatedId();if(i)try{await n.deleteEvent(i)}catch(e){this.logger.warn("Error deleting event from index",e)}}),(0,i.A)(this,"onTimelineReset",async e=>{e&&d.J.safeGet().isRoomEncrypted(e.roomId)&&(this.logger.debug("Adding a checkpoint because of a limited timeline",e.roomId),this.addRoomCheckpoint(e.roomId,!1))}),this.logger=s.vF.getChild("EventIndex")}async init(){var e;const t=null===(e=o.A.get())||void 0===e?void 0:e.getEventIndexingManager();t&&(await t.isEventIndexEmpty()&&(this.needsInitialCheckpoints=!0),this.crawlerCheckpoints=await t.loadCheckpoints(),this.logger.debug("Loaded checkpoints",JSON.stringify(this.crawlerCheckpoints)),this.registerListeners())}registerListeners(){const e=d.J.safeGet();e.on(a.AUM.Sync,this.onSync),e.on(a.u99.Timeline,this.onRoomTimeline),e.on(a.u99.TimelineReset,this.onTimelineReset),e.on(a.fZ1.Events,this.onRoomStateEvent)}removeListeners(){const e=d.J.get();null!==e&&(e.removeListener(a.AUM.Sync,this.onSync),e.removeListener(a.u99.Timeline,this.onRoomTimeline),e.removeListener(a.u99.TimelineReset,this.onTimelineReset),e.removeListener(a.fZ1.Events,this.onRoomStateEvent))}async addInitialCheckpoints(){var e;this.needsInitialCheckpoints=!1;const t=null===(e=o.A.get())||void 0===e?void 0:e.getEventIndexingManager();if(!t)return;const n=d.J.safeGet(),i=n.getRooms(),s=await(0,p.j7)(i,async e=>{var t;return Boolean(await(null===(t=n.getCrypto())||void 0===t?void 0:t.isEncryptionEnabledInRoom(e.roomId)))});this.logger.debug("addInitialCheckpoints: starting"),await Promise.all(s.map(async e=>{const n=e.getLiveTimeline().getPaginationToken(a.OP3.Backward);if(!n)return void this.logger.debug(`addInitialCheckpoints: No back-pagination token for room ${e.roomId}"`);this.logger.debug(`addInitialCheckpoints: Adding initial checkpoints for room ${e.roomId}`);const i={roomId:e.roomId,token:n,direction:a.OP3.Backward,fullCrawl:!0},s={roomId:e.roomId,token:n,direction:a.OP3.Forward};try{await t.addCrawlerCheckpoint(i),this.crawlerCheckpoints.push(i),await t.addCrawlerCheckpoint(s),this.crawlerCheckpoints.push(s)}catch(t){this.logger.warn(`addInitialCheckpoints: Error adding initial checkpoints for room ${e.roomId}`,t)}})),this.logger.debug("addInitialCheckpoints: done")}isValidEvent(e){const t=[a.Bx4.RoomMessage,a.Bx4.RoomName,a.Bx4.RoomTopic].includes(e.getType())&&!e.isRedacted()&&!e.isDecryptionFailure();let n=!0,i=!0;if(e.getType()!==a.Bx4.RoomMessage||e.isRedacted())e.getType()!==a.Bx4.RoomTopic||e.isRedacted()?e.getType()!==a.Bx4.RoomName||e.isRedacted()||e.getContent().name||(i=!1):e.getContent().topic||(i=!1);else{const t=e.getContent().msgtype;n=!!t&&!t.startsWith("m.key.verification"),e.getContent().body||(i=!1)}return t&&n&&i}eventToJson(e){const t=e.getEffectiveEvent();return e.isEncrypted()?(t.curve25519Key=e.getSenderKey(),t.ed25519Key=e.getClaimedEd25519Key(),t.algorithm=e.getWireContent().algorithm,t.forwardingCurve25519KeyChain=e.getForwardingCurve25519KeyChain()):(delete t.curve25519Key,delete t.ed25519Key,delete t.algorithm,delete t.forwardingCurve25519KeyChain),t}async addLiveEventToIndex(e){var t,n,i;const s=null===(t=o.A.get())||void 0===t?void 0:t.getEventIndexingManager();if(!s||!this.isValidEvent(e))return;const r=this.eventToJson(e),a={displayname:null===(n=e.sender)||void 0===n?void 0:n.rawDisplayName,avatar_url:null===(i=e.sender)||void 0===i?void 0:i.getMxcAvatarUrl()};await s.addEventToIndex(r,a)}emitNewCheckpoint(){this.emit("changedCheckpoint",this.currentRoom())}async addEventsFromLiveTimeline(e){const t=e.getEvents();for(let e=0;e<t.length;e++){const n=t[e];await this.addLiveEventToIndex(n)}}async addRoomCheckpoint(e,t=!1){var n;const i=null===(n=o.A.get())||void 0===n?void 0:n.getEventIndexingManager();if(!i)return;const s=d.J.safeGet().getRoom(e);if(!s)return;const r=s.getLiveTimeline(),l=r.getPaginationToken(a.OP3.Backward);if(!l)return void await this.addEventsFromLiveTimeline(r);const c={roomId:s.roomId,token:l,fullCrawl:t,direction:a.OP3.Backward};this.logger.debug("Adding checkpoint",JSON.stringify(c));try{await i.addCrawlerCheckpoint(c)}catch(e){this.logger.warn(`Error adding new checkpoint for room ${s.roomId}`,e)}this.crawlerCheckpoints.push(c)}async crawlerFunc(){var e;let t=!1;const n=d.J.safeGet(),i=null===(e=o.A.get())||void 0===e?void 0:e.getEventIndexingManager();if(!i)return;this.crawler={cancel:()=>{t=!0}};let s=!1;for(;!t;){let e=m.A.getValueAt(u.p.DEVICE,"crawlerSleepTime");if(e=Math.max(e,100),s&&(e=5e3),null!==this.currentCheckpoint&&(this.currentCheckpoint=null,this.emitNewCheckpoint()),await(0,c.yy)(e),t)break;const o=this.crawlerCheckpoints.shift();if(void 0===o){s=!0;continue}this.logger.debug(`Processing checkpoint ${JSON.stringify(o)}`),this.currentCheckpoint=o,this.emitNewCheckpoint(),s=!1;const r=n.getEventMapper({preventReEmit:!0});let d;try{d=await n.createMessagesRequest(o.roomId,o.token,100,o.direction)}catch(e){if(e instanceof a.Hl$&&403===e.httpStatus){this.logger.debug("Removing checkpoint as we don't have ","permissions to fetch messages from this room.",JSON.stringify(o));try{await i.removeCrawlerCheckpoint(o)}catch(e){this.logger.warn(`Error removing checkpoint ${JSON.stringify(o)}:`,e)}continue}this.logger.warn(`Error crawling using checkpoint ${JSON.stringify(o)}:`,e),this.crawlerCheckpoints.push(o);continue}if(t){this.crawlerCheckpoints.push(o);break}if(0===d.chunk.length){this.logger.debug("Done with the checkpoint",JSON.stringify(o));try{await i.removeCrawlerCheckpoint(o)}catch(e){this.logger.warn("Error removing checkpoint",JSON.stringify(o),e)}continue}const p=d.chunk.map(r);let h=[];void 0!==d.state&&(h=d.state.map(r));const g={};h.forEach(e=>{e.getContent().membership===l.O.Join&&(g[e.getSender()]={displayname:e.getContent().displayname,avatar_url:e.getContent().avatar_url})});const v=p.filter(e=>e.isEncrypted()).map(e=>n.decryptEventIfNeeded(e,{emit:!1}));await Promise.all(v);const _=p.filter(this.isValidEvent),f=p.filter(e=>e.isRedaction()),y=_.map(e=>{const t=this.eventToJson(e);let n={};t.sender in g&&(n=g[t.sender]);return{event:t,profile:n}});let E=null;d.end&&(E={roomId:o.roomId,token:d.end,fullCrawl:o.fullCrawl,direction:o.direction});try{for(let e=0;e<f.length;e++){const t=f[e],n=t.getAssociatedId();n?await i.deleteEvent(n):this.logger.warn("Redaction event doesn't contain a valid associated event id",t)}const e=await i.addHistoricEvents(y,E,o);if(!E){this.logger.debug("The server didn't return a valid new checkpoint, not continuing the crawl.",JSON.stringify(o));continue}!0===e&&!0!==E.fullCrawl?(this.logger.debug("Checkpoint had already all events","added, stopping the crawl",JSON.stringify(o)),await i.removeCrawlerCheckpoint(E)):(!0===e&&this.logger.debug("Checkpoint had already all events","added, but continuing due to a full crawl",JSON.stringify(o)),this.crawlerCheckpoints.push(E))}catch(e){this.logger.warn("Error during a crawl",e),this.crawlerCheckpoints.push(o)}}}startCrawler(){null===this.crawler&&(this.logger.debug("Starting crawler"),this.crawlerFunc().finally(()=>{this.crawler=null}).catch(e=>{this.logger.error("Error in crawler function",e)}))}stopCrawler(){null!==this.crawler&&(this.logger.debug("Stopping crawler"),this.crawler.cancel())}async close(){var e;const t=null===(e=o.A.get())||void 0===e?void 0:e.getEventIndexingManager();this.removeListeners(),this.stopCrawler(),await(null==t?void 0:t.closeEventIndex())}async search(e){var t;const n=null===(t=o.A.get())||void 0===t?void 0:t.getEventIndexingManager();return null==n?void 0:n.searchEventIndex(e)}async loadFileEvents(e,t=10,n,i=a.qss.BACKWARDS){var s;const r=d.J.safeGet(),c=null===(s=o.A.get())||void 0===s?void 0:s.getEventIndexingManager();if(!c)return[];const m={roomId:e.roomId,limit:t};let u;n&&(m.fromEvent=n,m.direction=i);try{u=await c.loadFileEvents(m)}catch(e){return this.logger.debug("Error getting file events",e),[]}const p=r.getEventMapper();return u.map(t=>{const n=p(t.event),i=new a.YxN(e.roomId,n.getSender());i.name=t.profile.displayname+" ("+n.getSender()+")";const s=p({content:{membership:l.O.Join,avatar_url:t.profile.avatar_url,displayname:t.profile.displayname},type:a.Bx4.RoomMember,event_id:n.getId()+":eventIndex",room_id:n.getRoomId(),sender:n.getSender(),origin_server_ts:n.getTs(),state_key:n.getSender()});return i.events.member=s,n.sender=i,n})}async populateFileTimeline(e,t,n,i=10,s,o=a.qss.BACKWARDS){const r=await this.loadFileEvents(n,i,s,o);null===s&&(r.reverse(),o=o==a.qss.BACKWARDS?a.qss.FORWARDS:a.qss.BACKWARDS),r.forEach(n=>{e.eventIdToTimeline(n.getId())||e.addEventToTimeline(n,t,{toStartOfTimeline:o==a.qss.BACKWARDS,fromCache:!1,addToState:!1})});let l=!1,c="";return r.length>0&&(c=r[r.length-1].getId(),l=!0),this.logger.debug(`Populating file panel with ${r.length} events and setting the pagination token to ${c}`),t.setPaginationToken(c,a.qss.BACKWARDS),l}paginateTimelineWindow(e,t,n,i){const s=t.getTimelineIndex(n);if(!s)return Promise.resolve(!1);if(s.pendingPaginate)return s.pendingPaginate;if(t.extend(n,i))return Promise.resolve(!0);const o=(async(e,t,n,i,s)=>{var o;const r=t.timeline,a=r.getTimelineSet(),l=null!==(o=r.getPaginationToken(i))&&void 0!==o?o:void 0,c=await this.populateFileTimeline(a,r,n,s,l,i);return t.pendingPaginate=void 0,e.extend(i,s),c})(t,s,e,n,i);return s.pendingPaginate=o,o}async getStats(){var e;const t=null===(e=o.A.get())||void 0===e?void 0:e.getEventIndexingManager();return null==t?void 0:t.getStats()}async isRoomIndexed(e){var t;const n=null===(t=o.A.get())||void 0===t?void 0:t.getEventIndexingManager();return null==n?void 0:n.isRoomIndexed(e)}currentRoom(){if(null===this.currentCheckpoint&&0===this.crawlerCheckpoints.length)return null;const e=d.J.safeGet();return null!==this.currentCheckpoint?e.getRoom(this.currentCheckpoint.roomId):e.getRoom(this.crawlerCheckpoints[0].roomId)}crawlingRooms(){const e=new Set,t=new Set;this.crawlerCheckpoints.forEach((e,n)=>{t.add(e.roomId)}),null!==this.currentCheckpoint&&t.add(this.currentCheckpoint.roomId);const n=d.J.safeGet();return n.getRooms().filter(e=>n.isRoomEncrypted(e.roomId)).forEach((t,n)=>{e.add(t.roomId)}),{crawlingRooms:t,totalRooms:e}}}class v{constructor(){(0,i.A)(this,"index",null),(0,i.A)(this,"error",void 0),(0,i.A)(this,"_supportIsInstalled",!1)}async init(){var e;const t=null===(e=o.A.get())||void 0===e?void 0:e.getEventIndexingManager();return t?(this._supportIsInstalled=await t.supportsEventIndexing(),this.supportIsInstalled()?m.A.getValueAt(u.p.DEVICE,"enableEventIndexing")?this.initEventIndex():(s.vF.log("EventIndex: Event indexing is disabled, not initializing"),!1):(s.vF.log("EventIndex: Event indexing isn't installed for the platform, not initializing."),!1)):(s.vF.log("EventIndex: Platform doesn't support event indexing, not initializing."),!1)}async initEventIndex(){var e;const t=new g,n=null===(e=o.A.get())||void 0===e?void 0:e.getEventIndexingManager(),i=d.J.get();if(!n||!i)throw new Error("Unable to init event index");const r=i.getUserId(),a=i.getDeviceId();try{await n.initEventIndex(r,a);const e=await n.getUserVersion(),i=await n.isEventIndexEmpty();i?await n.setUserVersion(1):0!==e||i||(await n.closeEventIndex(),await this.deleteEventIndex(),await n.initEventIndex(r,a),await n.setUserVersion(1)),s.vF.log("EventIndex: Successfully initialized the event index"),await t.init()}catch(e){return s.vF.log("EventIndex: Error initializing the event index",e),this.error=e,!1}return this.index=t,!0}platformHasSupport(){var e;return null!=(null===(e=o.A.get())||void 0===e?void 0:e.getEventIndexingManager())}supportIsInstalled(){return this._supportIsInstalled}get(){return this.index}start(){null!==this.index&&this.index.startCrawler()}stop(){null!==this.index&&this.index.stopCrawler()}async unset(){null!==this.index&&(await this.index.close(),this.index=null)}async deleteEventIndex(){var e;const t=null===(e=o.A.get())||void 0===e?void 0:e.getEventIndexingManager();t&&(await this.unset(),s.vF.log("EventIndex: Deleting event index."),await t.deleteEventIndex())}}window.mxEventIndexPeg||(window.mxEventIndexPeg=new v);const _=window.mxEventIndexPeg},"./src/utils/oauth/registerClient.ts"(e,t,n){"use strict";var i=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/logger.ts"),s=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/matrix.ts"),o=n("./src/PlatformPeg.ts");n.d(t,["A",0,async(e,t)=>{const n=((e,t)=>{var n;const i=e.endsWith("/")?e:e+"/";return null==t||null===(n=t[i])||void 0===n?void 0:n.client_id})(e.issuer,t);return n?(i.vF.debug(`Using static clientId for issuer ${e.issuer}`),n):await s.sU_.registerClient(e,await o.A.get().getOAuthClientMetadata())}])},"./src/vector/app.tsx"(e,t,n){"use strict";n.d(t,{loadApp:()=>vP});var i=n("../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/defineProperty.js"),s=(n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/browser-index.ts"),n("../../node_modules/.pnpm/react@19.2.7/node_modules/react/index.js")),o=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/logger.ts"),r=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/matrix.ts"),a=n("../../node_modules/.pnpm/@matrix-org+react-sdk-module-api@2.5.0_patch_hash=016146c9cc96e6363609d2b2ac0896ccef567_88e9e4948198afef3a26d5a493f07dc1/node_modules/@matrix-org/react-sdk-module-api/lib/lifecycles/WrapperLifecycle.js"),l=n("./src/PlatformPeg.ts"),c=n("./src/languageHandler.tsx"),d=n("./src/SdkConfig.ts");const m=[r.MNj.ERROR_INVALID_HOMESERVER,r.MNj.ERROR_INVALID_IDENTITY_SERVER],u=Object.values(r.gcO),p=e=>u.includes(e),h=e=>{switch(e){case r.gcO.GenericFailure:return(0,c.AO)("auth|autodiscovery_invalid");case r.gcO.Invalid:return(0,c.AO)("auth|autodiscovery_generic_failure");case r.gcO.InvalidHsBaseUrl:return(0,c.AO)("auth|autodiscovery_invalid_hs_base_url");case r.gcO.InvalidHomeserver:return(0,c.AO)("auth|autodiscovery_invalid_hs");case r.gcO.InvalidIsBaseUrl:return(0,c.AO)("auth|autodiscovery_invalid_is_base_url");case r.gcO.InvalidIdentityServer:return(0,c.AO)("auth|autodiscovery_invalid_is");case r.gcO.InvalidIs:return(0,c.AO)("auth|autodiscovery_invalid_is_response");case r.gcO.MissingWellknown:return(0,c.AO)("auth|autodiscovery_no_well_known");case r.gcO.InvalidJson:return(0,c.AO)("auth|autodiscovery_invalid_json");case r.gcO.UnsupportedHomeserverSpecVersion:return(0,c.AO)("auth|autodiscovery_hs_incompatible")}};class g{static isLivelinessError(e){if(!e)return!1;let t=e;return e instanceof c.P7?t=e.cause:e instanceof Error&&(t=e.message),m.includes(t)}static authComponentStateForError(e,t="login"){if(!e)return{serverIsAlive:!0,serverErrorIsFatal:!1,serverDeadError:null};let n=(0,c._t)("cannot_reach_homeserver"),i=(0,c._t)("cannot_reach_homeserver_detail");if(!g.isLivelinessError(e)){const e=d.A.get().brand;n=(0,c._t)("auth|misconfigured_title",{brand:e}),i=(0,c._t)("auth|misconfigured_body",{brand:e},{a:e=>s.createElement("a",{href:"https://github.com/vector-im/element-web/blob/master/docs/config.md",target:"_blank",rel:"noreferrer noopener"},e)})}let o=!0;return(e instanceof Error?e.message:e)===r.MNj.ERROR_INVALID_IDENTITY_SERVER&&(o=!1,n=(0,c._t)("auth|failed_connect_identity_server"),i="register"===t?(0,c._t)("auth|failed_connect_identity_server_register"):"reset_password"===t?(0,c._t)("auth|failed_connect_identity_server_reset_password"):(0,c._t)("auth|failed_connect_identity_server_other")),{serverIsAlive:!1,serverErrorIsFatal:o,serverDeadError:s.createElement("div",null,s.createElement("strong",null,n),s.createElement("div",null,i))}}static async validateServerConfigWithStaticUrls(e,t,n=!1){if(!e)throw new c.P7("auth|no_hs_url_provided");const i={"m.homeserver":{base_url:e}};t&&(i["m.identity_server"]={base_url:t});const s=await r.MNj.fromDiscoveryConfig(i),o=new URL(e).hostname;return g.buildValidatedConfigFromDiscovery(o,s,n,!0)}static async validateServerName(e){const t=await r.MNj.findClientConfig(e);return g.buildValidatedConfigFromDiscovery(e,t)}static async buildValidatedConfigFromDiscovery(e,t,n=!1,i=!1){var s,a;if(null==t||!t["m.homeserver"])throw o.vF.error("Ended up in a state of not knowing which homeserver to connect to."),new c.P7("auth|autodiscovery_unexpected_error_hs");const l=t["m.homeserver"],m=t["m.identity_server"],u=d.A.get("validated_server_config");let v=u&&u.isUrl;var _;if(m&&m.state===r.MNj.SUCCESS)v=null!==(_=m.base_url)&&void 0!==_?_:void 0;else if(m&&m.state!==r.MNj.PROMPT){if(o.vF.error("Error determining preferred identity server URL:",m),m.state===r.MNj.FAIL_ERROR){if(p(m.error))throw new c.P7(h(m.error),{cause:l.error});throw new c.P7("auth|autodiscovery_unexpected_error_is")}l.error=r.MNj.ERROR_INVALID_IDENTITY_SERVER,m.base_url&&(v=m.base_url)}if(l.state!==r.MNj.SUCCESS&&(o.vF.error("Error processing homeserver config:",l),!n||!g.isLivelinessError(l.error))){if(p(l.error))throw new c.P7(h(l.error),{cause:l.error});throw new c.P7("auth|autodiscovery_unexpected_error_hs")}const f=l.base_url;if(!f)throw o.vF.error("No homeserver URL configured"),new c.P7("auth|autodiscovery_unexpected_error_hs");let y=null!=e?e:l.server_name;const E=new URL(f);if(y||(y=E.hostname),!y)throw o.vF.error("Failed to parse homeserver name from homeserver URL"),new c.P7("auth|autodiscovery_unexpected_error_hs");let w,S;try{const e=new r.pBM({baseUrl:f});w=await e.getAuthMetadata()}catch(e){e instanceof r.upv&&404===e.httpStatus&&"M_UNRECOGNIZED"===e.errcode||(S=e)}return{hsUrl:f,hsName:y,hsNameIsDifferent:E.hostname!==y,isUrl:v,isDefault:!1,warning:null!==(s=null!==(a=l.error)&&void 0!==a?a:S)&&void 0!==s?s:null,isNameResolvable:!i,delegatedAuthentication:w}}}var v=n("../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"),_=n("./src/MatrixClientPeg.ts"),f=n("./src/modules/ModuleRunner.ts"),y=n("./src/indexing/EventIndexPeg.ts"),E=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/types.ts");function w(e){return new Worker(new URL(n.p+n.u(3444),n.b),{...e,type:void 0})}var S=n("./src/settings/SettingsStore.ts"),b=n("./src/SecurityManager.ts"),A=n("./src/IdentityAuthClient.tsx"),C=n("./src/utils/FormattingUtils.ts"),x=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/utils/decryptAESSecretStorageItem.ts"),k=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/utils/encryptAESSecretStorageItem.ts"),R=n("./src/utils/StorageAccess.ts");const I="mx_access_token",T="mx_refresh_token",P="access_token",N="refresh_token",D="mx_has_access_token",M="mx_has_refresh_token";async function O(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);const n=await crypto.subtle.importKey("raw",t,"HKDF",!1,["deriveBits"]);return t.fill(0),new Uint8Array(await crypto.subtle.deriveBits({name:"HKDF",hash:"SHA-256",salt:new Uint8Array(32),info:new Uint8Array(0)},n,256))}async function F(e,t,n){if("string"==typeof t)return t;if(!e)throw new Error(`Error decrypting secret ${n}: no pickle key found.`);const i=await O(e),s=await(0,x.A)(t,i,n);return i.fill(0),s}async function L(e,t,n,i,s){if(n?localStorage.setItem(s,"true"):localStorage.removeItem(s),i){let s;if(n)try{const e=await O(i);s=await(0,k.A)(n,e,t),e.fill(0)}catch(e){o.vF.warn(`Could not encrypt token for ${t}`,e)}try{await R.x7("account",e,s||n)}catch{n?localStorage.setItem(e,n):localStorage.removeItem(e)}}else try{await R.x7("account",e,n)}catch{n?localStorage.setItem(e,n):localStorage.removeItem(e)}}async function U(e,t){await L(I,P,t.accessToken,e,D),await L(T,N,t.refreshToken,e,M)}function V(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function B(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?V(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):V(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const j=window.localStorage;let H;try{H=window.indexedDB}catch{}function z(e,t){const n=t-1;return e.length?1===e.length&&n<=1?e[0]:void 0:(0,c._t)("empty_room")}function W(e,t){switch(t.type){case r.bxi.Generated:return"Inviting"===t.subtype?(n=t.names,i=t.count,z(n,i)||(2===n.length&&2===i?(0,c._t)("inviting_user1_and_user2",{user1:n[0],user2:n[1]}):(0,c._t)("inviting_user_and_n_others",{user:n[0],count:i-1}))):function(e,t){const n=z(e,t);return n||(2===e.length&&2===t?(0,C.ki)(e):(0,C.ki)(e,1))}(t.names,t.count);case r.bxi.EmptyRoom:return t.oldName?(0,c._t)("empty_room_was_name",{oldName:t.oldName}):(0,c._t)("empty_room");default:return null}var n,i}function J(e){const t={useAuthorizationHeader:!0};return H&&j?t.store=new r.bpT({indexedDB:H,dbName:"riot-web-sync",localStorage:j,workerFactory:w}):j&&(t.store=new r.nyL({localStorage:j})),t.cryptoStore=H?new r.yDO(H,"matrix-js-sdk:crypto"):j?new r.FyD(j):new r._uf,(0,r.UU6)(B(B({},t),e))}var G=n("./src/UserActivity.ts"),K=n("./src/dispatcher/dispatcher.ts"),q=n("./src/utils/Timer.ts"),$=n("./src/dispatcher/actions.ts");const Y=new class{constructor(){(0,i.A)(this,"unavailableTimer",void 0),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"state",void 0),(0,i.A)(this,"onAction",e=>{var t;e.action===$.r.UserActivity&&(this.setState(r.IU2.Online),null===(t=this.unavailableTimer)||void 0===t||t.restart())})}async start(){for(this.unavailableTimer=new q.A(18e4),this.dispatcherRef=K.A.register(this.onAction);this.unavailableTimer;)try{await this.unavailableTimer.finished(),this.setState(r.IU2.Unavailable)}catch{}}stop(){var e;K.A.unregister(this.dispatcherRef),this.dispatcherRef=void 0,null===(e=this.unavailableTimer)||void 0===e||e.abort(),this.unavailableTimer=void 0}getState(){var e;return null!==(e=this.state)&&void 0!==e?e:null}async setState(e){if(e===this.state)return;const t=this.state;if(this.state=e,!_.J.safeGet().isGuest())try{await _.J.safeGet().setSyncPresence(this.state),o.vF.debug("Presence:",e)}catch(e){o.vF.error("Failed to set presence:",e),this.state=t}}};var Q=n("./src/utils/DMRoomMap.ts"),X=n("./src/Modal.tsx"),Z=n("./src/stores/ActiveWidgetStore.ts"),ee=n("./src/utils/oauth/registerClient.ts");class te{constructor(e,t,n,s){(0,i.A)(this,"flows",[]),(0,i.A)(this,"defaultDeviceDisplayName",void 0),(0,i.A)(this,"delegatedAuthentication",void 0),(0,i.A)(this,"tempClient",null),this.hsUrl=e,this.isUrl=t,this.fallbackHsUrl=n,this.defaultDeviceDisplayName=s.defaultDeviceDisplayName,this.delegatedAuthentication=s.delegatedAuthentication}getHomeserverUrl(){return this.hsUrl}getIdentityServerUrl(){return this.isUrl}setHomeserverUrl(e){this.tempClient=null,this.hsUrl=e}setIdentityServerUrl(e){this.tempClient=null,this.isUrl=e}setDelegatedAuthentication(e){this.tempClient=null,this.delegatedAuthentication=e}createTemporaryClient(){return this.tempClient||(this.tempClient=(0,r.UU6)({baseUrl:this.hsUrl,idBaseUrl:this.isUrl})),this.tempClient}async getFlows(e){if(this.delegatedAuthentication)try{return[await ne(this.delegatedAuthentication,d.A.get().oidc_static_clients,e)]}catch(e){o.vF.error("Failed to get OAuth2 native flow",e)}const t=this.createTemporaryClient(),{flows:n}=await t.loginFlows(),i=n.find(e=>"m.login.sso"===e.type&&r.Z7F.findIn(e));return this.flows=i?[i]:n,this.flows}loginViaPassword(e,t,n,i){const s=!!e&&e.indexOf("@")>0;let r;r=t&&n?{type:"m.id.phone",country:t,phone:n,number:n}:s?{type:"m.id.thirdparty",medium:"email",address:e}:{type:"m.id.user",user:e};const a={password:i,identifier:r,initial_device_display_name:this.defaultDeviceDisplayName},l=e=>ie(this.fallbackHsUrl,this.isUrl,"m.login.password",a).catch(t=>{throw o.vF.log("fallback HS login failed",t),e});let c=null;return ie(this.hsUrl,this.isUrl,"m.login.password",a).catch(e=>{if(c=e,403===e.httpStatus&&this.fallbackHsUrl)return l(c);throw c}).catch(e=>{throw o.vF.log("Login failed",e),e})}}const ne=async(e,t,n)=>{if(n&&!(e=>{const t=e.prompt_values_supported;return Array.isArray(t)&&(null==t?void 0:t.includes("create"))})(e))throw new Error("Registration is not supported by OP");return{type:"oauthNativeFlow",clientId:await(0,ee.A)(e,t)}};async function ie(e,t,n,i){const s=(0,r.UU6)({baseUrl:e,idBaseUrl:t}),a=await s.login(n,i),l=a.well_known;var c,d;l&&(null!==(c=l["m.homeserver"])&&void 0!==c&&c.base_url&&(e=l["m.homeserver"].base_url,o.vF.log(`Overrode homeserver setting with ${e} from login response`)),null!==(d=l["m.identity_server"])&&void 0!==d&&d.base_url&&(t=l["m.identity_server"].base_url,o.vF.log(`Overrode IS setting with ${t} from login response`)));const m={homeserverUrl:e,identityServerUrl:t,userId:a.user_id,deviceId:a.device_id,accessToken:a.access_token};return f.r.instance.extensions.cryptoSetup.examineLoginResponse(a,m),m}var se=n("./src/utils/StorageManager.ts"),oe=n("./src/settings/SettingLevel.ts"),re=n("./src/stores/ToastStore.ts"),ae=n("./src/integrations/IntegrationManagers.ts"),le=n("./src/mjolnir/Mjolnir.ts");let ce=function(e){return e.DeviceStateChanged="device_state",e}({});class de extends r.Xlq{onStateChanged(e){this.emit(ce.DeviceStateChanged,e)}}var me=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/randomstring.ts"),ue=n("./src/PosthogAnalytics.ts");const pe="io.element.matrix_client_information.",he=e=>`${pe}${e}`,ge=async(e,t,n)=>{const i=e.getDeviceId(),{brand:s}=t,o=await(null==n?void 0:n.getAppVersion()),r=he(i),a=(()=>{if(window.electron)return;const e=new URL(window.location.href);return[e.host,e.pathname.replace(/\/$/,"")].join("")})();await e.setAccountData(r,{name:s,version:o,url:a})},ve=e=>e&&"string"==typeof e?e:void 0,_e=(e,t)=>{const n=e.getAccountData(he(t));if(!n)return{};const{name:i,version:s,url:o}=n.getContent();return{name:ve(i),version:ve(s),url:ve(o)}},fe=o.vF.getChild("DeviceListener:");class ye{constructor(){(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"otherDevices",void 0),(0,i.A)(this,"currentDevice",void 0),(0,i.A)(this,"currentDeviceChangedEmitter",new de),(0,i.A)(this,"running",!1),(0,i.A)(this,"client",void 0),(0,i.A)(this,"shouldRecordClientInformation",!1),(0,i.A)(this,"deviceClientInformationSettingWatcherRef",void 0),(0,i.A)(this,"analyticsVerificationState",void 0),(0,i.A)(this,"analyticsRecoveryState",void 0),(0,i.A)(this,"onAction",({action:e})=>{e===$.r.OnLoggedIn&&(this.recheck(),this.updateClientInformation())}),(0,i.A)(this,"onRecordClientInformationSettingChange",(e,t,n,i,s)=>{const o=this.shouldRecordClientInformation;this.shouldRecordClientInformation=!!s,this.shouldRecordClientInformation!==o&&this.updateClientInformation()}),(0,i.A)(this,"updateClientInformation",async()=>{if(this.client)try{var e;if(this.shouldRecordClientInformation)await ge(this.client,d.A.get(),null!==(e=l.A.get())&&void 0!==e?e:void 0);else await(async e=>{const t=e.getDeviceId(),n=he(t),i=_e(e,t);(i.name||i.version||i.url)&&await e.deleteAccountData(n)})(this.client)}catch(e){fe.error("Failed to update client information",e)}})}static sharedInstance(){return window.mxDeviceListener||(window.mxDeviceListener=new ye),window.mxDeviceListener}start(e){this.running=!0,this.otherDevices=new $t(this,e),this.currentDevice=new At(this,e,fe),this.client=e,this.shouldRecordClientInformation=S.A.getValue("deviceClientInformationOptIn"),this.deviceClientInformationSettingWatcherRef=S.A.watchSetting("deviceClientInformationOptIn",null,this.onRecordClientInformationSettingChange),this.dispatcherRef=K.A.register(this.onAction),this.recheck(),this.updateClientInformation()}stop(){var e,t;this.running=!1,S.A.unwatchSetting(this.deviceClientInformationSettingWatcherRef),K.A.unregister(this.dispatcherRef),this.dispatcherRef=void 0,null===(e=this.otherDevices)||void 0===e||e.stop(),null===(t=this.currentDevice)||void 0===t||t.stop(),this.client=void 0}async whilePaused(e){const t=this.client;try{this.stop(),await e()}finally{t&&this.start(t)}}dismissUnverifiedSessions(e){var t;fe.debug("Dismissing unverified sessions: "+Array.from(e).join(",")),null===(t=this.otherDevices)||void 0===t||t.dismissUnverifiedSessions(e)}dismissEncryptionSetup(){var e;null===(e=this.currentDevice)||void 0===e||e.dismissEncryptionSetup()}async recordKeyBackupDisabled(){var e;await(null===(e=this.currentDevice)||void 0===e?void 0:e.recordKeyBackupDisabled())}async recordRecoveryDisabled(){var e;await(null===(e=this.currentDevice)||void 0===e?void 0:e.recordRecoveryDisabled())}async keyStorageOutOfSyncNeedsCrossSigningReset(e){var t;const n=null===(t=this.client)||void 0===t?void 0:t.getCrypto();if(!n)return!1;const i=await n.getCrossSigningStatus(),s=i.privateKeysCachedLocally.masterKey&&i.privateKeysCachedLocally.selfSigningKey&&i.privateKeysCachedLocally.userSigningKey;return e?!s:!s&&!i.privateKeysInSecretStorage}async keyStorageOutOfSyncNeedsBackupReset(e){var t;const n=null===(t=this.client)||void 0===t?void 0:t.getCrypto(),i=this.currentDevice;if(!n||!i)return!1;const s=!await i.recheckBackupDisabled(),o=null!==await n.getSessionBackupPrivateKey(),r=await this.client.isKeyBackupKeyStored();return e?s&&!o:s&&!o&&!r}recheck(){this.doRecheck().catch(e=>{e instanceof r.LAn||fe.error("Error during `DeviceListener.recheck`",e)})}async doRecheck(){var e,t;if(!this.running||!this.client)return;const n=new o.Tl(fe,"check_"+(0,me.US)(4));n.debug("starting recheck...");const i=this.client;i.getCrypto()?i.isInitialSyncComplete()?(await(null===(e=this.currentDevice)||void 0===e?void 0:e.recheck(n)),await(null===(t=this.otherDevices)||void 0===t?void 0:t.recheck(n)),await this.reportCryptoSessionStateToAnalytics(i)):n.debug("initial sync not yet complete"):n.debug("crypto not enabled")}getDeviceState(){var e,t;return null!==(e=null===(t=this.currentDevice)||void 0===t?void 0:t.getDeviceState())&&void 0!==e?e:"ok"}async reportCryptoSessionStateToAnalytics(e){var t;const n=e.getCrypto(),i=await n.getSecretStorageStatus(),s=i.ready,o=await n.getCrossSigningStatus(),r=await(null===(t=this.currentDevice)||void 0===t?void 0:t.getKeyBackupInfo()),a=null!=i.defaultKeyId,l=await n.getDeviceVerificationStatus(e.getUserId(),e.getDeviceId()),c=null!=l&&l.signedByOwner&&null!=l&&l.crossSigningVerified?"Verified":"NotVerified";let d;if(a){const e=o.privateKeysCachedLocally.masterKey&&o.privateKeysCachedLocally.selfSigningKey&&o.privateKeysCachedLocally.userSigningKey;if(null!=r){const t=null!=await n.getSessionBackupPrivateKey();d=s&&e&&t?"Enabled":"Incomplete"}else d=s&&e?"Enabled":"Incomplete"}else d="Disabled";this.analyticsVerificationState===c&&this.analyticsRecoveryState===d||(this.analyticsRecoveryState=d,this.analyticsVerificationState=c,ue.Vo.instance.setProperty("recoveryState",d),ue.Vo.instance.setProperty("verificationState",c),ue.Vo.instance.trackEvent({eventName:"CryptoSessionState",verificationState:c,recoveryState:d}))}}var Ee=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/crypto-api/index.ts"),we=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/error-solid.js"),Se=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/settings-solid.js"),be=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/key.js"),Ae=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/devices.js"),Ce=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/lock-solid.js"),xe=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Button/Button.js"),ke=n("./src/components/views/dialogs/BaseDialog.tsx"),Re=n("./src/components/views/right_panel/EncryptionPanel.tsx");class Ie extends s.Component{constructor(e){var t;super(e),(0,i.A)(this,"onRequestChange",()=>{this.setState(e=>{var t;return{phase:null===(t=e.verificationRequest)||void 0===t?void 0:t.phase}})}),this.state={verificationRequest:this.props.verificationRequest,phase:null===(t=this.props.verificationRequest)||void 0===t?void 0:t.phase}}componentDidMount(){var e,t;null===(e=this.state.verificationRequest)||void 0===e||e.on(Ee.FM.Change,this.onRequestChange),null===(t=this.props.verificationRequestPromise)||void 0===t||t.then(e=>{var t;null===(t=this.state.verificationRequest)||void 0===t||t.off(Ee.FM.Change,this.onRequestChange),e.on(Ee.FM.Change,this.onRequestChange),this.setState({verificationRequest:e,phase:e.phase})})}componentWillUnmount(){var e;null===(e=this.state.verificationRequest)||void 0===e||e.off(Ee.FM.Change,this.onRequestChange)}render(){const e=this.state.verificationRequest,t=null==e?void 0:e.otherUserId,n=this.props.member||(t?_.J.safeGet().getUser(t):null),i=this.dialogTitle(e);return n?s.createElement(ke.A,{className:"mx_InfoDialog",onFinished:this.props.onFinished,contentId:"mx_Dialog_content",title:i,hasCancel:!0},s.createElement(Re.A,{layout:"dialog",verificationRequest:this.state.verificationRequest,verificationRequestPromise:this.props.verificationRequestPromise,onClose:this.props.onFinished,member:n,isRoomEncrypted:!1})):null}dialogTitle(e){if(null==e||!e.isSelfVerification)return(0,c._t)("encryption|verification|verification_dialog_title_user");switch(e.phase){case Ee.X9.Ready:return(0,c._t)("encryption|verification|verification_dialog_title_choose");case Ee.X9.Done:return(0,c._t)("encryption|verification|verification_dialog_title_verified");case Ee.X9.Started:switch(e.chosenMethod){case E.V.Reciprocate:return(0,c._t)("encryption|verification|verification_dialog_title_confirm_green_shield");case E.V.Sas:return(0,c._t)("encryption|verification|verification_dialog_title_compare_emojis");default:return(0,c._t)("encryption|verification|verification_dialog_title_device")}case Ee.X9.Unsent:case Ee.X9.Requested:return(0,c._t)("encryption|verification|verification_dialog_title_start_on_other_device");case Ee.X9.Cancelled:return(0,c._t)("encryption|verification|verification_dialog_title_failed");default:return(0,c._t)("encryption|verification|verification_dialog_title_device")}}}var Te=n("../../node_modules/.pnpm/events@3.3.0/node_modules/events/events.js"),Pe=n.n(Te),Ne=n("./src/utils/device/dehydration.ts"),De=n("./src/hooks/useAsyncMemo.ts"),Me=n("./src/utils/arrays.ts");async function Oe(e,t,n){var i,s;if(!n)return null;const o=null!==(i=null===(s=(await n.getUserDeviceInfo([e])).get(e))||void 0===s?void 0:s.values())&&void 0!==i?i:[];return(0,Me.rm)(o,async i=>{if(i.deviceId===t)return!1;if(i.dehydrated)return!1;if(!i.getIdentityKey())return!1;const s=await n.getDeviceVerificationStatus(e,i.deviceId);return!(null==s||!s.signedByOwner)})}function Fe(e){return(0,De.e)(async()=>{const t=e.getUserId(),n=e.getDeviceId(),i=e.getCrypto();return await Oe(t,n,i)},[],void 0)}let Le=function(e){return e[e.Loading=0]="Loading",e[e.Intro=1]="Intro",e[e.Busy=2]="Busy",e[e.Done=3]="Done",e[e.ConfirmSkip=4]="ConfirmSkip",e[e.Finished=5]="Finished",e}({});class Ue extends(Pe()){constructor(...e){super(...e),(0,i.A)(this,"started",void 0),(0,i.A)(this,"phase",void 0),(0,i.A)(this,"verificationRequest",null),(0,i.A)(this,"backupInfo",null),(0,i.A)(this,"keyId",null),(0,i.A)(this,"keyInfo",null),(0,i.A)(this,"hasDevicesToVerifyAgainst",void 0),(0,i.A)(this,"onUserTrustStatusChanged",async e=>{var t;if(e!==_.J.safeGet().getSafeUserId())return;await(null===(t=_.J.safeGet().getCrypto())||void 0===t?void 0:t.getCrossSigningKeyId())&&(this.phase=Le.Done,this.emit("update"))}),(0,i.A)(this,"onVerificationRequest",e=>{this.setActiveVerificationRequest(e)}),(0,i.A)(this,"onVerificationRequestChange",async()=>{var e,t;if((null===(e=this.verificationRequest)||void 0===e?void 0:e.phase)===Ee.X9.Cancelled)this.verificationRequest.off(Ee.FM.Change,this.onVerificationRequestChange),this.verificationRequest=null,this.emit("update");else if((null===(t=this.verificationRequest)||void 0===t?void 0:t.phase)===Ee.X9.Done){var n;this.verificationRequest.off(Ee.FM.Change,this.onVerificationRequestChange),this.verificationRequest=null;const e=await(null===(n=_.J.safeGet().getCrypto())||void 0===n?void 0:n.getCrossSigningKeyId());this.phase=e?Le.Done:Le.Busy,this.emit("update")}})}static sharedInstance(){return window.mxSetupEncryptionStore||(window.mxSetupEncryptionStore=new Ue),window.mxSetupEncryptionStore}start(){if(this.started)return;this.started=!0,this.phase=Le.Loading;const e=_.J.safeGet();e.on(Ee.cr.VerificationRequestReceived,this.onVerificationRequest),e.on(Ee.cr.UserTrustStatusChanged,this.onUserTrustStatusChanged);const t=e.getCrypto().getVerificationRequestsToDeviceInProgress(e.getUserId());t.length&&this.setActiveVerificationRequest(t[t.length-1]),this.fetchKeyInfo()}stop(){var e;if(!this.started)return;this.started=!1,null===(e=this.verificationRequest)||void 0===e||e.off(Ee.FM.Change,this.onVerificationRequestChange);const t=_.J.get();t&&(t.removeListener(Ee.cr.VerificationRequestReceived,this.onVerificationRequest),t.removeListener(Ee.cr.UserTrustStatusChanged,this.onUserTrustStatusChanged))}async fetchKeyInfo(){if(!this.started)return;const e=_.J.safeGet(),t=await e.secretStorage.isStored("m.cross_signing.master");null===t||0===Object.keys(t).length?(this.keyId=null,this.keyInfo=null):(this.keyId=Object.keys(t)[0],this.keyInfo=t[this.keyId]);const n=e.getUserId(),i=e.getDeviceId(),s=e.getCrypto();this.hasDevicesToVerifyAgainst=!0===await Oe(n,i,s),this.phase=Le.Intro,this.emit("update")}async usePassPhrase(){o.vF.debug("SetupEncryptionStore.usePassphrase"),this.phase=Le.Busy,this.emit("update");try{var e,t,n;const i=_.J.safeGet(),s=null!==(e=await(null===(t=i.getCrypto())||void 0===t?void 0:t.getKeyBackupInfo()))&&void 0!==e?e:null;this.backupInfo=s,this.emit("update"),await new Promise((e,t)=>{(0,b.cb)(async()=>{var t,n;(o.vF.debug("SetupEncryptionStore.usePassphrase: cross-signing and secret storage set up; checking dehydration and backup in the background"),e(),await(0,Ne.p)(i),s)&&(await(null===(t=i.getCrypto())||void 0===t?void 0:t.loadSessionBackupPrivateKeyFromSecretStorage()),await(null===(n=i.getCrypto())||void 0===n?void 0:n.restoreKeyBackup()))}).catch(t)}),await(null===(n=i.getCrypto())||void 0===n?void 0:n.getCrossSigningKeyId())&&(o.vF.debug("SetupEncryptionStore.usePassphrase: done"),this.phase=Le.Done,this.emit("update"))}catch(e){e instanceof b.qQ?o.vF.debug("SetupEncryptionStore.usePassphrase: user cancelled access to secret storage"):o.vF.log("SetupEncryptionStore.usePassphrase: error",e),this.phase=Le.Intro,this.emit("update")}}skip(){this.phase=Le.ConfirmSkip,this.emit("update")}skipConfirm(){this.phase=Le.Finished,this.emit("update")}returnAfterSkip(){this.phase=Le.Intro,this.emit("update")}done(){this.phase=Le.Finished,this.emit("update")}async setActiveVerificationRequest(e){this.started&&e.otherUserId===_.J.safeGet().getUserId()&&(this.verificationRequest&&this.verificationRequest.off(Ee.FM.Change,this.onVerificationRequestChange),this.verificationRequest=e,await e.accept(),e.on(Ee.FM.Change,this.onVerificationRequestChange),this.emit("update"))}lostKeys(){return!this.hasDevicesToVerifyAgainst&&!this.keyInfo}}var Ve=n("./src/components/views/elements/AccessibleButton.tsx"),Be=n("./src/components/views/elements/Spinner.tsx"),je=n("./src/contexts/MatrixClientContext.tsx"),He=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/VisualList/VisualList.js"),ze=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/VisualList/VisualListItem.js"),We=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/InlineSpinner/InlineSpinner.js"),Je=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/check.js"),Ge=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/info.js"),Ke=n("./src/components/views/settings/encryption/EncryptionCard.tsx"),qe=n("./src/components/views/auth/InteractiveAuthEntryComponents.tsx"),$e=n("./src/components/views/dialogs/InteractiveAuthDialog.tsx");async function Ye(e,t){try{await t(null)}catch(n){if(!(n instanceof r.upv&&n.data&&n.data.flows))throw n;const i={[qe.av.PHASE_PREAUTH]:{title:(0,c._t)("auth|uia|sso_title"),body:(0,c._t)("auth|uia|sso_preauth_body"),continueText:(0,c._t)("auth|sso"),continueKind:"primary"},[qe.av.PHASE_POSTAUTH]:{title:(0,c._t)("encryption|confirm_encryption_setup_title"),body:(0,c._t)("encryption|confirm_encryption_setup_body"),continueText:(0,c._t)("action|confirm"),continueKind:"primary"}},{finished:s}=X.Ay.createDialog($e.A,{title:"",matrixClient:e,makeRequest:t,aestheticsForStagePhases:{[qe.av.LOGIN_TYPE]:i,[qe.av.UNSTABLE_LOGIN_TYPE]:i}}),[o]=await s;if(!o)throw new Error("Cross-signing key upload auth canceled")}}var Qe=n("./src/components/views/settings/encryption/EncryptionCardButtons.tsx"),Xe=n("../../packages/shared-components/dist/element-web-shared-components.js");function Ze({children:e}){return s.createElement(Xe.son,{direction:"column",gap:"var(--cpd-space-3x)",align:"normal",className:"mx_EncryptionCard_emphasisedContent"},e)}function et({onCancelClick:e,onReset:t,variant:n}){const i=(0,je.nH)(),[o,r]=(0,s.useState)(!1);return s.createElement(Ke.g,{Icon:we.A,destructive:!0,title:tt(n)},s.createElement(Ze,null,s.createElement(He.V,null,s.createElement(ze.k,{Icon:Je.A,success:!0},(0,c._t)("settings|encryption|advanced|breadcrumb_first_description")),s.createElement(ze.k,{Icon:Ge.A},(0,c._t)("settings|encryption|advanced|breadcrumb_second_description")),s.createElement(ze.k,{Icon:Ge.A},(0,c._t)("settings|encryption|advanced|breadcrumb_third_description"))),"compromised"===n&&s.createElement("span",null,(0,c._t)("settings|encryption|advanced|breadcrumb_warning"))),s.createElement(Qe.D,null,s.createElement(xe.$,{destructive:!0,disabled:o,onClick:async()=>{var e;r(!0),await(null===(e=i.getCrypto())||void 0===e?void 0:e.resetEncryption(e=>Ye(i,e))),t()}},o?s.createElement(s.Fragment,null,s.createElement(We.Z,null)," ",(0,c._t)("settings|encryption|advanced|reset_in_progress")):(0,c._t)("action|continue")),o?s.createElement(Ze,null,s.createElement("span",{className:"mx_ResetIdentityPanel_warning"},(0,c._t)("settings|encryption|advanced|do_not_close_warning"))):s.createElement(xe.$,{kind:"tertiary",onClick:e},(0,c._t)("action|cancel"))))}function tt(e){switch(e){case"compromised":case"confirm":return(0,c._t)("settings|encryption|advanced|breadcrumb_title");case"sync_failed":return(0,c._t)("settings|encryption|advanced|breadcrumb_title_sync_failed");case"forgot":return(0,c._t)("settings|encryption|advanced|breadcrumb_title_forgot");case"no_verification_method":return(0,c._t)("settings|encryption|advanced|breadcrumb_title_cant_confirm")}}function nt({onFinished:e,onReset:t,variant:n}){const i=_.J.safeGet();return s.createElement(je.Ay.Provider,{value:i},s.createElement(et,{onReset:()=>{t(),e()},onCancelClick:e,variant:n}))}var it=n("./src/components/views/elements/ExternalLink.tsx"),st=n("./src/components/views/rooms/E2EIcon.tsx"),ot=n("./src/utils/ShieldUtils.ts");class rt extends s.Component{constructor(e){super(e),(0,i.A)(this,"onStoreUpdate",()=>{const e=Ue.sharedInstance();e.phase!==Le.Finished?this.setState({phase:e.phase,verificationRequest:e.verificationRequest,backupInfo:e.backupInfo}):this.props.onFinished()}),(0,i.A)(this,"onUsePassphraseClick",async()=>{Ue.sharedInstance().usePassPhrase()}),(0,i.A)(this,"onVerifyClick",()=>{var e;const t=_.J.safeGet(),n=t.getSafeUserId(),i=t.getCrypto().requestOwnUserVerification();this.props.onFinished();const{finished:s}=X.Ay.createDialog(Ie,{verificationRequestPromise:i,member:null!==(e=t.getUser(n))&&void 0!==e?e:void 0});s.then(async()=>{(await i).cancel(),this.props.onFinished()})}),(0,i.A)(this,"onSkipConfirmClick",()=>{Ue.sharedInstance().skipConfirm()}),(0,i.A)(this,"onSkipBackClick",()=>{Ue.sharedInstance().returnAfterSkip()}),(0,i.A)(this,"onCantConfirmClick",()=>{const e=Ue.sharedInstance();X.Ay.createDialog(nt,{onReset:()=>{this.props.onFinished();Ue.sharedInstance().done()},variant:e.lostKeys()?"no_verification_method":"confirm"})}),(0,i.A)(this,"onSignOutClick",()=>{K.A.dispatch({action:"logout"})}),(0,i.A)(this,"onDoneClick",()=>{Ue.sharedInstance().done()}),(0,i.A)(this,"onEncryptionPanelClose",()=>{this.props.onFinished()});const t=Ue.sharedInstance();t.start(),this.state={phase:t.phase,verificationRequest:t.verificationRequest,backupInfo:t.backupInfo}}componentDidMount(){Ue.sharedInstance().on("update",this.onStoreUpdate)}componentWillUnmount(){const e=Ue.sharedInstance();e.off("update",this.onStoreUpdate),e.stop()}render(){const e=_.J.safeGet(),{phase:t}=this.state;if(this.state.verificationRequest&&e.getUser(this.state.verificationRequest.otherUserId))return s.createElement(Re.A,{layout:"dialog",verificationRequest:this.state.verificationRequest,onClose:this.onEncryptionPanelClose,member:e.getUser(this.state.verificationRequest.otherUserId),isRoomEncrypted:!1});if(t===Le.Intro){const e=Ue.sharedInstance();let t,n,i;return e.hasDevicesToVerifyAgainst&&(t=s.createElement(xe.$,{kind:"primary",onClick:this.onVerifyClick},s.createElement(Ae.A,null)," ",(0,c._t)("encryption|verification|use_another_device"))),e.keyInfo&&(n=s.createElement(xe.$,{kind:"primary",onClick:this.onUsePassphraseClick},(0,c._t)("encryption|verification|use_recovery_key"))),this.props.allowLogout&&(i=s.createElement(xe.$,{kind:"tertiary",onClick:this.onSignOutClick},(0,c._t)("action|sign_out"))),s.createElement(Ke.g,{title:(0,c._t)("encryption|verification|confirm_identity_title"),Icon:Ce.A,className:"mx_EncryptionCard_noBorder mx_SetupEncryptionBody"},s.createElement(Ze,null,s.createElement("span",null,(0,c._t)("encryption|verification|confirm_identity_description")),s.createElement("span",null,s.createElement(it.A,{href:"https://element.io/help#encryption-device-verification"},(0,c._t)("action|learn_more")))),s.createElement(Qe.D,null,t,n,s.createElement(xe.$,{kind:"secondary",onClick:this.onCantConfirmClick},(0,c._t)("encryption|verification|cant_confirm")),i))}if(t===Le.Done){let e;return e=this.state.backupInfo?s.createElement("p",null,(0,c._t)("encryption|verification|verification_success_with_backup")):s.createElement("p",null,(0,c._t)("encryption|verification|verification_success_without_backup")),s.createElement("div",null,s.createElement(st.A,{className:"mx_CompleteSecurity_heroIcon",status:ot.z.Verified,hideTooltip:!0}),e,s.createElement("div",{className:"mx_CompleteSecurity_actionRow"},s.createElement(Ve.A,{kind:"primary",onClick:this.onDoneClick},(0,c._t)("action|done"))))}return t===Le.ConfirmSkip?s.createElement("div",null,s.createElement("p",null,(0,c._t)("encryption|verification|verification_skip_warning")),s.createElement("div",{className:"mx_CompleteSecurity_actionRow"},s.createElement(Ve.A,{kind:"danger_outline",onClick:this.onSkipConfirmClick},(0,c._t)("encryption|verification|verify_later")),s.createElement(Ve.A,{kind:"primary",onClick:this.onSkipBackClick},(0,c._t)("action|go_back")))):t===Le.Busy||t===Le.Loading?s.createElement(Be.A,null):void o.vF.log(`SetupEncryptionBody: Unknown phase ${t}`)}}class at extends s.Component{constructor(e){super(e)}render(){return s.createElement(ke.A,{onFinished:this.props.onFinished,fixedWidth:!1},s.createElement(rt,{onFinished:this.props.onFinished}))}}var lt=n("./src/components/views/toasts/GenericToast.tsx"),ct=n("./src/components/views/dialogs/UserTab.ts"),dt=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/error.js"),mt=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/pop-out.js");class ut extends s.Component{constructor(e){super(e),(0,i.A)(this,"onGoToSettingsClick",()=>{const e={action:$.r.ViewUserSettings,initialTabId:ct.v.Encryption};K.A.dispatch(e),this.props.onFinished(!1)}),(0,i.A)(this,"onDismissClick",()=>{this.props.onFinished(!0)})}render(){return s.createElement(Ke.g,{Icon:dt.A,destructive:!0,title:(0,c._t)("settings|encryption|confirm_key_storage_off")},(0,c._t)("settings|encryption|confirm_key_storage_off_description",void 0,{a:e=>s.createElement(s.Fragment,null,s.createElement("br",null),s.createElement("a",{href:d.A.get("help_key_storage_url"),target:"_blank",rel:"noreferrer noopener"},e," ",s.createElement(mt.A,null)))}),s.createElement(Qe.D,null,s.createElement(xe.$,{onClick:this.onGoToSettingsClick,autoFocus:!0,kind:"primary",className:""},(0,c._t)("common|go_to_settings")),s.createElement(xe.$,{onClick:this.onDismissClick,kind:"secondary"},(0,c._t)("action|yes_dismiss"))))}}async function pt(e){await e.resetKeyBackup(),await e.checkKeyBackupAndEnable()}const ht="setupencryption",gt=e=>{switch(e){case"set_up_recovery":return(0,c._t)("encryption|set_up_recovery");case"verify_this_session":return(0,c._t)("encryption|verify_toast_title");case"key_storage_out_of_sync":case"identity_needs_reset":return(0,c._t)("encryption|key_storage_out_of_sync");case"turn_on_key_storage":return(0,c._t)("encryption|turn_on_key_storage")}},vt=e=>{switch(e){case"set_up_recovery":return;case"verify_this_session":case"key_storage_out_of_sync":case"identity_needs_reset":return s.createElement(we.A,{color:"var(--cpd-color-icon-critical-primary)"});case"turn_on_key_storage":return s.createElement(Se.A,{color:"var(--cpd-color-text-primary)"})}},_t=e=>{switch(e){case"set_up_recovery":case"verify_this_session":case"turn_on_key_storage":return(0,c._t)("action|continue");case"key_storage_out_of_sync":return(0,c._t)("encryption|enter_recovery_key");case"identity_needs_reset":return(0,c._t)("encryption|continue_with_reset")}},ft=e=>{if("key_storage_out_of_sync"===e)return be.A},yt=e=>{switch(e){case"set_up_recovery":case"turn_on_key_storage":return(0,c._t)("action|dismiss");case"verify_this_session":return(0,c._t)("encryption|verification|unverified_sessions_toast_reject");case"key_storage_out_of_sync":return(0,c._t)("encryption|forgot_recovery_key");case"identity_needs_reset":return""}},Et=e=>{switch(e){case"set_up_recovery":return(0,c._t)("encryption|set_up_recovery_toast_description");case"verify_this_session":return(0,c._t)("encryption|verify_toast_description",void 0,{a:e=>s.createElement("a",{href:"https://docs.element.io/latest/element-support/device-verification/how-to-verify-devices/",target:"_blank",rel:"noreferrer noopener"},e)});case"key_storage_out_of_sync":return(0,c._t)("encryption|key_storage_out_of_sync_description");case"turn_on_key_storage":return(0,c._t)("encryption|turn_on_key_storage_description");case"identity_needs_reset":return(0,c._t)("encryption|identity_needs_reset_description")}},wt="m.key_backup",St="m.org.matrix.custom.backup_disabled",bt="io.element.recovery";class At{constructor(e,t,n){(0,i.A)(this,"deviceListener",void 0),(0,i.A)(this,"client",void 0),(0,i.A)(this,"logger",void 0),(0,i.A)(this,"dismissedThisDeviceToast",!1),(0,i.A)(this,"keyBackupInfo",null),(0,i.A)(this,"keyBackupFetchedAt",null),(0,i.A)(this,"deviceState","ok"),(0,i.A)(this,"cachedKeyBackupUploadActive",void 0),(0,i.A)(this,"onUserTrustStatusChanged",e=>{e===this.client.getUserId()&&this.deviceListener.recheck()}),(0,i.A)(this,"onKeyBackupStatusChanged",()=>{this.logger.info("Backup status changed"),this.cachedKeyBackupUploadActive=void 0,this.deviceListener.recheck()}),(0,i.A)(this,"onKeyBackupDecryptionKeyCached",()=>{this.logger.info("Backup decryption key cached"),this.cachedKeyBackupUploadActive=void 0,this.deviceListener.recheck()}),(0,i.A)(this,"onCrossSigningKeysChanged",()=>{this.deviceListener.recheck()}),(0,i.A)(this,"onAccountData",e=>{(e.getType().startsWith("m.secret_storage.")||e.getType().startsWith("m.cross_signing.")||"m.megolm_backup.v1"===e.getType()||e.getType()===wt||e.getType()===St||e.getType()===bt)&&this.deviceListener.recheck()}),(0,i.A)(this,"onSync",(e,t)=>{"PREPARED"===e&&null===t&&this.deviceListener.recheck()}),(0,i.A)(this,"onRoomStateEvents",e=>{e.getType()===r.Bx4.RoomEncryption&&this.deviceListener.recheck()}),(0,i.A)(this,"onToDeviceEvent",e=>{e.getType()===r.Bx4.SecretSend&&this.deviceListener.recheck()}),(0,i.A)(this,"isKeyBackupUploadActive",async e=>{const t=this.client.getCrypto();if(!t)return!1;if(void 0!==this.cachedKeyBackupUploadActive)return this.cachedKeyBackupUploadActive;const n=await t.getActiveSessionBackupVersion();return this.cachedKeyBackupUploadActive=!!n,e.debug("Key backup upload is "+(this.cachedKeyBackupUploadActive?"active":"inactive")),this.cachedKeyBackupUploadActive}),this.deviceListener=e,this.client=t,this.logger=n,this.client.on(Ee.cr.UserTrustStatusChanged,this.onUserTrustStatusChanged),this.client.on(Ee.cr.KeysChanged,this.onCrossSigningKeysChanged),this.client.on(Ee.cr.KeyBackupStatus,this.onKeyBackupStatusChanged),this.client.on(Ee.cr.KeyBackupDecryptionKeyCached,this.onKeyBackupDecryptionKeyCached),this.client.on(r.AUM.AccountData,this.onAccountData),this.client.on(r.AUM.Sync,this.onSync),this.client.on(r.fZ1.Events,this.onRoomStateEvents),this.client.on(r.AUM.ToDeviceEvent,this.onToDeviceEvent)}stop(){this.dismissedThisDeviceToast=!1,this.keyBackupInfo=null,this.keyBackupFetchedAt=null,this.cachedKeyBackupUploadActive=void 0,this.client.removeListener(Ee.cr.UserTrustStatusChanged,this.onUserTrustStatusChanged),this.client.removeListener(Ee.cr.KeysChanged,this.onCrossSigningKeysChanged),this.client.removeListener(Ee.cr.KeyBackupStatus,this.onKeyBackupStatusChanged),this.client.removeListener(Ee.cr.KeyBackupDecryptionKeyCached,this.onKeyBackupDecryptionKeyCached),this.client.removeListener(r.AUM.AccountData,this.onAccountData),this.client.removeListener(r.AUM.Sync,this.onSync),this.client.removeListener(r.fZ1.Events,this.onRoomStateEvents),this.client.removeListener(r.AUM.ToDeviceEvent,this.onToDeviceEvent)}dismissEncryptionSetup(){"verify_this_session"===this.deviceState&&setTimeout(()=>{if("verify_this_session"===this.deviceState){const e=new o.Tl(this.logger,"nag_"+(0,me.US)(4));e.info("Re-showing device verification toast"),this.dismissedThisDeviceToast=!1,this.setDeviceState("verify_this_session",e)}},1728e5),this.dismissedThisDeviceToast=!0,this.deviceListener.recheck()}async recordKeyBackupDisabled(){await this.client.setAccountData(wt,{enabled:!1}),await this.client.setAccountData(St,{disabled:!0})}async recordRecoveryDisabled(){await this.client.setAccountData(bt,{enabled:!1})}async recheck(e){const t=this.client.getCrypto();if(!t)return;let n=await this.failIfCurrentDeviceNotTrusted(t,e);if(n)return;if(n=await this.failIfCrossSigningSecretsNotCached(t,e),n)return;const i=await this.failIfKeyBackupUploadIsFailing(e);i.failed||(n=await this.failIfRecoveryIsFailing(t,e,i),n||(n=await this.failIfKeyBackupDownloadIsFailing(t,e,i),n||(e.info("No toast needed"),this.setDeviceState("ok",e))))}getDeviceState(){return this.deviceState}async failIfCurrentDeviceNotTrusted(e,t){const n=await e.getDeviceVerificationStatus(this.client.getSafeUserId(),this.client.deviceId);return(null==n||!n.crossSigningVerified)&&(await this.failedCheck("verify_this_session",t,"info","Current device not verified"),!0)}async failIfCrossSigningSecretsNotCached(e,t){const n=await e.getCrossSigningStatus();if(n.privateKeysCachedLocally.masterKey&&n.privateKeysCachedLocally.selfSigningKey&&n.privateKeysCachedLocally.userSigningKey)return!1;{const e=n.privateKeysInSecretStorage?"key_storage_out_of_sync":"identity_needs_reset";return await this.failedCheck(e,t,"info","Some secrets not cached",n.privateKeysCachedLocally,n.privateKeysInSecretStorage),!0}}async failIfKeyBackupUploadIsFailing(e){const t=await this.isKeyBackupUploadActive(e),n=await this.recheckBackupDisabled();let i;return t||n?i=!1:(await this.failedCheck("turn_on_key_storage",e,"info","Key backup upload is unexpectedly turned off"),i=!0),{uploadActive:t,disabled:n,failed:i}}async failIfRecoveryIsFailing(e,t,n){const i=await e.getSecretStorageStatus(),s=await this.recheckRecoveryDisabled(this.client);return!(i.ready||s||n.disabled)&&(null===i.defaultKeyId?await this.failedCheck("set_up_recovery",t,"info","No default 4S key"):await this.failedCheck("key_storage_out_of_sync",t,"warn","4S is missing secrets",{secretStorageStatus:i}),!0)}async failIfKeyBackupDownloadIsFailing(e,t,n){return!(!n.uploadActive||n.disabled||null!==await e.getSessionBackupPrivateKey())&&(await this.failedCheck("key_storage_out_of_sync",t,"warn","Backup key is not cached locally"),!0)}async failedCheck(e,t,n,i,...s){var o;await(null===(o=this.client.getCrypto())||void 0===o?void 0:o.getUserDeviceInfo([this.client.getSafeUserId()]));const r=`${i}: setting state to ${e.toLowerCase()}`;"info"===n?t.info(r,...s):t.warn(r,...s),this.setDeviceState(e,t)}setDeviceState(e,t){this.deviceState=e,this.deviceListener.currentDeviceChangedEmitter.onStateChanged(e),"ok"===e||this.dismissedThisDeviceToast?re.A.sharedInstance().dismissToast(ht):(0,b.kq)()?t.info("Device is not yet ready, but secret storage is being accessed, so not showing toast."):(e=>{const t=o.vF.getChild(`SetupEncryptionToast[${e}]:`);if(f.r.instance.extensions.cryptoSetup.setupEncryptionNeeded({kind:e,storeProvider:{getInstance:()=>Ue.sharedInstance()}}))return;const n=async e=>{if(e instanceof b.qQ)t.debug("AccessSecretStorage failed: user cancelled");else{const n={initialEncryptionState:await ye.sharedInstance().keyStorageOutOfSyncNeedsCrossSigningReset(!0)?"reset_identity_sync_failed":"change_recovery_key"};t.debug(`AccessSecretStorage failed: ${e}. Opening encryption settings dialog with props: `,n);const i={action:$.r.ViewUserSettings,initialTabId:ct.v.Encryption,props:n};K.A.dispatch(i)}},i=(e=>{switch(e){case"key_storage_out_of_sync":case"identity_needs_reset":return!0;case"set_up_recovery":case"verify_this_session":case"turn_on_key_storage":return!1}})(e)?()=>ye.sharedInstance().dismissEncryptionSetup():void 0;re.A.sharedInstance().addOrReplaceToast({key:ht,title:gt(e),icon:vt(e),onCloseButtonClicked:i,props:{description:Et(e),primaryLabel:_t(e),PrimaryIcon:ft(e),onPrimaryClick:async()=>{switch(e){case"set_up_recovery":case"turn_on_key_storage":{ue.Vo.instance.trackEvent({eventName:"Interaction",interactionType:"Pointer",name:"set_up_recovery"===e?"ToastSetUpRecoveryClick":"ToastTurnOnKeyStorageClick"}),t.debug("Primary button clicked: opening encryption settings dialog");const n={action:$.r.ViewUserSettings,initialTabId:ct.v.Encryption};K.A.dispatch(n);break}case"verify_this_session":t.debug("Primary button clicked: opening SetupEncryptionDialog"),X.Ay.createDialog(at,{},void 0,!1,!0);break;case"key_storage_out_of_sync":{t.debug("Primary button clicked: starting recovery process");const e=X.Ay.createDialog(Be.A,void 0,"mx_Dialog_spinner",!1,!0),i=_.J.safeGet(),s=i.getCrypto();try{const e=ye.sharedInstance(),n=await e.keyStorageOutOfSyncNeedsBackupReset(!1);await e.whilePaused(async()=>{await(0,b.cb)(async()=>{if(n)await pt(s);else if(await i.isKeyBackupKeyStored())try{await s.loadSessionBackupPrivateKeyFromSecretStorage()}catch(e){if(!(e instanceof Ee.AY))throw e;t.error("SetupEncryptionToast: decryption key does not match the public backup. Replacing."),await pt(s)}})})}catch(e){await n(e)}finally{e.close()}break}case"identity_needs_reset":{t.debug("Primary button clicked: opening encryption settings dialog");const e={action:$.r.ViewUserSettings,initialTabId:ct.v.Encryption,props:{initialEncryptionState:"reset_identity_cant_recover"}};K.A.dispatch(e);break}}},secondaryLabel:yt(e),onSecondaryClick:async()=>{switch(e){case"set_up_recovery":{ue.Vo.instance.trackEvent({eventName:"Interaction",interactionType:"Pointer",name:"ToastSetUpRecoveryDismiss"}),t.debug("Secondary button clicked: disabling recovery");const e=ye.sharedInstance();await e.recordRecoveryDisabled(),e.dismissEncryptionSetup();break}case"key_storage_out_of_sync":{const e=ye.sharedInstance(),n={initialEncryptionState:await e.keyStorageOutOfSyncNeedsCrossSigningReset(!0)?"reset_identity_forgot":"change_recovery_key"};t.debug("Secondary button clicked: opening encryption settings dialog with props",n);const i={action:$.r.ViewUserSettings,initialTabId:ct.v.Encryption,props:n};K.A.dispatch(i);break}case"turn_on_key_storage":{ue.Vo.instance.trackEvent({eventName:"Interaction",interactionType:"Pointer",name:"ToastTurnOnKeyStorageDismiss"});const e=X.Ay.createDialog(ut,void 0,"mx_ConfirmKeyStorageOffDialog"),[n]=await e.finished;if(n){t.debug("Secondary button clicked and confirmed: recording key storage disabled");const e=ye.sharedInstance();await e.recordKeyBackupDisabled(),e.dismissEncryptionSetup()}break}default:t.debug("Secondary button clicked: dismissing"),ye.sharedInstance().dismissEncryptionSetup()}},overrideWidth:"key_storage_out_of_sync"===e?"366px":void 0},component:lt.A,priority:"verify_this_session"===e?85:40})})(e)}async recheckBackupDisabled(){const e=await this.client.getAccountDataFromServer(wt);if(e)return!1===e.enabled;const t=await this.client.getAccountDataFromServer(St);return!(null==t||!t.disabled)}async recheckRecoveryDisabled(e){const t=await e.getAccountDataFromServer(bt);return!1===(null==t?void 0:t.enabled)}async getKeyBackupInfo(){const e=(new Date).getTime(),t=this.client.getCrypto();return t?((!this.keyBackupInfo||!this.keyBackupFetchedAt||this.keyBackupFetchedAt<e-3e5)&&(this.keyBackupInfo=await t.getKeyBackupInfo(),this.keyBackupFetchedAt=e),this.keyBackupInfo):null}}var Ct=n("./src/utils/crypto/deviceInfo.ts");const xt="mx_snooze_bulk_unverified_device_nag",kt="reviewsessions",Rt=e=>{re.A.sharedInstance().addOrReplaceToast({key:kt,title:(0,c._t)("encryption|verification|unverified_sessions_toast_title"),icon:s.createElement(we.A,{color:"var(--cpd-color-icon-critical-primary)"}),props:{description:(0,c._t)("encryption|verification|unverified_sessions_toast_description"),primaryLabel:(0,c._t)("action|review"),onPrimaryClick:()=>{ye.sharedInstance().dismissUnverifiedSessions(e),K.A.dispatch({action:$.r.ViewUserDeviceSettings})},secondaryLabel:(0,c._t)("encryption|verification|unverified_sessions_toast_reject"),onSecondaryClick:()=>{ye.sharedInstance().dismissUnverifiedSessions(e),(()=>{try{localStorage.setItem(xt,String(Date.now()))}catch(e){o.vF.error("Failed to persist bulk unverified device nag snooze",e)}})()}},component:lt.A,priority:50})},It=async(e,t)=>{var n;const i=await(null===(n=e.getCrypto())||void 0===n?void 0:n.getDeviceVerificationStatus(e.getSafeUserId(),t));return i?i.crossSigningVerified:null};var Tt,Pt=n("./src/utils/device/parseUserAgent.ts");function Nt(){return Nt=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Nt.apply(null,arguments)}var Dt=function(e,t){return s.createElement("svg",Nt({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 8 14",role:"presentation","aria-hidden":!0,ref:t},e),Tt||(Tt=s.createElement("path",{fill:"currentColor",d:"M1.333.333C.6.333 0 .933 0 1.666l.007 2.12c0 .354.14.687.386.94L2.667 7 .393 9.286a1.33 1.33 0 0 0-.386.94L0 12.333c0 .733.6 1.333 1.333 1.333h5.334c.733 0 1.333-.6 1.333-1.333v-2.107c0-.353-.14-.693-.387-.94L5.333 7l2.274-2.267C7.86 4.48 8 4.14 8 3.786v-2.12C8 .933 7.4.333 6.667.333zm5.334 9.94v1.393c0 .367-.3.667-.667.667H2a.67.67 0 0 1-.667-.667v-1.393c0-.18.074-.347.194-.473L4 7.333l2.473 2.473c.12.12.194.294.194.467"})))},Mt=(0,s.forwardRef)(Dt);let Ot=function(e){return e.Verified="Verified",e.Unverified="Unverified",e.Inactive="Inactive",e.Unverifiable="Unverifiable",e}({});const Ft=7776e6,Lt=e=>!!e.last_seen_ts&&e.last_seen_ts<Date.now()-Ft,Ut={[Ot.Verified]:e=>!!e.isVerified,[Ot.Unverified]:e=>!e.isVerified,[Ot.Inactive]:Lt},Vt=(e,t)=>{const n=t.map(e=>Ut[e]);return n.length?e.filter(e=>n.every(t=>t(e))):e};var Bt=n("./src/DateUtils.ts");const jt=(e,t=(new Date).getTime())=>{if(e+5184e5>=t){const t=new Date(e);return(0,Bt.Yq)(t)}return(0,Bt.fw)(new Date(e))},Ht=({value:e,id:t})=>e?s.createElement("span",null,e):null,zt=({device:e})=>{const t=(e=>{if(Lt(e)&&e.last_seen_ts)return{id:"inactive",value:s.createElement(s.Fragment,null,s.createElement(Mt,{className:"mx_DeviceTile_inactiveIcon"}),(0,c._t)("settings|sessions|inactive_days",{inactiveAgeDays:90})+` (${jt(e.last_seen_ts)})`)}})(e),n=e.last_seen_ts&&`${(0,c._t)("settings|sessions|last_activity")} ${jt(e.last_seen_ts)}`,i=e.isVerified?(0,c._t)("common|verified"):(0,c._t)("common|unverified"),o=t?[t,{id:"lastSeenIp",value:e.last_seen_ip}]:[{id:"isVerified",value:i},{id:"lastActivity",value:n},{id:"lastSeenIp",value:e.last_seen_ip},{id:"deviceId",value:e.device_id}];return s.createElement(s.Fragment,null,o.map(({id:e,value:t},n)=>t?s.createElement(s.Fragment,{key:e},!!n&&" · ",s.createElement(Ht,{id:e,value:t})):null))};function Wt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function Jt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Wt(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Wt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Gt(e){return"unverified_session_"+e}const Kt=async e=>{const t=_.J.safeGet(),n=await t.getDevice(e),i=Jt(Jt({},n),{},{isVerified:await It(t,e),deviceType:Pt.b.Unknown});re.A.sharedInstance().addOrReplaceToast({key:Gt(e),title:(0,c._t)("encryption|verification|unverified_session_toast_title"),icon:s.createElement(we.A,{color:"var(--cpd-color-icon-critical-primary)"}),props:{description:n.display_name,detail:s.createElement(zt,{device:i}),primaryLabel:(0,c._t)("encryption|verification|unverified_session_toast_accept"),onPrimaryClick:()=>{ye.sharedInstance().dismissUnverifiedSessions([e])},secondaryLabel:(0,c._t)("action|no"),onSecondaryClick:()=>{ye.sharedInstance().dismissUnverifiedSessions([e]),K.A.dispatch({action:$.r.ViewUserDeviceSettings})},destructive:"secondary"},component:lt.A,priority:80})},qt=e=>{re.A.sharedInstance().dismissToast(Gt(e))};class $t{constructor(e,t){(0,i.A)(this,"deviceListener",void 0),(0,i.A)(this,"client",void 0),(0,i.A)(this,"dismissed",new Set),(0,i.A)(this,"ourDeviceIdsAtStart",null),(0,i.A)(this,"displayingToastsForDeviceIds",new Set),(0,i.A)(this,"onDevicesUpdated",async(e,t)=>{if(t)return;const n=this.client.getSafeUserId();e.includes(n)&&await this.ensureDeviceIdsAtStartPopulated(),this.deviceListener.recheck()}),this.deviceListener=e,this.client=t,this.client.on(Ee.cr.DevicesUpdated,this.onDevicesUpdated)}stop(){this.dismissed.clear(),this.ourDeviceIdsAtStart=null,this.displayingToastsForDeviceIds=new Set,this.client.removeListener(Ee.cr.DevicesUpdated,this.onDevicesUpdated)}dismissUnverifiedSessions(e){for(const t of e)this.dismissed.add(t);this.deviceListener.recheck()}async getDeviceIds(){return await(0,Ct.a)(this.client,this.client.getSafeUserId())}async ensureDeviceIdsAtStartPopulated(){null===this.ourDeviceIdsAtStart&&(this.ourDeviceIdsAtStart=await this.getDeviceIds())}async recheck(e){var t;const n=this.client.getCrypto();if(!n)return;const i=this.client.getSafeUserId(),s=await n.isCrossSigningReady(),o=Boolean(null===(t=await n.getDeviceVerificationStatus(i,this.client.deviceId))||void 0===t?void 0:t.crossSigningVerified);await this.ensureDeviceIdsAtStartPopulated();const r=new Set,a=new Set;if(s){const e=await this.getDeviceIds();for(const t of e){if(t===this.client.deviceId)continue;const e=await n.getDeviceVerificationStatus(i,t);var l;if(!(null!=e&&e.crossSigningVerified||this.dismissed.has(t)))null!==(l=this.ourDeviceIdsAtStart)&&void 0!==l&&l.has(t)?r.add(t):a.add(t)}}e.debug("Old unverified sessions: "+Array.from(r).join(",")),e.debug("New unverified sessions: "+Array.from(a).join(",")),e.debug("Currently showing toasts for: "+Array.from(this.displayingToastsForDeviceIds).join(","));const c=(()=>{try{const e=localStorage.getItem(xt),t=Number.parseInt(e||"",10);return Number.isInteger(t)&&t+6048e5>Date.now()}catch{return!1}})();r.size>0&&o&&!c?Rt(r):re.A.sharedInstance().dismissToast(kt);for(const e of a)Kt(e);for(const t of this.displayingToastsForDeviceIds)a.has(t)||(e.debug("Hiding unverified session toast for "+t),qt(t));this.displayingToastsForDeviceIds=a}}var Yt=n("./src/widgets/Jitsi.ts"),Qt=n("./src/BasePlatform.ts"),Xt=n("../../node_modules/.pnpm/rfc4648@1.5.4/node_modules/rfc4648/lib/rfc4648.js");function Zt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}const en="mx_threepid_invite_";class tn extends(Pe()){static get instance(){return tn._instance||(tn._instance=new tn),tn._instance}storeInvite(e,t){const n=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Zt(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({roomId:e},t),s=this.generateIdOf(n);return localStorage.setItem(`${en}${s}`,JSON.stringify(n)),this.translateInvite(n)}getWireInvites(){const e=[];for(let t=0;t<localStorage.length;t++){const n=localStorage.key(t);if(null!=n&&n.startsWith(en))try{e.push(JSON.parse(localStorage.getItem(n)))}catch(e){console.warn("Failed to parse 3pid invite",e)}}return e}getInvites(){return this.getWireInvites().map(e=>this.translateInvite(e))}pickBestInvite(){return this.getInvites()[0]}resolveInvite(e){localStorage.removeItem(`${en}${e.id}`)}generateIdOf(e){return Xt.RG.stringify((new TextEncoder).encode(JSON.stringify(e)))}translateInvite(e){return{id:this.generateIdOf(e),roomId:e.roomId,toEmail:e.email,signUrl:e.signurl,roomName:e.room_name,roomAvatarUrl:e.room_avatar_url,inviterName:e.inviter_name}}translateToWireFormat(e){return{email:e.toEmail,signurl:e.signUrl,room_name:e.roomName,room_avatar_url:e.roomAvatarUrl,inviter_name:e.inviterName}}}(0,i.A)(tn,"_instance",void 0);var nn=n("./src/customisations/Lifecycle.ts"),sn=n("./src/components/views/dialogs/ErrorDialog.tsx"),on=n("./src/components/views/dialogs/QuestionDialog.tsx"),rn=n("./src/components/views/dialogs/BugReportDialog.tsx"),an=n("./src/components/views/elements/DialogButtons.tsx");class ln extends s.Component{constructor(...e){super(...e),(0,i.A)(this,"sendBugReport",()=>{X.Ay.createDialog(rn.A,{error:this.props.error})}),(0,i.A)(this,"onClearStorageClick",()=>{const{finished:e}=X.Ay.createDialog(on.A,{title:(0,c._t)("action|sign_out"),description:s.createElement("div",null,(0,c._t)("error|session_restore|clear_storage_description")),button:(0,c._t)("action|sign_out"),danger:!0});e.then(([e])=>this.props.onFinished(e))}),(0,i.A)(this,"onRefreshClick",()=>{window.location.reload()})}render(){const e=d.A.get().brand,t=s.createElement("button",{onClick:this.onClearStorageClick,className:"danger"},(0,c._t)("error|session_restore|clear_storage_button"));let n;return n=d.A.get().bug_report_endpoint_url?s.createElement(an.A,{primaryButton:(0,c._t)("bug_reporting|send_logs"),onPrimaryButtonClick:this.sendBugReport,focus:!0,hasCancel:!1},t):s.createElement(an.A,{primaryButton:(0,c._t)("action|refresh"),onPrimaryButtonClick:this.onRefreshClick,focus:!0,hasCancel:!1},t),s.createElement(ke.A,{className:"mx_ErrorDialog",onFinished:this.props.onFinished,title:(0,c._t)("error|session_restore|title"),contentId:"mx_Dialog_content",hasCancel:!1},s.createElement("div",{className:"mx_Dialog_content",id:"mx_Dialog_content"},s.createElement("p",null,(0,c._t)("error|session_restore|description_1")),s.createElement("p",null,(0,c._t)("error|session_restore|description_2",{brand:e})),s.createElement("p",null,(0,c._t)("error|session_restore|description_3"))),n)}}class cn extends s.Component{constructor(...e){super(...e),(0,i.A)(this,"sendBugReport",e=>{e.preventDefault(),X.Ay.createDialog(rn.A,{})}),(0,i.A)(this,"onSignOutClick",()=>{this.props.onFinished(!0)})}render(){let e;return d.A.get().bug_report_endpoint_url&&(e=(0,c._t)("bug_reporting|log_request",{},{a:e=>s.createElement(Ve.A,{kind:"link_inline",onClick:this.sendBugReport},e)})),s.createElement(ke.A,{className:"mx_ErrorDialog",onFinished:this.props.onFinished,title:(0,c._t)("error|storage_evicted_title"),contentId:"mx_Dialog_content",hasCancel:!1},s.createElement("div",{className:"mx_Dialog_content",id:"mx_Dialog_content"},s.createElement("p",null,(0,c._t)("error|storage_evicted_description_1")),s.createElement("p",null,(0,c._t)("error|storage_evicted_description_2")," ",e)),s.createElement(an.A,{primaryButton:(0,c._t)("action|sign_out"),onPrimaryButtonClick:this.onSignOutClick,focus:!0,hasCancel:!1}))}}var dn=n("./src/sentry.ts"),mn=n("../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js"),un=n.n(mn),pn=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/settings.js"),hn=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/group.js"),gn=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/voice-call.js"),vn=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/lock.js"),_n=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/admin.js"),fn=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/notifications.js"),yn=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/tree.js"),En=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/polls.js"),wn=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/advanced-settings.js"),Sn=n("./src/components/structures/TabbedView.tsx"),bn=n("./src/utils/RoomUpgrade.ts");class An extends s.Component{constructor(...e){super(...e),(0,i.A)(this,"targetVersion",void 0),(0,i.A)(this,"state",{busy:!0}),(0,i.A)(this,"onCancelClick",()=>{this.props.onFinished(!1)}),(0,i.A)(this,"onUpgradeClick",()=>{this.setState({busy:!0}),(0,bn.W)(this.props.room,this.targetVersion,!1,!1).then(()=>{this.props.onFinished(!0)}).catch(e=>{var t;X.Ay.createDialog(sn.A,{title:(0,c._t)("room_settings|advanced|error_upgrade_title"),description:null!==(t=null==e?void 0:e.message)&&void 0!==t?t:(0,c._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?s.createElement(Be.A,null):s.createElement(an.A,{primaryButton:(0,c._t)("room_settings|advanced|upgrade_button",{version:this.targetVersion}),primaryButtonClass:"danger",hasCancel:!0,onPrimaryButtonClick:this.onUpgradeClick,onCancel:this.onCancelClick}),s.createElement(ke.A,{className:"mx_RoomUpgradeDialog",onFinished:this.props.onFinished,title:(0,c._t)("room_settings|advanced|upgrade_dialog_title"),contentId:"mx_Dialog_content",hasCancel:!0},s.createElement("p",null,(0,c._t)("room_settings|advanced|upgrade_dialog_description")),s.createElement("ol",null,s.createElement("li",null,(0,c._t)("room_settings|advanced|upgrade_dialog_description_1")),s.createElement("li",null,(0,c._t)("room_settings|advanced|upgrade_dialog_description_2")),s.createElement("li",null,(0,c._t)("room_settings|advanced|upgrade_dialog_description_3")),s.createElement("li",null,(0,c._t)("room_settings|advanced|upgrade_dialog_description_4"))),e)}}var Cn=n("./src/components/views/elements/CopyableText.tsx"),xn=n("../../node_modules/.pnpm/@babel+runtime@7.29.7/node_modules/@babel/runtime/helpers/esm/extends.js");const kn=["children","className"],Rn=e=>{let{children:t,className:n}=e,i=(0,v.A)(e,kn);return s.createElement("div",(0,xn.A)({},i,{className:un()("mx_SettingsTab",n)}),s.createElement("div",{className:"mx_SettingsTab_sections"},t))};var In=n("./src/components/views/typography/Heading.tsx"),Tn=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Typography/Heading.js");function Pn({hasRecommendedTag:e=!1,label:t,as:n="h2"}){const i=un()("mx_SettingsHeader",{mx_SettingsHeader_recommended:e});return s.createElement(Tn.D,{className:i,as:n,size:"sm",weight:"semibold"},t)}const Nn=["className","heading","subHeading","legacy","children"],Dn=(0,s.createContext)(2);function Mn({heading:e,legacy:t,level:n}){switch(typeof e){case"string":return t?s.createElement(In.A,{as:`h${n}`,size:(n+1).toString()},e):s.createElement(Pn,{as:`h${n}`,label:e});case"undefined":return;default:return e}}const On=e=>{let{className:t,heading:n,subHeading:i,legacy:o=!0,children:r}=e,a=(0,v.A)(e,Nn);const l=(0,s.useContext)(Dn);return s.createElement("div",(0,xn.A)({},a,{className:un()("mx_SettingsSection",t,{mx_SettingsSection_newUi:!o})}),n&&(i?s.createElement("div",{className:"mx_SettingsSection_header"},s.createElement(Mn,{heading:n,legacy:o,level:l}),i):s.createElement(Mn,{heading:n,legacy:o,level:l})),s.createElement(Dn.Provider,{value:n?l+1:l},o?s.createElement("div",{className:"mx_SettingsSection_subSections"},r):r))};var Fn=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Separator/Separator.js"),Ln=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Form/index.js");const Un=["heading","as","children"],Vn=e=>{let{heading:t,as:n="h2",children:i}=e,o=(0,v.A)(e,Un);return s.createElement("div",(0,xn.A)({},o,{className:"mx_SettingsSubsectionHeading"}),s.createElement(In.A,{className:"mx_SettingsSubsectionHeading_heading",size:"4",as:n},t),i)},Bn=["children"],jn=["heading","description","children","stretchContent","legacy","formWrap"],Hn=e=>{let{children:t}=e,n=(0,v.A)(e,Bn);return s.createElement("div",(0,xn.A)({},n,{className:"mx_SettingsSubsection_text"}),t)},zn=e=>{let{heading:t,description:n,children:i,stretchContent:o,legacy:r=!0,formWrap:a}=e,l=(0,v.A)(e,jn);const c=(0,s.useContext)(Dn),d=s.createElement("div",(0,xn.A)({},l,{className:un()("mx_SettingsSubsection",{mx_SettingsSubsection_newUi:!r})}),"string"==typeof t?s.createElement(Vn,{heading:t,as:`h${c}`}):s.createElement(s.Fragment,null,t),!!n&&s.createElement("div",{className:"mx_SettingsSubsection_description"},s.createElement(Hn,null,n)),!!i&&s.createElement("div",{className:un()("mx_SettingsSubsection_content",{mx_SettingsSubsection_contentStretch:!!o,mx_SettingsSubsection_noHeading:!t&&!n,mx_SettingsSubsection_content_newUi:!r})},i),!r&&s.createElement(Fn.w,null));return a?s.createElement(Ln.lV.Root,{onSubmit:e=>{e.preventDefault(),e.stopPropagation()}},d):d};function Wn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}class Jn extends s.Component{constructor(e){super(e),(0,i.A)(this,"upgradeRoom",()=>{X.Ay.createDialog(An,{room:this.props.room})}),(0,i.A)(this,"onOldRoomClicked",e=>{e.preventDefault(),e.stopPropagation(),K.A.dispatch({action:$.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=S.A.getValue("feature_dynamic_room_predecessors"),t=this.props.room;t.getRecommendedVersion().then(n=>{const s=t.currentState.getStateEvents(r.Bx4.RoomTombstone,""),o={},a=t.findPredecessor(e);a&&(o.oldRoomId=a.roomId,o.oldEventId=a.eventId,o.oldViaServers=a.viaServers),this.setState(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Wn(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Wn(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({upgraded:!(null==s||!s.getContent().replacement_room),upgradeRecommendation:n},o))})}render(){var e;const t=this.props.room,n=t.isSpaceRoom();let i,o,a;if(!1===(null===(e=t.currentState.getStateEvents(r.Bx4.RoomCreate,""))||void 0===e?void 0:e.getContent()["m.federate"])&&(i=s.createElement("div",null,(0,c._t)("room_settings|advanced|unfederated"))),this.state.upgradeRecommendation&&this.state.upgradeRecommendation.needsUpgrade&&!this.state.upgraded&&(o=s.createElement("div",null,s.createElement("p",{className:"mx_SettingsTab_warningText"},(0,c._t)("room_settings|advanced|room_upgrade_warning",{},{b:e=>s.createElement("strong",null,e),i:e=>s.createElement("i",null,e)})),s.createElement(Ve.A,{onClick:this.upgradeRoom,kind:"primary"},n?(0,c._t)("room_settings|advanced|space_upgrade_button"):(0,c._t)("room_settings|advanced|room_upgrade_button")))),this.state.oldRoomId){let e;var l,d;if(n)e=(0,c._t)("room_settings|advanced|space_predecessor",{spaceName:null!==(l=t.name)&&void 0!==l?l:this.state.oldRoomId});else e=(0,c._t)("room_settings|advanced|room_predecessor",{roomName:null!==(d=t.name)&&void 0!==d?d:this.state.oldRoomId});a=s.createElement(Ve.A,{element:"a",onClick:this.onOldRoomClicked},e)}return s.createElement(Rn,null,s.createElement(On,{heading:(0,c._t)("common|advanced")},s.createElement(zn,{heading:t.isSpaceRoom()?(0,c._t)("room_settings|advanced|information_section_space"):(0,c._t)("room_settings|advanced|information_section_room")},s.createElement("div",null,s.createElement("span",null,(0,c._t)("room_settings|advanced|room_id")),s.createElement(Cn.A,{getTextToCopy:()=>this.props.room.roomId},this.props.room.roomId)),i),s.createElement(zn,{heading:(0,c._t)("room_settings|advanced|room_version_section")},s.createElement("div",null,s.createElement("span",null,(0,c._t)("room_settings|advanced|room_version"))," ",t.getVersion()),a,o)))}}var Gn=n("../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/throttle.js"),Kn=n("../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/set.js"),qn=n("../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/get.js"),$n=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/@types/membership.ts"),Yn=n("./src/components/views/elements/PowerSelector.tsx");const Qn=["legend","className","children","description"],Xn=e=>{let{legend:t,className:n,children:i,description:o}=e,r=(0,v.A)(e,Qn);return s.createElement("fieldset",(0,xn.A)({},r,{className:un()("mx_SettingsFieldset",n)}),s.createElement("legend",{className:"mx_SettingsFieldset_legend"},t),o&&s.createElement("div",{className:"mx_SettingsFieldset_description"},s.createElement(Hn,null,o)),s.createElement("div",{className:"mx_SettingsFieldset_content"},i))};var Zn=n("./src/autocomplete/UserProvider.tsx"),ei=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/search.js"),ti=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/close.js"),ni=n("./src/Keyboard.ts"),ii=n("./src/hooks/useFocus.ts");const si=({provider:e,renderSuggestion:t,renderSelection:n,maxSuggestions:i=5,placeholder:o,onSelectionChange:r,selection:a,additionalFilter:l})=>{var c;const[d,m]=(0,s.useState)(""),[u,p]=(0,s.useState)([]),[h,g]=(0,ii.A)(),v=(0,s.useRef)(null),_=(0,s.useRef)(null),f=()=>{var e;null==_||null===(e=_.current)||void 0===e||e.focus()},y=e=>{const t=[...a],n=a.findIndex(t=>t.completionId===e.completionId);n>=0?t.splice(n,1):t.push(e),r(t),f(),m(""),p([])},E=e=>{const t=[...a],n=a.findIndex(t=>t.completionId===e.completionId);n>=0&&(t.splice(n,1),r(t))};return s.createElement("div",{className:"mx_AutocompleteInput"},s.createElement("div",{ref:v,className:un()({mx_AutocompleteInput_editor:!0,"mx_AutocompleteInput_editor--focused":h,"mx_AutocompleteInput_editor--has-suggestions":u.length>0}),onClick:()=>{f()}},s.createElement(ei.A,{className:"mx_AutocompleteInput_search_icon",width:"18px",height:"18px"}),a.map(e=>s.createElement(oi,{key:e.completionId,item:e,onClick:E,render:n})),s.createElement("input",(0,xn.A)({ref:_,type:"text",onKeyDown:e=>{const t=e.ctrlKey||e.shiftKey||e.metaKey;!d&&a.length>0&&e.key===ni.Uz.BACKSPACE&&!t&&E(a[a.length-1])},onChange:async t=>{const n=t.target.value.trim();m(n);let s=await e.getCompletions(d,{start:d.length,end:d.length},!0,i);l&&(s=s.filter(l)),p(s)},value:d,autoComplete:"off",placeholder:0===a.length&&0===d.length?o:void 0},g))),h&&u.length?s.createElement("div",{className:"mx_AutocompleteInput_matches",style:{top:null===(c=v.current)||void 0===c?void 0:c.clientHeight}},u.map(e=>s.createElement(ri,{key:e.completionId,item:e,selection:a,onClick:y,render:t}))):null)},oi=({item:e,onClick:t,render:n})=>{const i=n=>s.createElement("span",{className:"mx_AutocompleteInput_editor_selection"},s.createElement("span",{className:"mx_AutocompleteInput_editor_selection_pill"},n),s.createElement(Ve.A,{className:"mx_AutocompleteInput_editor_selection_remove_button",onClick:()=>t(e)},s.createElement(ti.A,{width:"16px",height:"16px"})));return i(n?n(e):s.createElement("span",{className:"mx_AutocompleteInput_editor_selection_text"},e.completion))},ri=({item:e,selection:t,onClick:n,render:i})=>{const o=t.some(t=>t.completionId===e.completionId),r=un()({mx_AutocompleteInput_suggestion:!0,"mx_AutocompleteInput_suggestion--selected":o}),a=t=>s.createElement("div",{className:r,onMouseDown:t=>{t.preventDefault(),n(e)}},t);return a(i?i(e):s.createElement(s.Fragment,null,s.createElement("span",{className:"mx_AutocompleteInput_suggestion_title"},e.completion),s.createElement("span",{className:"mx_AutocompleteInput_suggestion_description"},e.completionId)))},ai=({room:e,defaultUserLevel:t})=>{const n=(0,s.useContext)(je.Ay),i=(0,s.useRef)(new Zn.A(e)),[o,a]=(0,s.useState)(!1),[l,d]=(0,s.useState)(t),[m,u]=(0,s.useState)([]),p=(0,s.useCallback)(n=>li(e,n,t),[e,t]);return s.createElement("form",{style:{display:"flex"},onSubmit:async i=>{i.preventDefault(),a(!0);const s=ci(m);if(null!==e.currentState.getStateEvents(r.Bx4.RoomPowerLevels,""))try{await n.setPowerLevel(e.roomId,s,l),u([]),d(t)}catch{X.Ay.createDialog(sn.A,{title:(0,c._t)("common|error"),description:(0,c._t)("error|update_power_level")})}finally{a(!1)}else X.Ay.createDialog(sn.A,{title:(0,c._t)("common|error"),description:(0,c._t)("error|update_power_level")})}},s.createElement(Xn,{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}},s.createElement(si,{provider:i.current,placeholder:(0,c._t)("room_settings|permissions|add_privileged_user_filter_placeholder"),onSelectionChange:u,selection:m,additionalFilter:p}),s.createElement(Yn.A,{value:l,onChange:d}),s.createElement(Ve.A,{type:"submit",element:"button",kind:"primary",disabled:!m.length||o,onClick:null},(0,c._t)("action|apply"))))},li=(e,t,n)=>{if(void 0===t.completionId)return!1;const i=e.getMember(t.completionId);return null!==i&&i.powerLevel<=n},ci=e=>e.filter(e=>void 0!==e.completionId).map(e=>e.completionId);function di({userLevels:e,canChangeLevels:t,currentUserLevel:n,onClick:i,filter:o,title:r,children:a}){const l=(0,je.nH)(),[d,m]=(0,s.useState)(null),u=Boolean(d&&d.value!==e[null==d?void 0:d.userId]),p=new Intl.Collator,h=Object.keys(e).sort((t,n)=>function(e,t,n,i){const s=i[t]-i[n];return 0!==s?s:e.compare(t.toLocaleLowerCase(),n.toLocaleLowerCase())}(p,t,n,e)).filter(o);if(!h.length)return s.createElement(s.Fragment,null,a);return s.createElement(Xn,{legend:r},h.map(i=>{if(!Number.isInteger(e[i]))return;const o=i===l.getUserId(),r=t&&(e[i]<n||o),a=(null==d?void 0:d.userId)===i?null==d?void 0:d.value:e[i];return s.createElement(Yn.A,{value:a,disabled:!r,label:i,key:i,maxValue:n,onChange:async t=>{const n=Object.assign({},e);if(n[i]=t,o=n,!Object.values(o).some(e=>100===e)){const{finished:t}=X.Ay.createDialog(on.A,{title:(0,c._t)("common|warning"),description:s.createElement("div",null,(0,c._t)("user_info|demote_self_confirm_room")),button:(0,c._t)("action|continue")}),[n]=await t;if(!n)return void m({value:e[i],userId:i})}var o;m({value:t,userId:i})}})}),s.createElement(xe.$,{size:"md",kind:"primary",className:"mx_Dialog_nonDialogButton mx_PowerLevelSelector_Button",onClick:()=>{null!==d&&(i(d.value,d.userId),m(null))},disabled:!u,"aria-label":(0,c._t)("action|apply")},(0,c._t)("action|apply")))}var mi=n("./src/call-types.ts"),ui=n("./src/utils/objects.ts");function pi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}const hi={[r.Bx4.RoomAvatar]:{isState:!0},[r.Bx4.RoomName]:{isState:!0},[r.Bx4.RoomCanonicalAlias]:{isState:!0},[r.Bx4.SpaceChild]:{isState:!0,hideForRoom:!0},[r.Bx4.RoomHistoryVisibility]:{isState:!0,hideForSpace:!0},[r.Bx4.RoomPowerLevels]:{isState:!0},[r.Bx4.RoomTopic]:{isState:!0},[r.Bx4.RoomTombstone]:{isState:!0,hideForSpace:!0},[r.Bx4.RoomEncryption]:{isState:!0,hideForSpace:!0},[r.Bx4.RoomServerAcl]:{isState:!0,hideForSpace:!0},[r.Bx4.RoomPinnedEvents]:{isState:!0,hideForSpace:!0},[r.Bx4.Reaction]:{isState:!1,hideForSpace:!0},[r.Bx4.RoomRedaction]:{isState:!1,hideForSpace:!0},[mi.Fm.name]:{isState:!0,hideForSpace:!0},[mi.Vj.name]:{isState:!0,hideForSpace:!0},"im.vector.modular.widgets":{isState:!0,hideForSpace:!0}};function gi(e,t){const n=parseInt(e);return isNaN(n)?t:n}class vi extends s.Component{constructor(...e){super(...e),(0,i.A)(this,"onUnbanClick",()=>{this.context.unban(this.props.member.roomId,this.props.member.userId).catch(e=>{o.vF.error("Failed to unban: "+e),X.Ay.createDialog(sn.A,{title:(0,c._t)("common|error"),description:(0,c._t)("room_settings|permissions|error_unbanning")})})})}render(){let e;this.props.canUnban&&(e=s.createElement(Ve.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 s.createElement("li",null,e,s.createElement("span",{title:(0,c._t)("room_settings|permissions|banned_by",{displayName:this.props.by})},s.createElement("strong",null,this.props.member.name)," ",t,this.props.reason?" "+(0,c._t)("room_settings|permissions|ban_reason")+": "+this.props.reason:""))}}(0,i.A)(vi,"contextType",je.Ay);const _i="event_levels_";class fi extends s.Component{constructor(e){super(e),(0,i.A)(this,"onRoomStateUpdate",e=>{e.roomId===this.props.room.roomId&&this.onThisRoomMembership()}),(0,i.A)(this,"onThisRoomMembership",(0,Gn.A)(()=>{this.forceUpdate()},200,{leading:!0,trailing:!0})),(0,i.A)(this,"onPowerLevelsChanged",async(e,t)=>{var n;const i=this.context,s=this.props.room.currentState.getStateEvents(r.Bx4.RoomPowerLevels,"");let a=null!==(n=null==s?void 0:s.getContent())&&void 0!==n?n:{};a=Object.assign({},a),t.startsWith(_i)?(0,Kn.A)(a,["events",t.slice(13)],e):(0,Kn.A)(a,t.split("."),e);try{await i.sendStateEvent(this.props.room.roomId,r.Bx4.RoomPowerLevels,a)}catch(e){throw o.vF.error(e),X.Ay.createDialog(sn.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,i.A)(this,"onUserPowerLevelChanged",async(e,t)=>{var n;const s=this.context,a=this.props.room.currentState.getStateEvents(r.Bx4.RoomPowerLevels,"");let l=null!==(n=null==a?void 0:a.getContent())&&void 0!==n?n:{};l=(0,ui.ZV)(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?pi(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pi(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({users:{}},l)),l.users[t]=e;try{await s.sendStateEvent(this.props.room.roomId,r.Bx4.RoomPowerLevels,l)}catch(e){o.vF.error(e),X.Ay.createDialog(sn.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(r.fZ1.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(r.fZ1.Update,this.onRoomStateUpdate)}populateDefaultPlEvents(e,t,n){for(const i of Object.keys(hi))i in e||(e[i]=hi[i].isState?t:n)}render(){var e,t;const n=this.context,i=this.props.room,o=i.isSpaceRoom(),a=i.currentState.getStateEvents(r.Bx4.RoomPowerLevels,""),l=a&&a.getContent()||{},m=i.currentState.mayClientSendStateEvent(r.Bx4.RoomPowerLevels,n),u={[r.Bx4.RoomAvatar]:o?(0,c.AO)("room_settings|permissions|m.room.avatar_space"):(0,c.AO)("room_settings|permissions|m.room.avatar"),[r.Bx4.RoomName]:o?(0,c.AO)("room_settings|permissions|m.room.name_space"):(0,c.AO)("room_settings|permissions|m.room.name"),[r.Bx4.RoomCanonicalAlias]:o?(0,c.AO)("room_settings|permissions|m.room.canonical_alias_space"):(0,c.AO)("room_settings|permissions|m.room.canonical_alias"),[r.Bx4.SpaceChild]:(0,c.AO)("room_settings|permissions|m.space.child"),[r.Bx4.RoomHistoryVisibility]:(0,c.AO)("room_settings|permissions|m.room.history_visibility"),[r.Bx4.RoomPowerLevels]:(0,c.AO)("room_settings|permissions|m.room.power_levels"),[r.Bx4.RoomTopic]:o?(0,c.AO)("room_settings|permissions|m.room.topic_space"):(0,c.AO)("room_settings|permissions|m.room.topic"),[r.Bx4.RoomTombstone]:(0,c.AO)("room_settings|permissions|m.room.tombstone"),[r.Bx4.RoomEncryption]:(0,c.AO)("room_settings|permissions|m.room.encryption"),[r.Bx4.RoomServerAcl]:(0,c.AO)("room_settings|permissions|m.room.server_acl"),[r.Bx4.Reaction]:(0,c.AO)("room_settings|permissions|m.reaction"),[r.Bx4.RoomRedaction]:(0,c.AO)("room_settings|permissions|m.room.redaction"),[r.Bx4.RoomPinnedEvents]:(0,c.AO)("room_settings|permissions|m.room.pinned_events"),"im.vector.modular.widgets":o?null:(0,c.AO)("room_settings|permissions|m.widget")};d.A.get("element_call").disable||(u[mi.Fm.name]=(0,c.AO)("room_settings|permissions|m.call"),u[mi.Vj.name]=(0,c.AO)("room_settings|permissions|m.call.member"));const p={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}},h=l.events||{},g=l.users||{},v=gi(l.ban,p.ban.defaultValue),_=gi(l.users_default,p.users_default.defaultValue),f=null!==(e=null===(t=i.getMember(n.getSafeUserId()))||void 0===t?void 0:t.powerLevel)&&void 0!==e?e:_;this.populateDefaultPlEvents(h,gi(l.state_default,p.state_default.defaultValue),gi(l.events_default,p.events_default.defaultValue));let y,E=s.createElement("div",null,(0,c._t)("room_settings|permissions|no_privileged_users"));Object.keys(g).length&&(E=s.createElement(di,{title:(0,c._t)("room_settings|permissions|privileged_users_section"),userLevels:g,canChangeLevels:m,currentUserLevel:f,onClick:this.onUserPowerLevelChanged,filter:e=>g[e]>_},s.createElement("div",null,(0,c._t)("room_settings|permissions|no_privileged_users"))),y=s.createElement(di,{title:(0,c._t)("room_settings|permissions|muted_users_section"),userLevels:g,canChangeLevels:m,currentUserLevel:f,onClick:this.onUserPowerLevelChanged,filter:e=>g[e]<_}));const w=i.getMembersWithMembership($n.O.Ban);let S;if(null!=w&&w.length){const e=f>=v;S=s.createElement(Xn,{legend:(0,c._t)("room_settings|permissions|banned_users_section")},s.createElement("ul",{className:"mx_RolesRoomSettingsTab_bannedList"},w.map(t=>{var n,o;const r=null===(n=t.events.member)||void 0===n?void 0:n.getContent(),a=null===(o=t.events.member)||void 0===o?void 0:o.getSender(),l=a?i.getMember(a):void 0,c=(null==l?void 0:l.name)||a;return s.createElement(vi,{key:t.userId,canUnban:e,member:t,reason:null==r?void 0:r.reason,by:c})})))}const b=Object.keys(p).map((e,t)=>{const n=p[e];if(o&&n.hideForSpace)return null;const i=gi((0,qn.A)(l,e),n.defaultValue);return s.createElement("div",{key:t,className:""},s.createElement(Yn.A,{label:n.desc,value:i,usersDefault:_,disabled:!m||f<i,powerLevelKey:e,onChange:this.onPowerLevelsChanged}))}).filter(Boolean);this.state.isRoomEncrypted&&delete h[r.Bx4.RoomEncryption];const A=Object.keys(h).map((e,t)=>{var n,i;if(o&&null!==(n=hi[e])&&void 0!==n&&n.hideForSpace)return null;if(!o&&null!==(i=hi[e])&&void 0!==i&&i.hideForRoom)return null;const r=u[e];let a;if(r){var l;const e=null!==(l=d.A.get("element_call").brand)&&void 0!==l?l:d.z.element_call.brand;a=(0,c._t)(r,{brand:e})}else a=(0,c._t)("room_settings|permissions|send_event_type",{eventType:e});return s.createElement("div",{key:e},s.createElement(Yn.A,{label:a,value:h[e],usersDefault:_,disabled:!m||f<h[e],powerLevelKey:_i+e,onChange:this.onPowerLevelsChanged}))}).filter(Boolean);return s.createElement(Rn,null,s.createElement(On,{heading:(0,c._t)("room_settings|permissions|title")},E,m&&s.createElement(ai,{room:i,defaultUserLevel:_}),y,S,this.state.isReady&&s.createElement(Xn,{legend:(0,c._t)("room_settings|permissions|permissions_section"),description:o?(0,c._t)("room_settings|permissions|permissions_section_description_space"):(0,c._t)("room_settings|permissions|permissions_section_description_room")},b,A)))}}(0,i.A)(fi,"contextType",je.Ay);var yi=n("./src/components/views/elements/Field.tsx"),Ei=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/edit.js"),wi=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/share.js"),Si=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/delete.js"),bi=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Menu/Menu.js"),Ai=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Menu/MenuItem.js"),Ci=n("./src/customisations/Media.ts"),xi=n("./src/utils/BrowserWorkarounds.ts"),ki=n("./src/components/views/avatars/BaseAvatar.tsx");const Ri=({trigger:e,onUploadSelect:t,onRemoveSelect:n,menuOpen:i,onOpenChange:o})=>s.createElement(bi.W,{trigger:e,title:(0,c._t)("action|set_avatar"),showTitle:!1,open:i,onOpenChange:o},s.createElement(Ai.D,{as:"div",Icon:s.createElement(wi.A,{width:"24px",height:"24px"}),label:(0,c._t)("action|upload_file"),onSelect:t}),n&&s.createElement(Ai.D,{as:"div",Icon:s.createElement(Si.A,{width:"24px",height:"24px"}),className:"mx_AvatarSetting_removeMenuItem",label:(0,c._t)("action|remove"),onSelect:n}));function Ii(e){var t;if(null===(t=e.target.files)||void 0===t||!t.length)return null;const n=e.target.files[0];return n.type.startsWith("image/")?n:(X.Ay.createDialog(sn.A,{title:(0,c._t)("upload_failed_title"),description:(0,c._t)("upload_file|not_image")}),null)}const Ti=({avatar:e,avatarAccessibleName:t,onChange:n,removeAvatar:i,disabled:o,placeholderId:r,placeholderName:a})=>{const l=(0,s.createRef)(),[d,m]=(0,s.useState)(void 0);(0,s.useEffect)(()=>{if(e instanceof File){const t=new FileReader;t.onload=()=>{m(t.result)},t.readAsDataURL(e)}else if(e){var t;m(null!==(t=(0,Ci.l)(e).getSquareThumbnailHttp(96))&&void 0!==t?t:void 0)}else m(void 0)},[e]);const u=(0,s.useCallback)(e=>{const t=Ii(e);t&&(null==n||n(t))},[n]),p=(0,s.useCallback)(()=>{var e;null===(e=l.current)||void 0===e||e.click()},[l]),[h,g]=(0,s.useState)(!1),v=(0,s.useCallback)(e=>{g(e)},[]),_=s.createElement(Ve.A,{element:"div",onClick:()=>{},className:"mx_AvatarSetting_avatarDisplay",disabled:o},s.createElement(ki.A,{idName:r,name:a,size:"120px",url:d,altText:t}));let f;if(!o){const e=un()("mx_AvatarSetting_uploadButton",{mx_AvatarSetting_uploadButton_active:h});f=s.createElement("div",{className:e,role:"button","aria-label":(0,c._t)("settings|general|avatar_open_menu"),tabIndex:0,"aria-haspopup":"menu"},s.createElement(Ei.A,{"aria-hidden":!0,width:"20px",height:"20px"}))}const y=s.createElement("div",{className:"mx_AvatarSetting_avatar",role:"group","aria-label":t},_,f);return o?y:s.createElement(s.Fragment,null,s.createElement(Ri,{trigger:y,onUploadSelect:p,onRemoveSelect:i,menuOpen:h,onOpenChange:v}),s.createElement("input",{type:"file",style:{display:"none"},ref:l,onClick:xi.e,onChange:u,accept:"image/*",alt:(0,c._t)("action|upload")}))};var Pi=n("./src/editor/serialize.ts"),Ni=n("./src/models/LocalRoom.ts");function Di(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function Mi(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Di(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Di(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Oi(e){const t=Q.A.shared().getUserIdForRoomId(e.roomId);return t||(e instanceof Ni.N&&1===e.targets.length?e.targets[0].userId:e.roomId)}class Fi extends s.Component{constructor(e){var t;super(e),(0,i.A)(this,"avatarUpload",(0,s.createRef)()),(0,i.A)(this,"onAvatarChanged",e=>{this.setState({avatarFile:e,avatarRemovalPending:!1,profileFieldsTouched:Mi(Mi({},this.state.profileFieldsTouched),{},{avatar:!0})})}),(0,i.A)(this,"removeAvatar",()=>{this.avatarUpload.current&&(this.avatarUpload.current.value=""),this.setState({avatarFile:null,avatarRemovalPending:!0,profileFieldsTouched:Mi(Mi({},this.state.profileFieldsTouched),{},{avatar:!0})})}),(0,i.A)(this,"isSaveEnabled",()=>Boolean(Object.values(this.state.profileFieldsTouched).length)),(0,i.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,i.A)(this,"saveProfile",async e=>{if(e.stopPropagation(),e.preventDefault(),!this.isSaveEnabled())return;this.setState({profileFieldsTouched:{}});const t=_.J.safeGet(),n={},i=this.state.displayName.trim();if(this.state.originalDisplayName!==this.state.displayName&&(await t.setRoomName(this.props.roomId,i),n.originalDisplayName=i,n.displayName=i),this.state.avatarFile){const{content_uri:e}=await t.uploadContent(this.state.avatarFile);await t.sendStateEvent(this.props.roomId,r.Bx4.RoomAvatar,{url:e},""),n.originalAvatarUrl=e,n.avatarFile=null}else this.state.avatarRemovalPending&&(await t.sendStateEvent(this.props.roomId,r.Bx4.RoomAvatar,{},""),n.avatarRemovalPending=!1,n.originalAvatarUrl=null);if(this.state.originalTopic!==this.state.topic){const e=(0,Pi.Ro)(this.state.topic,{forceHTML:!1});await t.setRoomTopic(this.props.roomId,this.state.topic,e),n.originalTopic=this.state.topic}this.setState(n)}),(0,i.A)(this,"onDisplayNameChanged",e=>{this.setState({displayName:e.target.value}),this.state.originalDisplayName===e.target.value?this.setState({profileFieldsTouched:Mi(Mi({},this.state.profileFieldsTouched),{},{name:!1})}):this.setState({profileFieldsTouched:Mi(Mi({},this.state.profileFieldsTouched),{},{name:!0})})}),(0,i.A)(this,"onTopicChanged",e=>{this.setState({topic:e.target.value}),this.state.originalTopic===e.target.value?this.setState({profileFieldsTouched:Mi(Mi({},this.state.profileFieldsTouched),{},{topic:!1})}):this.setState({profileFieldsTouched:Mi(Mi({},this.state.profileFieldsTouched),{},{topic:!0})})});const n=_.J.safeGet(),o=n.getRoom(e.roomId);if(!o)throw new Error(`Expected a room for ID: ${e.roomId}`);const a=o.currentState.getStateEvents(r.Bx4.RoomAvatar,""),l=null!==(t=null==a?void 0:a.getContent().url)&&void 0!==t?t:null,c=o.currentState.getStateEvents(r.Bx4.RoomTopic,""),d=c&&r.Xcy.parseTopicContent(c.getContent()).text||"",m=o.currentState.getStateEvents(r.Bx4.RoomName,""),u=m&&m.getContent()?m.getContent().name:"",p=n.getSafeUserId();this.state={originalDisplayName:u,displayName:u,originalAvatarUrl:l,avatarFile:null,avatarRemovalPending:!1,originalTopic:d,topic:d,profileFieldsTouched:{},canSetName:o.currentState.maySendStateEvent(r.Bx4.RoomName,p),canSetTopic:o.currentState.maySendStateEvent(r.Bx4.RoomTopic,p),canSetAvatar:o.currentState.maySendStateEvent(r.Bx4.RoomAvatar,p)}}render(){var e,t;let n;(this.state.canSetName||this.state.canSetTopic||this.state.canSetAvatar)&&(n=s.createElement("div",{className:"mx_RoomProfileSettings_buttons"},s.createElement(Ve.A,{onClick:this.cancelProfileChanges,kind:"primary_outline",disabled:!this.isSaveEnabled()},(0,c._t)("action|cancel")),s.createElement(Ve.A,{onClick:this.saveProfile,kind:"primary",disabled:!this.isSaveEnabled()},(0,c._t)("action|save"))));const i=this.state.profileFieldsTouched.avatar?Boolean(this.state.avatarFile):Boolean(this.state.originalAvatarUrl);return s.createElement("form",{onSubmit:this.saveProfile,autoComplete:"off",noValidate:!0,className:"mx_RoomProfileSettings"},s.createElement("div",{className:"mx_RoomProfileSettings_profile"},s.createElement("div",{className:"mx_RoomProfileSettings_profile_controls"},s.createElement(yi.A,{label:(0,c._t)("room_settings|general|name_field_label"),type:"text",value:this.state.displayName,autoComplete:"off",onChange:this.onDisplayNameChanged,disabled:!this.state.canSetName}),s.createElement(yi.A,{className:un()("mx_RoomProfileSettings_profile_controls_topic","mx_RoomProfileSettings_profile_controls_topic--room"),id:"profileTopic",label:(0,c._t)("room_settings|general|topic_field_label"),disabled:!this.state.canSetTopic,type:"text",value:this.state.topic,autoComplete:"off",onChange:this.onTopicChanged,element:"textarea"})),s.createElement(Ti,{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,c._t)("room_settings|general|avatar_field_label"),disabled:!this.state.canSetAvatar,onChange:this.onAvatarChanged,removeAvatar:i?this.removeAvatar:void 0,placeholderId:Oi(_.J.safeGet().getRoom(this.props.roomId)),placeholderName:_.J.safeGet().getRoom(this.props.roomId).name})),n)}}class Li extends s.Component{constructor(...e){super(...e),(0,i.A)(this,"state",{verifyRemove:!1}),(0,i.A)(this,"onRemove",e=>{e.stopPropagation(),e.preventDefault(),this.setState({verifyRemove:!0})}),(0,i.A)(this,"onDontRemove",e=>{e.stopPropagation(),e.preventDefault(),this.setState({verifyRemove:!1})}),(0,i.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?s.createElement("div",{className:"mx_EditableItem"},s.createElement("span",{className:"mx_EditableItem_promptText"},(0,c._t)("common|are_you_sure")),s.createElement(Ve.A,{onClick:this.onActuallyRemove,kind:"primary_sm",className:"mx_EditableItem_confirmBtn"},(0,c._t)("action|yes")),s.createElement(Ve.A,{onClick:this.onDontRemove,kind:"danger_sm",className:"mx_EditableItem_confirmBtn"},(0,c._t)("action|no"))):s.createElement("div",{className:"mx_EditableItem"},s.createElement(Ve.A,{onClick:this.onRemove,className:"mx_EditableItem_delete",title:(0,c._t)("action|remove"),role:"button"},s.createElement(ti.A,null)),s.createElement("span",{className:"mx_EditableItem_item"},this.props.value))}}class Ui extends s.PureComponent{constructor(...e){super(...e),(0,i.A)(this,"onItemAdded",e=>{var t,n;e.stopPropagation(),e.preventDefault(),null===(t=(n=this.props).onItemAdded)||void 0===t||t.call(n,this.props.newItem)}),(0,i.A)(this,"onItemRemoved",e=>{var t,n;null===(t=(n=this.props).onItemRemoved)||void 0===t||t.call(n,e)}),(0,i.A)(this,"onNewItemChanged",e=>{var t,n;null===(t=(n=this.props).onNewItemChanged)||void 0===t||t.call(n,e.target.value)})}renderNewItemField(){return s.createElement("form",{onSubmit:this.onItemAdded,autoComplete:"off",noValidate:!0,className:"mx_EditableItemList_newItem"},s.createElement(yi.A,{label:this.props.placeholder,type:"text",autoComplete:"off",value:this.props.newItem||"",onChange:this.onNewItemChanged,list:this.props.suggestionsListId}),s.createElement(Ve.A,{onClick:this.onItemAdded,kind:"primary",disabled:!this.props.newItem},(0,c._t)("action|add")))}render(){const e=this.props.items.map((e,t)=>this.props.canRemove?s.createElement(Li,{key:e,index:t,value:e,onRemove:this.onItemRemoved}):s.createElement("li",{key:e},e)),t=this.props.canRemove?e:s.createElement("ul",null,e),n=this.props.items.length>0?this.props.itemsLabel:this.props.noItemsLabel;return s.createElement("div",{className:"mx_EditableItemList",id:this.props.id},s.createElement("div",{className:"mx_EditableItemList_label"},n),t,this.props.canEdit?this.renderNewItemField():s.createElement("div",null))}}var Vi=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Form/Controls/SettingsToggle/SettingsToggle.js"),Bi=n("./src/customisations/Directory.ts");function ji(e){e.preventDefault(),e.stopPropagation()}class Hi extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"onRoomPublishChange",async e=>{const t=e.target.checked;this.setState({busy:!0});const n=_.J.safeGet();try{await n.setRoomDirectoryVisibility(this.props.roomId,t?r.bvC.Public:r.bvC.Private),this.setState({isRoomPublished:t})}catch(e){o.vF.error("Error while setting room directory visibility",e),this.showError()}finally{this.setState({busy:!1})}}),this.state={isRoomPublished:!1,busy:!1}}showError(){X.Ay.createDialog(sn.A,{title:(0,c._t)("room_settings|general|error_publishing"),description:(0,c._t)("room_settings|general|error_publishing_detail")})}componentDidMount(){_.J.safeGet().getRoomDirectoryVisibility(this.props.roomId).then(e=>{this.setState({isRoomPublished:"public"===e.visibility})})}render(){var e;const t=_.J.safeGet(),n=t.getRoom(this.props.roomId),i=n&&n.getJoinRule()!==r.dxp.Invite,o=!1===(null===(e=Bi.A.requireCanonicalAliasAccessToPublish)||void 0===e?void 0:e.call(Bi.A))||this.props.canSetCanonicalAlias;let a;i?o||(a=(0,c._t)("room_settings|general|publish_warn_no_canonical_permission")):a=(0,c._t)("room_settings|general|publish_warn_invite_only");const l=o&&(i||this.state.isRoomPublished);return s.createElement(Ln.lV.Root,{onSubmit:ji},s.createElement(Vi.I,{name:"room-publish",checked:this.state.isRoomPublished,onChange:this.onRoomPublishChange,disabled:!l||this.state.busy,disabledMessage:a,label:(0,c._t)("room_settings|general|publish_toggle",{domain:t.getDomain()})}))}}var zi=n("./src/components/views/elements/RoomAliasField.tsx");class Wi extends Ui{constructor(...e){super(...e),(0,i.A)(this,"aliasField",(0,s.createRef)()),(0,i.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 s.createElement("form",{onSubmit:this.onAliasAdded,autoComplete:"off",noValidate:!0,className:"mx_EditableItemList_newItem"},s.createElement(zi.A,{ref:this.aliasField,onChange:e=>{var t,n;return null===(t=(n=this.props).onNewItemChanged)||void 0===t?void 0:t.call(n,e)},value:this.props.newItem||"",domain:this.props.domain,roomId:this.props.roomId}),s.createElement(Ve.A,{onClick:this.onAliasAdded,kind:"primary"},(0,c._t)("action|add")))}}class Ji extends s.Component{constructor(e){super(e),(0,i.A)(this,"onNewAliasChanged",e=>{this.setState({newAlias:e})}),(0,i.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=>{o.vF.error(e),X.Ay.createDialog(sn.A,{title:(0,c._t)("room_settings|general|error_creating_alias_title"),description:(0,c._t)("room_settings|general|error_creating_alias_description")})})}),(0,i.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;o.vF.error(e),t="M_FORBIDDEN"===e.errcode?(0,c._t)("room_settings|general|error_deleting_alias_description_forbidden"):(0,c._t)("room_settings|general|error_deleting_alias_description"),X.Ay.createDialog(sn.A,{title:(0,c._t)("room_settings|general|error_deleting_alias_title"),description:t})})}),(0,i.A)(this,"onLocalAliasesToggled",e=>{e.currentTarget.open&&(this.props.canSetCanonicalAlias||0!==this.state.localAliases.length||this.loadLocalAliases()),this.setState({detailsOpen:e.currentTarget.open})}),(0,i.A)(this,"onCanonicalAliasChange",e=>{this.changeCanonicalAlias(e.target.value)}),(0,i.A)(this,"onNewAltAliasChanged",e=>{this.setState({newAltAlias:e})}),(0,i.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,i.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 n=e.canonicalAliasEvent.getContent(),i=n.alt_aliases;Array.isArray(i)&&(t.altAliases=i.slice()),t.canonicalAlias=n.alias}this.state=t}componentDidMount(){this.props.canSetCanonicalAlias&&this.loadLocalAliases()}async loadLocalAliases(){this.setState({localAliasesLoading:!0});try{const e=this.context;let t=[];const n=await e.getLocalAliases(this.props.roomId);Array.isArray(null==n?void 0:n.aliases)&&(t=n.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 n={alt_aliases:this.state.altAliases};e&&(n.alias=e),this.context.sendStateEvent(this.props.roomId,r.Bx4.RoomCanonicalAlias,n,"").catch(e=>{o.vF.error(e),X.Ay.createDialog(sn.A,{title:(0,c._t)("room_settings|general|error_updating_canonical_alias_title"),description:(0,c._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,r.Bx4.RoomCanonicalAlias,t,"").then(()=>{this.setState({altAliases:e})}).catch(e=>{o.vF.error(e),X.Ay.createDialog(sn.A,{title:(0,c._t)("room_settings|general|error_updating_canonical_alias_title"),description:(0,c._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,n=t.getDomain(),i=null===(e=t.getRoom(this.props.roomId))||void 0===e?void 0:e.isSpaceRoom();let o=!1;const r=this.state.canonicalAlias||"",a=s.createElement(yi.A,{onChange:this.onCanonicalAliasChange,value:r,disabled:this.state.updatingCanonicalAlias||!this.props.canSetCanonicalAlias,element:"select",id:"canonicalAlias",label:(0,c._t)("room_settings|general|canonical_alias_field_label")},s.createElement("option",{value:"",key:"unset"},(0,c._t)("room_settings|alias_not_specified")),this.getAliases().map((e,t)=>(e===this.state.canonicalAlias&&(o=!0),s.createElement("option",{value:e,key:t},e))),o||!this.state.canonicalAlias?"":s.createElement("option",{value:this.state.canonicalAlias,key:"arbitrary"},this.state.canonicalAlias));let l;return l=this.state.localAliasesLoading?s.createElement(Be.A,null):s.createElement(Wi,{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:i?(0,c._t)("room_settings|general|no_aliases_space"):(0,c._t)("room_settings|general|no_aliases_room"),placeholder:(0,c._t)("room_settings|general|local_alias_field_label"),domain:n}),s.createElement(s.Fragment,null,s.createElement(Xn,{legend:(0,c._t)("room_settings|general|published_aliases_section"),description:s.createElement(s.Fragment,null,i?(0,c._t)("room_settings|general|published_aliases_explainer_space"):(0,c._t)("room_settings|general|published_aliases_explainer_room")," ",(0,c._t)("room_settings|general|published_aliases_description"))},a,this.props.hidePublishSetting?null:s.createElement(Hi,{roomId:this.props.roomId,canSetCanonicalAlias:this.props.canSetCanonicalAlias}),s.createElement("datalist",{id:"mx_AliasSettings_altRecommendations"},this.getLocalNonAltAliases().map(e=>s.createElement("option",{value:e,key:e}))),s.createElement(Wi,{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,c._t)("room_settings|general|aliases_items_label"),noItemsLabel:(0,c._t)("room_settings|general|aliases_no_items_label"),placeholder:(0,c._t)("room_settings|general|new_alias_placeholder"),roomId:this.props.roomId})),s.createElement(Xn,{legend:(0,c._t)("room_settings|general|local_aliases_section"),description:i?(0,c._t)("room_settings|general|local_aliases_explainer_space",{localDomain:n}):(0,c._t)("room_settings|general|local_aliases_explainer_room",{localDomain:n})},s.createElement("details",{onToggle:this.onLocalAliasesToggled,open:this.state.detailsOpen},s.createElement("summary",{className:"mx_AliasSettings_localAddresses"},this.state.detailsOpen?(0,c._t)("room_list|show_less"):(0,c._t)("common|show_more")),l)))}}(0,i.A)(Ji,"contextType",je.Ay),(0,i.A)(Ji,"defaultProps",{canSetAliases:!1,canSetCanonicalAlias:!1});var Gi=n("./src/PosthogTrackers.ts"),Ki=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Form/Root.js"),qi=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Form/Field.js"),$i=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Form/Label.js"),Yi=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Form/Message.js"),Qi=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Form/InlineField.js"),Xi=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Form/Controls/Radio/Radio.js"),Zi=n("./src/@types/media_preview.ts"),es=n("./src/hooks/useSettings.ts");function ts(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function ns(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ts(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ts(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const is=({roomId:e})=>{const t=(0,es.ti)("mediaPreviewConfig",e),n=(0,s.useCallback)(t=>{S.A.setValue("mediaPreviewConfig",null!=e?e:null,e?oe.p.ROOM_ACCOUNT:oe.p.ACCOUNT,t)},[e]),i=(0,s.useCallback)(e=>{n(ns(ns({},t),{},{invite_avatars:e.target.checked?Zi.M.Off:Zi.M.On}))},[n,t]),o=(0,s.useCallback)(e=>{e.target.checked&&n(ns(ns({},t),{},{media_previews:Zi.M.Off}))},[n,t]),r=(0,s.useCallback)(e=>{e.target.checked&&n(ns(ns({},t),{},{media_previews:Zi.M.Private}))},[n,t]),a=(0,s.useCallback)(e=>{e.target.checked&&n(ns(ns({},t),{},{media_previews:Zi.M.On}))},[n,t]);return s.createElement(Ki.b,{className:"mx_MediaPreviewAccountSetting_Form"},!e&&s.createElement(Vi.I,{name:"hide_avatars",label:(0,c._t)("settings|media_preview|hide_avatars"),checked:t.invite_avatars===Zi.M.Off,onChange:i}),s.createElement(qi.D,{id:"mx_media_previews",role:"radiogroup",name:"media_previews","aria-label":(0,c._t)("settings|media_preview|media_preview_label")},s.createElement($i.J,null,(0,c._t)("settings|media_preview|media_preview_label")),s.createElement(Yi.po,{className:"mx_MediaPreviewAccountSetting_RadioHelp"},(0,c._t)("settings|media_preview|media_preview_description")),s.createElement(Qi.I,{name:"media_preview_off",className:"mx_MediaPreviewAccountSetting_Radio",control:s.createElement(Xi.A,{id:"mx_media_previews_off",checked:t.media_previews===Zi.M.Off,onChange:o})},s.createElement($i.J,{htmlFor:"mx_media_previews_off"},(0,c._t)("settings|media_preview|hide_media"))),!e&&s.createElement(Qi.I,{name:"mx_media_previews_private",className:"mx_MediaPreviewAccountSetting_Radio",control:s.createElement(Xi.A,{id:"mx_media_previews_private",checked:t.media_previews===Zi.M.Private,onChange:r})},s.createElement($i.J,{htmlFor:"mx_media_previews_private"},(0,c._t)("settings|media_preview|show_in_private"))),s.createElement(Qi.I,{name:"media_preview_on",className:"mx_MediaPreviewAccountSetting_Radio",control:s.createElement(Xi.A,{id:"mx_media_previews_on",checked:t.media_previews===Zi.M.On,onChange:a})},s.createElement($i.J,{htmlFor:"mx_media_previews_on"},(0,c._t)("settings|media_preview|show_media")))))};class ss extends s.Component{constructor(e){super(e),(0,i.A)(this,"onLeaveClick",e=>{K.A.dispatch({action:"leave_room",room_id:this.props.room.roomId}),Gi.A.trackInteraction("WebRoomSettingsLeaveButton",e)}),this.state={isRoomPublished:!1}}render(){var e;const t=this.context,n=this.props.room,i=n.currentState.mayClientSendStateEvent("m.room.canonical_alias",t),o=null!==(e=n.currentState.getStateEvents("m.room.canonical_alias",""))&&void 0!==e?e:void 0;let r;return n.getMyMembership()===$n.O.Join&&(r=s.createElement(zn,{heading:(0,c._t)("action|leave_room")},s.createElement(Ve.A,{kind:"danger",onClick:this.onLeaveClick},(0,c._t)("action|leave_room")))),s.createElement(Rn,null,s.createElement(On,{heading:(0,c._t)("common|general")},s.createElement(Fi,{roomId:n.roomId})),s.createElement(On,{heading:(0,c._t)("room_settings|general|aliases_section")},s.createElement(Ji,{roomId:n.roomId,canSetCanonicalAlias:i,canSetAliases:!0,canonicalAliasEvent:o})),s.createElement(On,{heading:(0,c._t)("room_settings|general|other_section")},s.createElement(zn,{heading:(0,c._t)("common|moderation_and_safety"),legacy:!1},s.createElement(is,{roomId:n.roomId})),r))}}(0,i.A)(ss,"contextType",je.Ay);var os=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/warning.js"),rs=n("./src/components/views/elements/StyledRadioGroup.tsx"),as=n("./src/settings/UIFeature.ts"),ls=n("./src/components/views/elements/SettingsFlag.tsx"),cs=n("./src/createRoom.ts"),ds=n("./src/components/views/dialogs/CreateRoomDialog.tsx"),ms=n("./src/components/views/avatars/RoomAvatar.tsx"),us=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/info-solid.js"),ps=n("./src/components/structures/SearchBox.tsx"),hs=n("./src/components/views/elements/StyledCheckbox.tsx"),gs=n("./src/contexts/SDKContextClass.ts");const vs=({room:e,checked:t,onChange:n})=>{const i=e instanceof r.WvM;let o;if(i){o=(0,c._t)("common|n_members",{count:e.getJoinedMemberCount()});const t=gs._.instance.spaceStore.getChildRooms(e.roomId).length;t>0&&(o+=" · "+(0,c._t)("common|n_rooms",{count:t}))}return s.createElement("div",{className:"mx_ManageRestrictedJoinRuleDialog_entry"},s.createElement(hs.A,{onChange:n?e=>n(e.target.checked):void 0,checked:t,disabled:!n,description:o},s.createElement("div",null,i?s.createElement(ms.A,{role:"none",room:e,size:"20px"}):s.createElement(ms.A,{oobData:e,size:"20px"}),s.createElement("span",{className:"mx_ManageRestrictedJoinRuleDialog_entry_name"},e.name))))},_s=(e,t)=>{const n=t.client;Array.from(gs._.instance.spaceStore.getKnownParents(t.roomId)).map(e=>n.getRoom(e)).forEach(t=>{t&&!e.has(t)&&(e.add(t),_s(e,t))})},fs=({room:e,selected:t,onFinished:n})=>{const i=e.client,[o,r]=(0,s.useState)(new Set(t)),[a,l]=(0,s.useState)(""),d=a.toLowerCase().trim(),[m,u,p]=(0,s.useMemo)(()=>{var n;const s=new Set;return _s(s,e),[Array.from(s),gs._.instance.spaceStore.spacePanelSpaces.filter(e=>!s.has(e)),(0,Me.Bo)(null!==(n=null==t?void 0:t.map(e=>{const t=i.getRoom(e);return t?t.getMyMembership()===$n.O.Join&&t.isSpaceRoom()?void 0:t:{roomId:e,name:e}}))&&void 0!==n?n:[])]},[i,t,e]),[h,g,v]=(0,s.useMemo)(()=>[m.filter(e=>e.name.toLowerCase().includes(d)),u.filter(e=>e.name.toLowerCase().includes(d)),p.filter(e=>e.name.toLowerCase().includes(d))],[m,u,p,d]),_=(e,t)=>{e?o.add(t.roomId):o.delete(t.roomId),r(new Set(o))};let f;o.size<1&&(f=s.createElement("div",{className:"mx_ManageRestrictedJoinRuleDialog_section_info"},s.createElement(us.A,null),(0,c._t)("room_settings|security|join_rule_restricted_dialog_empty_warning")));const y=h.length+g.length+v.length;return s.createElement(ke.A,{title:(0,c._t)("room_settings|security|join_rule_restricted_dialog_title"),className:"mx_ManageRestrictedJoinRuleDialog",onFinished:n,fixedWidth:!1},s.createElement("p",null,(0,c._t)("room_settings|security|join_rule_restricted_dialog_description",{},{RoomName:()=>s.createElement("strong",null,e.name)})),s.createElement(je.Ay.Provider,{value:i},s.createElement(ps.A,{className:"mx_textinput_icon mx_textinput_search",placeholder:(0,c._t)("room_settings|security|join_rule_restricted_dialog_filter_placeholder"),onSearch:l,autoFocus:!0}),s.createElement(Xe.qme,{className:"mx_AutoHideScrollbar mx_ManageRestrictedJoinRuleDialog_content"},h.length>0?s.createElement("div",{className:"mx_ManageRestrictedJoinRuleDialog_section"},s.createElement("h3",null,e.isSpaceRoom()?(0,c._t)("room_settings|security|join_rule_restricted_dialog_heading_space"):(0,c._t)("room_settings|security|join_rule_restricted_dialog_heading_room")),h.map(e=>s.createElement(vs,{key:e.roomId,room:e,checked:o.has(e.roomId),onChange:t=>{_(t,e)}}))):void 0,v.length>0?s.createElement("div",{className:"mx_ManageRestrictedJoinRuleDialog_section"},s.createElement("h3",null,(0,c._t)("room_settings|security|join_rule_restricted_dialog_heading_other")),s.createElement("div",{className:"mx_ManageRestrictedJoinRuleDialog_section_info"},s.createElement(us.A,null),(0,c._t)("room_settings|security|join_rule_restricted_dialog_heading_unknown")),v.map(e=>s.createElement(vs,{key:e.roomId,room:e,checked:o.has(e.roomId),onChange:t=>{_(t,e)}}))):null,g.length>0?s.createElement("div",{className:"mx_ManageRestrictedJoinRuleDialog_section"},s.createElement("h3",null,(0,c._t)("room_settings|security|join_rule_restricted_dialog_heading_known")),g.map(e=>s.createElement(vs,{key:e.roomId,room:e,checked:o.has(e.roomId),onChange:t=>{_(t,e)}}))):null,y<1?s.createElement("span",{className:"mx_ManageRestrictedJoinRuleDialog_noResults"},(0,c._t)("common|no_results")):void 0),s.createElement("div",{className:"mx_ManageRestrictedJoinRuleDialog_footer"},f,s.createElement("div",{className:"mx_ManageRestrictedJoinRuleDialog_footer_buttons"},s.createElement(Ve.A,{kind:"primary_outline",onClick:()=>n()},(0,c._t)("action|cancel")),s.createElement(Ve.A,{kind:"primary",onClick:()=>n(Array.from(o))},(0,c._t)("action|confirm"))))))};var ys=n("./src/components/views/dialogs/RoomUpgradeWarningDialog.tsx");const Es=(e,t,n)=>{const[i,o]=(0,s.useState)(e);return[i,async i=>{o(i);try{await t(i)}catch(t){o(e()),n(t)}}]};var ws=n("./src/components/views/dialogs/RoomSettingsDialog-tab.ts"),Ss=n("./src/utils/PreferredRoomVersions.ts");const bs=({value:e,label:t,byline:n,disabled:i,onChange:o,className:r,id:a})=>s.createElement("div",{id:a,className:un()("mx_LabelledCheckbox",r)},s.createElement(hs.A,{description:n,disabled:i,checked:e,onChange:e=>o(e.target.checked)},s.createElement("span",{className:"mx_LabelledCheckbox_label"},t)));function As(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function Cs(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?As(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):As(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const xs=({room:e,promptUpgrade:t,onError:n,beforeChange:i,closeSettingsFn:o,disabledOptions:a,hiddenOptions:l,recommendedOption:d})=>{var m;const u=e.client,p=S.A.getValue("feature_ask_to_join"),h=(0,Ss.Y)(e.getVersion(),Ss.W.KnockRooms),g=!h&&t?Ss.W.KnockRooms:void 0,v=(0,Ss.Y)(e.getVersion(),Ss.W.RestrictedRooms),_=!v&&t?Ss.W.RestrictedRooms:void 0,f=!e.currentState.mayClientSendStateEvent(r.Bx4.RoomJoinRules,u),[y,E]=Es(()=>{var t;return null===(t=e.currentState.getStateEvents(r.Bx4.RoomJoinRules,""))||void 0===t?void 0:t.getContent()},t=>u.sendStateEvent(e.roomId,r.Bx4.RoomJoinRules,t,""),n),{join_rule:w=r.dxp.Invite}=y||{},b=w===r.dxp.Restricted?null==y||null===(m=y.allow)||void 0===m?void 0:m.filter(e=>e.type===r.D75.RoomMembership).map(e=>e.room_id):void 0,[A,C]=(0,s.useState)(!1);(0,s.useEffect)(()=>{w===r.dxp.Knock&&u.getRoomDirectoryVisibility(e.roomId).then(({visibility:e})=>C(e===r.bvC.Public)).catch(n)},[u,w,n,e.roomId]);const x=t=>{u.setRoomDirectoryVisibility(e.roomId,t?r.bvC.Public:r.bvC.Private).then(()=>C(t)).catch(n)},k=async()=>{var t;let n=b;null!==(t=n)&&void 0!==t&&t.length||!gs._.instance.spaceStore.activeSpaceRoom||(n=[gs._.instance.spaceStore.activeSpaceRoom.roomId]);const{finished:i}=X.Ay.createDialog(fs,{room:e,selected:n},"mx_ManageRestrictedJoinRuleDialog_wrapper"),[s]=await i;return s},R=(t,n)=>{X.Ay.createDialog(ys.A,{roomId:e.roomId,targetVersion:t,description:n,doUpgrade:async(n,i)=>{const s=await(0,bn.W)(e,t,n.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)i((0,c._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 n;i((0,c._t)("room_settings|security|join_rule_upgrade_updating_spaces",{progress:e.updateSpacesProgress,count:e.updateSpacesTotal}),2+(null!==(n=e.inviteUsersProgress)&&void 0!==n?n:0)+e.updateSpacesProgress,t)}}else i((0,c._t)("room_settings|security|join_rule_upgrade_awaiting_room"),1,t);else i((0,c._t)("room_settings|security|join_rule_upgrade_upgrading_room"),0,t)},!0);null==o||o(),K.A.dispatch({action:$.r.ViewRoom,room_id:s,metricsTrigger:void 0}),K.A.dispatch({action:"open_room_settings",initial_tab_id:ws.e.Security})}})},I=s.createElement("span",{className:"mx_JoinRuleSettings_upgradeRequired"},(0,c._t)("room_settings|security|join_rule_upgrade_required")),T=(e,t)=>t===d?s.createElement(s.Fragment,null,e," (",s.createElement("span",{className:"mx_JoinRuleSettings_recommended"},(0,c._t)("common|recommended")),")"):e,P=[{value:r.dxp.Invite,label:T((0,c._t)("room_settings|security|join_rule_invite"),r.dxp.Invite),description:(0,c._t)("room_settings|security|join_rule_invite_description"),checked:w===r.dxp.Invite||w===r.dxp.Restricted&&!(null!=b&&b.length)},{value:r.dxp.Public,label:T((0,c._t)("room_settings|security|join_rule_public"),r.dxp.Public),description:s.createElement(s.Fragment,null,(0,c._t)("room_settings|security|join_rule_public_description"))}];if(v||_||w===r.dxp.Restricted){let e;if(w===r.dxp.Restricted&&null!=b&&b.length){const t=b.map(e=>u.getRoom(e)).filter(e=>null==e?void 0:e.isSpaceRoom()).slice(0,4);let n;t.length<b.length&&(n=t.length>0?(0,c._t)("room_settings|security|join_rule_restricted_n_more",{count:b.length-t.length}):(0,c._t)("room_settings|security|join_rule_restricted_summary",{count:b.length}));const i=e=>{(0,Me.dc)(b||[],e)&&(e.length?E({join_rule:r.dxp.Restricted,allow:e.map(e=>({type:r.D75.RoomMembership,room_id:e}))}):E({join_rule:r.dxp.Invite}))},o=async()=>{const e=await k();Array.isArray(e)&&(e.length>0?i(e):N(r.dxp.Invite))};e=s.createElement("div",null,s.createElement("span",null,(0,c._t)("room_settings|security|join_rule_restricted_description",{},{a:e=>s.createElement(Ve.A,{disabled:f,onClick:o,kind:"link_inline"},e)})),s.createElement("div",{className:"mx_JoinRuleSettings_spacesWithAccess"},s.createElement("h4",null,(0,c._t)("room_settings|security|join_rule_restricted_description_spaces")),t.map(e=>s.createElement("span",{key:e.roomId},s.createElement(ms.A,{room:e,size:"32px"}),e.name)),n&&s.createElement("span",null,n)))}else e=gs._.instance.spaceStore.activeSpaceRoom?(0,c._t)("room_settings|security|join_rule_restricted_description_active_space",{},{spaceName:()=>s.createElement("strong",null,gs._.instance.spaceStore.activeSpaceRoom.name)}):(0,c._t)("room_settings|security|join_rule_restricted_description_prompt");P.splice(1,0,{value:r.dxp.Restricted,label:s.createElement(s.Fragment,null,T((0,c._t)("room_settings|security|join_rule_restricted"),r.dxp.Restricted),_&&I),description:e,checked:w===r.dxp.Restricted&&!(null==b||!b.length)})}p&&(h||g)&&P.splice(Math.max(0,P.length-1),0,{value:r.dxp.Knock,label:s.createElement(s.Fragment,null,T((0,c._t)("room_settings|security|join_rule_knock"),r.dxp.Knock),g&&I),description:s.createElement(s.Fragment,null,(0,c._t)("room_settings|security|join_rule_knock_description"),s.createElement(bs,{className:"mx_JoinRuleSettings_labelledCheckbox",disabled:w!==r.dxp.Knock,label:e.isSpaceRoom()?(0,c._t)("room_settings|security|publish_space"):(0,c._t)("room_settings|security|publish_room"),onChange:x,value:A}))});const N=async t=>{const n=null==y?void 0:y.join_rule;let o;if(t===r.dxp.Restricted){var a;if(n===r.dxp.Restricted||v){if(o=await k(),!Array.isArray(o))return}else if(_){const t=_;let n;const i=u.getUserId();return Array.from(gs._.instance.spaceStore.getKnownParents(e.roomId)).some(e=>{var t;return!(null!==(t=u.getRoom(e))&&void 0!==t&&t.currentState.maySendStateEvent(r.Bx4.SpaceChild,i))})&&(n=s.createElement("strong",null,(0,c._t)("room_settings|security|join_rule_restricted_upgrade_warning"))),void R(t,s.createElement(s.Fragment,null,(0,c._t)("room_settings|security|join_rule_restricted_upgrade_description"),n))}null!==(a=o)&&void 0!==a&&a.length||(t=r.dxp.Invite)}else if(t===r.dxp.Knock&&g)return void R(g);if(n===t&&!o)return;if(i&&!await i(t))return;const l={join_rule:t};var d;t===r.dxp.Restricted&&(l.allow=null===(d=o)||void 0===d?void 0:d.map(e=>({type:r.D75.RoomMembership,room_id:e})));E(l)};return s.createElement(rs.A,{name:"joinRule",value:w,onChange:N,definitions:P.map(e=>null!=a&&a.has(e.value)?Cs(Cs({},e),{},{disabled:!0}):e).filter(e=>!(null!=l&&l.has(e.value))),disabled:f,className:"mx_JoinRuleSettings_radioButton"})};var ks=n("./src/utils/crypto/shouldForceDisableEncryption.ts");const Rs=["children","isError"],Is=e=>{let{children:t,isError:n}=e,i=(0,v.A)(e,Rs);return s.createElement("span",(0,xn.A)({className:un()("mx_Caption",{mx_Caption_error:n})},i),t)};var Ts=n("./src/utils/crypto/index.ts");class Ps extends s.Component{constructor(e){super(e),(0,i.A)(this,"onStateEvent",e=>{[r.Bx4.RoomJoinRules,r.Bx4.RoomGuestAccess,r.Bx4.RoomHistoryVisibility,r.Bx4.RoomEncryption].includes(e.getType())&&this.forceUpdate()}),(0,i.A)(this,"onEncryptionChange",async()=>{if(this.props.room.getJoinRule()===r.dxp.Public){const e=X.Ay.createDialog(on.A,{title:(0,c._t)("room_settings|security|enable_encryption_public_room_confirm_title"),description:s.createElement("div",null,s.createElement("p",null," ",(0,c._t)("room_settings|security|enable_encryption_public_room_confirm_description_1",void 0,{b:e=>s.createElement("strong",null,e)})," "),s.createElement("p",null," ",(0,c._t)("room_settings|security|enable_encryption_public_room_confirm_description_2",void 0,{a:t=>s.createElement(Ve.A,{element:"a",kind:"link_inline",onClick:()=>{e.close(),this.createNewRoom(!1,!0)}}," ",t," ")})," "))}),{finished:t}=e,[n]=await t;if(!n)return}const{finished:e}=X.Ay.createDialog(on.A,{title:(0,c._t)("room_settings|security|enable_encryption_confirm_title"),description:(0,c._t)("room_settings|security|enable_encryption_confirm_description",{},{a:e=>s.createElement(it.A,{href:d.A.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,r.Bx4.RoomEncryption,{algorithm:Ts.Q}).catch(e=>{o.vF.error(e),this.setState({encrypted:t})})})}),(0,i.A)(this,"onGuestAccessChange",e=>{const t=e.target.checked?r.rFk.CanJoin:r.rFk.Forbidden,n=this.state.guestAccess;n!==t&&(this.setState({guestAccess:t}),this.context.sendStateEvent(this.props.room.roomId,r.Bx4.RoomGuestAccess,{guest_access:t},"").catch(e=>{o.vF.error(e),this.setState({guestAccess:n})}))}),(0,i.A)(this,"createNewRoom",async(e,t)=>{const n=X.Ay.createDialog(ds.A,{defaultPublic:e,defaultEncrypted:t});Gi.A.trackInteraction("WebRoomSettingsSecurityTabCreateNewRoomButton");const[i,s]=await n.finished;return i&&await(0,cs.Ay)(this.context,s),null!=i&&i}),(0,i.A)(this,"onHistoryRadioToggle",e=>{const t=this.state.history;t!==e&&(this.setState({history:e}),this.context.sendStateEvent(this.props.room.roomId,r.Bx4.RoomHistoryVisibility,{history_visibility:e},"").catch(e=>{o.vF.error(e),this.setState({history:t})}))}),(0,i.A)(this,"updateBlacklistDevicesFlag",e=>{this.props.room.setBlacklistUnverifiedDevices(e)}),(0,i.A)(this,"onJoinRuleChangeError",e=>{var t;X.Ay.createDialog(sn.A,{title:(0,c._t)("room_settings|security|error_join_rule_change_title"),description:null!==(t=e.message)&&void 0!==t?t:(0,c._t)("room_settings|security|error_join_rule_change_unknown")})}),(0,i.A)(this,"onBeforeJoinRuleChange",async e=>{if(this.state.encrypted&&e===r.dxp.Public){const e=X.Ay.createDialog(on.A,{title:(0,c._t)("room_settings|security|encrypted_room_public_confirm_title"),description:s.createElement("div",null,s.createElement("p",null," ",(0,c._t)("room_settings|security|encrypted_room_public_confirm_description_1",void 0,{b:e=>s.createElement("strong",null,e)})," "),s.createElement("p",null," ",(0,c._t)("room_settings|security|encrypted_room_public_confirm_description_2",void 0,{a:t=>s.createElement(Ve.A,{element:"a",kind:"link_inline",onClick:()=>{e.close(),this.createNewRoom(!0,!1)}}," ",t," ")})," "))}),{finished:t}=e,[n]=await t;if(!n)return!1}const t=this.props.room.getJoinRule()===r.dxp.Public;if(this.state.history===r.JvM.WorldReadable&&t&&e!==r.dxp.Public){var n;const e=this.context;if(!(null===(n=this.props.room.currentState)||void 0===n?void 0:n.mayClientSendStateEvent(r.Bx4.RoomHistoryVisibility,e))){const e=X.Ay.createDialog(sn.A,{title:(0,c._t)("room_settings|security|cannot_change_to_private_due_to_missing_history_visiblity_permissions|title"),description:s.createElement("p",null,(0,c._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,r.Bx4.RoomHistoryVisibility,{history_visibility:r.JvM.Shared},""),this.setState({history:r.JvM.Shared})}catch(e){return o.vF.error("Failed to change history visibility",e),X.Ay.createDialog(sn.A,{title:(0,c._t)("common|error"),description:(0,c._t)("error|update_history_visibility")}),!1}}return!0}),(0,i.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(r.Bx4.RoomGuestAccess,""),"guest_access",r.rFk.Forbidden),history:this.pullContentPropertyFromEvent(null==t?void 0:t.getStateEvents(r.Bx4.RoomHistoryVisibility,""),"history_visibility",r.JvM.Shared),hasAliases:!1,encrypted:null,stateEncrypted:null,showAdvancedSection:!1}}async componentDidMount(){var e,t;this.context.on(r.fZ1.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))),stateEncrypted:Boolean(await(null===(t=this.context.getCrypto())||void 0===t?void 0:t.isStateEncryptionEnabledInRoom(this.props.room.roomId)))})}pullContentPropertyFromEvent(e,t,n){return(null==e?void 0:e.getContent()[t])||n}componentWillUnmount(){this.context.removeListener(r.fZ1.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()===r.dxp.Public,n=s.createElement(s.Fragment,null,s.createElement("p",null,(0,c._t)("room_settings|security|join_rule_description",{roomName:e.name})),t&&this.state.history===r.JvM.WorldReadable&&s.createElement("div",{className:"mx_SecurityRoomSettingsTab_warning"},s.createElement(os.A,{width:15,height:15}),s.createElement("span",null,(0,c._t)("room_settings|security|join_rule_world_readable_description"))),t&&!this.state.hasAliases&&s.createElement("div",{className:"mx_SecurityRoomSettingsTab_warning"},s.createElement(os.A,{width:15,height:15}),s.createElement("span",null,(0,c._t)("room_settings|security|public_without_alias_warning"))));let i;return e.getJoinRule()===r.dxp.Public&&(i=s.createElement("div",null,s.createElement(Ve.A,{onClick:this.toggleAdvancedSection,kind:"link",className:"mx_SettingsTab_showAdvanced","aria-expanded":this.state.showAdvancedSection},this.state.showAdvancedSection?(0,c._t)("action|hide_advanced"):(0,c._t)("action|show_advanced")),this.state.showAdvancedSection&&this.renderAdvanced())),s.createElement(Xn,{legend:(0,c._t)("room_settings|access|title"),description:n},s.createElement(xs,{room:e,beforeChange:this.onBeforeJoinRuleChange,onError:this.onJoinRuleChangeError,closeSettingsFn:this.props.closeSettingsFn,promptUpgrade:!0}),i)}renderHistory(){if(!S.A.getValue(as.f.RoomHistorySettings))return null;const e=this.context,t=this.state.history,n=this.props.room.currentState,i=null==n?void 0:n.mayClientSendStateEvent(r.Bx4.RoomHistoryVisibility,e),o=t===r.JvM.Joined?r.JvM.Invited:t,a=this.props.room.getJoinRule()===r.dxp.Public,l=this.state.encrypted,d=[];a&&!l&&t!==r.JvM.Invited&&t!==r.JvM.Joined||d.push({value:r.JvM.Invited,label:(0,c._t)("room_settings|security|history_visibility_invited")}),d.push({value:r.JvM.Shared,label:(0,c._t)("room_settings|security|history_visibility_shared")}),(a&&!l||t===r.JvM.WorldReadable)&&d.push({value:r.JvM.WorldReadable,label:(0,c._t)("room_settings|security|history_visibility_world_readable")});const m=s.createElement(s.Fragment,null,(0,c._t)("room_settings|security|history_visibility_warning",{},{a:e=>s.createElement(it.A,{href:"https://element.io/en/help#e2ee-history-sharing"},e)}));return s.createElement(Xn,{legend:(0,c._t)("room_settings|security|history_visibility_legend"),description:m},s.createElement(rs.A,{name:"historyVis",value:o,onChange:this.onHistoryRadioToggle,disabled:!i,definitions:d}))}renderAdvanced(){const e=this.context,t=this.state.guestAccess,n=this.props.room.currentState,i=null==n?void 0:n.mayClientSendStateEvent(r.Bx4.RoomGuestAccess,e);return s.createElement("div",{className:"mx_SecurityRoomSettingsTab_advancedSection"},s.createElement(Vi.I,{name:"guest-access",checked:t===r.rFk.CanJoin,onChange:this.onGuestAccessChange,disabled:!i,label:(0,c._t)("room_settings|visibility|guest_access_label"),helpMessage:(0,c._t)("room_settings|security|guest_access_warning")}))}render(){const e=this.context,t=this.props.room,n=this.state.encrypted,i=this.state.stateEncrypted,o=null===n,a=t.currentState.mayClientSendStateEvent(r.Bx4.RoomEncryption,e),l=(0,ks.I)(e),d=!n&&!l&&a;let m;n&&S.A.canSetValue("blacklistUnverifiedDevices",this.props.room.roomId,oe.p.ROOM_DEVICE)&&(m=s.createElement(ls.A,{name:"blacklistUnverifiedDevices",level:oe.p.ROOM_DEVICE,onChange:this.updateBlacklistDevicesFlag,roomId:this.props.room.roomId}));const u=this.renderHistory();return s.createElement(Rn,null,s.createElement(Ln.lV.Root,{onSubmit:e=>{e.preventDefault(),e.stopPropagation()}},s.createElement(On,{heading:(0,c._t)("room_settings|security|title")},s.createElement(Xn,{legend:(0,c._t)("settings|security|encryption_section"),description:l&&!n?void 0:(0,c._t)("room_settings|security|encryption_permanent")},o?s.createElement(We.Z,null):s.createElement(s.Fragment,null,s.createElement(Vi.I,{name:"enable-encryption",checked:n,onChange:this.onEncryptionChange,label:(0,c._t)("common|encrypted"),disabled:!d}),l&&!n&&s.createElement(Is,null,(0,c._t)("room_settings|security|encryption_forced")),i&&s.createElement(Vi.I,{name:"enable-state-encryption",checked:i,label:(0,c._t)("common|state_encryption_enabled"),disabled:!0}),m)),this.renderJoinRule(),u)))}}(0,i.A)(Ps,"contextType",je.Ay);var Ns=n("./src/stores/local-echo/EchoChamber.ts"),Ds=n("./src/RoomNotifs.ts");class Ms extends s.Component{constructor(e,t){super(e,t),(0,i.A)(this,"roomProps",void 0),(0,i.A)(this,"soundUpload",(0,s.createRef)()),(0,i.A)(this,"triggerUploader",async e=>{var t;e.stopPropagation(),e.preventDefault(),null===(t=this.soundUpload.current)||void 0===t||t.click()}),(0,i.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,i.A)(this,"onClickSaveSound",async e=>{e.stopPropagation(),e.preventDefault();try{await this.saveSound()}catch(e){o.vF.error(`Unable to save notification sound for ${this.props.roomId}`),o.vF.error(e)}}),(0,i.A)(this,"clearSound",e=>{e.stopPropagation(),e.preventDefault(),S.A.setValue("notificationSound",this.props.roomId,oe.p.ROOM_ACCOUNT,null),this.setState({currentSound:"default"})}),(0,i.A)(this,"onRoomNotificationChange",e=>{this.roomProps.notificationVolume=e,this.forceUpdate()}),(0,i.A)(this,"onOpenSettingsClick",e=>{e.preventDefault(),this.props.closeSettingsFn(),K.A.dispatch({action:$.r.ViewUserSettings,initialTabId:ct.v.Notifications})}),this.roomProps=Ns.s.forRoom(t.getRoom(this.props.roomId));let n="default";const r=gs._.instance.notifier.getSoundForRoom(this.props.roomId);r&&(n=r.name||r.url),this.state={currentSound:n,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 S.A.setValue("notificationSound",this.props.roomId,oe.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=s.createElement("div",null,s.createElement("span",null,(0,c._t)("room_settings|notifications|uploaded_sound"),": ",s.createElement("code",null,this.state.uploadedFile.name)))),s.createElement(Rn,null,s.createElement(On,{heading:(0,c._t)("notifications|enable_prompt_toast_title")},s.createElement("div",{className:"mx_NotificationSettingsTab_notificationsSection"},s.createElement(rs.A,{name:"roomNotificationSetting",definitions:[{value:Ds.dC.AllMessages,label:s.createElement(s.Fragment,null,(0,c._t)("notifications|default"),s.createElement("div",{className:"mx_NotificationSettingsTab_microCopy"},(0,c._t)("room_settings|notifications|settings_link",{},{a:e=>s.createElement(Ve.A,{kind:"link_inline",onClick:this.onOpenSettingsClick},e)})))},{value:Ds.dC.AllMessagesLoud,label:s.createElement(s.Fragment,null,(0,c._t)("notifications|all_messages"),s.createElement("div",{className:"mx_NotificationSettingsTab_microCopy"},(0,c._t)("notifications|all_messages_description")))},{value:Ds.dC.MentionsOnly,label:s.createElement(s.Fragment,null,(0,c._t)("notifications|mentions_and_keywords"),s.createElement("div",{className:"mx_NotificationSettingsTab_microCopy"},(0,c._t)("notifications|mentions_and_keywords_description",{},{a:e=>s.createElement(Ve.A,{kind:"link_inline",onClick:this.onOpenSettingsClick},e)})))},{value:Ds.dC.Mute,label:s.createElement(s.Fragment,null,(0,c._t)("common|off"),s.createElement("div",{className:"mx_NotificationSettingsTab_microCopy"},(0,c._t)("notifications|mute_description")))}],onChange:this.onRoomNotificationChange,value:this.roomProps.notificationVolume})),s.createElement(zn,{heading:(0,c._t)("room_settings|notifications|sounds_section")},s.createElement("div",null,s.createElement("div",{className:"mx_SettingsTab_subsectionText"},s.createElement("span",null,(0,c._t)("room_settings|notifications|notification_sound"),":"," ",s.createElement("code",null,this.state.currentSound))),s.createElement(Ve.A,{className:"mx_NotificationSound_resetSound",disabled:"default"==this.state.currentSound,onClick:this.clearSound,kind:"primary"},(0,c._t)("action|reset"))),s.createElement("div",null,s.createElement("h4",{className:"mx_Heading_h4"},(0,c._t)("room_settings|notifications|custom_sound_prompt")),s.createElement("div",{className:"mx_SettingsFlag"},s.createElement("form",{autoComplete:"off",noValidate:!0},s.createElement("input",{ref:this.soundUpload,className:"mx_NotificationSound_soundUpload",type:"file",onClick:xi.e,onChange:this.onSoundUploadChanged,accept:"audio/*","aria-label":(0,c._t)("room_settings|notifications|upload_sound_label")})),e),s.createElement(Ve.A,{className:"mx_NotificationSound_browse",onClick:this.triggerUploader,kind:"primary"},(0,c._t)("room_settings|notifications|browse_button")),s.createElement(Ve.A,{className:"mx_NotificationSound_save",disabled:null==this.state.uploadedFile,onClick:this.onClickSaveSound,kind:"primary"},(0,c._t)("action|save")),s.createElement("br",null)))))}}(0,i.A)(Ms,"contextType",je.Ay);var Os=n("./src/components/views/elements/Pill.tsx"),Fs=n("./src/components/views/elements/PillType.ts"),Ls=n("./src/utils/permalinks/Permalinks.ts"),Us=n("./src/HtmlUtils.tsx");class Vs extends s.PureComponent{render(){var e,t;const n=this.props.ev.getContent();if(null===(e=n.channel)||void 0===e||!e.id||null===(t=n.protocol)||void 0===t||!t.id)return o.vF.warn(`Bridge info event ${this.props.ev.getId()} has missing content. Tile will not render`),null;n.bridgebot||(o.vF.warn(`Bridge info event ${this.props.ev.getId()} does not provide a 'bridgebot' key whichis deprecated behaviour. Using sender for now.`),n.bridgebot=this.props.ev.getSender());const{channel:i,network:r,protocol:a}=n,l=a.displayname||a.id,d=i.displayname||i.id;let m;n.creator&&(m=s.createElement("li",null,(0,c._t)("labs|bridge_state_creator",{},{user:()=>s.createElement(Os.a,{type:Fs.y.UserMention,room:this.props.room,url:(0,Ls.Ne)(n.creator),shouldShowPillAvatar:S.A.getValue("Pill.shouldShowPillAvatar")})})));const u=s.createElement("li",null,(0,c._t)("labs|bridge_state_manager",{},{user:()=>s.createElement(Os.a,{type:Fs.y.UserMention,room:this.props.room,url:(0,Ls.Ne)(n.bridgebot),shouldShowPillAvatar:S.A.getValue("Pill.shouldShowPillAvatar")})}));let p,h;if(a.avatar_url){var g;const e=null!==(g=(0,Ci.l)(a.avatar_url).getSquareThumbnailHttp(64))&&void 0!==g?g:void 0;p=s.createElement(ki.A,{className:"mx_RoomSettingsDialog_protocolIcon",size:"48px",name:l,idName:l,url:e})}else p=s.createElement("div",{className:"mx_RoomSettingsDialog_noProtocolIcon"});if(r){const e=r.displayname||r.id;let t=s.createElement("span",null,e);"string"==typeof r.external_url&&(0,Us.SR)(r.external_url)&&(t=s.createElement("a",{href:r.external_url,target:"_blank",rel:"noreferrer noopener"},e)),h=(0,c._t)("labs|bridge_state_workspace",{},{networkLink:()=>t})}let v=s.createElement("span",null,d);"string"==typeof i.external_url&&(0,Us.SR)(i.external_url)&&(v=s.createElement("a",{href:i.external_url,target:"_blank",rel:"noreferrer noopener"},d));const _=this.props.ev.getId();return s.createElement("li",{key:_,className:"mx_RoomSettingsDialog_BridgeList_listItem"},s.createElement("div",{className:"mx_RoomSettingsDialog_column_icon"},p),s.createElement("div",{className:"mx_RoomSettingsDialog_column_data"},s.createElement("h3",{className:"mx_RoomSettingsDialog_column_data_protocolName"},l),s.createElement("p",{className:"mx_RoomSettingsDialog_column_data_details mx_RoomSettingsDialog_workspace_channel_details"},h,s.createElement("span",{className:"mx_RoomSettingsDialog_channel"},(0,c._t)("labs|bridge_state_channel",{},{channelLink:()=>v}))),s.createElement("ul",{className:"mx_RoomSettingsDialog_column_data_metadata mx_RoomSettingsDialog_metadata"},m," ",u)))}}const Bs=["uk.half-shot.bridge"],js="https://matrix.org/bridges/";class Hs extends s.Component{renderBridgeCard(e,t){const n=e.getContent();return t&&null!=n&&n.channel&&n.protocol?s.createElement(Vs,{key:e.getId(),room:t,ev:e}):null}static getBridgeStateEvents(e,t){var n;const i=null===(n=e.getRoom(t))||void 0===n?void 0:n.currentState;return i?Bs.flatMap(e=>i.getStateEvents(e)):[]}render(){const e=Hs.getBridgeStateEvents(this.context,this.props.room.roomId),t=this.props.room;let n;return n=e.length>0?s.createElement("div",null,s.createElement("p",null,(0,c._t)("room_settings|bridges|description",{},{a:e=>s.createElement("a",{href:js,target:"_blank",rel:"noreferrer noopener"},e)})),s.createElement("ul",{className:"mx_RoomSettingsDialog_BridgeList"},e.map(e=>this.renderBridgeCard(e,t)))):s.createElement("p",null,(0,c._t)("room_settings|bridges|empty",{},{a:e=>s.createElement("a",{href:js,target:"_blank",rel:"noreferrer noopener"},e)})),s.createElement(Rn,null,s.createElement(On,{heading:(0,c._t)("room_settings|bridges|title")},n))}}(0,i.A)(Hs,"contextType",je.Ay);var zs=n("./src/hooks/useRoomState.ts");function Ws(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}const Js=({room:e})=>{var t;const n=(0,s.useMemo)(()=>e.getJoinRule()===r.dxp.Public,[e]),[o,a]=(0,zs.U)(e,(0,s.useCallback)(t=>{var n;const i=null==t||null===(n=t.getStateEvents(r.Bx4.RoomPowerLevels,""))||void 0===n?void 0:n.getContent();return[null!=i?i:{},null==t?void 0:t.maySendStateEvent(r.Bx4.RoomPowerLevels,e.client.getSafeUserId())]},[e.client])),[l,m]=(0,s.useState)(()=>{var e;return 0===(null===(e=o.events)||void 0===e?void 0:e[mi.Vj.name])}),u=(0,s.useCallback)(t=>{const s=t.target.checked;m(s);const a=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ws(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ws(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({events:{}},o);if(s){var l,c,d;const e=null!==(l=null!==(c=a.events[r.Bx4.RoomMessage])&&void 0!==c?c:o.users_default)&&void 0!==l?l:0,t=null!==(d=o.kick)&&void 0!==d?d:50;a.events[mi.Fm.name]=n?t:e,a.events[mi.Vj.name]=e}else{var u,p;const e=null!==(u=null!==(p=a.events[r.Bx4.RoomPowerLevels])&&void 0!==p?p:o.state_default)&&void 0!==u?u:100;a.events[mi.Fm.name]=e,a.events[mi.Vj.name]=e}e.client.sendStateEvent(e.roomId,r.Bx4.RoomPowerLevels,a)},[e.client,e.roomId,o,n]),p=null!==(t=d.A.get("element_call").brand)&&void 0!==t?t:d.z.element_call.brand;return s.createElement(Vi.I,{name:"element-call-switch",label:(0,c._t)("room_settings|voip|enable_element_call_label",{brand:p}),helpMessage:(0,c._t)("room_settings|voip|enable_element_call_caption",{brand:p}),checked:l,onChange:u,disabled:!a,disabledMessage:(0,c._t)("room_settings|voip|enable_element_call_no_permissions_tooltip")})},Gs=({room:e})=>s.createElement(Rn,null,s.createElement(On,{heading:(0,c._t)("settings|voip|title")},s.createElement(Ln.lV.Root,{onSubmit:e=>{e.preventDefault(),e.stopPropagation()}},s.createElement(zn,{heading:(0,c._t)("room_settings|voip|call_type_section")},s.createElement(Js,{room:e}))))),Ks=["name","value","tabs","onFilterChange"],qs=e=>{let{name:t,value:n,tabs:i,onFilterChange:o}=e,r=(0,v.A)(e,Ks);return s.createElement("fieldset",(0,xn.A)({},r,{className:"mx_FilterTabGroup"}),i.map(({label:e,id:i})=>s.createElement("label",{key:i},s.createElement("input",{type:"radio",name:t,value:i,onChange:()=>o(i),checked:n===i}),s.createElement("span",null,e))))};var $s=n("./src/components/views/elements/InlineSpinner.tsx"),Ys=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Tooltip/Tooltip.js");const Qs=({event:e,onClick:t})=>{const n=e.unstableExtensibleEvent;if(!n)return null;const i=(0,Bt.Pr)(e.getTs());return s.createElement("li",{className:"mx_PollListItem",onClick:t},s.createElement(Ys.m,{label:(0,c._t)("right_panel|poll|view_poll"),placement:"top",isTriggerInteractive:!1},s.createElement("div",{className:"mx_PollListItem_content"},s.createElement("span",null,i),s.createElement(En.A,{className:"mx_PollListItem_icon"}),s.createElement("span",{className:"mx_PollListItem_question"},n.question.text))))};var Xs=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/polls-end.js"),Zs=n("./src/components/views/messages/MPollBody.tsx"),eo=n("./src/components/views/polls/PollOption.tsx");const to=(e,t)=>{const n=(0,Zs.hJ)((0,Zs.jx)(t)),i=(0,Zs.B0)(n,e.pollEvent),s=[...i.values()].reduce((e,t)=>e+t,0),o=Math.max(...i.values());return{totalVoteCount:s,winningAnswers:e.pollEvent.answers.map((e,t)=>({answerIndex:t,answer:e})).filter(({answer:e})=>i.get(e.id)===o).map(({answer:e,answerIndex:t})=>({answer:e,voteCount:i.get(e.id)||0,optionNumber:t+1}))}},no=({event:e,poll:t,onClick:n})=>{const i=t.pollEvent,{winningAnswers:o,totalVoteCount:a}=(e=>{const[t,n]=(0,s.useState)({totalVoteCount:0});return(0,s.useEffect)(()=>{const t=t=>n(to(e,t));return e.on(r.snp.Responses,t),(async()=>{const t=await e.getResponses();n(to(e,t))})(),()=>{e.off(r.snp.Responses,t)}},[e]),t})(t);if(!i)return null;const l=(0,Bt.Pr)(e.getTs());return s.createElement("li",{className:"mx_PollListItemEnded",onClick:n},s.createElement(Ys.m,{label:(0,c._t)("right_panel|poll|view_poll"),placement:"top",isTriggerInteractive:!1},s.createElement("div",{className:"mx_PollListItemEnded_content"},s.createElement("div",{className:"mx_PollListItemEnded_title"},s.createElement(Xs.A,{className:"mx_PollListItemEnded_icon"}),s.createElement("span",{className:"mx_PollListItemEnded_question"},i.question.text),s.createElement(Is,null,l)),!(null==o||!o.length)&&s.createElement("div",{className:"mx_PollListItemEnded_answers"},null==o?void 0:o.map(({answer:e,voteCount:n,optionNumber:i})=>s.createElement(eo.h,{key:e.id,answer:e,voteCount:n,totalVoteCount:a,pollId:t.pollId,optionNumber:i,displayVoteCount:!0,isChecked:!0,isEnded:!0}))),s.createElement("div",{className:"mx_PollListItemEnded_voteCount"},s.createElement(Is,null,(0,c._t)("right_panel|poll|final_result",{count:a}))))))},io=({noResultsYet:e})=>s.createElement("div",{className:un()("mx_PollHistoryList_loading",{mx_PollHistoryList_noResultsYet:e})},s.createElement($s.A,null),(0,c._t)("right_panel|poll|loading")),so=({isLoading:e,loadMorePolls:t})=>t?s.createElement(Ve.A,{className:"mx_PollHistoryList_loadMorePolls",kind:"link_inline",onClick:()=>t()},(0,c._t)("right_panel|poll|load_more"),e&&s.createElement($s.A,null)):null,oo=({filter:e,isLoading:t,oldestFetchedEventTimestamp:n,loadMorePolls:i})=>!i&&t?s.createElement(io,{noResultsYet:!0}):s.createElement("span",{className:"mx_PollHistoryList_noResults"},((e,t,n)=>{if(!n)return"ACTIVE"===e?(0,c._t)("right_panel|poll|empty_active"):(0,c._t)("right_panel|poll|empty_past");if(!t)return"ACTIVE"===e?(0,c._t)("right_panel|poll|empty_active_load_more"):(0,c._t)("right_panel|poll|empty_past_load_more");const i=Math.ceil((Date.now()-t)/864e5);return"ACTIVE"===e?(0,c._t)("right_panel|poll|empty_active_load_more_n_days",{count:i}):(0,c._t)("right_panel|poll|empty_past_load_more_n_days",{count:i})})(e,n,i),!!i&&s.createElement(so,{loadMorePolls:i,isLoading:t})),ro=({pollStartEvents:e,polls:t,filter:n,isLoading:i,oldestFetchedEventTimestamp:o,onFilterChange:r,loadMorePolls:a,onItemClick:l})=>s.createElement("div",{className:"mx_PollHistoryList"},s.createElement(qs,{name:"PollHistory_filter",value:n,onFilterChange:r,tabs:[{id:"ACTIVE",label:(0,c._t)("right_panel|poll|active_heading")},{id:"ENDED",label:(0,c._t)("right_panel|poll|past_heading")}]}),!!e.length&&s.createElement("ol",{className:un()("mx_PollHistoryList_list",`mx_PollHistoryList_list_${n}`)},e.map(e=>"ACTIVE"===n?s.createElement(Qs,{key:e.getId(),event:e,onClick:()=>l(e.getId())}):s.createElement(no,{key:e.getId(),event:e,poll:t.get(e.getId()),onClick:()=>l(e.getId())})),i&&!a&&s.createElement(io,null),!!a&&s.createElement(so,{loadMorePolls:a,isLoading:i})),!e.length&&s.createElement(oo,{oldestFetchedEventTimestamp:o,isLoading:i,filter:n,loadMorePolls:a}));var ao=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/chevron-left.js");const lo=({filter:e,onNavigateBack:t})=>s.createElement(Ve.A,{kind:"content_inline",onClick:t,className:"mx_PollDetailHeader"},s.createElement(ao.A,{className:"mx_PollDetailHeader_icon"}),"ACTIVE"===e?(0,c._t)("right_panel|poll|active_heading"):(0,c._t)("right_panel|poll|past_heading")),co=({poll:e,permalinkCreator:t,requestModalClose:n})=>{const i=e.isEnded?e.endEventId:e.pollId,o=t.forEvent(i);return s.createElement(s.Fragment,null,s.createElement(Zs.Ay,{mxEvent:e.rootEvent,permalinkCreator:t,mediaEventHelper:{}}),s.createElement("br",null),s.createElement("div",null,s.createElement(Ve.A,{kind:"link_inline",element:"a",href:o,onClick:t=>{t.ctrlKey||t.metaKey||(t.preventDefault(),K.A.dispatch({action:$.r.ViewRoom,event_id:i,highlighted:!0,room_id:e.roomId,metricsTrigger:void 0}),n())},rel:"noreferrer noopener"},(0,c._t)("right_panel|poll|view_in_timeline"))))};var mo=n("./src/hooks/useEventEmitter.ts");const uo=(e,t)=>{const{polls:n}=((e,t)=>{const n=t.getRoom(e);if(!n)throw new Error("Cannot find room");return{polls:(0,mo.dF)(n,r.snp.New,()=>new Map(n.polls))}})(e,t),[i,o]=(0,s.useState)(n);return(0,s.useEffect)(()=>{const e=async()=>{o(new Map(n))};if(n){for(const t of n.values())t.on(r.snp.End,e),t.on(r.snp.Responses,e),t.getResponses();o(n)}return()=>{if(n)for(const t of n.values())t.off(r.snp.End,e),t.off(r.snp.Responses,e)}},[n,o]),{polls:i}},po=e=>{var t;if(!e)return;return null===(t=(null==e?void 0:e.getLiveTimeline()).getEvents()[0])||void 0===t?void 0:t.getTs()},ho=async(e,t)=>{if(!e)return{canPageBackward:!1};const n=e.getLiveTimeline();return await t.paginateEventTimeline(n,{backwards:!0}),{oldestEventTimestamp:po(e),canPageBackward:!!n.getPaginationToken(r.qss.BACKWARDS)}},go=async(e,t,n,i,s)=>{if(!e||!i||s&&s<n)return;const o=await ho(e,t);return go(e,t,n,o.canPageBackward,o.oldestEventTimestamp)},vo={room:{timeline:{types:[r.$SO.name,r.$SO.altName]}}},_o=(e,t,n=30)=>{const[i,a]=(0,s.useState)(void 0);(0,s.useEffect)(()=>{const n=new r.dJT(t.getSafeUserId());n.setDefinition(vo);(async()=>{const i=await t.getOrCreateFilter(`POLL_HISTORY_FILTER_${e.roomId}}`,n);n.filterId=i;const s=e.getOrCreateFilteredTimelineSet(n);a(s)})()},[e,t]);const{isLoading:l,oldestEventTimestamp:c,loadMorePolls:d,loadTimelineHistory:m}=((e,t,n)=>{const[i,a]=(0,s.useState)(!0),[l,c]=(0,s.useState)(void 0),[d,m]=(0,s.useState)(!1),u=(0,s.useCallback)(async()=>{const i=Date.now()-864e5*n;a(!0);try{var s;const n=null==e?void 0:e.getLiveTimeline(),o=!(null==n||!n.getPaginationToken(r.OP3.Backward)),a=po(e);await go(e,t,i,o,a),m(!(null==e||null===(s=e.getLiveTimeline())||void 0===s||!s.getPaginationToken(r.qss.BACKWARDS))),c(po(e))}catch(e){o.vF.error("Failed to fetch room polls history",e)}finally{a(!1)}},[n,e,t]),p=(0,s.useCallback)(async()=>{if(e){a(!0);try{const n=await ho(e,t);m(n.canPageBackward),c(n.oldestEventTimestamp)}catch(e){o.vF.error("Failed to fetch room polls history",e)}finally{a(!1)}}},[e,t]);return{isLoading:i,oldestEventTimestamp:l,loadTimelineHistory:u,loadMorePolls:d?p:void 0}})(i,t,n);return(0,s.useEffect)(()=>{m()},[m]),{isLoading:l,oldestEventTimestamp:c,loadMorePolls:d}},fo=(e,t)=>t.getTs()-e.getTs(),yo=({room:e,matrixClient:t,permalinkCreator:n,onFinished:i})=>{const{polls:o}=uo(e.roomId,t),{isLoading:r,loadMorePolls:a,oldestEventTimestamp:l}=_o(e,t),[d,m]=(0,s.useState)("ACTIVE"),[u,p]=(0,s.useState)(null),h=((e,t)=>[...e.values()].filter((e=>t=>!t.isFetchingResponses&&"ACTIVE"===e!==t.isEnded)(t)).map(e=>e.rootEvent).sort(fo))(o,d),g=[...o.values()].some(e=>e.isFetchingResponses),v=u?o.get(u):void 0,_=v?s.createElement(lo,{filter:d,onNavigateBack:()=>p(null)}):(0,c._t)("right_panel|polls_button");return s.createElement("div",{className:"mx_PollHistory_content"},s.createElement(In.A,{className:"mx_PollHistory_header",size:"2"},_),v?s.createElement(co,{poll:v,permalinkCreator:n,requestModalClose:i}):s.createElement(ro,{onItemClick:p,pollStartEvents:h,isLoading:r||g,oldestFetchedEventTimestamp:l,polls:o,filter:d,onFilterChange:m,loadMorePolls:a}))},Eo=({room:e,onFinished:t})=>{const n=(0,s.useContext)(je.Ay),i=new Ls.pE(e,e.roomId);return s.createElement("div",{className:"mx_SettingsTab"},s.createElement(yo,{room:e,permalinkCreator:i,matrixClient:n,onFinished:t}))};function wo({label:e,error:t}){const n=d.A.get().bug_report_endpoint_url,i=(0,s.useCallback)(()=>{X.Ay.createDialog(rn.A,{label:e,error:t})},[e,t]);return n?s.createElement(xe.$,{kind:"secondary",size:"md",onClick:i},"local"===n?(0,c._t)("bug_reporting|download_logs"):(0,c._t)("bug_reporting|submit_debug_logs")):null}class So extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"onClearCacheAndReload",()=>{l.A.get()&&(_.J.safeGet().stopClient(),_.J.safeGet().store.deleteAllData().then(()=>{var e;null===(e=l.A.get())||void 0===e||e.reload()}))}),this.state={}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,{componentStack:t}){o.vF.error(e),o.vF.error("The above error occurred while React was rendering the following components:",t)}render(){if(this.state.error){const e=d.A.get().feedback.new_issue_url;let t,n;return d.A.get().bug_report_endpoint_url&&(t=s.createElement(s.Fragment,null,s.createElement("p",null,(0,c._t)("bug_reporting|create_new_issue",{},{newIssueLink:t=>s.createElement("a",{target:"_blank",rel:"noreferrer noopener",href:e},t)})),s.createElement("p",null,(0,c._t)("bug_reporting|introduction")," ",(0,c._t)("bug_reporting|description")),s.createElement(wo,{error:this.state.error,label:"react-soft-crash"}))),_.J.get()&&(n=s.createElement(Ve.A,{onClick:this.onClearCacheAndReload,kind:"danger"},(0,c._t)("setting|help_about|clear_cache_reload"))),s.createElement("div",{className:"mx_ErrorBoundary"},s.createElement("div",{className:"mx_ErrorBoundary_body"},s.createElement("h1",null,(0,c._t)("error|something_went_wrong")),t,n))}return this.props.children}}var bo=n("./src/components/views/avatars/MemberAvatar.tsx");const Ao=({roomMember:e})=>{var t;const n=null===(t=e.events.member)||void 0===t?void 0:t.event.origin_server_ts;return n?s.createElement("time",{className:"mx_PeopleRoomSettingsTab_timestamp"},(0,Bt.fw)(new Date(n))):null},Co=({roomMember:e})=>{var t;const[n,i]=(0,s.useState)(!1),o=null===(t=e.events.member)||void 0===t?void 0:t.getContent().reason;if(!o)return null;const r=o.length>120;return s.createElement(s.Fragment,null,s.createElement("p",{className:"mx_PeopleRoomSettingsTab_seeMoreOrLess"},n||!r?o:`${o.substring(0,120)}…`),r&&s.createElement(Ve.A,{kind:"link",onClick:()=>i(!n)},n?(0,c._t)("room_settings|people|see_less"):(0,c._t)("room_settings|people|see_more")))},xo=({canKick:e,canInvite:t,onApprove:n,onDeny:i,roomMember:o})=>{const[r,a]=(0,s.useState)(!1),l=()=>a(!1);return s.createElement("div",{className:"mx_PeopleRoomSettingsTab_knock"},s.createElement(bo.A,{className:"mx_PeopleRoomSettingsTab_avatar",member:o,size:"42px"}),s.createElement("div",{className:"mx_PeopleRoomSettingsTab_content"},s.createElement("span",{className:"mx_PeopleRoomSettingsTab_name"},o.name),s.createElement(Ao,{roomMember:o}),s.createElement("span",{className:"mx_PeopleRoomSettingsTab_userId"},o.userId),s.createElement(Co,{roomMember:o})),s.createElement(Ve.A,{className:"mx_PeopleRoomSettingsTab_action",disabled:!e||r,kind:"icon_primary_outline",onClick:()=>{return e=o.userId,a(!0),void i(e).catch(l);var e},title:(0,c._t)("action|deny")},s.createElement(ti.A,{width:18,height:18})),s.createElement(Ve.A,{className:"mx_PeopleRoomSettingsTab_action",disabled:!t||r,kind:"icon_primary",onClick:()=>{return e=o.userId,a(!0),void n(e).catch(l);var e},title:(0,c._t)("action|approve")},s.createElement(Je.A,{width:18,height:18})))},ko=({room:e})=>{const t=e.client,n=t.getUserId()||"",i=e.canInvite(n),o=e.getMember(n),a=e.getLiveTimeline().getState(r.qss.FORWARDS),l=!(!o||!a)&&a.hasSufficientPowerLevelFor("kick",o.powerLevel),d=e.roomId,m=e=>new Promise((n,i)=>t.invite(d,e).catch(e=>{p(e),i(e)})),u=e=>new Promise((n,i)=>t.kick(d,e).catch(e=>{p(e),i(e)})),p=e=>X.Ay.createDialog(sn.A,{title:e.name,description:e.message}),h=(0,mo.DY)(e,r.fZ1.Update,(0,s.useCallback)(()=>e.getMembersWithMembership($n.O.Knock),[e]));return s.createElement(Rn,null,s.createElement(On,{heading:(0,c._t)("common|people")},s.createElement(Xn,{legend:(0,c._t)("room_settings|people|knock_section")},h.length?h.map(e=>s.createElement(xo,{canInvite:i,canKick:l,key:e.userId,onApprove:m,onDeny:u,roomMember:e})):s.createElement("p",{className:"mx_PeopleRoomSettingsTab_paragraph"},(0,c._t)("room_settings|people|knock_empty")))))};var Ro=n("./src/contexts/SDKContext.ts");class Io extends s.Component{constructor(e){super(e),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"onAction",e=>{e.action===$.r.ViewHomePage&&this.props.onFinished(!0)}),(0,i.A)(this,"onRoomName",()=>{this.forceUpdate()}),(0,i.A)(this,"onStateEvent",e=>{e.getType()===r.Bx4.RoomJoinRules&&this.forceUpdate()}),(0,i.A)(this,"onTabChange",e=>{this.setState({activeTabId:e})});const t=this.getRoom();this.state={room:t,activeTabId:e.initialTabId||ws.e.General}}componentDidMount(){this.dispatcherRef=K.A.register(this.onAction),_.J.safeGet().on(r.u99.Name,this.onRoomName),_.J.safeGet().on(r.fZ1.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;K.A.unregister(this.dispatcherRef),null===(e=_.J.get())||void 0===e||e.removeListener(r.u99.Name,this.onRoomName),null===(t=_.J.get())||void 0===t||t.removeListener(r.fZ1.Events,this.onStateEvent)}getRoom(){const e=_.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 Sn.oz(ws.e.General,(0,c.AO)("common|general"),s.createElement(pn.A,null),s.createElement(ss,{room:this.state.room}),"RoomSettingsGeneral")),S.A.getValue("feature_ask_to_join")&&"knock"===this.state.room.getJoinRule()&&e.push(new Sn.oz(ws.e.People,(0,c.AO)("common|people"),s.createElement(hn.A,null),s.createElement(ko,{room:this.state.room}))),d.A.get("element_call").disable||e.push(new Sn.oz(ws.e.Voip,(0,c.AO)("settings|voip|title"),s.createElement(gn.A,null),s.createElement(Gs,{room:this.state.room}))),e.push(new Sn.oz(ws.e.Security,(0,c.AO)("room_settings|security|title"),s.createElement(vn.A,null),s.createElement(Ps,{room:this.state.room,closeSettingsFn:()=>this.props.onFinished(!0)}),"RoomSettingsSecurityPrivacy")),e.push(new Sn.oz(ws.e.Roles,(0,c.AO)("room_settings|permissions|title"),s.createElement(_n.A,null),s.createElement(fi,{room:this.state.room}),"RoomSettingsRolesPermissions")),e.push(new Sn.oz(ws.e.Notifications,(0,c.AO)("notifications|enable_prompt_toast_title"),s.createElement(fn.A,null),s.createElement(Ms,{roomId:this.state.room.roomId,closeSettingsFn:()=>this.props.onFinished(!0)}),"RoomSettingsNotifications")),S.A.getValue("feature_bridge_state")&&e.push(new Sn.oz(ws.e.Bridges,(0,c.AO)("room_settings|bridges|title"),s.createElement(yn.A,null),s.createElement(Hs,{room:this.state.room}),"RoomSettingsBridges")),e.push(new Sn.oz(ws.e.PollHistory,(0,c.AO)("right_panel|polls_button"),s.createElement(En.A,null),s.createElement(Eo,{room:this.state.room,onFinished:()=>this.props.onFinished(!0)}))),S.A.getValue(as.f.AdvancedSettings)&&e.push(new Sn.oz(ws.e.Advanced,(0,c.AO)("common|advanced"),s.createElement(wn.A,null),s.createElement(Jn,{room:this.state.room,closeSettingsFn:()=>this.props.onFinished(!0)}),"RoomSettingsAdvanced")),e}render(){const e=this.state.room.name;return s.createElement(Ro.A.Provider,{value:this.props.sdkContext},s.createElement(ke.A,{className:"mx_RoomSettingsDialog",hasCancel:!0,onFinished:this.props.onFinished,title:(0,c._t)("room_settings|title",{roomName:e})},s.createElement("div",{className:"mx_SettingsDialog_content"},s.createElement(Sn.Ay,{tabs:this.getTabs(),activeTabId:this.state.activeTabId,screenName:"RoomSettings",onChange:this.onTabChange}))))}}const To=e=>s.createElement(So,null,s.createElement(Io,e));var Po=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/circle.js"),No=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/check-circle.js"),Do=n("./src/settings/enums/Layout.ts"),Mo=n("./src/Avatar.ts"),Oo=n("../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/uniqueId.js"),Fo=n("./src/customisations/UserIdentifier.ts");class Lo extends Xe.oY8{constructor(e){super(e,Lo.computeSnapshot(e)),(0,i.A)(this,"onClick",e=>{var t,n;null===(t=(n=this.props).onClick)||void 0===t||t.call(n,e)}),this.snapshot.merge({userStatus:e.userStatus})}setMember(e,t){this.props.member=t,this.props.fallbackName=e,this.snapshot.set(Lo.computeSnapshot(this.props))}setUserStatus(e){this.props.userStatus=e,this.snapshot.merge({userStatus:e})}}(0,i.A)(Lo,"computeSnapshot",e=>{const{member:t,fallbackName:n,colored:i,emphasizeDisplayName:s,withTooltip:o,userStatus:r}=e,a=(null==t?void 0:t.rawDisplayName)||n,l=null==t?void 0:t.userId;let d,m,u;if(i&&l&&(d=(0,C.yJ)(l)),l){var p,h;const e=null!==(p=null===(h=Fo.A.getDisplayUserIdentifier)||void 0===h?void 0:h.call(Fo.A,l,{withDisplayName:!0,roomId:null==t?void 0:t.roomId}))&&void 0!==p?p:l;null!=t&&t.disambiguate&&(m=e),o&&(u=(0,c._t)("timeline|disambiguated_profile",{displayName:a,matrixId:e}))}return{displayName:a,colorClass:d,displayIdentifier:m,title:u,emphasizeDisplayName:s,userStatus:r}});var Uo=n("./src/hooks/room/useRoomMemberProfile.ts"),Vo=n("./src/hooks/useUserStatus.ts");function Bo({mxEvent:e,onClick:t,withTooltip:n}){const i=e.getSender(),o=(0,Uo.s)({userId:i,member:e.sender}),a=(0,Vo.n)(i),l=(0,Xe.s2q)(()=>new Lo({fallbackName:null!=i?i:"",onClick:t,member:o,colored:!0,emphasizeDisplayName:!0,withTooltip:n,userStatus:a}));return(0,s.useEffect)(()=>{l.setUserStatus(a)},[l,a]),(0,s.useEffect)(()=>{l.setMember(null!=i?i:"",o)},[l,o,i]),e.getContent().msgtype!==r.Wrw.Emote?s.createElement(Xe.kvw,{vm:l,className:"mx_DisambiguatedProfile"}):s.createElement(s.Fragment,null)}var jo=n("./src/components/views/messages/MImageReplyBody.tsx"),Ho=n("./src/utils/EventUtils.ts"),zo=n("./src/events/EventTileFactory.tsx");function Wo(e,t,n,i){const s=t.getContent(),o=s.msgtype,a=t.getType();let l=!1;if(S.A.getValue("feature_msc3531_hide_messages_pending_moderation"))switch((0,Ho.$k)(t,e)){case Ho.H3.VISIBLE_FOR_ALL:case Ho.H3.HIDDEN_TO_CURRENT_USER:break;case Ho.H3.SEE_THROUGH_FOR_CURRENT_USER:l=!0}let c=(0,zo.Sj)(t,e,n),d=a.startsWith("m.key.verification")||a===r.Bx4.RoomMessage&&(null==o?void 0:o.startsWith("m.key.verification"))||a===r.Bx4.RoomCreate||a===r.Bx4.RoomEncryption||c===zo.ur;const m=!d&&(a===r.Bx4.RTCNotification||a===r.Bx4.CallInvite||mi.Fm.matches(a));let u=((e,t,n,i)=>!(n||i||e===r.Bx4.RoomMessage||e===r.Bx4.RoomMessageEncrypted||e===r.Bx4.Sticker||e===r.Bx4.RoomCreate||e===r.Bx4.RTCNotification||r.$SO.matches(e)||r.cIj.matches(e)||r.EyL.matches(e)))(a,0,d,m);const p=a===r.Bx4.RoomMessage&&o===r.Wrw.Emote||r.$SO.matches(a)||r.EyL.matches(a)||(0,Ho.wq)(t);!i&&(0,zo.bN)(t,e,n)||(c=(0,zo.Sj)(t,e,n,!0),c===zo.DD&&(d=!1,u=!0));return{hasRenderer:!!c,isInfoMessage:u,isBubbleMessage:d,isLeftAlignedBubbleMessage:m,noBubbleEvent:p,isSeeingThroughMessageHiddenForModeration:l,isAlignedBetweenBubbles:a===r.Bx4.RTCNotification}}var Jo=n("./src/components/views/messages/MVoiceMessageBody.tsx"),Go=n("./src/components/views/messages/MBodyFactory.tsx");function Ko(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function qo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ko(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ko(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class $o extends s.PureComponent{constructor(...e){super(...e),(0,i.A)(this,"anchorElement",(0,s.createRef)()),(0,i.A)(this,"onDecrypted",()=>{this.forceUpdate()}),(0,i.A)(this,"onEventRequiresUpdate",()=>{this.forceUpdate()}),(0,i.A)(this,"onClick",e=>{const t=e.target;"a"===t.tagName.toLowerCase()&&null!==t.closest("a")&&t!==this.anchorElement.current||(e.preventDefault(),this.props.toggleExpandedQuote&&e.shiftKey?this.props.toggleExpandedQuote():K.A.dispatch({action:$.r.ViewRoom,event_id:this.props.mxEvent.getId(),highlighted:!0,room_id:this.props.mxEvent.getRoomId(),metricsTrigger:void 0}))})}componentDidMount(){this.props.mxEvent.on(r.OQv.Decrypted,this.onDecrypted),this.props.mxEvent.on(r.OQv.BeforeRedaction,this.onEventRequiresUpdate),this.props.mxEvent.on(r.OQv.Replaced,this.onEventRequiresUpdate)}componentWillUnmount(){this.props.mxEvent.removeListener(r.OQv.Decrypted,this.onDecrypted),this.props.mxEvent.removeListener(r.OQv.BeforeRedaction,this.onEventRequiresUpdate),this.props.mxEvent.removeListener(r.OQv.Replaced,this.onEventRequiresUpdate)}render(){const e=this.props.mxEvent,t=e.getContent().msgtype,n=e.getType(),{hasRenderer:i,isInfoMessage:a,isSeeingThroughMessageHiddenForModeration:l}=Wo(_.J.safeGet(),e,!1);if(!i){const{mxEvent:e}=this.props;return o.vF.warn(`Event type not supported: type:${e.getType()} isState:${e.isState()}`),s.createElement("div",{className:"mx_ReplyTile mx_ReplyTile_info mx_MNoticeBody"},(0,c._t)("timeline|error_no_renderer"))}const d=un()("mx_ReplyTile",{mx_ReplyTile_inline:t===r.Wrw.Emote,mx_ReplyTile_info:a&&!e.isRedacted()});let m,u="#";this.props.permalinkCreator&&(u=this.props.permalinkCreator.forEvent(e.getId()));a||n===r.Bx4.RoomCreate||(m=s.createElement("div",{className:"mx_ReplyTile_sender"},s.createElement(bo.A,{member:e.sender,fallbackUserId:e.getSender(),size:"16px"}),s.createElement(Bo,{mxEvent:e})));const p={[r.Wrw.Image]:jo.A,[r.Wrw.Audio]:(0,Ho.Mp)(e)?Jo.A:e=>(0,Go.gL)(e,Go.n8),[r.Wrw.Video]:Go.Wl},h={[r.Bx4.Sticker]:jo.A};return s.createElement("div",{className:d},s.createElement("a",{href:u,onClick:this.onClick,ref:this.anchorElement},m,(0,zo.BP)(qo(qo({},this.props),{},{ref:void 0,showUrlPreview:!1,overrideBodyTypes:p,overrideEventTypes:h,maxImageHeight:96,isSeeingThroughMessageHiddenForModeration:l,highlights:this.props.highlights,highlightLink:this.props.highlightLink,permalinkCreator:this.props.permalinkCreator,showHiddenEvents:!1}),!1)))}}var Yo=n("./src/utils/Reply.ts"),Qo=n("./src/contexts/RoomContext.ts");class Xo extends s.Component{constructor(e){super(e),(0,i.A)(this,"unmounted",!1),(0,i.A)(this,"room",void 0),(0,i.A)(this,"blockquoteRef",s.createRef()),(0,i.A)(this,"canCollapse",()=>this.state.events.length>1),(0,i.A)(this,"collapse",()=>{this.initialize()}),(0,i.A)(this,"onQuoteClick",async()=>{if(!this.state.loadedEv)return;const e=[this.state.loadedEv,...this.state.events];let t=null;e.length>0&&(t=await this.getNextEvent(e[0])),this.setState({loadedEv:t,events:e}),K.A.fire($.r.FocusSendMessageComposer)}),this.state={events:[],loadedEv:null,loading:!0,err:!1},this.room=this.matrixClient.getRoom(this.props.parentEv.getRoomId())}get matrixClient(){return _.J.safeGet()}componentDidMount(){this.unmounted=!1,this.initialize(),this.trySetExpandableQuotes()}componentDidUpdate(){this.trySetExpandableQuotes()}componentWillUnmount(){this.unmounted=!0}trySetExpandableQuotes(){if(void 0===this.props.isQuoteExpanded&&this.blockquoteRef.current){const e=this.blockquoteRef.current.querySelector(".mx_EventTile_body");if(e){const t=e.querySelector("code");(!!t&&t.offsetHeight>=60||e.offsetHeight>=60||e.clientHeight!==e.scrollHeight||[...e.children].some(e=>e.clientHeight!==e.scrollHeight))&&this.props.setQuoteExpanded(!1)}}}async initialize(){const{parentEv:e}=this.props,t=await this.getEvent((0,Yo.Ul)(e));if(!this.unmounted)if(t){const e=await this.getNextEvent(t);this.setState({events:[t],loadedEv:e,loading:!1})}else this.setState({err:!0})}async getNextEvent(e){try{const t=(0,Yo.Ul)(e);return t?await this.getEvent(t):null}catch{return null}}async getEvent(e){var t;if(!e)return null;const n=this.room.findEventById(e);if(n)return n;try{await this.matrixClient.getEventTimeline(this.room.getUnfilteredTimelineSet(),e)}catch{return null}return null!==(t=this.room.findEventById(e))&&void 0!==t?t:null}getReplyChainColorClass(e){return(0,C.yJ)(e.getSender()).replace("Username","ReplyChain")}render(){let e;if(this.state.err)e=s.createElement("blockquote",{className:"mx_ReplyChain mx_ReplyChain_error"},(0,c._t)("timeline|reply|error_loading"));else if(this.state.loadedEv&&(0,Yo.c$)(this.state.events[0])){const t=this.state.loadedEv,n=this.matrixClient.getRoom(t.getRoomId());e=s.createElement("blockquote",{className:`mx_ReplyChain ${this.getReplyChainColorClass(t)}`},(0,c._t)("timeline|reply|in_reply_to",{},{a:e=>s.createElement(Ve.A,{kind:"link_inline",className:"mx_ReplyChain_show",onClick:this.onQuoteClick},e),pill:s.createElement(Os.a,{type:Fs.y.UserMention,room:null!=n?n:void 0,url:(0,Ls.Ne)(t.getSender()),shouldShowPillAvatar:S.A.getValue("Pill.shouldShowPillAvatar")})}))}else if(this.props.forExport){const t=(0,Yo.Ul)(this.props.parentEv);e=s.createElement("p",{className:"mx_ReplyChain_Export"},(0,c._t)("timeline|reply|in_reply_to_for_export",{},{a:e=>s.createElement("a",{className:"mx_reply_anchor",href:`#${t}`,"data-scroll-to":t}," ",e," ")}))}else this.state.loading&&(e=s.createElement(Be.A,{size:16}));const{isQuoteExpanded:t}=this.props,n=this.state.events.map(e=>{const n=un()({mx_ReplyChain:!0,[this.getReplyChainColorClass(e)]:!0,"mx_ReplyChain--expanded":!0===t,"mx_ReplyChain--collapsed":!1===t});return s.createElement("blockquote",{ref:this.blockquoteRef,className:n,key:e.getId()},s.createElement($o,{mxEvent:e,permalinkCreator:this.props.permalinkCreator,toggleExpandedQuote:()=>this.props.setQuoteExpanded(!this.props.isQuoteExpanded),getRelationsForEvent:this.props.getRelationsForEvent}))});return s.createElement("div",{className:"mx_ReplyChain_wrapper"},s.createElement("div",null,e),s.createElement("div",null,n))}}(0,i.A)(Xo,"contextType",Qo.Ay);var Zo,er=n("./src/components/views/context_menus/MessageContextMenu.tsx"),tr=n("./src/components/structures/ContextMenu.tsx"),nr=n("./src/utils/MediaEventHelper.ts"),ir=n("./src/utils/strings.ts"),sr=n("../../node_modules/.pnpm/bloom-filters@3.0.4/node_modules/bloom-filters/dist/bloom/scalable-bloom-filter.js"),or=n.n(sr);function rr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}const ar="mx_decryption_failure_event_ids";class lr{constructor(e,t,n,s,o,r){(0,i.A)(this,"timeToDecryptMillis",void 0),this.failedEventId=e,this.errorCode=t,this.ts=n,this.isFederated=s,this.wasVisibleToUser=o,this.userTrustsOwnIdentity=r}}class cr{constructor(e,t,n=!0){if((0,i.A)(this,"failures",new Map),(0,i.A)(this,"visibleEvents",new Set),(0,i.A)(this,"reportedEvents",new(or())),(0,i.A)(this,"checkInterval",null),(0,i.A)(this,"trackInterval",null),(0,i.A)(this,"baseProperties",{}),(0,i.A)(this,"userDomain",void 0),(0,i.A)(this,"userTrustsOwnIdentity",void 0),(0,i.A)(this,"checkingVerificationStatus",!1),(0,i.A)(this,"retryVerificationStatus",!1),this.fn=e,this.errorCodeMapFn=t,this.checkReportedEvents=n,!e||"function"!=typeof e)throw new Error("DecryptionFailureTracker requires tracking function");if("function"!=typeof t)throw new Error("DecryptionFailureTracker second constructor argument should be a function")}static get instance(){return cr.internalInstance}loadReportedEvents(){const e=localStorage.getItem(ar);this.reportedEvents=e?or().fromJSON(JSON.parse(e)):new(or())}saveReportedEvents(){localStorage.setItem(ar,JSON.stringify(this.reportedEvents.saveAsJSON()))}eventDecrypted(e,t){if(e.getWireContent().algorithm!=Ts.Q)return;const n=e.decryptionFailureReason;if(null===n)return void this.removeDecryptionFailuresForEvent(e,t);const i=e.getId();if(this.reportedEvents.has(i)&&this.checkReportedEvents)return;const s=this.failures.get(i),o=s?s.ts:t,r=e.getSender(),a=null==r?void 0:r.replace(/^.*?:/,"");let l;void 0!==this.userDomain&&void 0!==a&&(l=this.userDomain!==a);const c=this.visibleEvents.has(i);this.failures.set(i,new lr(i,n,o,l,c,this.userTrustsOwnIdentity))}addVisibleEvent(e){const t=e.getId();if(this.reportedEvents.has(t)&&this.checkReportedEvents)return;const n=this.failures.get(t);n&&(n.wasVisibleToUser=!0),this.visibleEvents.add(t)}removeDecryptionFailuresForEvent(e,t){const n=e.getId(),i=this.failures.get(n);if(i){this.failures.delete(n);const e=t-i.ts;if(e<cr.GRACE_PERIOD_MS)return;e<=cr.MAXIMUM_LATE_DECRYPTION_PERIOD&&(i.timeToDecryptMillis=e),this.reportFailure(i)}}async handleKeysChanged(e){if(this.checkingVerificationStatus)this.retryVerificationStatus=!0;else{this.checkingVerificationStatus=!0;try{do{this.retryVerificationStatus=!1,this.userTrustsOwnIdentity=(await e.getCrypto().getUserVerificationStatus(e.getUserId())).isCrossSigningVerified()}while(this.retryVerificationStatus)}finally{this.checkingVerificationStatus=!1}}}async start(e){this.loadReportedEvents(),await this.calculateClientProperties(e),this.registerHandlers(e),this.checkInterval=window.setInterval(()=>this.checkFailures(Date.now()),cr.CHECK_INTERVAL_MS)}async calculateClientProperties(e){var t;const n={};this.baseProperties=n,this.userDomain=null!==(t=e.getDomain())&&void 0!==t?t:void 0,"matrix.org"===this.userDomain?n.isMatrixDotOrg=!0:void 0!==this.userDomain&&(n.isMatrixDotOrg=!1);const i=e.getCrypto();if(i){i.getVersion().startsWith("Rust SDK")?n.cryptoSDK="Rust":n.cryptoSDK="Legacy",this.userTrustsOwnIdentity=(await i.getUserVerificationStatus(e.getUserId())).isCrossSigningVerified()}}registerHandlers(e){const t=e=>this.eventDecrypted(e,Date.now()),n=()=>{this.handleKeysChanged(e).catch(e=>{console.log("Error handling KeysChanged event",e)})},i=()=>{e.removeListener(r.OQv.Decrypted,t),e.removeListener(Ee.cr.KeysChanged,n),e.removeListener(r.XDo.SessionLoggedOut,i),this.stop()};e.on(r.OQv.Decrypted,t),e.on(Ee.cr.KeysChanged,n),e.on(r.XDo.SessionLoggedOut,i)}stop(){this.checkInterval&&clearInterval(this.checkInterval),this.trackInterval&&clearInterval(this.trackInterval),this.userTrustsOwnIdentity=void 0,this.failures=new Map,this.visibleEvents=new Set}checkFailures(e){const t=new Map;for(const[n,i]of this.failures)void 0!==i.timeToDecryptMillis||e>i.ts+cr.MAXIMUM_LATE_DECRYPTION_PERIOD?this.reportFailure(i):t.set(n,i);this.failures=t,this.saveReportedEvents()}reportFailure(e){var t;const n=e.errorCode,i=this.errorCodeMapFn(n),s={timeToDecryptMillis:null!==(t=e.timeToDecryptMillis)&&void 0!==t?t:-1,wasVisibleToUser:e.wasVisibleToUser};void 0!==e.isFederated&&(s.isFederated=e.isFederated),void 0!==e.userTrustsOwnIdentity&&(s.userTrustsOwnIdentity=e.userTrustsOwnIdentity),this.baseProperties&&Object.assign(s,this.baseProperties),this.fn(i,n,s),this.reportedEvents.add(e.failedEventId),this.visibleEvents.delete(e.failedEventId)}}Zo=cr,(0,i.A)(cr,"internalInstance",new Zo((e,t,n)=>{const s=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?rr(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):rr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({eventName:"Error",domain:"E2EE",name:e,context:`mxc_crypto_error_type_${t}`},n);ue.Vo.instance.trackEvent(s)},e=>{switch(e){case Ee.RT.MEGOLM_UNKNOWN_INBOUND_SESSION_ID:case Ee.RT.MEGOLM_KEY_WITHHELD:return"OlmKeysNotSentError";case Ee.RT.MEGOLM_KEY_WITHHELD_FOR_UNVERIFIED_DEVICE:return"RoomKeysWithheldForUnverifiedDevice";case Ee.RT.OLM_UNKNOWN_MESSAGE_INDEX:return"OlmIndexError";case Ee.RT.HISTORICAL_MESSAGE_NO_KEY_BACKUP:case Ee.RT.HISTORICAL_MESSAGE_BACKUP_UNCONFIGURED:case Ee.RT.HISTORICAL_MESSAGE_WORKING_BACKUP:return"HistoricalMessage";case Ee.RT.HISTORICAL_MESSAGE_USER_NOT_JOINED:return"ExpectedDueToMembership";case Ee.RT.SENDER_IDENTITY_PREVIOUSLY_VERIFIED:return"ExpectedVerificationViolation";case Ee.RT.UNSIGNED_SENDER_DEVICE:return"ExpectedSentByInsecureDevice";default:return"UnknownError"}})),(0,i.A)(cr,"CHECK_INTERVAL_MS",4e4),(0,i.A)(cr,"GRACE_PERIOD_MS",4e3),(0,i.A)(cr,"MAXIMUM_LATE_DECRYPTION_PERIOD",6e4);var dr=n("./src/stores/notifications/NotificationLevel.ts");function mr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function ur(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?mr(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const pr=[r.u99.Receipt,r.u99.Timeline,r.u99.Redaction,r.u99.LocalEchoUpdated,r.u99.MyMembership];function hr(e,t,n){return n||e<=dr.S.Activity?"dot":t&&t.length>=3?"badge_3char":"badge_2char"}class gr extends Xe.oY8{constructor(e){const t=ur(ur({},e),{},{hideBold:S.A.getValue("feature_hidebold")});super(t,gr.computeSnapshot(t)),(0,i.A)(this,"listenerCleanups",[]),(0,i.A)(this,"onRoomUnreadNotifications",(e,t)=>{this.props.threadId&&this.props.threadId!==t||this.updateSnapshotFromProps()}),(0,i.A)(this,"onNotificationChanged",()=>{this.updateSnapshotFromProps()}),(0,i.A)(this,"onHideBoldSettingChanged",()=>{this.setHideBold(S.A.getValue("feature_hidebold"))}),this.setupListeners();const n=S.A.watchSetting("feature_hidebold",null,this.onHideBoldSettingChanged);this.disposables.track(()=>S.A.unwatchSetting(n))}dispose(){this.teardownListeners(),super.dispose()}setRoom(e){this.props.room!==e&&(this.props=ur(ur({},this.props),{},{room:e}),this.setupListeners(),this.updateSnapshotFromProps())}setThreadId(e){this.props.threadId!==e&&(this.props=ur(ur({},this.props),{},{threadId:e}),this.updateSnapshotFromProps())}setForceDot(e){this.props.forceDot!==e&&(this.props=ur(ur({},this.props),{},{forceDot:e}),this.updateSnapshotFromProps())}setHideBold(e){this.props.hideBold!==e&&(this.props=ur(ur({},this.props),{},{hideBold:e}),this.updateSnapshotFromProps())}updateSnapshotFromProps(){this.snapshot.merge(gr.computeSnapshot(this.props))}setupListeners(){this.teardownListeners();const{room:e}=this.props;if(e){e.on(r.u99.UnreadNotifications,this.onRoomUnreadNotifications);for(const t of pr)e.on(t,this.onNotificationChanged);this.listenerCleanups.push(()=>{e.off(r.u99.UnreadNotifications,this.onRoomUnreadNotifications);for(const t of pr)e.off(t,this.onNotificationChanged)})}}teardownListeners(){for(const e of this.listenerCleanups)e();this.listenerCleanups=[]}}function vr({room:e,threadId:t,forceDot:n}){const i=(0,Xe.s2q)(()=>new gr({room:e,threadId:t,forceDot:n}));return(0,s.useEffect)(()=>{i.setRoom(e)},[e,i]),(0,s.useEffect)(()=>{i.setThreadId(t)},[t,i]),(0,s.useEffect)(()=>{i.setForceDot(n)},[n,i]),s.createElement(Xe.uk1,{vm:i})}(0,i.A)(gr,"computeSnapshot",e=>{const{symbol:t,count:n,level:i}=(0,Ds.m5)(e.room,e.threadId,!1),s=null!=t?t:n>0?(0,C.B4)(n):null,o=i>=dr.S.Notification&&(n>0||null!==t),r=e.hideBold&&i===dr.S.Activity;return{shouldRender:i!==dr.S.None&&!r,isVisible:null===t&&0===n||o,isNotification:i===dr.S.Notification,isHighlight:i>=dr.S.Highlight,isKnocked:!1,badgeType:hr(i,s,e.forceDot),symbol:s}});function _r(e){return e.getUnsigned()["io.element.late_event"]}var fr=n("./src/utils/PinningUtils.ts"),yr=n("./src/components/views/emojipicker/ReactionPicker.tsx"),Er=n("./src/components/views/right_panel/context.ts");function wr({eventTileViewModel:e,mxEvent:t,reactions:n,permalinkCreator:i,getTile:o,getReplyChain:r,onFocusChange:a,isQuoteExpanded:l,toggleThreadExpanded:c,getRelationsForEvent:d}){const m=(0,s.useContext)(Qo.Ay),{isCard:u}=(0,s.useContext)(Er.E),[p,h]=(0,s.useState)(null),[g,v]=(0,s.useState)(null),_=Boolean(m.search),f=(0,s.useCallback)(e=>{var t;h(null!==(t=null==e?void 0:e.getBoundingClientRect())&&void 0!==t?t:null)},[]),y=(0,s.useCallback)(e=>{var t;v(null!==(t=null==e?void 0:e.getBoundingClientRect())&&void 0!==t?t:null)},[]),E=e.getActionBarViewModel({mxEvent:t,timelineRenderingType:m.timelineRenderingType,canSendMessages:m.canSendMessages,canReact:m.canReact,isSearch:_,isCard:u,isQuoteExpanded:l,onToggleThreadExpanded:c,onOptionsClick:f,onReactionsClick:y,getRelationsForEvent:d});(0,s.useEffect)(()=>()=>e.releaseActionBarViewModel(),[e]),(0,s.useEffect)(()=>{E.setProps({mxEvent:t,timelineRenderingType:m.timelineRenderingType,canSendMessages:m.canSendMessages,canReact:m.canReact,isSearch:_,isCard:u,isQuoteExpanded:l,getRelationsForEvent:d,onToggleThreadExpanded:c,onOptionsClick:f,onReactionsClick:y})},[E,t,m.timelineRenderingType,m.canSendMessages,m.canReact,_,u,l,d,f,y,c]),(0,s.useEffect)(()=>{null==a||a(Boolean(p||g))},[a,p,g]),(0,s.useEffect)(()=>{h(null),v(null)},[t]);const w=(0,s.useCallback)(()=>{h(null)},[]),S=(0,s.useCallback)(()=>{v(null)},[]),b=o(),A=r(),C=null!=b&&b.getEventTileOps?b.getEventTileOps():void 0,x=null!=A&&A.canCollapse()?A.collapse:void 0;return s.createElement(s.Fragment,null,s.createElement(Xe.Ncs,{vm:E,className:"mx_MessageActionBar"}),p?s.createElement(er.A,(0,xn.A)({},(0,tr.qv)(p),{mxEvent:t,permalinkCreator:i,eventTileOps:C,collapseReplyChain:x,onFinished:w,getRelationsForEvent:d})):null,g?s.createElement(tr.Ay,(0,xn.A)({},(0,tr.qv)(g),{onFinished:S,managed:!1,focusLock:!0}),s.createElement(yr.A,{mxEvent:t,reactions:n,onFinished:S})):null)}function Sr({icon:e,title:t}){return s.createElement(Xe.vH$,{className:"mx_EventTile_e2eIcon",title:t,icon:e})}function br({eventTileViewModel:e,roomId:t,keyForwardingUserId:n}){const i=(0,je.nH)(),o=e.getE2eMessageSharedIconViewModel({client:i,roomId:t,keyForwardingUserId:n});return(0,s.useEffect)(()=>()=>e.releaseE2eMessageSharedIconViewModel(),[e]),(0,s.useEffect)(()=>{o.setClient(i)},[i,o]),(0,s.useEffect)(()=>{o.setRoomId(t)},[t,o]),(0,s.useEffect)(()=>{o.setKeyForwardingUserId(n)},[n,o]),s.createElement(Xe.ZuW,{vm:o,className:"mx_EventTile_e2eIcon"})}var Ar,Cr=n("./src/stores/notifications/NotificationState.ts");class xr extends Cr.Br{constructor(e,t,n){super(),this._symbol=e,this._count=t,this._level=n}static forCount(e,t){return new xr(null,e,t)}static forSymbol(e,t){return new xr(e,0,t)}}Ar=xr,(0,i.A)(xr,"RED_EXCLAMATION",Ar.forSymbol("!",dr.S.Highlight));var kr=n("./src/components/views/rooms/NotificationBadge.tsx");class Rr extends s.Component{constructor(e){super(e),(0,i.A)(this,"nodes",{}),(0,i.A)(this,"children",{}),this.updateChildren(this.props.children)}componentDidUpdate(){this.updateChildren(this.props.children)}applyStyles(e,t){t&&Object.entries(t).forEach(([t,n])=>{e.style[t]=n})}updateChildren(e){const t=this.children||{};this.children={},s.Children.toArray(e).forEach(e=>{if(!function(e){return"object"==typeof e&&"type"in e}(e))return;const n=e.props;if(t[e.key]){const i=t[e.key],o=this.nodes[i.key];o&&n.style&&o.style.left!==n.style.left&&this.applyStyles(o,{left:n.style.left}),this.children[e.key]=s.cloneElement(i,n,n.children)}else{const t={},i=n.style,o=this.props.startStyles;if(o.length>0){const e=o[0];t.style=e}t.ref=t=>this.collectNode(e.key,t,i),this.children[e.key]=s.cloneElement(e,t)}})}collectNode(e,t,n){const i="bigint"==typeof e?Number(e):e;if(t&&void 0===this.nodes[i]&&this.props.startStyles.length>0){const e=this.props.startStyles;for(let n=1;n<e.length;++n)this.applyStyles(t,e[n]);window.setTimeout(()=>{this.applyStyles(t,n)},0)}t?this.nodes[i]=t:delete this.nodes[i],this.props.innerRef&&(this.props.innerRef.current=t)}render(){return s.createElement(s.Fragment,null,Object.values(this.children))}}(0,i.A)(Rr,"defaultProps",{startStyles:[]});var Ir=n("./src/utils/units.ts");class Tr extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"avatar",(0,s.createRef)()),this.state={suppressDisplay:!this.props.suppressAnimation}}componentWillUnmount(){const e=this.props.readReceiptPosition;e&&(this.props.checkUnmounting&&this.props.checkUnmounting()||this.buildReadReceiptInfo(e))}componentDidMount(){this.state.suppressDisplay&&this.animateMarker()}componentDidUpdate(e){const t=e.offset!==this.props.offset,n=e.hidden!==this.props.hidden;(t||n)&&this.animateMarker()}buildReadReceiptInfo(e={}){const t=this.avatar.current,n=null==t?void 0:t.offsetParent;if(!n||!n.getBoundingClientRect)return o.vF.warn(`ReadReceiptMarker for ${this.props.fallbackUserId} has no valid horizontalContainer`),e.top=0,e.right=0,e;const i=t.getBoundingClientRect();return e.top=i.top,e.right=i.right-n.getBoundingClientRect().right,e}animateMarker(){var e;const t=this.props.readReceiptPosition,n=null!==(e=this.buildReadReceiptInfo().top)&&void 0!==e?e:0,i=t&&void 0!==t.top?t.top:-16,s=[];null!=t&&t.right&&s.push({top:i-n,right:t.right}),s.push({top:i-n,right:0}),this.setState({suppressDisplay:!1,startStyles:s})}render(){var e;if(this.state.suppressDisplay)return s.createElement("div",{ref:this.avatar});const t={right:(0,Ir.c)(this.props.offset),top:"0px"};return s.createElement(Rr,{startStyles:this.state.startStyles,innerRef:this.avatar},s.createElement(bo.A,{member:null!==(e=this.props.member)&&void 0!==e?e:null,fallbackUserId:this.props.fallbackUserId,"aria-hidden":"true","aria-live":"off",size:"14px",style:t,hideTitle:!0,tabIndex:-1}))}}var Pr=n("./src/accessibility/RovingTabIndex.tsx");function Nr({readReceipts:e,readReceiptMap:t,checkUnmounting:n,suppressAnimation:i,isTwelveHour:o}){const[r,a,l,d]=(0,tr.EF)(),m=e.length>4?3:4,u=function(e,t){return(0,C.ki)(e,t)}(e.map(e=>{var t,n;return null!==(t=null===(n=e.roomMember)||void 0===n?void 0:n.name)&&void 0!==t?t:e.userId}),m);if(0===e.length)return s.createElement("div",{className:"mx_EventTile_msgOption"},s.createElement("div",{className:"mx_ReadReceiptGroup"},s.createElement("div",{className:"mx_ReadReceiptGroup_button"},s.createElement("span",{className:"mx_ReadReceiptGroup_container"}))));const p=e.map((e,o)=>{const{hidden:r,position:a}=function(e,t){return e<t?{hidden:!1,position:e}:{hidden:!0,position:0}}(o,m),l=e.userId;let c;return t&&(c=t[l],c||(c={},t[l]=c)),s.createElement(Tr,{key:l,member:e.roomMember,fallbackUserId:l,offset:10*a,hidden:r,readReceiptPosition:c,checkUnmounting:n,suppressAnimation:i})}).reverse();let h;const g=e.length-m;let v;if(g>0&&(h=s.createElement("span",{className:"mx_ReadReceiptGroup_remainder","aria-live":"off"},"+",g)),r&&a.current){const t=a.current.getBoundingClientRect();v=s.createElement(tr.Ay,(0,xn.A)({menuClassName:"mx_ReadReceiptGroup_popup",onFinished:d},(0,tr.qv)(t)),s.createElement(Xe.qme,{className:"mx_AutoHideScrollbar"},s.createElement(Mr,{className:"mx_ReadReceiptGroup_title"},(0,c._t)("timeline|read_receipt_title",{count:e.length})),e.map(e=>s.createElement(Dr,(0,xn.A)({key:e.userId},e,{isTwelveHour:o,onAfterClick:d})))))}return s.createElement("div",{className:"mx_EventTile_msgOption"},s.createElement(Ys.m,{label:(0,c._t)("timeline|read_receipt_title",{count:e.length}),caption:u,placement:"top-end"},s.createElement("div",{className:"mx_ReadReceiptGroup",role:"group","aria-label":(0,c._t)("timeline|read_receipts_label")},s.createElement(Ve.A,{className:"mx_ReadReceiptGroup_button",ref:a,"aria-label":u,"aria-haspopup":"true",onClick:l},h,s.createElement("span",{className:"mx_ReadReceiptGroup_container",style:{width:10*Math.min(m,e.length)+16-10}},p)),v)))}function Dr({userId:e,roomMember:t,ts:n,isTwelveHour:i,onAfterClick:o}){var r,a;return s.createElement(Ys.m,{description:null!==(r=null==t?void 0:t.rawDisplayName)&&void 0!==r?r:e,caption:e,placement:"top",isTriggerInteractive:!1},s.createElement(tr.Dr,{className:"mx_ReadReceiptGroup_person",onClick:()=>{K.A.dispatch({action:$.r.ViewUser,member:null!=t?t:{userId:e},push:!1}),null==o||o()}},s.createElement(bo.A,{member:t,fallbackUserId:e,size:"24px","aria-hidden":"true","aria-live":"off",resizeMethod:"crop",hideTitle:!0}),s.createElement("div",{className:"mx_ReadReceiptGroup_name"},s.createElement("p",null,null!==(a=null==t?void 0:t.name)&&void 0!==a?a:e),s.createElement("p",{className:"mx_ReadReceiptGroup_secondary"},(0,Bt.Yq)(new Date(n),i)))))}function Mr({className:e,children:t}){const[n,,i]=(0,Pr.A9)();return s.createElement("h3",{className:e,role:"menuitem",onFocus:n,tabIndex:-1,ref:i},t)}function Or({receiptState:e,eventSendStatus:t,showReadReceipts:n,readReceipts:i,readReceiptMap:o,checkUnmounting:r,suppressAnimation:a,isTwelveHour:l}){return e.shouldShowSentReceipt||e.shouldShowSendingReceipt?s.createElement(Fr,{messageState:t}):n?s.createElement(Nr,{readReceipts:null!=i?i:[],readReceiptMap:null!=o?o:{},checkUnmounting:r,suppressAnimation:a,isTwelveHour:l}):null}function Fr({messageState:e}){const t=!e||"sent"===e,n="not_sent"===e;let i,o;return"encrypting"===e?(i=s.createElement(Po.A,null),o=(0,c._t)("timeline|send_state_encrypting")):t?(i=s.createElement(No.A,null),o=(0,c._t)("timeline|send_state_sent")):n?(i=s.createElement(kr.A,{notification:xr.RED_EXCLAMATION}),o=(0,c._t)("timeline|send_state_failed")):(i=s.createElement(Po.A,null),o=(0,c._t)("timeline|send_state_sending")),s.createElement("div",{className:"mx_EventTile_msgOption"},s.createElement("div",{className:"mx_ReadReceiptGroup"},s.createElement(Ys.m,{label:o,placement:"top-end"},s.createElement("div",{className:"mx_ReadReceiptGroup_button",role:"status"},s.createElement("span",{className:"mx_ReadReceiptGroup_container"},i)))))}function Lr({avatarMember:e,senderSnapshot:t}){const{avatarSize:n}=t.profileState;return e&&null!==n?s.createElement("div",{className:"mx_EventTile_avatar"},s.createElement(bo.A,{member:e,size:n,viewUserOnClick:t.viewUserOnClick,forceHistorical:t.forceHistoricalAvatar})):null}function Ur({mxEvent:e,senderSnapshot:t,onSenderProfileClick:n}){switch(t.profileMode){case"clickable":return s.createElement(Bo,{onClick:n,mxEvent:e});case"tooltip":return s.createElement(Bo,{mxEvent:e,withTooltip:!0});case"default":return s.createElement(Bo,{mxEvent:e});default:return null}}function Vr({eventTileViewModel:e,onViewInRoomClick:t,onCopyLinkClick:n,className:i}){const o=e.getThreadListActionBarViewModel({onViewInRoomClick:t,onCopyLinkClick:n});return(0,s.useEffect)(()=>{o.setProps({onViewInRoomClick:t,onCopyLinkClick:n})},[o,t,n]),s.createElement(Xe.Ncs,{vm:o,className:i})}var Br=n("../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/uniqBy.js");const jr=new(n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/NamespacedValue.ts").qr)("shortcode","com.beeper.reaction.shortcode");function Hr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function zr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Hr(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Hr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class Wr extends Xe.oY8{constructor(e){super(e,Wr.computeSnapshot(e))}setProps(e){this.props=zr(zr({},this.props),e);const t=Wr.computeSnapshot(this.props),n=this.snapshot.current;t.formattedSenders===n.formattedSenders&&t.caption===n.caption||this.snapshot.set(t)}}function Jr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function Gr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Jr(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Jr(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}(0,i.A)(Wr,"computeSnapshot",e=>{const{client:t,mxEvent:n,content:i,reactionEvents:s,customReactionImagesEnabled:o}=e,r=null==t?void 0:t.getRoom(n.getRoomId());if(r){const e=[];let t;for(const n of s){var a;const i=r.getMember(n.getSender()),s=null!==(a=null==i?void 0:i.name)&&void 0!==a?a:n.getSender();e.push(s),t=o&&jr.findIn(n.getContent())||void 0}const n=(0,Us.aS)(i)||t;return{formattedSenders:(0,C.ki)(e,6),caption:n?(0,c._t)("timeline|reactions|tooltip_caption",{shortName:n}):void 0}}return{formattedSenders:void 0,caption:void 0}});class Kr extends Xe.oY8{constructor(e){const t=new Wr({client:e.client,mxEvent:e.mxEvent,content:e.content,reactionEvents:e.reactionEvents,customReactionImagesEnabled:e.customReactionImagesEnabled});super(e,Kr.computeSnapshot(e,t)),(0,i.A)(this,"tooltipVm",void 0),(0,i.A)(this,"onClick",()=>{const{client:e,mxEvent:t,myReactionEvent:n,content:i,disabled:s}=this.props;s||(n?e.redactEvent(t.getRoomId(),n.getId()):(e.sendEvent(t.getRoomId(),r.Bx4.Reaction,{"m.relates_to":{rel_type:r.zZR.Annotation,event_id:t.getId(),key:i}}),K.A.dispatch({action:"message_sent"})))}),this.tooltipVm=t,this.disposables.track(t)}setSnapshot(e){const t=this.snapshot.current;e.content===t.content&&e.count===t.count&&Kr.getAriaLabel(e)===Kr.getAriaLabel(t)&&e.isSelected===t.isSelected&&e.isDisabled===t.isDisabled&&e.imageSrc===t.imageSrc&&e.imageAlt===t.imageAlt||this.snapshot.set(e)}setReactionData(e,t,n){this.props=Gr(Gr({},this.props),{},{content:e,reactionEvents:t,customReactionImagesEnabled:n}),this.tooltipVm.setProps({content:e,reactionEvents:t,customReactionImagesEnabled:n}),this.setSnapshot(Kr.computeSnapshot(this.props,this.tooltipVm))}setCount(e){this.props=Gr(Gr({},this.props),{},{count:e}),this.snapshot.merge({count:e})}setMyReactionEvent(e){this.props=Gr(Gr({},this.props),{},{myReactionEvent:e}),this.snapshot.merge({isSelected:!!e})}setDisabled(e){this.props=Gr(Gr({},this.props),{},{disabled:e}),this.snapshot.merge({isDisabled:!!e})}}var qr;function $r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function Yr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$r(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$r(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}(0,i.A)(Kr,"getAriaLabel",e=>e.ariaLabel),(0,i.A)(Kr,"computeSnapshot",(e,t)=>{const{client:n,mxEvent:i,content:s,count:o,className:r,reactionEvents:a,myReactionEvent:l,disabled:d,customReactionImagesEnabled:m}=e,u=n.getRoom(i.getRoomId());let p,h,g,v;if(u){const e=[];for(const t of a){const n=u.getMember(t.getSender());e.push((null==n?void 0:n.name)||t.getSender()),h=m&&jr.findIn(t.getContent())||void 0}const t=(0,C.ki)(e,6);p=s?(0,c._t)("timeline|reactions|label",{reactors:t,content:h||s}):t}if(m&&s.startsWith("mxc://")){const e=(0,Ci.l)(s).srcHttp;e&&(g=e,v=h||(0,c._t)("timeline|reactions|custom_reaction_fallback_label"))}return{content:s,count:o,className:r,ariaLabel:p,isSelected:!!l,isDisabled:!!d,imageSrc:g,imageAlt:v,tooltipVm:t}});class Qr extends Xe.oY8{constructor(e){const t=Yr(Yr({},e),{},{showAll:!1});super(t,Qr.computeSnapshot(t)),(0,i.A)(this,"onShowAllClick",()=>{this.props=Yr(Yr({},this.props),{},{showAll:!0}),this.snapshot.merge({showAllButtonVisible:!1})}),(0,i.A)(this,"onAddReactionClick",e=>{var t,n;null===(t=(n=this.props).onAddReactionClick)||void 0===t||t.call(n,e)}),(0,i.A)(this,"onAddReactionContextMenu",e=>{var t,n;null===(t=(n=this.props).onAddReactionContextMenu)||void 0===t||t.call(n,e)})}setActionable(e){this.props=Yr(Yr({},this.props),{},{isActionable:e});const t=this.props.isActionable&&this.props.reactionGroupCount>0;this.snapshot.merge({isVisible:t})}setReactionGroupCount(e){this.props=Yr(Yr({},this.props),{},{reactionGroupCount:e});const t=this.props.isActionable&&this.props.reactionGroupCount>0,n=this.props.reactionGroupCount>9&&!this.props.showAll;this.snapshot.merge({isVisible:t,showAllButtonVisible:n})}setCanReact(e){this.props=Yr(Yr({},this.props),{},{canReact:e}),this.snapshot.merge({showAddReactionButton:e})}setAddReactionButtonActive(e){this.props=Yr(Yr({},this.props),{},{addReactionButtonActive:e}),this.snapshot.merge({addReactionButtonActive:e})}setAddReactionHandlers({onAddReactionClick:e,onAddReactionContextMenu:t}){this.props=Yr(Yr({},this.props),{},{onAddReactionClick:e,onAddReactionContextMenu:t})}}function Xr(e){const t=(0,je.nH)(),n=(0,Xe.s2q)(()=>new Kr({client:t,mxEvent:e.mxEvent,content:e.content,count:e.count,reactionEvents:e.reactionEvents,myReactionEvent:e.myReactionEvent,disabled:e.disabled,customReactionImagesEnabled:e.customReactionImagesEnabled}));return(0,s.useEffect)(()=>{n.setReactionData(e.content,e.reactionEvents,e.customReactionImagesEnabled)},[e.content,e.reactionEvents,e.customReactionImagesEnabled,n]),(0,s.useEffect)(()=>{n.setCount(e.count)},[e.count,n]),(0,s.useEffect)(()=>{n.setMyReactionEvent(e.myReactionEvent)},[e.myReactionEvent,n]),(0,s.useEffect)(()=>{n.setDisabled(e.disabled)},[e.disabled,n]),s.createElement(Xe.kT6,{vm:n})}qr=Qr,(0,i.A)(Qr,"computeDerivedSnapshot",e=>({isVisible:e.isActionable&&e.reactionGroupCount>0,showAllButtonVisible:e.reactionGroupCount>9&&!e.showAll,showAddReactionButton:e.canReact,addReactionButtonActive:!!e.addReactionButtonActive})),(0,i.A)(Qr,"computeSnapshot",e=>Yr({ariaLabel:(0,c._t)("common|reactions"),showAllButtonLabel:(0,c._t)("action|show_all"),addReactionButtonLabel:(0,c._t)("timeline|reactions|add_reaction_prompt"),addReactionButtonVisible:!1},qr.computeDerivedSnapshot(e)));const Zr=e=>{var t,n;return null!==(t=null==e||null===(n=e.getSortedAnnotationsByKey())||void 0===n?void 0:n.map(([e,t])=>({content:e,events:[...t]})).filter(({events:e})=>e.length>0))&&void 0!==t?t:[]},ea=(e,t)=>{var n;if(!e||!t)return null;const i=null===(n=e.getAnnotationsBySender())||void 0===n?void 0:n[t];return i?[...i.values()]:null};function ta({eventTileViewModel:e,mxEvent:t,reactions:n}){var i,o;const a=(0,s.useContext)(Qo.Ay),l=null!==(i=null===(o=a.room)||void 0===o?void 0:o.client.getUserId())&&void 0!==i?i:void 0,[c,d]=(0,s.useState)(()=>Zr(n)),[m,u]=(0,s.useState)(()=>ea(n,l)),[p,h]=(0,s.useState)(!1),[g,v]=(0,s.useState)(null),_=e.getReactionsRowViewModel({isActionable:(0,Ho.qe)(t),reactionGroupCount:c.length,canReact:a.canReact,addReactionButtonActive:!1});(0,s.useEffect)(()=>()=>e.releaseReactionsRowViewModel(),[e]);const f=(0,s.useCallback)(e=>{v(e.currentTarget.getBoundingClientRect()),h(!0)},[]),y=(0,s.useCallback)(()=>{h(!1)},[]),E=(0,s.useCallback)(()=>{const e=Zr(n);d(e),u(ea(n,l)),_.setReactionGroupCount(e.length)},[n,l,_]);(0,s.useEffect)(()=>{_.setActionable((0,Ho.qe)(t))},[t,_]),(0,s.useEffect)(()=>{_.setCanReact(a.canReact),!a.canReact&&p&&h(!1)},[a.canReact,p,_]),(0,s.useEffect)(()=>{_.setAddReactionHandlers({onAddReactionClick:f,onAddReactionContextMenu:f})},[f,_]),(0,s.useEffect)(()=>{_.setAddReactionButtonActive(p)},[p,_]),(0,s.useEffect)(()=>{E()},[E]),(0,s.useEffect)(()=>{if(n)return n.on(r.SFT.Add,E),n.on(r.SFT.Remove,E),n.on(r.SFT.Redaction,E),()=>{n.off(r.SFT.Add,E),n.off(r.SFT.Remove,E),n.off(r.SFT.Redaction,E)}},[n,E]),(0,s.useEffect)(()=>{const e=()=>{_.setActionable((0,Ho.qe)(t))};return(t.isBeingDecrypted()||t.shouldAttemptDecryption())&&t.once(r.OQv.Decrypted,e),()=>{t.off(r.OQv.Decrypted,e)}},[t,_]);const w=(0,Xe.ifm)(_),b=S.A.getValue("feature_render_reaction_images"),A=(0,s.useMemo)(()=>{const e=c.map(({content:e,events:n})=>{const i=(0,Br.A)(n,e=>e.getSender()),o=null==m?void 0:m.find(t=>{var n;return!t.isRedacted()&&(null===(n=t.getRelation())||void 0===n?void 0:n.key)===e});return s.createElement(Xr,{key:e,content:e,count:i.length,mxEvent:t,reactionEvents:i,myReactionEvent:o,customReactionImagesEnabled:b,disabled:!a.canReact||o&&!o.isRedacted()&&!a.canSelfRedact})});if(e.length)return w.showAllButtonVisible?e.slice(0,8):e},[c,m,t,b,a.canReact,a.canSelfRedact,w.showAllButtonVisible]);if(!w.isVisible||null==A||!A.length)return null;let C;return p&&g&&n&&a.canReact&&(C=s.createElement(tr.Ay,(0,xn.A)({},(0,tr.qv)(g),{onFinished:y,managed:!1,focusLock:!0}),s.createElement(yr.A,{mxEvent:t,reactions:n,onFinished:y}))),s.createElement(s.Fragment,null,s.createElement(Xe.Mnp,{vm:_,className:"mx_ReactionsRow"},A),C)}function na({eventTileViewModel:e,mxEvent:t,reactions:n,hasFooter:i,hasPinnedMessageBadge:o,hasReactionsRow:r,pinnedMessageBadgeAriaDescribedBy:a,placement:l,showMainPinnedMessageBadge:c,showBubblePinnedMessageBadge:d}){if(!i)return null;const m=o?s.createElement(Xe.ZYY,{"aria-describedby":a,tabIndex:0}):void 0,u=r?s.createElement(ta,{eventTileViewModel:e,mxEvent:t,reactions:n,key:"mx_EventTile_reactionsRow"}):void 0;return"irc"===l?s.createElement("div",{className:"mx_EventTile_footer"},m,u):s.createElement("div",{className:"mx_EventTile_footer"},c&&m,u,d&&m)}const ia=["eventTileViewModel","mxEvent"];function sa(e){let{eventTileViewModel:t,mxEvent:n}=e,i=(0,v.A)(e,ia);const o=(0,je.nH)(),r=t.getEventPreviewViewModel({cli:o,mxEvent:n});return(0,s.useEffect)(()=>()=>t.releaseEventPreviewViewModel(),[t]),(0,s.useEffect)(()=>{r.setClient(o)},[o,r]),(0,s.useEffect)(()=>{r.setEvent(n)},[n,r]),s.createElement(Xe.IVz,(0,xn.A)({},i,{vm:r}))}function oa({eventTileViewModel:e,mxEvent:t}){let n;return n=t.isRedacted()?s.createElement(Go.Bm,{mxEvent:t}):t.isDecryptionFailure()?s.createElement(Go.qI,{mxEvent:t}):s.createElement(sa,{eventTileViewModel:e,mxEvent:t}),s.createElement("div",{className:"mx_EventTile_body"},n)}var ra=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/threads.js"),aa=n("./src/contexts/ScopedRoomContext.tsx");function la({eventTileViewModel:e,thread:t,showDisplayName:n=!1}){const i=(0,je.nH)(),{room:o,timelineRenderingType:r,lowBandwidth:a}=(0,aa.ME)("room","timelineRenderingType","lowBandwidth"),l=(0,es.ti)("useOnlyCurrentProfiles"),c=e.getThreadMessagePreviewViewModel({cli:i,thread:t,room:o,timelineRenderingType:r,lowBandwidth:a,useOnlyCurrentProfiles:l,showDisplayName:n,avatarClassName:"mx_BaseAvatar"});return(0,s.useEffect)(()=>()=>e.releaseThreadMessagePreviewViewModel(),[e]),(0,s.useEffect)(()=>{c.setClient(i),c.setThread(t),c.setRoom(o),c.setTimelineRenderingType(r),c.setLowBandwidth(a),c.setUseOnlyCurrentProfiles(l),c.setShowDisplayName(n)},[c,i,t,o,r,a,l,n]),s.createElement(Xe.b9F,{vm:c})}const ca=["eventTileViewModel","mxEvent","thread","className"];function da(e){let{eventTileViewModel:t,mxEvent:n,thread:i,className:o}=e,r=(0,v.A)(e,ca);const a=(0,je.nH)(),{isCard:l}=(0,s.useContext)(Er.E),{narrow:c,room:d,timelineRenderingType:m,lowBandwidth:u}=(0,aa.ME)("narrow","room","timelineRenderingType","lowBandwidth"),p=(0,es.ti)("useOnlyCurrentProfiles"),h=t.getThreadSummaryViewModel({cli:a,mxEvent:n,thread:i,narrow:c,isCard:l,room:d,timelineRenderingType:m,lowBandwidth:u,useOnlyCurrentProfiles:p,avatarClassName:"mx_BaseAvatar"});return(0,s.useEffect)(()=>()=>t.releaseThreadSummaryViewModel(),[t]),(0,s.useEffect)(()=>{h.setClient(a),h.setRootEvent(n),h.setThread(i),h.setNarrow(c),h.setIsCard(l),h.setRoom(d),h.setTimelineRenderingType(m),h.setLowBandwidth(u),h.setUseOnlyCurrentProfiles(p)},[h,a,n,i,c,l,d,m,u,p]),s.createElement(Xe.ehN,(0,xn.A)({},r,{vm:h,className:un()("mx_ThreadSummary",o)}))}function ma({eventTileViewModel:e,threadState:t}){return t.shouldShowThreadPanelSummary&&t.thread?s.createElement("div",{className:"mx_ThreadPanel_replies"},s.createElement(ra.A,null),s.createElement("span",{className:"mx_ThreadPanel_replies_amount"},t.thread.length),s.createElement(la,{eventTileViewModel:e,thread:t.thread})):null}function ua({eventTileViewModel:e,mxEvent:t,threadState:n}){return n.shouldShowThreadSummary&&n.thread?s.createElement(da,{eventTileViewModel:e,mxEvent:t,thread:n.thread}):"link"===n.searchThreadInfo.kind?s.createElement("a",{className:"mx_ThreadSummary_icon",href:n.searchThreadInfo.href},s.createElement(ra.A,null),(0,c._t)("timeline|thread_info_basic")):"text"===n.searchThreadInfo.kind?s.createElement("p",{className:"mx_ThreadSummary_icon"},s.createElement(ra.A,null),(0,c._t)("timeline|thread_info_basic")):null}var pa;function ha(){return ha=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},ha.apply(null,arguments)}var ga=function(e,t){return s.createElement("svg",ha({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 12 12",role:"presentation","aria-hidden":!0,ref:t},e),pa||(pa=s.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"})))},va=(0,s.forwardRef)(ga);function _a({eventTileViewModel:e,kind:t,timestampProps:n}){const i="linked"===t?e.getLinkedMessageTimestampViewModel(n):e.getMessageTimestampViewModel(n);return(0,s.useEffect)(()=>{i.setProps(n)},[i,n]),s.createElement(s.Fragment,null,n.receivedTs?s.createElement(va,{className:"mx_MessageTimestamp_lateIcon",width:"16",height:"16"}):void 0,s.createElement(Xe.Dhn,{vm:i,className:"mx_MessageTimestamp"}))}function fa({eventTileViewModel:e,kind:t,timestampProps:n,showTimestamp:i,showDummy:o}){return i?s.createElement(_a,{eventTileViewModel:e,kind:t,timestampProps:n}):o?s.createElement("span",{className:"mx_MessageTimestamp"}):null}function ya({eventId:e,isLocalEcho:t}){return t?void 0:e}function Ea({isProbablyMedia:e,eventType:t,msgtype:n}){const i="m.room.message";return{mx_EventTile_mediaLine:e,mx_EventTile_image:t===i&&"m.image"===n,mx_EventTile_sticker:"m.sticker"===t,mx_EventTile_emote:t===i&&"m.emote"===n}}function wa(e,t){return!e&&![Qo.Ae.ThreadsList,Qo.Ae.Notification].includes(t)}function Sa({needsSenderProfile:e,hideSender:t,timelineRenderingType:n}){return e&&!0!==t?n===Qo.Ae.Room||n===Qo.Ae.Search||n===Qo.Ae.Pinned||n===Qo.Ae.Thread?"clickable":n===Qo.Ae.ThreadsList?"tooltip":"default":"hidden"}function ba({isEditing:e,forExport:t,hover:n,showActionBarFromFocus:i,actionBarFocused:s,hasContextMenu:o}){return!e&&!t&&(n||i||s&&!o)}function Aa({layout:e,showTimestamp:t,timestamp:n,hideTimestamp:i}){const s=t&&!!n;return{useIRCLayout:e===Do.P.IRC,showRealTimestamp:s,showLinkedTimestamp:s&&!i}}function Ca({alwaysShowTimestamps:e,hover:t,focusWithin:n}){return!!e||t||n}function xa({hasReactionsRow:e,hasReactions:t,hasPinnedMessageBadge:n,layout:i,isOwnEvent:s}){return{hasFooter:e&&t||n,showMainPinnedMessageBadge:n&&(i===Do.P.Group||!s),showBubblePinnedMessageBadge:n&&i===Do.P.Bubble&&s}}var ka=n("./src/viewmodels/room/timeline/event-tile/timestamp/MessageTimestampViewModel.ts"),Ra=n("./src/utils/notifications.ts"),Ia=n("../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isEqual.js");function Ta(e,t){return(0,Ia.A)(e,t)?e:t}var Pa=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/utils.ts"),Na=n("./src/stores/AsyncStoreWithClient.ts"),Da=n("./src/stores/room-list-v3/skip-list/tag.ts");function Ma(e){const t=_.J.safeGet().getSafeUserId();return"m.room.member"===e.getType()?e.getStateKey()===t:e.getSender()===t}function Oa(e,t){if(t!==Da.z.DM)return!0;const n=_.J.safeGet().getRoom(e);return!n||2!==n.currentState.getJoinedMemberCount()}function Fa(e){var t,n,i;return null!==(t=null!==(n=null===(i=e.sender)||void 0===i?void 0:i.name)&&void 0!==n?n:e.getSender())&&void 0!==t?t:""}class La{getTextFor(e,t,n){var i,s,o;let a=e.getContent();if(e.isRelation(r.zZR.Replace)&&(a=e.getContent()["m.new_content"]),null===(i=a)||void 0===i||!i.body)return null;let l=a.body.trim();if(!l)return null;const d=null!==(s=a.msgtype)&&void 0!==s?s:r.Wrw.Text,m="org.matrix.custom.html"===a.format&&a.formatted_body;if(m&&(l=a.formatted_body),null!==(o=e.getWireContent()["m.relates_to"])&&void 0!==o&&o["m.in_reply_to"]&&(l=m?((0,Yo.kH)(l)||"").trim():((0,Yo.fJ)(l)||"").trim(),!l))return null;if(m){const e=(0,Us.hk)(l.replace(/<br\/?>/gi,"\n"));l=(new DOMParser).parseFromString(e,"text/html").documentElement.textContent}if(l=(0,c.ot)(l),d===r.Wrw.Emote)return(0,c._t)("event_preview|m.emote",{senderName:Fa(e),emote:l});const u=e.getRoomId();return n||Ma(e)||u&&!Oa(u,t)?l:(0,c._t)("event_preview|m.text",{senderName:Fa(e),message:l})}}var Ua=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/extensible_events_v1/InvalidEventError.ts"),Va=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/extensible_events_v1/PollStartEvent.ts");class Ba{getTextFor(e,t,n){let i=e.getContent();if(e.isRelation("m.replace")&&(i=e.getContent()["m.new_content"]),!i)return null;try{let s=new Va.m({type:e.getType(),content:i}).question.text.trim();return s=(0,c.ot)(s),n||Ma(e)||!Oa(e.getRoomId(),t)?s:(0,c._t)("event_preview|m.text",{senderName:Fa(e),message:s})}catch(e){if(e instanceof Ua._)return null;throw e}}}(0,i.A)(Ba,"contextType",je.Ay);class ja{getTextFor(e,t){return Oa(e.getRoomId(),t)?Ma(e)?(0,c._t)("event_preview|m.call.invite|you"):(0,c._t)("event_preview|m.call.invite|user",{senderName:Fa(e)}):Ma(e)?(0,c._t)("event_preview|m.call.invite|dm_send"):(0,c._t)("event_preview|m.call.invite|dm_receive",{senderName:Fa(e)})}}class Ha{getTextFor(e,t){return Oa(e.getRoomId(),t)?Ma(e)?(0,c._t)("event_preview|m.call.answer|you"):(0,c._t)("event_preview|m.call.answer|user",{senderName:Fa(e)}):(0,c._t)("event_preview|m.call.answer|dm")}}class za{getTextFor(e,t){return Oa(e.getRoomId(),t)?Ma(e)?(0,c._t)("event_preview|m.call.hangup|you"):(0,c._t)("event_preview|m.call.hangup|user",{senderName:Fa(e)}):(0,c._t)("timeline|m.call.hangup|dm")}}class Wa{getTextFor(e,t,n){const i=e.getContent().body;return i?n||Ma(e)||!Oa(e.getRoomId(),t)?i:(0,c._t)("event_preview|m.sticker",{senderName:Fa(e),stickerName:i}):null}}class Ja{constructor(e){this.messagePreviewStore=e}getTextFor(e,t,n){const i=e.getRoomId();if(!i)return null;const s=e.getRelation();if(!s)return null;const o=s.key;if(!o)return null;const r=_.J.get(),a=null==r?void 0:r.getRoom(i),l=s.event_id?null==a?void 0:a.findEventById(s.event_id):null;if(!l)return null;const d=this.messagePreviewStore.generatePreviewForEvent(l);return Ma(e)?(0,c._t)("event_preview|m.reaction|you",{reaction:o,message:d}):(0,c._t)("event_preview|m.reaction|user",{sender:Fa(e),reaction:o,message:d})}}var Ga,Ka=n("./src/stores/AsyncStore.ts"),qa=n("./src/shouldHideEvent.ts");const $a="im.vector.any",Ya=e=>{var t;if(e.isThreadRoot)return!1;const n=e.getThread();if(!n)return!1;const i=e.getRelation();return!i||i.rel_type!==r.zZR.Annotation||i.event_id!==(null===(t=n.rootEvent)||void 0===t?void 0:t.getId())},Qa=(e,t)=>({event:t,text:e,isThreadReply:Ya(t)});class Xa extends Na.r{static testInstance(){return new Xa}constructor(){super(K.A,{}),(0,i.A)(this,"previews",new Map),(0,i.A)(this,"previewers",void 0),(0,i.A)(this,"onLocalEchoUpdated",async(e,t)=>{this.previews.has(t.roomId)&&await this.generatePreview(t,$a)}),this.previewers={"m.room.message":{isState:!1,previewer:new La},"m.call.invite":{isState:!1,previewer:new ja},"m.call.answer":{isState:!1,previewer:new Ha},"m.call.hangup":{isState:!1,previewer:new za},"m.sticker":{isState:!1,previewer:new Wa},"m.reaction":{isState:!1,previewer:new Ja(this)},[r.$SO.name]:{isState:!1,previewer:new Ba},[r.$SO.altName]:{isState:!1,previewer:new Ba}}}static get instance(){return Xa.internalInstance}static getPreviewChangedEventName(e){return`room_preview_changed:${null==e?void 0:e.roomId}`}async getPreviewForRoom(e,t){var n;if(!e)return null;this.previews.has(e.roomId)||await this.generatePreview(e,t);const i=this.previews.get(e.roomId);return i?i.has(t)?i.get(t):null!==(n=i.get($a))&&void 0!==n?n:null:null}generatePreviewForEvent(e){var t;const n=this.previewers[e.getType()];return null!==(t=null==n?void 0:n.previewer.getTextFor(e,void 0,!0))&&void 0!==t?t:""}async generatePreview(e,t){const n=[...e.getLiveTimeline().getEvents(),...e.getPendingEvents()];if(n.sort((e,t)=>e.getTs()-t.getTs()),!n)return;let i=this.previews.get(e.roomId);i||(i=new Map,this.previews.set(e.roomId,i)),i.has($a)||i.set($a,null),t&&!i.has(t)&&i.set(t,null);let s=!1;for(let t=n.length-1;t>=0;t--){var o,r;if(t===n.length-50)break;const c=n[t];await(null===(o=this.matrixClient)||void 0===o?void 0:o.decryptEventIfNeeded(c));if((0,qa.A)(c))continue;const d=this.previewers[c.getType()];if(!d)continue;if(d.isState&&(0,Pa.hX)(c.getStateKey()))continue;const m=d.previewer.getTextFor(c);if(!m)continue;s=s||m!==(null===(r=i.get($a))||void 0===r?void 0:r.text),i.set($a,Qa(m,c));const u=Array.from(i.keys()).filter(e=>e!==$a);for(const e of u){const t=e===$a?void 0:e,n=d.previewer.getTextFor(c,t);var a,l;if(n===m)s=s||m!==(null===(a=i.get(e))||void 0===a?void 0:a.text),i.delete(e);else s=s||n!==(null===(l=i.get(e))||void 0===l?void 0:l.text),i.set(e,n?Qa(m,c):null)}return void(s&&(this.previews.set(e.roomId,i),this.emit("update",this),this.emit(Xa.getPreviewChangedEventName(e),e)))}this.previews.set(e.roomId,new Map),this.emit("update",this),this.emit(Xa.getPreviewChangedEventName(e),e)}async onAction(e){if(this.matrixClient&&("MatrixActions.Room.timeline"===e.action||"MatrixActions.Event.decrypted"===e.action)){const t=e.event.getRoomId(),n=e.hasOwnProperty("isLiveEvent")&&!e.isLiveEvent;if(!t||!this.previews.has(t)||n)return;const i=this.matrixClient.getRoom(t);if(!i)return;await this.generatePreview(i,$a)}}async onReady(){this.matrixClient&&this.matrixClient.on(r.u99.LocalEchoUpdated,this.onLocalEchoUpdated)}async onNotReady(){this.matrixClient&&this.matrixClient.off(r.u99.LocalEchoUpdated,this.onLocalEchoUpdated)}}Ga=Xa,(0,i.A)(Xa,"internalInstance",(()=>{const e=new Ga;return e.start(),e})());class Za{constructor(){(0,i.A)(this,"key",void 0),(0,i.A)(this,"content",void 0)}get(e,t){const n=`${null!=t?t:""}\0${e}`;return this.key===n&&void 0!==this.content||(this.key=n,this.content=t?(0,c._t)("event_preview|preview",{prefix:t,preview:e},{bold:e=>s.createElement("strong",null,e)}):e),this.content}}class el{constructor(){(0,i.A)(this,"mxEvent",void 0),(0,i.A)(this,"callback",void 0),(0,i.A)(this,"disposables",void 0)}setEvent(e,t){this.mxEvent===e&&this.callback===t||(this.teardown(),this.mxEvent=e,this.callback=t,e&&(this.disposables=new Xe.cDe,this.disposables.trackListener(e,r.OQv.Replaced,t),this.disposables.trackListener(e,r.OQv.Decrypted,t)))}teardown(){var e;null===(e=this.disposables)||void 0===e||e.dispose(),this.disposables=void 0,this.mxEvent=void 0,this.callback=void 0}}function tl(e,t){const n=Xa.instance.generatePreviewForEvent(e);if(!n)return null;const i=function(e,t){if(e===r.$SO.name)return(0,c._t)("event_preview|prefix|poll");switch(t){case r.Wrw.Audio:return(0,c._t)("event_preview|prefix|audio");case r.Wrw.Image:return(0,c._t)("event_preview|prefix|image");case r.Wrw.Video:return(0,c._t)("event_preview|prefix|video");case r.Wrw.File:return(0,c._t)("event_preview|prefix|file");default:return null}}(e.getType(),e.getContent().msgtype);return{previewContent:t.get(n,i),previewTooltip:i?void 0:n}}function nl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function il(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nl(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nl(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const sl=new Set([Qo.Ae.Thread,Qo.Ae.ThreadsList]);class ol extends Xe.oY8{constructor(e){super(e,{isVisible:!1,showDisplayName:e.showDisplayName}),(0,i.A)(this,"threadListenerCleanups",[]),(0,i.A)(this,"memberListenerCleanups",[]),(0,i.A)(this,"eventContentListener",new el),(0,i.A)(this,"previewContentCache",new Za),(0,i.A)(this,"watchedMemberRoom",void 0),(0,i.A)(this,"watchedMemberUserId",void 0),(0,i.A)(this,"previewRequestId",0),(0,i.A)(this,"onThreadUpdate",()=>{this.updateFromThreadSafely()}),(0,i.A)(this,"onEventContentChanged",()=>{this.updateFromThreadSafely()}),(0,i.A)(this,"onRoomStateMember",(e,t,n)=>{n.userId===this.watchedMemberUserId&&this.updateProfileSnapshot()}),this.setupThreadListener(),this.updateFromThreadSafely()}dispose(){this.teardownThreadListener(),this.eventContentListener.teardown(),this.teardownMemberListener(),super.dispose()}setClient(e){this.props.cli!==e&&(this.props=il(il({},this.props),{},{cli:e}),this.updateFromThreadSafely())}setThread(e){this.props.thread!==e&&(this.props=il(il({},this.props),{},{thread:e}),this.setupThreadListener(),this.updateFromThreadSafely())}setRoom(e){this.props.room!==e&&(this.props=il(il({},this.props),{},{room:e}),this.updateFromThreadSafely())}setTimelineRenderingType(e){this.props.timelineRenderingType!==e&&(this.props=il(il({},this.props),{},{timelineRenderingType:e}),this.updateFromThreadSafely())}setLowBandwidth(e){this.props.lowBandwidth!==e&&(this.props=il(il({},this.props),{},{lowBandwidth:e}),this.updateFromThreadSafely())}setUseOnlyCurrentProfiles(e){this.props.useOnlyCurrentProfiles!==e&&(this.props=il(il({},this.props),{},{useOnlyCurrentProfiles:e}),this.updateFromThreadSafely())}setShowDisplayName(e){this.props=il(il({},this.props),{},{showDisplayName:e}),this.snapshot.merge({showDisplayName:e})}setupThreadListener(){this.teardownThreadListener();const{thread:e}=this.props;e.on(r.juu.Update,this.onThreadUpdate),this.threadListenerCleanups.push(()=>{e.off(r.juu.Update,this.onThreadUpdate)})}teardownThreadListener(){for(const e of this.threadListenerCleanups)e();this.threadListenerCleanups=[]}setupMemberListener(e){const t=ol.getProfileUserId(e),n=this.getProfileRoom(),i=this.shouldUseCurrentProfiles();e&&t&&n&&i?this.watchedMemberRoom===n&&this.watchedMemberUserId===t||(this.teardownMemberListener(),this.watchedMemberRoom=n,this.watchedMemberUserId=t,n.on(r.fZ1.Members,this.onRoomStateMember),this.memberListenerCleanups.push(()=>{n.off(r.fZ1.Members,this.onRoomStateMember)})):this.teardownMemberListener()}teardownMemberListener(){for(const e of this.memberListenerCleanups)e();this.memberListenerCleanups=[],this.watchedMemberRoom=void 0,this.watchedMemberUserId=void 0}updateFromThreadSafely(){this.updateFromThread().catch(e=>{o.vF.error("Failed to update thread preview",e)})}async updateFromThread(){var e;const t=++this.previewRequestId,n=null!==(e=this.props.thread.replyToEvent)&&void 0!==e?e:void 0;this.eventContentListener.setEvent(n,this.onEventContentChanged),this.setupMemberListener(n),n?await this.updateFromEvent(n,t):this.setHidden()}async updateFromEvent(e,t){if(e.isRedacted())return void this.setHidden();const n=this.computeBaseReplySnapshot(e);if(e.isDecryptionFailure())return void this.setDecryptionFailure(n);try{await this.props.cli.decryptEventIfNeeded(e)}catch(i){if(o.vF.error("Failed to decrypt thread preview event",i),!this.isCurrentPreviewRequest(t,e))return;return void(e.isDecryptionFailure()?this.setDecryptionFailure(n):this.setHidden())}if(!this.isCurrentPreviewRequest(t,e))return;if(e.isRedacted())return void this.setHidden();if(e.isDecryptionFailure())return void this.setDecryptionFailure(n);const i=tl(e,this.previewContentCache);i?this.snapshot.merge(il(il(il({},n),i),{},{isVisible:!0})):this.setHidden()}isCurrentPreviewRequest(e,t){return!this.isDisposed&&e===this.previewRequestId&&this.props.thread.replyToEvent===t}computeBaseReplySnapshot(e){var t,n;const i=ol.getDisplayMember(this.props,e),s=null!==(t=e.getSender())&&void 0!==t?t:"",o=null!==(n=null==i?void 0:i.name)&&void 0!==n?n:s,r=ol.computeAvatar(this.props,e,i);return{avatar:Ta(this.snapshot.current.avatar,r),senderName:o,showDisplayName:this.props.showDisplayName}}updateProfileSnapshot(){const e=this.props.thread.replyToEvent;e&&this.snapshot.current.isVisible&&this.snapshot.merge(this.computeBaseReplySnapshot(e))}setDecryptionFailure(e){const t=(0,c._t)("timeline|decryption_failure|unable_to_decrypt");this.snapshot.merge(il(il({},e),{},{previewContent:t,previewTooltip:t,isVisible:!0}))}setHidden(){this.snapshot.merge({isVisible:!1,avatar:void 0,senderName:void 0,previewContent:void 0,previewTooltip:void 0,showDisplayName:this.props.showDisplayName})}static getDisplayMember(e,t){const n=ol.getProfileUserId(t);if(n&&ol.shouldUseCurrentProfilesForProps(e)){var i;const t=null===(i=ol.getProfileRoomForProps(e))||void 0===i?void 0:i.getMember(n);if(t)return t}return t.sender}getProfileRoom(){return ol.getProfileRoomForProps(this.props)}shouldUseCurrentProfiles(){return ol.shouldUseCurrentProfilesForProps(this.props)}static getProfileRoomForProps(e){var t;return null!==(t=e.room)&&void 0!==t?t:e.thread.room}static shouldUseCurrentProfilesForProps(e){return e.useOnlyCurrentProfiles||sl.has(e.timelineRenderingType)}static getProfileUserId(e){var t,n,i;return null!==(t=null!==(n=null==e||null===(i=e.sender)||void 0===i?void 0:i.userId)&&void 0!==n?n:null==e?void 0:e.getSender())&&void 0!==t?t:""}static computeAvatar(e,t,n){var i,s,o;const r=null!==(i=t.getSender())&&void 0!==i?i:"",a=null!==(s=null==n?void 0:n.name)&&void 0!==s?s:r;let l,d;if(null!=n&&n.name){var m;const t=n.getMxcAvatarUrl();var u;if(t&&!e.lowBandwidth)l=null!==(u=(0,Ci.l)(t,e.cli).getThumbnailOfSourceHttp(24,24,"crop"))&&void 0!==u?u:void 0;d=null!==(m=Fo.A.getDisplayUserIdentifier(n.userId,{roomId:n.roomId}))&&void 0!==m?m:r}return{className:e.avatarClassName,id:null!==(o=null==n?void 0:n.userId)&&void 0!==o?o:r,name:a,src:l,title:d,label:(0,c._t)("common|user_avatar")}}}class rl extends Xe.oY8{constructor(e){const t=new ol(il(il({},e),{},{showDisplayName:!e.narrow}));super(e,rl.computeSnapshot(e,t)),(0,i.A)(this,"listenerCleanups",[]),(0,i.A)(this,"previewVm",void 0),(0,i.A)(this,"onClick",e=>{K.A.dispatch({action:$.r.ShowThread,rootEvent:this.props.mxEvent,push:this.props.isCard}),Gi.A.trackInteraction("WebRoomTimelineThreadSummaryButton",e)}),(0,i.A)(this,"onThreadUpdate",()=>{this.updateSnapshotFromProps()}),(0,i.A)(this,"onRoomUnreadNotifications",(e,t)=>{t&&t!==this.props.thread.id||this.updateNotificationSnapshot()}),(0,i.A)(this,"onNotificationChanged",()=>{this.updateNotificationSnapshot()}),this.previewVm=t,this.disposables.track(t),this.setupListeners()}dispose(){this.teardownListeners(),super.dispose()}setRootEvent(e){this.props=il(il({},this.props),{},{mxEvent:e})}setClient(e){this.props.cli!==e&&(this.props=il(il({},this.props),{},{cli:e}),this.previewVm.setClient(e))}setThread(e){this.props.thread!==e&&(this.props=il(il({},this.props),{},{thread:e}),this.previewVm.setThread(e),this.setupListeners(),this.updateSnapshotFromProps())}setRoom(e){this.props.room!==e&&(this.props=il(il({},this.props),{},{room:e}),this.previewVm.setRoom(e))}setTimelineRenderingType(e){this.props.timelineRenderingType!==e&&(this.props=il(il({},this.props),{},{timelineRenderingType:e}),this.previewVm.setTimelineRenderingType(e))}setLowBandwidth(e){this.props.lowBandwidth!==e&&(this.props=il(il({},this.props),{},{lowBandwidth:e}),this.previewVm.setLowBandwidth(e))}setUseOnlyCurrentProfiles(e){this.props.useOnlyCurrentProfiles!==e&&(this.props=il(il({},this.props),{},{useOnlyCurrentProfiles:e}),this.previewVm.setUseOnlyCurrentProfiles(e))}setNarrow(e){this.props=il(il({},this.props),{},{narrow:e}),this.previewVm.setShowDisplayName(!e),this.snapshot.merge(rl.computeLayoutSnapshot(this.props))}setIsCard(e){this.props=il(il({},this.props),{},{isCard:e})}setupListeners(){this.teardownListeners();const{thread:e}=this.props,{room:t}=e;e.on(r.juu.Update,this.onThreadUpdate),this.listenerCleanups.push(()=>{e.off(r.juu.Update,this.onThreadUpdate)}),t.on(r.u99.UnreadNotifications,this.onRoomUnreadNotifications),t.on(r.u99.Receipt,this.onNotificationChanged),t.on(r.u99.Timeline,this.onNotificationChanged),t.on(r.u99.Redaction,this.onNotificationChanged),t.on(r.u99.LocalEchoUpdated,this.onNotificationChanged),t.on(r.u99.MyMembership,this.onNotificationChanged),this.listenerCleanups.push(()=>{t.off(r.u99.UnreadNotifications,this.onRoomUnreadNotifications),t.off(r.u99.Receipt,this.onNotificationChanged),t.off(r.u99.Timeline,this.onNotificationChanged),t.off(r.u99.Redaction,this.onNotificationChanged),t.off(r.u99.LocalEchoUpdated,this.onNotificationChanged),t.off(r.u99.MyMembership,this.onNotificationChanged)})}teardownListeners(){for(const e of this.listenerCleanups)e();this.listenerCleanups=[]}updateSnapshotFromProps(){this.snapshot.merge(il(il({},rl.computeLayoutSnapshot(this.props)),{},{notificationIndicator:rl.computeNotificationIndicator(this.props)}))}updateNotificationSnapshot(){this.snapshot.merge({notificationIndicator:rl.computeNotificationIndicator(this.props)})}static computeSnapshot(e,t){return il({openThreadLabel:(0,c._t)("threads|open_thread"),previewVm:t,notificationIndicator:rl.computeNotificationIndicator(e)},rl.computeLayoutSnapshot(e))}static computeLayoutSnapshot(e){const t=e.thread.length;return{isVisible:t>0,replyCountLabel:e.narrow?String(t):(0,c._t)("threads|count_of_reply",{count:t}),narrow:e.narrow}}static computeNotificationIndicator(e){const{level:t}=(0,Ds.m5)(e.thread.room,e.thread.id,!1);return(0,Ra.W7)(t)}}function al(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function ll(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?al(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):al(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class cl extends Xe.oY8{constructor(e){super(e,cl.computeSnapshot(e)),(0,i.A)(this,"roomStateListenerCleanup",void 0),(0,i.A)(this,"updateSnapshotFromProps",()=>{this.snapshot.merge(cl.computeSnapshot(this.props))}),this.setupRoomStateListener(),this.disposables.track(()=>this.teardownRoomStateListener())}setClient(e){this.props.client!==e&&(this.props=ll(ll({},this.props),{},{client:e}),this.setupRoomStateListener(),this.updateSnapshotFromProps())}setRoomId(e){this.props.roomId!==e&&(this.props=ll(ll({},this.props),{},{roomId:e}),this.setupRoomStateListener(),this.updateSnapshotFromProps())}setKeyForwardingUserId(e){this.props.keyForwardingUserId!==e&&(this.props=ll(ll({},this.props),{},{keyForwardingUserId:e}),this.updateSnapshotFromProps())}setupRoomStateListener(){this.teardownRoomStateListener();const e=this.getForwardRoomState();e&&(e.on(r.fZ1.Events,this.updateSnapshotFromProps),this.roomStateListenerCleanup=()=>{e.off(r.fZ1.Events,this.updateSnapshotFromProps)})}teardownRoomStateListener(){var e;null===(e=this.roomStateListenerCleanup)||void 0===e||e.call(this),this.roomStateListenerCleanup=void 0}getForwardRoomState(){var e;return null===(e=this.props.client.getRoom(this.props.roomId))||void 0===e||null===(e=e.getLiveTimeline())||void 0===e?void 0:e.getState(r.qss.FORWARDS)}static computeSnapshot(e){return{displayName:cl.getDisplayName(e),userId:e.keyForwardingUserId}}static getDisplayName(e){var t,n;const i=null===(t=e.client.getRoom(e.roomId))||void 0===t||null===(t=t.getLiveTimeline())||void 0===t?void 0:t.getState(r.qss.FORWARDS),s=null==i?void 0:i.getMember(e.keyForwardingUserId);return null!==(n=null==s?void 0:s.rawDisplayName)&&void 0!==n?n:e.keyForwardingUserId}}function dl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function ml(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?dl(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dl(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class ul extends Xe.oY8{constructor(e){super(e,ul.hiddenSnapshot),(0,i.A)(this,"eventContentListener",new el),(0,i.A)(this,"previewContentCache",new Za),(0,i.A)(this,"previewRequestId",0),(0,i.A)(this,"updatePreviewInFlight",!1),(0,i.A)(this,"updatePreviewQueued",!1),(0,i.A)(this,"onEventContentChanged",()=>{this.updatePreviewSafely()}),this.disposables.track(()=>this.eventContentListener.teardown()),this.eventContentListener.setEvent(e.mxEvent,this.onEventContentChanged),this.updatePreviewSafely()}setEvent(e){this.props.mxEvent!==e&&(this.props=ml(ml({},this.props),{},{mxEvent:e}),this.eventContentListener.setEvent(e,this.onEventContentChanged),this.updatePreviewSafely())}setClient(e){this.props.cli!==e&&(this.props=ml(ml({},this.props),{},{cli:e}),this.updatePreviewSafely())}updatePreviewSafely(){this.updatePreviewInFlight?this.updatePreviewQueued=!0:this.drainPreviewUpdates()}async drainPreviewUpdates(){this.updatePreviewInFlight=!0;try{do{this.updatePreviewQueued=!1;try{await this.updatePreview()}catch(e){o.vF.error("Failed to update event preview",e)}}while(this.updatePreviewQueued&&!this.isDisposed)}finally{this.updatePreviewInFlight=!1}}async updatePreview(){const{cli:e,mxEvent:t}=this.props,n=++this.previewRequestId;if(!t||t.isRedacted()||t.isDecryptionFailure())return void this.setHidden();try{await e.decryptEventIfNeeded(t)}catch(i){return o.vF.error("Failed to decrypt event preview",i),void(this.isCurrentPreviewRequest(n,e,t)&&this.setHidden())}if(!this.isCurrentPreviewRequest(n,e,t))return;if(t.isRedacted()||t.isDecryptionFailure())return void this.setHidden();const i=tl(t,this.previewContentCache);i?this.snapshot.merge(ml({isVisible:!0},i)):this.setHidden()}isCurrentPreviewRequest(e,t,n){return!this.isDisposed&&e===this.previewRequestId&&this.props.cli===t&&this.props.mxEvent===n}setHidden(){this.snapshot.merge({isVisible:!1,previewContent:void 0,previewTooltip:void 0})}}function pl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function hl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?pl(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pl(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}(0,i.A)(ul,"hiddenSnapshot",{isVisible:!1});class gl extends Xe.oY8{constructor(e){super(e,{actions:[Xe.SB$.ViewInRoom,Xe.SB$.CopyLink],presentation:"icon",isDownloadEncrypted:!1,isDownloadLoading:!1,isPinned:!1,isQuoteExpanded:!1,isThreadReplyAllowed:!0}),(0,i.A)(this,"onViewInRoomClick",e=>{var t,n;null===(t=(n=this.props).onViewInRoomClick)||void 0===t||t.call(n,e)}),(0,i.A)(this,"onCopyLinkClick",e=>{var t,n;null===(t=(n=this.props).onCopyLinkClick)||void 0===t||t.call(n,e)})}setProps(e){this.props=hl(hl({},this.props),e)}}var vl=n("./src/Resend.ts"),_l=n("./src/utils/media/mediaVisibility.ts"),fl=n("./src/utils/FileDownloader.ts"),yl=n("./src/modules/Api.ts");function El(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function wl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?El(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):El(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class Sl extends Xe.oY8{constructor(e){super(e,Sl.buildSnapshot(e,{canDownload:!0,isDownloadLoading:!1})),(0,i.A)(this,"listenerCleanups",[]),(0,i.A)(this,"downloadPermissionRequestId",0),(0,i.A)(this,"downloadRequestId",0),(0,i.A)(this,"canDownload",!0),(0,i.A)(this,"isDownloadLoading",!1),(0,i.A)(this,"downloader",new fl.s),(0,i.A)(this,"downloadedBlob",void 0),(0,i.A)(this,"refreshSnapshot",()=>{this.snapshot.merge(this.computeSnapshot())}),(0,i.A)(this,"onRoomEvent",e=>{e&&(e.getType()!==r.Bx4.RoomPinnedEvents&&e.getType()!==r.Bx4.RoomJoinRules||this.refreshSnapshot())}),(0,i.A)(this,"onReplyClick",e=>{K.A.dispatch({action:"reply_to_event",event:this.props.mxEvent,context:this.props.timelineRenderingType})}),(0,i.A)(this,"onEditClick",e=>{(0,Ho.ju)(_.J.safeGet(),this.props.mxEvent,this.props.timelineRenderingType,this.props.getRelationsForEvent)}),(0,i.A)(this,"onResendClick",e=>{this.runActionOnFailedEv(e=>vl.A.resend(_.J.safeGet(),e))}),(0,i.A)(this,"onCancelClick",e=>{this.runActionOnFailedEv(e=>vl.A.removeFromQueue(_.J.safeGet(),e),e=>(0,Ho.d1)(e.status))}),(0,i.A)(this,"onPinClick",async e=>{const t=fr.A.isPinned(_.J.safeGet(),this.props.mxEvent);await fr.A.pinOrUnpinEvent(_.J.safeGet(),this.props.mxEvent),Gi.A.trackPinUnpinMessage(t?"Pin":"Unpin","Timeline")}),(0,i.A)(this,"onDownloadClick",async e=>{if(this.isDownloadLoading||!this.canDownload)return;const t=++this.downloadRequestId,{mxEvent:n}=this.props;try{var i;if(!this.setDownloadLoading(t,n,!0))return;const e=new nr.j(n);if(!this.downloadedBlob){const i=await e.sourceBlob.value;if(!this.isCurrentDownloadRequest(t,n))return;this.downloadedBlob=i}await this.downloader.download({blob:this.downloadedBlob,name:null!==(i=e.fileName)&&void 0!==i?i:(0,c._t)("common|image")})}catch(e){if(!this.isCurrentDownloadRequest(t,n))return;X.Ay.createDialog(sn.A,{title:(0,c._t)("timeline|download_failed"),description:`${(0,c._t)("timeline|download_failed_description")}\n\n${String(e)}`})}finally{this.setDownloadLoading(t,n,!1)}}),(0,i.A)(this,"onHideClick",e=>{(0,_l.Lh)(this.props.mxEvent,!1)}),(0,i.A)(this,"onToggleThreadExpanded",e=>{var t,n;null===(t=(n=this.props).onToggleThreadExpanded)||void 0===t||t.call(n,e)}),(0,i.A)(this,"onOptionsClick",e=>{var t,n;null===(t=(n=this.props).onOptionsClick)||void 0===t||t.call(n,e)}),(0,i.A)(this,"onReactionsClick",e=>{var t,n;null===(t=(n=this.props).onReactionsClick)||void 0===t||t.call(n,e)}),(0,i.A)(this,"onReplyInThreadClick",e=>{const{mxEvent:t,isCard:n}=this.props,i=t.getThread();null==i||!i.rootEvent||t.isThreadRoot?K.A.dispatch({action:$.r.ShowThread,rootEvent:t,push:n}):K.A.dispatch({action:$.r.ShowThread,rootEvent:i.rootEvent,initialEvent:t,scroll_into_view:!0,highlighted:!0,push:n})}),this.setupListeners()}static buildSnapshot(e,t){const n=_.J.safeGet(),i=Sl.getDerivedEventState(e,n),s=Sl.getDerivedMediaState(e.mxEvent,n,t);return{actions:Sl.resolveActions(i,s),presentation:"icon",isDownloadEncrypted:s.isDownloadEncrypted,isDownloadLoading:s.isDownloadLoading,isPinned:i.isPinned,isQuoteExpanded:i.isQuoteExpanded,isThreadReplyAllowed:i.isThreadReplyAllowed}}static resolveActions(e,t){const n=[];return e.showCancel&&e.isFailed?[Xe.SB$.Resend,Xe.SB$.Cancel]:(t.showHide&&n.push(Xe.SB$.Hide),t.showDownload&&n.push(Xe.SB$.Download),e.showReact&&n.push(Xe.SB$.React),!e.showReply&&e.showThreadForDeletedMessage&&n.push(Xe.SB$.ReplyInThread),e.showReply&&n.push(Xe.SB$.Reply),e.showReply&&e.showReplyInThread&&n.push(Xe.SB$.ReplyInThread),e.showEdit&&n.push(Xe.SB$.Edit),e.showPinOrUnpin&&n.push(Xe.SB$.Pin),e.showCancel&&n.push(Xe.SB$.Cancel),e.showExpandCollapse&&n.push(Xe.SB$.Expand),n.push(Xe.SB$.Options),n)}static getDerivedEventState(e,t){var n,i,s,o;const{mxEvent:a}=e,l=(0,Ho.qe)(a),c=null===(n=a.replacingEvent())||void 0===n?void 0:n.status,d=null===(i=a.localRedactionEvent())||void 0===i?void 0:i.status,m=null===(s=a.getRelation())||void 0===s?void 0:s.rel_type;return{showCancel:(0,Ho.d1)(a.status)||(0,Ho.d1)(c)||(0,Ho.d1)(d),showEdit:(0,Ho.wQ)(t,a),showPinOrUnpin:fr.A.canPin(t,a)||fr.A.canUnpin(t,a),showReact:l&&e.canReact&&!e.isSearch,showReply:l&&e.canSendMessages,isThreadReplyAllowed:!(m&&m!==r.zZR.Thread),showExpandCollapse:void 0!==e.isQuoteExpanded&&(0,Yo.c$)(a),showReplyInThread:l&&Sl.canShowReplyInThreadAction(e),showThreadForDeletedMessage:!l&&e.timelineRenderingType===Qo.Ae.Room&&Boolean(a.getThread()),isFailed:[a.status,c,d].includes(r.fbu.NOT_SENT),isPinned:fr.A.isPinned(t,a),isQuoteExpanded:null!==(o=e.isQuoteExpanded)&&void 0!==o&&o}}static getDerivedMediaState(e,t,n){var i;const s=(0,Ho.qe)(e),o=nr.j.isEligible(e)?new nr.j(e):void 0;return{showDownload:s&&Boolean(o)&&n.canDownload,showHide:s&&nr.j.canHide(e)&&(0,_l.t)(e,t),isDownloadEncrypted:null!==(i=null==o?void 0:o.media.isEncrypted)&&void 0!==i&&i,isDownloadLoading:n.isDownloadLoading}}computeSnapshot(){return Sl.buildSnapshot(this.props,{canDownload:this.canDownload,isDownloadLoading:this.isDownloadLoading})}static canShowReplyInThreadAction(e){const t=e.timelineRenderingType!==Qo.Ae.Thread,n=e.mxEvent.getContent(),i=![r.Wrw.KeyVerificationRequest].includes(n.msgtype)&&!r.EyL.matches(e.mxEvent.getType());return t&&i}setupListeners(){var e;this.teardownListeners();const{mxEvent:t}=this.props,n=t.getRoomId();this.trackEvent(t,r.OQv.Status,this.refreshSnapshot),this.trackEvent(t,r.OQv.Decrypted,this.refreshSnapshot),this.trackEvent(t,r.OQv.BeforeRedaction,this.refreshSnapshot),this.watchSetting("mediaPreviewConfig",null!=n?n:null),this.watchSetting("showMediaEventIds",null);const i=n?null===(e=_.J.safeGet().getRoom(n))||void 0===e?void 0:e.getLiveTimeline().getState(r.qss.FORWARDS):void 0;i&&(i.on(r.fZ1.Events,this.onRoomEvent),this.addListenerCleanup(()=>i.off(r.fZ1.Events,this.onRoomEvent))),_.J.safeGet().decryptEventIfNeeded(t),this.updateDownloadPermission(++this.downloadPermissionRequestId)}teardownListeners(){for(const e of this.listenerCleanups)e();this.listenerCleanups=[]}addListenerCleanup(e){this.listenerCleanups.push(e)}trackEvent(e,t,n){e.on(t,n),this.addListenerCleanup(()=>e.off(t,n))}watchSetting(e,t){const n=S.A.watchSetting(e,t,this.refreshSnapshot);this.addListenerCleanup(()=>S.A.unwatchSetting(n))}resetEventState(){this.downloadedBlob=void 0,this.canDownload=!0,this.isDownloadLoading=!1}isCurrentDownloadPermissionRequest(e,t){return!this.isDisposed&&e===this.downloadPermissionRequestId&&this.props.mxEvent===t}updateDownloadPermissionState(e,t,n){return!!this.isCurrentDownloadPermissionRequest(e,t)&&(this.canDownload=n,this.refreshSnapshot(),!0)}async updateDownloadPermission(e){const{mxEvent:t}=this.props,n=yl.r.instance.customComponents.getHintsForMessage(t);if(null!=n&&n.allowDownloadingMedia){if(this.updateDownloadPermissionState(e,t,!1))try{const i=await n.allowDownloadingMedia();this.updateDownloadPermissionState(e,t,i)}catch(n){o.vF.error(`Failed to check media download permission for ${t.getId()}`,n),this.updateDownloadPermissionState(e,t,!1)}}else this.updateDownloadPermissionState(e,t,!0)}isCurrentDownloadRequest(e,t){return!this.isDisposed&&e===this.downloadRequestId&&this.props.mxEvent===t}setDownloadLoading(e,t,n){return!!this.isCurrentDownloadRequest(e,t)&&(this.isDownloadLoading=n,this.refreshSnapshot(),!0)}runActionOnFailedEv(e,t){const n=null!=t?t:()=>!0,{mxEvent:i}=this.props,s=[i.localRedactionEvent(),i.replacingEvent(),i];for(const t of s)if(t&&n(t)){e(t);break}}setProps(e){const t=this.props.mxEvent,n=t.getRoomId();this.props=wl(wl({},this.props),e),this.props.mxEvent===t&&this.props.mxEvent.getRoomId()===n||(this.resetEventState(),this.setupListeners()),this.refreshSnapshot()}dispose(){this.teardownListeners(),super.dispose()}}function bl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function Al(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?bl(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bl(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class Cl extends Xe.oY8{constructor(e){super(e,Cl.createRenderState(e)),(0,i.A)(this,"messageTimestampViewModel",void 0),(0,i.A)(this,"linkedMessageTimestampViewModel",void 0),(0,i.A)(this,"threadMessagePreviewViewModel",void 0),(0,i.A)(this,"threadSummaryViewModel",void 0),(0,i.A)(this,"threadListActionBarViewModel",void 0),(0,i.A)(this,"e2eMessageSharedIconViewModel",void 0),(0,i.A)(this,"eventPreviewViewModel",void 0),(0,i.A)(this,"actionBarViewModel",void 0),(0,i.A)(this,"reactionsRowViewModel",void 0)}setProps(e){this.props=e,this.snapshot.set(Cl.createRenderState(e))}dispose(){var e,t,n,i,s,o,r,a,l;null===(e=this.messageTimestampViewModel)||void 0===e||e.dispose(),null===(t=this.linkedMessageTimestampViewModel)||void 0===t||t.dispose(),null===(n=this.threadMessagePreviewViewModel)||void 0===n||n.dispose(),null===(i=this.threadSummaryViewModel)||void 0===i||i.dispose(),null===(s=this.threadListActionBarViewModel)||void 0===s||s.dispose(),null===(o=this.e2eMessageSharedIconViewModel)||void 0===o||o.dispose(),null===(r=this.eventPreviewViewModel)||void 0===r||r.dispose(),null===(a=this.actionBarViewModel)||void 0===a||a.dispose(),null===(l=this.reactionsRowViewModel)||void 0===l||l.dispose(),super.dispose()}getMessageTimestampViewModel(e){var t;return null!==(t=this.messageTimestampViewModel)&&void 0!==t||(this.messageTimestampViewModel=new ka.s(e)),this.messageTimestampViewModel}getLinkedMessageTimestampViewModel(e){var t;return null!==(t=this.linkedMessageTimestampViewModel)&&void 0!==t||(this.linkedMessageTimestampViewModel=new ka.s(e)),this.linkedMessageTimestampViewModel}getThreadMessagePreviewViewModel(e){var t;return null!==(t=this.threadMessagePreviewViewModel)&&void 0!==t||(this.threadMessagePreviewViewModel=new ol(e)),this.threadMessagePreviewViewModel}releaseThreadMessagePreviewViewModel(){var e;null===(e=this.threadMessagePreviewViewModel)||void 0===e||e.dispose(),this.threadMessagePreviewViewModel=void 0}getThreadSummaryViewModel(e){var t;return null!==(t=this.threadSummaryViewModel)&&void 0!==t||(this.threadSummaryViewModel=new rl(e)),this.threadSummaryViewModel}releaseThreadSummaryViewModel(){var e;null===(e=this.threadSummaryViewModel)||void 0===e||e.dispose(),this.threadSummaryViewModel=void 0}getThreadListActionBarViewModel(e){var t;return null!==(t=this.threadListActionBarViewModel)&&void 0!==t||(this.threadListActionBarViewModel=new gl(e)),this.threadListActionBarViewModel}getE2eMessageSharedIconViewModel(e){var t;return null!==(t=this.e2eMessageSharedIconViewModel)&&void 0!==t||(this.e2eMessageSharedIconViewModel=new cl(e)),this.e2eMessageSharedIconViewModel}releaseE2eMessageSharedIconViewModel(){var e;null===(e=this.e2eMessageSharedIconViewModel)||void 0===e||e.dispose(),this.e2eMessageSharedIconViewModel=void 0}getEventPreviewViewModel(e){var t;return null!==(t=this.eventPreviewViewModel)&&void 0!==t||(this.eventPreviewViewModel=new ul(e)),this.eventPreviewViewModel}releaseEventPreviewViewModel(){var e;null===(e=this.eventPreviewViewModel)||void 0===e||e.dispose(),this.eventPreviewViewModel=void 0}getActionBarViewModel(e){var t;return null!==(t=this.actionBarViewModel)&&void 0!==t||(this.actionBarViewModel=new Sl(e)),this.actionBarViewModel}releaseActionBarViewModel(){var e;null===(e=this.actionBarViewModel)||void 0===e||e.dispose(),this.actionBarViewModel=void 0}getReactionsRowViewModel(e){var t;return null!==(t=this.reactionsRowViewModel)&&void 0!==t||(this.reactionsRowViewModel=new Qr(e)),this.reactionsRowViewModel}releaseReactionsRowViewModel(){var e;null===(e=this.reactionsRowViewModel)||void 0===e||e.dispose(),this.reactionsRowViewModel=void 0}static createRenderState(e){const t=Cl.createSnapshot(e),n=t.timestamp.displayState.useIRCLayout,i=!e.display.isBubbleMessage;return{snapshot:t,root:{className:un()(t.root.classState),ariaLive:t.root.ariaLive,scrollToken:t.root.scrollToken,isRenderingNotification:t.event.isRenderingNotification},line:{className:un()("mx_EventTile_line",t.line.classState)},timestamp:Al(Al({},t.timestamp),{},{showDummy:n,showInGroupLine:!n,showInIrcLine:n}),e2ePadlock:{showInGroupLine:!n&&i,showInIrcLine:n&&i},footer:Al(Al({},t.footer),{},{showInIrcLayout:n,showInDefaultLayout:!n})}}static createSnapshot(e){const{event:t,display:n,interaction:i,sender:s,timestamp:o,footer:r}=e,a=(l=n.continuation,c=n.timelineRenderingType,d=n.layout,(c===Qo.Ae.Room||c===Qo.Ae.Search||c===Qo.Ae.Thread||d===Do.P.Bubble)&&l);var l,c,d;const m=n.timelineRenderingType===Qo.Ae.Notification,u={eventType:t.eventType,msgtype:t.msgtype,isSending:t.isSending,isEditing:t.isEditing,isContinuation:a,isRenderingNotification:m},p=function({isRenderingNotification:e,isInfoMessage:t,timelineRenderingType:n,continuation:i,eventType:s,isBubbleMessage:o,layout:r,isRoomCreate:a,isCallInvite:l,isRtcNotification:c}){return e?{avatarSize:"24px",needsSenderProfile:!0}:t?{avatarSize:"14px",needsSenderProfile:!1}:n===Qo.Ae.ThreadsList||n===Qo.Ae.Thread&&!i?{avatarSize:"32px",needsSenderProfile:!0}:a||o?{avatarSize:null,needsSenderProfile:!1}:r===Do.P.IRC?{avatarSize:"14px",needsSenderProfile:!0}:i&&n!==Qo.Ae.File||l||mi.Fm.matches(s)||c?{avatarSize:null,needsSenderProfile:!1}:n===Qo.Ae.File?{avatarSize:"20px",needsSenderProfile:!0}:{avatarSize:"30px",needsSenderProfile:!0}}({isRenderingNotification:m,isInfoMessage:n.isInfoMessage,timelineRenderingType:n.timelineRenderingType,continuation:n.continuation,eventType:t.eventType,isBubbleMessage:n.isBubbleMessage,layout:n.layout,isRoomCreate:t.isRoomCreate,isCallInvite:t.isCallInvite,isRtcNotification:t.isRtcNotification}),h=function({eventTs:e,isRtcNotification:t,hideTimestamp:n,alwaysShowTimestamps:i,last:s,hover:o,focusWithin:r,actionBarFocused:a,hasContextMenu:l}){return!!e&&!t&&!n&&(i||s||o||r||a||l)}({eventTs:t.eventTs,isRtcNotification:t.isRtcNotification,hideTimestamp:o.hideTimestamp,alwaysShowTimestamps:o.alwaysShowTimestamps,last:n.isLast,hover:i.hover,focusWithin:i.focusWithin,actionBarFocused:i.isActionBarFocused,hasContextMenu:i.hasContextMenu}),g=function({timelineRenderingType:e,eventTs:t,threadReplyEventTs:n}){return e===Qo.Ae.ThreadsList&&"number"==typeof n?n:t}({timelineRenderingType:n.timelineRenderingType,eventTs:t.eventTs,threadReplyEventTs:o.threadReplyEventTs});return{event:u,root:{ariaLive:t.ariaLive,scrollToken:ya({eventId:t.eventId,isLocalEcho:t.isLocalEcho}),classState:Cl.getClassState({event:t,display:n,interaction:i,sender:s,eventType:t.eventType,msgtype:t.msgtype,isSending:t.isSending,isCallInvite:t.isCallInvite,isContinuation:a,isRenderingNotification:m})},line:{classState:Ea({isProbablyMedia:n.isProbablyMedia,eventType:t.eventType,msgtype:t.msgtype})},sender:{profileState:p,viewUserOnClick:wa(i.inhibitInteraction,n.timelineRenderingType),profileMode:Sa({needsSenderProfile:p.needsSenderProfile,hideSender:s.hideSender,timelineRenderingType:n.timelineRenderingType}),forceHistoricalAvatar:"m.room.member"===t.eventType},actionBar:{show:ba({isEditing:t.isEditing,forExport:t.forExport,hover:i.hover,showActionBarFromFocus:i.showActionBarFromFocus,actionBarFocused:i.isActionBarFocused,hasContextMenu:i.hasContextMenu})},timestamp:{show:h,value:g,displayState:Aa({layout:n.layout,showTimestamp:h,timestamp:g,hideTimestamp:o.hideTimestamp})},replyChain:{alwaysShowTimestamps:Ca({alwaysShowTimestamps:o.alwaysShowTimestamps,hover:i.hover,focusWithin:i.focusWithin})},footer:xa({hasReactionsRow:r.hasReactionsRow,hasReactions:r.hasReactions,hasPinnedMessageBadge:r.hasPinnedMessageBadge,layout:n.layout,isOwnEvent:r.isOwnEvent})}}static getClassState({event:e,display:t,interaction:n,sender:i,eventType:s,msgtype:o,isSending:r,isCallInvite:a,isContinuation:l,isRenderingNotification:c}){return function({isBubbleMessage:e,isLeftAlignedBubbleMessage:t,isAlignedBetweenBubbles:n,isEditing:i,isInfoMessage:s,isTwelveHour:o,isSending:r,isHighlighted:a,isSelected:l,isContinuation:c,eventType:d,isCallInvite:m,isLast:u,isLastInSection:p,isContextual:h,isActionBarFocused:g,isEncryptionFailure:v,msgtype:_,hideSender:f,timelineRenderingType:y,isRenderingNotification:E,noBubbleEvent:w}){return{mx_EventTile_bubbleContainer:e,mx_EventTile_leftAlignedBubble:t,mx_EventTile_alignedBetweenBubbles:n,mx_EventTile:!0,mx_EventTile_isEditing:i,mx_EventTile_info:s,mx_EventTile_12hr:o,mx_EventTile_sending:!i&&r,mx_EventTile_highlight:a,mx_EventTile_selected:l,mx_EventTile_continuation:c||m||mi.Fm.matches(d),mx_EventTile_last:u,mx_EventTile_lastInSection:p,mx_EventTile_contextual:h,mx_EventTile_actionBarFocused:g,mx_EventTile_bad:v,mx_EventTile_emote:"m.emote"===_,mx_EventTile_noSender:f,mx_EventTile_clamp:y===Qo.Ae.ThreadsList||E,mx_EventTile_noBubble:w}}({isBubbleMessage:t.isBubbleMessage,isLeftAlignedBubbleMessage:t.isLeftAlignedBubbleMessage,isAlignedBetweenBubbles:t.isAlignedBetweenBubbles,isEditing:e.isEditing,isInfoMessage:t.isInfoMessage,isTwelveHour:t.isTwelveHour,isSending:r,isHighlighted:t.isHighlighted,isSelected:t.isSelected,isContinuation:l,eventType:s,isCallInvite:a,isLast:t.isLast,isLastInSection:t.isLastInSection,isContextual:t.isContextual,isActionBarFocused:n.isActionBarFocused,isEncryptionFailure:e.isEncryptionFailure,msgtype:o,hideSender:i.hideSender,timelineRenderingType:t.timelineRenderingType,isRenderingNotification:c,noBubbleEvent:t.noBubbleEvent})}}function xl(e){return(0,zo.S8)(e)||e.getType()===r.Bx4.RoomMessageEncrypted}function kl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function Rl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?kl(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):kl(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const Il={actionBarFocused:!1,showActionBarFromFocus:!1,hover:!1,focusWithin:!1};function Tl(e){return Rl(Rl({},e),{},{hover:!1})}function Pl(e,t){return Rl(Rl({},e),{},{focusWithin:!0,showActionBarFromFocus:t})}function Nl(e){return Rl(Rl({},e),{},{focusWithin:!1,showActionBarFromFocus:!1})}function Dl(e,t,n){return Rl(Rl({},e),{},{actionBarFocused:t,hover:t?e.hover:n})}const Ml="m.annotation",Ol=r.Bx4.Reaction;var Fl=n("./src/components/structures/ViewSource.tsx");function Ll(){const e=d.A.get().bug_report_endpoint_url;if(e)return"local"===e?(0,c._t)("bug_reporting|download_logs"):(0,c._t)("bug_reporting|submit_debug_logs")}function Ul(e){return e?(0,c._t)("action|view_source"):void 0}class Vl extends Xe.oY8{constructor(e){super(e,Vl.computeSnapshot(e)),(0,i.A)(this,"onBugReportClick",()=>{this.snapshot.current.bugReportCtaLabel&&X.Ay.createDialog(rn.A,{label:"react-tile-soft-crash",error:this.props.error})}),(0,i.A)(this,"onViewSourceClick",()=>{this.snapshot.current.viewSourceCtaLabel&&X.Ay.createDialog(Fl.A,{mxEvent:this.props.mxEvent},"mx_Dialog_viewsource")})}setError(e){this.props.error=e}setDeveloperMode(e){this.props.developerMode=e;const t=Ul(e);this.snapshot.merge({viewSourceCtaLabel:t})}}(0,i.A)(Vl,"computeSnapshot",e=>({message:(0,c._t)("timeline|error_rendering_message"),eventType:e.mxEvent.getType(),bugReportCtaLabel:Ll(),viewSourceCtaLabel:Ul(e.developerMode)}));var Bl=n("./src/utils/localRoom/isLocalRoom.ts");function jl(e){switch(e){case Ee.uV.UNVERIFIED_IDENTITY:return(0,c._t)("encryption|event_shield_reason_unverified_identity");case Ee.uV.UNSIGNED_DEVICE:return(0,c._t)("encryption|event_shield_reason_unsigned_device");case Ee.uV.UNKNOWN_DEVICE:return(0,c._t)("encryption|event_shield_reason_unknown_device");case Ee.uV.AUTHENTICITY_NOT_GUARANTEED:return(0,c._t)("encryption|event_shield_reason_authenticity_not_guaranteed");case Ee.uV.MISMATCHED_SENDER_KEY:return(0,c._t)("encryption|event_shield_reason_mismatched_sender_key");case Ee.uV.SENT_IN_CLEAR:return(0,c._t)("common|unencrypted");case Ee.uV.VERIFICATION_VIOLATION:return(0,c._t)("timeline|decryption_failure|sender_identity_previously_verified");case Ee.uV.MISMATCHED_SENDER:return(0,c._t)("encryption|event_shield_reason_mismatched_sender");default:return(0,c._t)("error|unknown")}}function Hl(e){const t=function({mxEvent:e,verificationEvent:t,shieldColour:n,shieldReason:i,isRoomEncrypted:s,isLocalRoom:o}){if(o)return{kind:"none"};if(t.isDecryptionFailure())switch(t.decryptionFailureReason){case Ee.RT.SENDER_IDENTITY_PREVIOUSLY_VERIFIED:case Ee.RT.UNSIGNED_SENDER_DEVICE:return{kind:"none"};default:return{kind:"decryptionFailure"}}if(i===Ee.uV.AUTHENTICITY_NOT_GUARANTEED){const n=e.getKeyForwardingUser();if(n)return{kind:"messageShared",keyForwardingUserId:n,roomId:t.getRoomId()}}if(n!==Ee.so.NONE)return{kind:"shield",shieldColour:n,shieldReason:i};if(s){if(t.status===r.fbu.ENCRYPTING||t.status===r.fbu.NOT_SENT||t.isState()||t.isRedacted())return{kind:"none"};if(!t.isEncrypted())return{kind:"unencrypted"}}return{kind:"none"}}(e);switch(t.kind){case"none":return{kind:"none"};case"decryptionFailure":return{kind:"icon",icon:Xe.iwi.DecryptionFailure,title:(0,c._t)("timeline|undecryptable_tooltip")};case"messageShared":return{kind:"messageShared",keyForwardingUserId:t.keyForwardingUserId,roomId:t.roomId};case"unencrypted":return{kind:"icon",icon:Xe.iwi.Warning,title:(0,c._t)("common|unencrypted")};case"shield":return{kind:"icon",icon:t.shieldColour===Ee.so.GREY?Xe.iwi.Normal:Xe.iwi.Warning,title:jl(t.shieldReason)}}}function zl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function Wl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?zl(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):zl(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class Jl extends Xe.oY8{constructor(e){super(e,Jl.calculateSnapshot(e,{shieldColour:Ee.so.NONE,shieldReason:null})),(0,i.A)(this,"shieldState",{shieldColour:Ee.so.NONE,shieldReason:null}),(0,i.A)(this,"listenerCleanups",[]),(0,i.A)(this,"started",!1),(0,i.A)(this,"verificationRequestId",0),(0,i.A)(this,"onDecrypted",()=>{this.verifyEvent()}),(0,i.A)(this,"onReplaced",()=>{this.verifyEvent()}),(0,i.A)(this,"onUserVerificationChanged",e=>{e===this.props.mxEvent.getSender()&&this.verifyEvent()})}static calculateSnapshot(e,t){var n,i,s;const o=null!==(n=e.mxEvent.replacingEvent())&&void 0!==n?n:e.mxEvent,r=o.getRoomId();return Hl({mxEvent:e.mxEvent,verificationEvent:o,shieldColour:t.shieldColour,shieldReason:t.shieldReason,isRoomEncrypted:e.isRoomEncrypted,isLocalRoom:null!==(i=null===(s=e.isLocalRoom)||void 0===s?void 0:s.call(e,r))&&void 0!==i?i:(0,Bl.F)(r)})}start(){this.started||(this.started=!0,this.setupListeners(),this.verifyEvent())}setProps(e){const t=this.props,n=this.props.mxEvent;this.props=Wl(Wl({},this.props),e);const i=n!==this.props.mxEvent,s=i||t.eventSendStatus!==this.props.eventSendStatus||t.enableListeners!==this.props.enableListeners;i?(this.shieldState={shieldColour:Ee.so.NONE,shieldReason:null},this.refreshSnapshot(),this.setupListeners()):t.enableListeners!==this.props.enableListeners?this.setupListeners():t.isRoomEncrypted!==this.props.isRoomEncrypted&&this.refreshSnapshot(),s&&this.verifyEvent()}dispose(){this.teardownListeners(),super.dispose()}setupListeners(){if(this.teardownListeners(),!this.started||!this.props.enableListeners)return;const{cli:e,mxEvent:t}=this.props;e.on(Ee.cr.UserTrustStatusChanged,this.onUserVerificationChanged),this.listenerCleanups.push(()=>{e.removeListener(Ee.cr.UserTrustStatusChanged,this.onUserVerificationChanged)}),t.on(r.OQv.Decrypted,this.onDecrypted),this.listenerCleanups.push(()=>{t.removeListener(r.OQv.Decrypted,this.onDecrypted)}),t.on(r.OQv.Replaced,this.onReplaced),this.listenerCleanups.push(()=>{t.removeListener(r.OQv.Replaced,this.onReplaced)})}teardownListeners(){for(const e of this.listenerCleanups)e();this.listenerCleanups=[]}verifyEvent(){const e=++this.verificationRequestId;this.doVerifyEvent(e).catch(e=>{const t=this.props.mxEvent;o.vF.error(`Error getting encryption info on event ${t.getId()} in room ${t.getRoomId()}`,e)})}async doVerifyEvent(e){var t,n,i;const s=null!==(t=this.props.mxEvent.replacingEvent())&&void 0!==t?t:this.props.mxEvent;if(!s.isEncrypted()||s.isRedacted())return void this.setShieldState(Ee.so.NONE,null);const o=null!==(n=await(null===(i=this.props.cli.getCrypto())||void 0===i?void 0:i.getEncryptionInfoForEvent(s)))&&void 0!==n?n:null;this.isDisposed||e!==this.verificationRequestId||(null!==o?this.setShieldState(o.shieldColour,o.shieldReason):this.setShieldState(Ee.so.NONE,null))}setShieldState(e,t){this.shieldState={shieldColour:e,shieldReason:t},this.refreshSnapshot()}refreshSnapshot(){const e=Jl.calculateSnapshot(this.props,this.shieldState);(0,ui.No)(this.snapshot.current,e)&&this.snapshot.set(e)}}function Gl({cli:e,mxEvent:t,timelineRenderingType:n,forExport:i,isRedacted:s}){if(i)return!1;if(n===Qo.Ae.Notification)return!1;if(n===Qo.Ae.ThreadsList)return!1;if(s)return!1;if(t.getType()===r.Bx4.RTCNotification)return!1;const o=e.getPushActionsForEvent(t.replacingEvent()||t),a=t.replacingEvent()?e.getPushActionsForEvent(t):void 0;return!!(null!=o&&o.tweaks||null!=a&&a.tweaks)&&(t.getSender()!==e.credentials.userId&&!!(null!=o&&o.tweaks.highlight||null!=a&&a.tweaks.highlight))}var Kl=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/webrtc/call.ts");function ql({callEventGrouper:e}){return(null==e?void 0:e.hangupReason)===Kl.Il.Replaced}function $l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function Yl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$l(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$l(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class Ql extends s.Component{constructor(e,t){super(e,t),(0,i.A)(this,"suppressReadReceiptAnimation",void 0),(0,i.A)(this,"isListeningForReceipts",void 0),(0,i.A)(this,"tile",(0,s.createRef)()),(0,i.A)(this,"replyChain",(0,s.createRef)()),(0,i.A)(this,"viewModel",void 0),(0,i.A)(this,"e2eViewModel",void 0),(0,i.A)(this,"e2eViewModelSubscription",void 0),(0,i.A)(this,"ref",(0,s.createRef)()),(0,i.A)(this,"id",(0,Oo.A)()),(0,i.A)(this,"staleHoverCheckActive",!1),(0,i.A)(this,"updateThread",e=>{this.setState({thread:e})}),(0,i.A)(this,"onNewThread",e=>{if(e.id===this.props.mxEvent.getId()){this.updateThread(e);const t=_.J.safeGet().getRoom(this.props.mxEvent.getRoomId());null==t||t.off(r.juu.New,this.onNewThread)}}),(0,i.A)(this,"onViewInRoomClick",e=>{K.A.dispatch({action:$.r.ViewRoom,event_id:this.props.mxEvent.getId(),highlighted:!0,room_id:this.props.mxEvent.getRoomId(),metricsTrigger:void 0})}),(0,i.A)(this,"onCopyLinkToThreadClick",async e=>{const{permalinkCreator:t,mxEvent:n}=this.props;if(!t)return;const i=t.forEvent(n.getId());await(0,ir.nC)(i)}),(0,i.A)(this,"onRoomReceipt",(e,t)=>{t===_.J.safeGet().getRoom(this.props.mxEvent.getRoomId())&&(this.receiptState.shouldListenForReceipts||this.isListeningForReceipts)&&this.forceUpdate(()=>{this.receiptState.shouldListenForReceipts||(_.J.safeGet().removeListener(r.u99.Receipt,this.onRoomReceipt),this.isListeningForReceipts=!1)})}),(0,i.A)(this,"onDecrypted",()=>{this.forceUpdate()}),(0,i.A)(this,"onReplaced",()=>{this.forceUpdate()}),(0,i.A)(this,"onSenderProfileClick",()=>{K.A.dispatch({action:$.r.ComposerInsert,userId:this.props.mxEvent.getSender(),timelineRenderingType:this.context.timelineRenderingType})}),(0,i.A)(this,"onPermalinkClicked",e=>{e.preventDefault(),K.A.dispatch({action:$.r.ViewRoom,event_id:this.props.mxEvent.getId(),highlighted:!0,room_id:this.props.mxEvent.getRoomId(),metricsTrigger:this.context.timelineRenderingType===Qo.Ae.Search?"MessageSearch":void 0})}),(0,i.A)(this,"onActionBarFocusChange",e=>{this.setState(t=>{var n,i;return{interaction:Dl(t.interaction,e,null!==(n=null===(i=this.ref.current)||void 0===i?void 0:i.matches(":hover"))&&void 0!==n&&n)}})}),(0,i.A)(this,"onDocumentMouseMove",()=>{var e,t;!this.state.interaction.hover||null!==(e=null===(t=this.ref.current)||void 0===t?void 0:t.matches(":hover"))&&void 0!==e&&e||this.setState(e=>{return{interaction:(t=e.interaction,Tl(t))};var t})}),(0,i.A)(this,"onMouseEnter",()=>{this.setState(e=>{return{interaction:(t=e.interaction,Rl(Rl({},t),{},{hover:!0}))};var t})}),(0,i.A)(this,"onMouseLeave",()=>{this.setState(e=>({interaction:Tl(e.interaction)}))}),(0,i.A)(this,"onFocusWithin",e=>{const t=e.target.matches(":focus-visible")||"keyboard"===document.body.dataset["data-whatinput"];this.setState(e=>({interaction:Pl(e.interaction,t)}))}),(0,i.A)(this,"onBlurWithin",e=>{e.currentTarget.contains(e.relatedTarget)||this.setState(e=>({interaction:Nl(e.interaction)}))}),(0,i.A)(this,"getTile",()=>this.tile.current),(0,i.A)(this,"getReplyChain",()=>this.replyChain.current),(0,i.A)(this,"getReactions",()=>function({mxEvent:e,showReactions:t,getRelationsForEvent:n}){var i;return t&&n&&null!==(i=n(e.getId(),Ml,Ol))&&void 0!==i?i:null}({mxEvent:this.props.mxEvent,showReactions:this.props.showReactions,getRelationsForEvent:this.props.getRelationsForEvent})),(0,i.A)(this,"getAvatarMember",()=>this.props.mxEvent.getContent().third_party_invite?this.props.mxEvent.target:this.props.mxEvent.sender),(0,i.A)(this,"onReactionsCreated",(e,t)=>{(function(e,t){return e===Ml&&t===Ol})(e,t)&&this.setState({reactions:this.getReactions()})}),(0,i.A)(this,"onContextMenu",e=>{this.showContextMenu(e)}),(0,i.A)(this,"onTimestampContextMenu",e=>{var t;this.showContextMenu(e,null===(t=this.props.permalinkCreator)||void 0===t?void 0:t.forEvent(this.props.mxEvent.getId()))}),(0,i.A)(this,"onCloseMenu",()=>{this.setState(e=>{return{interaction:(t=e.interaction,Rl(Rl({},t),{},{contextMenu:void 0,actionBarFocused:!1,hover:!1}))};var t})}),(0,i.A)(this,"setQuoteExpanded",e=>{this.setState({isQuoteExpanded:e})});const n=function(e,t){var n,i;return null!==(n=null!==(i=e.getThread())&&void 0!==i?i:null==t?void 0:t.findThreadForEvent(e))&&void 0!==n?n:null}(this.props.mxEvent,_.J.safeGet().getRoom(this.props.mxEvent.getRoomId()));this.state={interaction:Il,reactions:this.getReactions(),thread:n},this.viewModel=new Cl(this.createViewModelProps()),this.e2eViewModel=new Jl({cli:_.J.safeGet(),mxEvent:this.props.mxEvent,isRoomEncrypted:this.context.isRoomEncrypted,eventSendStatus:this.props.eventSendStatus,enableListeners:!this.props.forExport}),this.suppressReadReceiptAnimation=!0,this.isListeningForReceipts=!1}get receiptState(){const e=_.J.safeGet();return function({mxEvent:e,readReceipts:t,hasRoom:n,ownUserId:i,lastSuccessful:s,eventSendStatus:o,timelineRenderingType:a}){const l=!(null!=t&&t.length)&&n&&e.getSender()===i&&xl(e),c=l&&!!s&&a!==Qo.Ae.ThreadsList&&(!o||o===r.fbu.SENT),d=l&&!!o&&o!==r.fbu.SENT;return{isEligibleForSpecialReceipt:l,shouldShowSentReceipt:c,shouldShowSendingReceipt:d,shouldListenForReceipts:c||d}}({mxEvent:this.props.mxEvent,readReceipts:this.props.readReceipts,hasRoom:!!e.getRoom(this.props.mxEvent.getRoomId()),ownUserId:e.getSafeUserId(),lastSuccessful:this.props.lastSuccessful,eventSendStatus:this.props.eventSendStatus,timelineRenderingType:this.context.timelineRenderingType})}componentDidMount(){this.suppressReadReceiptAnimation=!1,this.e2eViewModelSubscription=this.e2eViewModel.subscribe(()=>{this.forceUpdate()}),this.e2eViewModel.start();const e=_.J.safeGet();this.props.forExport||(this.props.mxEvent.on(r.OQv.Decrypted,this.onDecrypted),this.props.mxEvent.on(r.OQv.Replaced,this.onReplaced),cr.instance.addVisibleEvent(this.props.mxEvent),this.props.showReactions&&this.props.mxEvent.on(r.OQv.RelationsCreated,this.onReactionsCreated),this.receiptState.shouldListenForReceipts&&(e.on(r.u99.Receipt,this.onRoomReceipt),this.isListeningForReceipts=!0)),this.props.mxEvent.on(r.juu.Update,this.updateThread),e.decryptEventIfNeeded(this.props.mxEvent);const t=e.getRoom(this.props.mxEvent.getRoomId());null==t||t.on(r.juu.New,this.onNewThread)}shouldComponentUpdate(e,t){return!!(0,ui.No)(this.state,t)||!this.propsEqual(this.props,e)}componentWillUnmount(){var e;this.stopStaleHoverCheck();const t=_.J.get();if(t){t.removeListener(r.u99.Receipt,this.onRoomReceipt);const e=t.getRoom(this.props.mxEvent.getRoomId());null==e||e.off(r.juu.New,this.onNewThread)}this.isListeningForReceipts=!1,this.props.mxEvent.removeListener(r.OQv.Decrypted,this.onDecrypted),this.props.mxEvent.removeListener(r.OQv.Replaced,this.onReplaced),this.props.showReactions&&this.props.mxEvent.removeListener(r.OQv.RelationsCreated,this.onReactionsCreated),this.props.mxEvent.off(r.juu.Update,this.updateThread),null===(e=this.e2eViewModelSubscription)||void 0===e||e.call(this),this.e2eViewModelSubscription=void 0,this.e2eViewModel.dispose(),this.viewModel.dispose(),this.props.resizeObserver&&this.ref.current&&this.props.resizeObserver.unobserve(this.ref.current)}componentDidUpdate(e,t){!t.interaction.hover&&this.state.interaction.hover?this.startStaleHoverCheck():t.interaction.hover&&!this.state.interaction.hover&&this.stopStaleHoverCheck(),!this.isListeningForReceipts&&this.receiptState.shouldListenForReceipts&&(_.J.safeGet().on(r.u99.Receipt,this.onRoomReceipt),this.isListeningForReceipts=!0),this.e2eViewModel.setProps({mxEvent:this.props.mxEvent,isRoomEncrypted:this.context.isRoomEncrypted,eventSendStatus:this.props.eventSendStatus,enableListeners:!this.props.forExport}),this.props.resizeObserver&&this.ref.current&&this.props.resizeObserver.observe(this.ref.current),this.state.interaction.focusWithin&&this.ref.current&&document.activeElement instanceof HTMLElement&&!this.ref.current.contains(document.activeElement)&&this.setState(e=>({interaction:Nl(e.interaction)}))}get threadState(){return function({mxEvent:e,thread:t,timelineRenderingType:n,highlightLink:i}){var s;const o=!!t&&t.id===e.getId(),r=function(e,t){return e?t?{kind:"link",href:t}:{kind:"text"}:{kind:"none"}}(!o&&n===Qo.Ae.Search&&!!e.threadRootId,i);return{thread:t,shouldShowThreadSummary:o,shouldShowThreadPanelSummary:!!t,threadReplyEventTs:null==t||null===(s=t.replyToEvent)||void 0===s?void 0:s.getTs(),searchThreadInfo:r}}({mxEvent:this.props.mxEvent,thread:this.state.thread,timelineRenderingType:this.context.timelineRenderingType,highlightLink:this.props.highlightLink})}propsEqual(e,t){const n=Object.keys(e),i=Object.keys(t);if(n.length!==i.length)return!1;for(let i=0;i<n.length;i++){const s=n[i];if(!t.hasOwnProperty(s))return!1;if("readReceipts"===s){const n=e[s],i=t[s];if(n===i)continue;if(!n||!i)return!1;if(n.length!==i.length)return!1;for(let e=0;e<n.length;e++){if(n[e].userId!==i[e].userId)return!1;if(n[e].roomMember!==i[e].roomMember)return!1}}else if(e[s]!==t[s])return!1}return!0}renderE2EPadlock(){const e=this.e2eViewModel.getSnapshot();switch(e.kind){case"none":return null;case"messageShared":return s.createElement(br,{eventTileViewModel:this.viewModel,keyForwardingUserId:e.keyForwardingUserId,roomId:e.roomId});case"icon":return s.createElement(Sr,{icon:e.icon,title:e.title})}}startStaleHoverCheck(){this.staleHoverCheckActive||(document.addEventListener("mousemove",this.onDocumentMouseMove,!0),this.staleHoverCheckActive=!0)}stopStaleHoverCheck(){this.staleHoverCheckActive&&(document.removeEventListener("mousemove",this.onDocumentMouseMove,!0),this.staleHoverCheckActive=!1)}showContextMenu(e,t){var n;const i=e.target,s=i instanceof HTMLAnchorElement?i:i.closest("a");i instanceof HTMLImageElement||(null!==(n=l.A.get())&&void 0!==n&&n.allowOverridingNativeContextMenus()||!s)&&(this.props.editState||(e.preventDefault(),e.stopPropagation(),this.setState(n=>{return{interaction:(i=n.interaction,o={position:{left:e.clientX,top:e.clientY,bottom:e.clientY},link:(null==s?void 0:s.href)||t},Rl(Rl({},i),{},{contextMenu:o,actionBarFocused:!0,hover:!1}))};var i,o})))}createMessageTimestampProps(e){var t;return{showRelative:this.context.timelineRenderingType===Qo.Ae.ThreadsList,showTwelveHour:this.props.isTwelveHour,ts:e,receivedTs:null===(t=_r(this.props.mxEvent))||void 0===t?void 0:t.received_ts}}createLinkedMessageTimestampProps(e){return Yl(Yl({},e),{},{href:this.getPermalink(),onClick:this.onPermalinkClicked,onContextMenu:this.onTimestampContextMenu})}getPermalink(){return this.props.permalinkCreator?this.props.permalinkCreator.forEvent(this.props.mxEvent.getId()):"#"}createRootAttributes({tileClasses:e,tileAriaLive:t,scrollToken:n}){return{className:e,"aria-live":t,"aria-atomic":!0,"data-scroll-tokens":n}}createInteractiveRootAttributes(e){return Yl(Yl({},this.createRootAttributes(e)),{},{ref:this.ref,onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave,onFocus:this.onFocusWithin,onBlur:this.onBlurWithin})}createRenderTileProps({replacingEventId:e,isSeeingThroughMessageHiddenForModeration:t,permalinkCreator:n=this.props.permalinkCreator}){return Yl(Yl(Yl({},this.props),{},{ref:this.tile},void 0===e?{}:{replacingEventId:e}),{},{isSeeingThroughMessageHiddenForModeration:t,highlights:this.props.highlights,highlightLink:this.props.highlightLink,permalinkCreator:n,showHiddenEvents:this.context.showHiddenEvents})}createRenderInputs(e=Wo(_.J.safeGet(),this.props.mxEvent,this.context.showHiddenEvents,ql({callEventGrouper:this.props.callEventGrouper}))){var t;const n=(0,zo.S8)(this.props.mxEvent)&&this.props.isRedacted;return{displayInfo:e,hasPinnedMessageBadge:fr.A.isPinned(_.J.safeGet(),this.props.mxEvent),hasReactionsRow:!n,threadState:this.threadState,isOwnEvent:(null===(t=this.props.mxEvent)||void 0===t?void 0:t.getSender())===_.J.safeGet().getUserId()}}createViewModelProps(e=this.createRenderInputs()){var t;const{displayInfo:n,hasPinnedMessageBadge:i,hasReactionsRow:s,threadState:o,isOwnEvent:a}=e,l=nr.j.isEligible(this.props.mxEvent),c=this.props.mxEvent.isDecryptionFailure(),d=!!this.props.editState,m=this.props.mxEvent.getType(),u=this.props.mxEvent.getContent().msgtype,p=this.props.eventSendStatus===r.fbu.SENDING||this.props.eventSendStatus===r.fbu.QUEUED||this.props.eventSendStatus===r.fbu.ENCRYPTING;return{event:{eventType:m,msgtype:u,eventTs:this.props.mxEvent.getTs(),eventId:null!==(t=this.props.mxEvent.getId())&&void 0!==t?t:void 0,isLocalEcho:!!this.props.mxEvent.status,isSending:p,ariaLive:null===this.props.eventSendStatus?void 0:"off",isRoomCreate:m===r.Bx4.RoomCreate,isCallInvite:m===r.Bx4.CallInvite,isRtcNotification:m===r.Bx4.RTCNotification,isEditing:d,isEncryptionFailure:c,forExport:this.props.forExport},display:{timelineRenderingType:this.context.timelineRenderingType,layout:this.props.layout,continuation:this.props.continuation,isProbablyMedia:l,isBubbleMessage:n.isBubbleMessage,isLeftAlignedBubbleMessage:n.isLeftAlignedBubbleMessage,isAlignedBetweenBubbles:n.isAlignedBetweenBubbles,isInfoMessage:n.isInfoMessage,noBubbleEvent:n.noBubbleEvent,isTwelveHour:this.props.isTwelveHour,isHighlighted:Gl({cli:_.J.safeGet(),mxEvent:this.props.mxEvent,timelineRenderingType:this.context.timelineRenderingType,forExport:this.props.forExport,isRedacted:this.props.isRedacted}),isSelected:this.props.isSelectedEvent||!!this.state.interaction.contextMenu,isLast:this.props.last,isLastInSection:this.props.lastInSection,isContextual:this.props.contextual},interaction:{hover:this.state.interaction.hover,showActionBarFromFocus:this.state.interaction.showActionBarFromFocus,focusWithin:this.state.interaction.focusWithin,isActionBarFocused:this.state.interaction.actionBarFocused,hasContextMenu:!!this.state.interaction.contextMenu,inhibitInteraction:this.props.inhibitInteraction},sender:{hideSender:this.props.hideSender},timestamp:{alwaysShowTimestamps:this.props.alwaysShowTimestamps,hideTimestamp:this.props.hideTimestamp,threadReplyEventTs:o.threadReplyEventTs},footer:{isOwnEvent:a,hasReactionsRow:s,hasReactions:!!this.state.reactions,hasPinnedMessageBadge:i}}}renderContextMenu(){if(!this.state.interaction.contextMenu)return null;const e=this.getTile(),t=this.getReplyChain(),n=null!=e&&e.getEventTileOps?e.getEventTileOps():void 0,i=null!=t&&t.canCollapse()?t.collapse:void 0;return s.createElement(er.A,(0,xn.A)({},(0,tr.ps)(this.state.interaction.contextMenu.position),{mxEvent:this.props.mxEvent,permalinkCreator:this.props.permalinkCreator,eventTileOps:n,collapseReplyChain:i,onFinished:this.onCloseMenu,rightClick:!0,reactions:this.state.reactions,link:this.state.interaction.contextMenu.link,getRelationsForEvent:this.props.getRelationsForEvent}))}render(){const e=this.props.mxEvent.getType(),t=this.props.mxEvent.replacingEventId(),n=Wo(_.J.safeGet(),this.props.mxEvent,this.context.showHiddenEvents,ql({callEventGrouper:this.props.callEventGrouper})),{hasRenderer:i,isSeeingThroughMessageHiddenForModeration:r}=n,{isQuoteExpanded:a}=this.state;if(!i){const{mxEvent:t}=this.props;return o.vF.warn(`Event type not supported: type:${e} isState:${t.isState()}`),s.createElement("div",{className:"mx_EventTile mx_EventTile_info mx_MNoticeBody"},s.createElement("div",{className:"mx_EventTile_line"},(0,c._t)("timeline|error_no_renderer")))}const l=this.createRenderInputs(n),{hasPinnedMessageBadge:d,hasReactionsRow:m,threadState:u,isOwnEvent:p}=l;this.viewModel.setProps(this.createViewModelProps(l));const h=this.viewModel.getSnapshot(),g=h.snapshot,v=h.line.className,f=h.root.className,y=h.root.ariaLive,E=h.root.isRenderingNotification,w=this.getPermalink(),S={tileClasses:f,tileAriaLive:y,scrollToken:h.root.scrollToken},b=this.getAvatarMember(),A=s.createElement(Lr,{avatarMember:b,senderSnapshot:g.sender}),C=s.createElement(Ur,{mxEvent:this.props.mxEvent,senderSnapshot:g.sender,onSenderProfileClick:this.onSenderProfileClick}),x=g.actionBar.show?s.createElement(wr,{eventTileViewModel:this.viewModel,mxEvent:this.props.mxEvent,reactions:this.state.reactions,permalinkCreator:this.props.permalinkCreator,getTile:this.getTile,getReplyChain:this.getReplyChain,onFocusChange:this.onActionBarFocusChange,isQuoteExpanded:a,toggleThreadExpanded:()=>this.setQuoteExpanded(!a),getRelationsForEvent:this.props.getRelationsForEvent}):void 0,k=h.timestamp.value,R=this.createMessageTimestampProps(k),I=this.createLinkedMessageTimestampProps(R),T=s.createElement(fa,{eventTileViewModel:this.viewModel,kind:"plain",timestampProps:R,showTimestamp:h.timestamp.displayState.showRealTimestamp,showDummy:h.timestamp.showDummy}),P=s.createElement(fa,{eventTileViewModel:this.viewModel,kind:"linked",timestampProps:I,showTimestamp:h.timestamp.displayState.showLinkedTimestamp,showDummy:h.timestamp.showDummy}),N=h.timestamp.showInGroupLine?P:null,D=h.timestamp.showInIrcLine?P:null,M=h.e2ePadlock.showInGroupLine&&this.renderE2EPadlock(),O=h.e2ePadlock.showInIrcLine&&this.renderE2EPadlock(),F=s.createElement(Or,{receiptState:this.receiptState,eventSendStatus:this.props.eventSendStatus,showReadReceipts:this.props.showReadReceipts,readReceipts:this.props.readReceipts,readReceiptMap:this.props.readReceiptMap,checkUnmounting:this.props.checkUnmounting,suppressAnimation:this.suppressReadReceiptAnimation,isTwelveHour:this.props.isTwelveHour}),L=function({mxEvent:e,hasRenderer:t}){return{shouldShowReplyChain:t&&(0,Yo.c$)(e)}}({mxEvent:this.props.mxEvent,hasRenderer:(0,zo.bN)(this.props.mxEvent,_.J.safeGet(),this.context.showHiddenEvents)});let U;L.shouldShowReplyChain&&(U=s.createElement(Xo,{parentEv:this.props.mxEvent,ref:this.replyChain,forExport:this.props.forExport,permalinkCreator:this.props.permalinkCreator,alwaysShowTimestamps:g.replyChain.alwaysShowTimestamps,isQuoteExpanded:a,setQuoteExpanded:this.setQuoteExpanded,getRelationsForEvent:this.props.getRelationsForEvent}));const{hasFooter:V,showMainPinnedMessageBadge:B,showBubblePinnedMessageBadge:j}=h.footer;switch(this.context.timelineRenderingType){case Qo.Ae.Thread:return s.createElement(this.props.as||"li",Yl(Yl({},this.createInteractiveRootAttributes(S)),{},{"data-has-reply":!!U,"data-layout":this.props.layout,"data-self":p,"data-event-id":this.props.mxEvent.getId()}),[s.createElement("div",{className:"mx_EventTile_senderDetails",key:"mx_EventTile_senderDetails"},A,C),s.createElement("div",{id:this.id,className:v,key:"mx_EventTile_line",onContextMenu:this.onContextMenu},this.renderContextMenu(),U,(0,zo.rd)(Qo.Ae.Thread,this.createRenderTileProps({replacingEventId:t,isSeeingThroughMessageHiddenForModeration:r,permalinkCreator:this.props.permalinkCreator})),x,P,F),s.createElement(na,{key:"mx_EventTile_footer",eventTileViewModel:this.viewModel,mxEvent:this.props.mxEvent,reactions:this.state.reactions,hasFooter:V,hasPinnedMessageBadge:d,hasReactionsRow:m,pinnedMessageBadgeAriaDescribedBy:this.id,placement:"default",showMainPinnedMessageBadge:B,showBubblePinnedMessageBadge:j})]);case Qo.Ae.Notification:case Qo.Ae.ThreadsList:{const e=_.J.safeGet().getRoom(this.props.mxEvent.getRoomId());return s.createElement(this.props.as||"li",Yl(Yl({},this.createInteractiveRootAttributes(S)),{},{tabIndex:-1,"data-layout":this.props.layout,"data-shape":this.context.timelineRenderingType,"data-self":p,"data-has-reply":!!U,onClick:e=>{const t=e.currentTarget;let n=-1;switch(t.parentElement&&(n=Array.from(t.parentElement.children).indexOf(t)),this.context.timelineRenderingType){case Qo.Ae.Notification:this.onViewInRoomClick(null);break;case Qo.Ae.ThreadsList:K.A.dispatch({action:$.r.ShowThread,rootEvent:this.props.mxEvent,push:!0}),Gi.A.trackInteraction("WebThreadsPanelThreadItem",e,null!=n?n:-1)}}}),s.createElement(s.Fragment,null,s.createElement("div",{className:"mx_EventTile_details"},C,E&&e?s.createElement("span",{className:"mx_EventTile_truncated"}," ",(0,c._t)("timeline|in_room_name",{room:e.name},{strong:e=>s.createElement("strong",null,e)})):"",T,s.createElement(vr,{room:e||void 0,threadId:this.props.mxEvent.getId(),forceDot:!0})),E&&e?s.createElement("div",{className:"mx_EventTile_avatar"},s.createElement(ms.A,{room:e,size:"28px"})):A,s.createElement("div",{className:v,key:"mx_EventTile_line"},s.createElement(oa,{eventTileViewModel:this.viewModel,mxEvent:this.props.mxEvent}),s.createElement(ma,{eventTileViewModel:this.viewModel,threadState:u})),this.context.timelineRenderingType===Qo.Ae.ThreadsList&&s.createElement(Vr,{eventTileViewModel:this.viewModel,onViewInRoomClick:this.onViewInRoomClick,onCopyLinkClick:this.onCopyLinkToThreadClick,className:"mx_ThreadActionBar"}),F))}case Qo.Ae.File:return s.createElement(this.props.as||"li",this.createRootAttributes(S),[s.createElement("a",{className:"mx_EventTile_senderDetailsLink",key:"mx_EventTile_senderDetailsLink",href:w,onClick:this.onPermalinkClicked},s.createElement("div",{className:"mx_EventTile_senderDetails",onContextMenu:this.onTimestampContextMenu},A,C,T)),s.createElement("div",{className:v,key:"mx_EventTile_line",onContextMenu:this.onContextMenu},this.renderContextMenu(),(0,zo.rd)(Qo.Ae.File,this.createRenderTileProps({isSeeingThroughMessageHiddenForModeration:r})))]);default:return s.createElement(this.props.as||"li",Yl(Yl({},this.createInteractiveRootAttributes(S)),{},{tabIndex:-1,"data-layout":this.props.layout,"data-self":p,"data-event-id":this.props.mxEvent.getId(),"data-has-reply":!!U}),s.createElement(s.Fragment,null,D,C,O,A,s.createElement("div",{id:this.id,className:v,key:"mx_EventTile_line",onContextMenu:this.onContextMenu},this.renderContextMenu(),N,M,U,(0,zo.rd)(this.context.timelineRenderingType,this.createRenderTileProps({isSeeingThroughMessageHiddenForModeration:r})),x,h.footer.showInIrcLayout&&s.createElement(s.Fragment,null,s.createElement(na,{eventTileViewModel:this.viewModel,mxEvent:this.props.mxEvent,reactions:this.state.reactions,hasFooter:V,hasPinnedMessageBadge:d,hasReactionsRow:m,pinnedMessageBadgeAriaDescribedBy:this.id,placement:"irc"}),s.createElement(ua,{eventTileViewModel:this.viewModel,mxEvent:this.props.mxEvent,threadState:u}))),h.footer.showInDefaultLayout&&s.createElement(s.Fragment,null,s.createElement(na,{eventTileViewModel:this.viewModel,mxEvent:this.props.mxEvent,reactions:this.state.reactions,hasFooter:V,hasPinnedMessageBadge:d,hasReactionsRow:m,pinnedMessageBadgeAriaDescribedBy:this.id,placement:"default",showMainPinnedMessageBadge:B,showBubblePinnedMessageBadge:j}),s.createElement(ua,{eventTileViewModel:this.viewModel,mxEvent:this.props.mxEvent,threadState:u})),F))}}}function Xl({error:e,mxEvent:t}){const n=(0,es.ti)("developerMode"),i=(0,Xe.s2q)(()=>new Vl({error:e,mxEvent:t,developerMode:n}));return(0,s.useEffect)(()=>{i.setError(e)},[e,i]),(0,s.useEffect)(()=>{i.setDeveloperMode(n)},[n,i]),s.createElement(Xe.aGL,{vm:i,className:"mx_EventTile mx_EventTile_info mx_EventTile_content"})}(0,i.A)(Ql,"defaultProps",{forExport:!1,layout:Do.P.Group}),(0,i.A)(Ql,"contextType",Qo.Ay);class Zl extends s.Component{constructor(e){super(e),this.state={}}static getDerivedStateFromError(e){return{error:e}}render(){return this.state.error?s.createElement(Xl,{error:this.state.error,mxEvent:this.props.mxEvent}):this.props.children}}const ec=e=>s.createElement(Zl,{mxEvent:e.mxEvent},s.createElement(Ql,e));var tc=n("./src/components/views/avatars/DecoratedRoomAvatar.tsx"),nc=n("./src/utils/room/sortRoomsByRecency.ts"),ic=n("./src/autocomplete/QueryMatcher.ts"),sc=n("./src/components/views/elements/TruncatedList.tsx"),oc=n("./src/utils/location/index.ts");const rc=["room","component"];function ac(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function lc(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ac(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ac(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function cc(e){let{room:t,component:n}=e,i=(0,v.A)(e,rc);const o=function(e){const t=Q.A.shared().getUserIdForRoomId(e.roomId),n=e.getMembers().length>2;if(!e.isSpaceRoom()&&t&&!n)return{details:t};const[i,s,...o]=gs._.instance.spaceStore.getKnownParents(e.roomId);if(s&&(null==o||!o.length)){var r,a;const t=null===(r=e.client.getRoom(i))||void 0===r?void 0:r.name,n=null===(a=e.client.getRoom(s))||void 0===a?void 0:a.name;return{details:(0,C.ki)([null!=t?t:"",null!=n?n:""]),ariaLabel:(0,c._t)("in_space1_and_space2",{space1Name:t,space2Name:n})}}if(i){var l,d;const t=null!==(l=null===(d=e.client.getRoom(i))||void 0===d?void 0:d.name)&&void 0!==l?l:"",n=o.length;return n>0?{details:(0,C.ki)([t,...o],1),ariaLabel:(0,c._t)("in_space_and_n_other_spaces",{spaceName:t,count:n})}:{details:t,ariaLabel:(0,c._t)("in_space",{spaceName:t})}}return{details:e.getCanonicalAlias()}}(t);return o?s.createElement(null!=n?n:"div",lc(lc({},i),{},{"aria-label":o.ariaLabel}),[o.details]):s.createElement(s.Fragment,null)}var dc=n("./src/KeyBindingsManager.ts"),mc=n("./src/accessibility/KeyboardShortcuts.ts"),uc=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/overflow-horizontal.js"),pc=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/chevron-right.js");const hc=({remaining:e,onClick:t})=>s.createElement(Ve.A,{onClick:t,className:"mx_OverflowTileView"},s.createElement("div",{className:"mx_OverflowTileView_icon"},s.createElement(uc.A,{height:"36px",width:"36px"})),s.createElement("div",{className:"mx_OverflowTileView_text"},(0,c._t)("common|and_n_others",{count:e})),s.createElement(pc.A,{className:"mx_OverflowTileView_chevron"}));var gc=n("./src/utils/messages.ts"),vc=n("./src/editor/parts.ts"),_c=n("./src/editor/deserialize.ts"),fc=n("./src/editor/model.ts");const yc=["m.relates_to"];function Ec(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function wc(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ec(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ec(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var Sc=function(e){return e[e.CanSend=0]="CanSend",e[e.Sending=1]="Sending",e[e.Sent=2]="Sent",e[e.Failed=3]="Failed",e}(Sc||{});const bc=({room:e,type:t,content:n,matrixClient:i,onFinished:o})=>{const[r,a]=(0,s.useState)(Sc.CanSend),[l,d,m]=(0,Pr.A9)();let u,p,h,g=!1;r===Sc.CanSend?(u="mx_ForwardList_canSend",e.maySendMessage()||(g=!0,p=(0,c._t)("forward|no_perms_title"))):r===Sc.Sending?(u="mx_ForwardList_sending",g=!0,p=(0,c._t)("forward|sending"),h=s.createElement(Po.A,{"aria-label":p})):r===Sc.Sent?(u="mx_ForwardList_sent",g=!0,p=(0,c._t)("forward|sent"),h=s.createElement(No.A,{"aria-label":p})):(u="mx_ForwardList_sendFailed",g=!0,p=(0,c._t)("timeline|send_state_failed"),h=s.createElement(kr.A,{notification:xr.RED_EXCLAMATION}));const v=`mx_ForwardDialog_entry_${e.roomId}`;return s.createElement("div",{className:un()("mx_ForwardList_entry",{mx_ForwardList_entry_active:d}),"aria-labelledby":`${v}_name`,"aria-describedby":`${v}_send`,role:"listitem",ref:m,onFocus:l,id:v},s.createElement(Ve.A,{className:"mx_ForwardList_roomButton",onClick:t=>{K.A.dispatch({action:$.r.ViewRoom,room_id:e.roomId,metricsTrigger:"WebForwardShortcut",metricsViaKeyboard:"click"!==t.type}),o(!0)},title:(0,c._t)("forward|open_room"),placement:"top",tabIndex:d?0:-1},s.createElement(tc.A,{room:e,size:"32px",tooltipProps:{tabIndex:d?0:-1}}),s.createElement("span",{className:"mx_ForwardList_entry_name",id:`${v}_name`},e.name),s.createElement(cc,{component:"span",className:"mx_ForwardList_entry_detail",room:e})),s.createElement(Ve.A,{kind:r===Sc.Failed?"danger_outline":"primary_outline",className:`mx_ForwardList_sendButton ${u}`,onClick:async()=>{a(Sc.Sending);try{await i.sendEvent(e.roomId,t,n),a(Sc.Sent)}catch{a(Sc.Failed)}},disabled:g,title:p,placement:"top",tabIndex:d?0:-1,id:`${v}_send`},s.createElement("div",{className:"mx_ForwardList_sendLabel"},(0,c._t)("forward|send_label")),h))},Ac=({matrixClient:e,event:t,permalinkCreator:n,onFinished:i})=>{const o=e.getSafeUserId(),[a,l]=(0,s.useState)({});(0,s.useEffect)(()=>{e.getProfileInfo(o).then(e=>l(e))},[e,o]);const{type:d,content:m}=((e,t)=>{const n=e.getContent(),{"m.relates_to":i}=n,s=(0,v.A)(n,yc),o=r.zBs.matches(e.getType())?r.Bx4.RoomMessage:e.getType();if((0,Ho.wq)(e)&&(0,oc.qy)(s)||r.zBs.matches(e.getType())){const t=r.vo8.findIn(s),n=(0,oc.jm)(e);return{type:o,content:wc(wc({},s),r.Xcy.makeLocationContent(void 0,n,t||Date.now(),void 0,r.Ygn.Pin))}}const a=t.getRoom(e.getRoomId()),l=new vc.dK(a,t),c=(0,_c.wj)(e,l,{shouldEscape:S.A.getValue("MessageComposerInput.useMarkdown")}),d=new fc.A(c,l),m=t.getSafeUserId();return(0,gc.LO)(m,s,d,void 0),{type:o,content:s}})(t,e),u=new r.klx({type:"m.room.message",sender:o,content:m,unsigned:{age:97},event_id:"$9999999999999999999999999999999999999999999",room_id:t.getRoomId(),origin_server_ts:t.getTs()});u.sender={name:a.displayname||o,rawDisplayName:a.displayname,userId:o,getAvatarUrl:(...e)=>(0,Mo.r4)({avatarUrl:a.avatar_url},30,30,"crop"),getMxcAvatarUrl:()=>a.avatar_url};const[p,h]=(0,s.useState)(""),g=p.toLowerCase(),_=(0,es.ti)("layout"),f=(0,es.ti)("feature_dynamic_room_predecessors");let y=(0,s.useMemo)(()=>(0,nc.f)(e.getVisibleRooms(f).filter(e=>e.getMyMembership()===$n.O.Join&&!e.isSpaceRoom()),e.getSafeUserId()),[e,f]);g&&(y=new ic.A(y,{keys:["name"],funcs:[e=>(0,Me.Bo)([e.getCanonicalAlias(),...e.getAltAliases()])],shouldMatchWordsOnly:!1}).match(g));const[E,w]=(0,s.useState)(20);function b(e,t){return s.createElement(hc,{remaining:e,onClick:()=>w(t)})}return s.createElement(ke.A,{title:(0,c._t)("common|forward_message"),className:"mx_ForwardDialog",contentId:"mx_ForwardList",onFinished:i,fixedWidth:!1},s.createElement("h3",null,(0,c._t)("forward|message_preview_heading")),s.createElement("div",{className:un()("mx_ForwardDialog_preview",{mx_IRCLayout:_==Do.P.IRC})},s.createElement(ec,{mxEvent:u,layout:_,permalinkCreator:n,as:"div",inhibitInteraction:!0})),s.createElement("hr",null),s.createElement(Pr.Se,{handleUpDown:!0,handleInputFields:!0,onKeyDown:(e,t)=>{let n=!0;var i;(0,dc.zM)().getAccessibilityAction(e)===mc.bY.Enter?null===(i=t.activeNode)||void 0===i||null===(i=i.querySelector(".mx_ForwardList_sendButton"))||void 0===i||i.click():n=!1;n&&(e.preventDefault(),e.stopPropagation())},scrollIntoView:{block:"center"}},({onKeyDownHandler:t})=>s.createElement("div",{className:"mx_ForwardList",id:"mx_ForwardList"},s.createElement(Pr.ui.Consumer,null,e=>{var n;return s.createElement(ps.A,{className:"mx_textinput_icon mx_textinput_search",placeholder:(0,c._t)("forward|filter_placeholder"),onSearch:t=>{h(t),setTimeout(()=>{const t=e.state.nodes[0];var n;t&&(e.dispatch({type:Pr.fG.SetFocus,payload:{node:t}}),null==t||null===(n=t.scrollIntoView)||void 0===n||n.call(t,{block:"nearest"}))})},autoFocus:!0,onKeyDown:t,"aria-activedescendant":null===(n=e.state.activeNode)||void 0===n?void 0:n.id,"aria-owns":"mx_ForwardDialog_resultsList"})}),s.createElement(Xe.qme,{className:"mx_AutoHideScrollbar mx_ForwardList_content"},y.length>0?s.createElement("div",{className:"mx_ForwardList_results"},s.createElement(sc.A,{id:"mx_ForwardDialog_resultsList",className:"mx_ForwardList_resultsList",truncateAt:E,createOverflowElement:b,getChildren:(t,n)=>y.slice(t,n).map(t=>s.createElement(bc,{key:t.roomId,room:t,type:d,content:m,matrixClient:e,onFinished:i})),getChildCount:()=>y.length})):s.createElement("span",{className:"mx_ForwardList_noResults"},(0,c._t)("common|no_results"))))))};var Cc=n("./src/Markdown.ts");class xc extends s.Component{constructor(e){super(e),(0,i.A)(this,"onIgnoreUserTooChanged",e=>{this.setState({ignoreUserToo:e})}),(0,i.A)(this,"onReasonChange",({target:{value:e}})=>{this.setState({reason:e})}),(0,i.A)(this,"onCancel",()=>{this.props.onFinished(!1)}),(0,i.A)(this,"onSubmit",async()=>{let e=this.state.reason||"";if(e=e.trim(),e){this.setState({busy:!0,err:void 0});try{const e=_.J.safeGet(),t=this.props.mxEvent;await e.reportEvent(t.getRoomId(),t.getId(),-100,this.state.reason.trim()),this.state.ignoreUserToo&&await e.setIgnoredUsers([...e.getIgnoredUsers(),t.getSender()]),this.props.onFinished(!0)}catch(e){o.vF.error(e),this.setState({busy:!1,err:e instanceof Error?e.message:String(e)})}}else this.setState({err:(0,c._t)("report_content|missing_reason")})}),this.state={reason:"",busy:!1,err:void 0,ignoreUserToo:!1}}render(){var e;let t,n;this.state.err&&(t=s.createElement("div",{className:"error"},this.state.err)),this.state.busy&&(n=s.createElement("div",{className:"progress"},s.createElement(Be.A,null)));const i=s.createElement(bs,{value:this.state.ignoreUserToo,label:(0,c._t)("report_content|ignore_user"),byline:(0,c._t)("report_content|hide_messages_from_user"),onChange:this.onIgnoreUserTooChanged,disabled:this.state.busy}),o=null===(e=d.A.getObject("report_event"))||void 0===e?void 0:e.get("admin_message_md","adminMessageMD");let r;if(o){const e=new Cc.A(o).toHTML({externalLinks:!0});r=s.createElement("p",{dangerouslySetInnerHTML:{__html:e}})}return s.createElement(ke.A,{className:"mx_ReportEventDialog",onFinished:this.props.onFinished,title:(0,c._t)("report_content|report_content_to_homeserver"),contentId:"mx_ReportEventDialog"},s.createElement("div",{className:"mx_ReportEventDialog",id:"mx_ReportEventDialog"},s.createElement("p",null,(0,c._t)("report_content|description")),r,s.createElement(yi.A,{className:"mx_ReportEventDialog_reason",element:"textarea",label:(0,c._t)("room_settings|permissions|ban_reason"),rows:5,onChange:this.onReasonChange,value:this.state.reason,disabled:this.state.busy}),n,t,i),s.createElement(an.A,{primaryButton:(0,c._t)("action|send_report"),onPrimaryButtonClick:this.onSubmit,focus:!0,onCancel:this.onCancel,disabled:this.state.busy}))}}var kc=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/visibility-on.js");let Rc=function(e){return e.Appearance="SPACE_PREFERENCE_APPEARANCE_TAB",e}({});const Ic=(e,t="")=>(null==e?void 0:e.name)||t;function Tc(e,t){let n=(0,c._t)("common|unnamed_room");t&&t.name&&(n=t.name);const[i,o]=(0,s.useState)(Ic(e,n));return(0,mo.YK)(e,r.u99.Name,()=>{o(Ic(e,n))}),(0,s.useEffect)(()=>{o(Ic(e,n))},[e,n]),i}const Pc=({space:e})=>{const t=(0,es.ti)("Spaces.showPeopleInSpace",e.roomId);return s.createElement(Rn,null,s.createElement(On,{heading:(0,c._t)("space|preferences|sections_section")},s.createElement(zn,null,s.createElement(hs.A,{checked:!!t,onChange:n=>{S.A.setValue("Spaces.showPeopleInSpace",e.roomId,oe.p.ROOM_ACCOUNT,!t)},description:(0,c._t)("space|preferences|show_people_in_space",{spaceName:e.name})},(0,c._t)("common|people")),s.createElement(Hn,null))))},Nc=({space:e,onFinished:t})=>{const n=Tc(e),i=[new Sn.oz(Rc.Appearance,(0,c.AO)("common|appearance"),s.createElement(kc.A,{key:Rc.Appearance}),s.createElement(Pc,{key:Rc.Appearance,space:e}))];return s.createElement(ke.A,{className:"mx_SpacePreferencesDialog",hasCancel:!0,onFinished:t,title:(0,c._t)("common|preferences"),fixedWidth:!1},s.createElement("h4",null,n),s.createElement("div",{className:"mx_SettingsDialog_content"},s.createElement(Sn.Ay,{tabs:i,activeTabId:Rc.Appearance,onChange:()=>{}})))};var Dc=n("./src/hooks/useDispatcher.ts"),Mc=n("./src/components/views/spaces/SpaceBasicSettings.tsx"),Oc=n("./src/utils/leave-behaviour.ts");const Fc=e=>{var t;const n=null==e||null===(t=e.currentState)||void 0===t||null===(t=t.getStateEvents(r.Bx4.RoomTopic,""))||void 0===t?void 0:t.getContent();return n?r.Xcy.parseTopicContent(n):null};function Lc(e){const[t,n]=(0,s.useState)(Fc(e));return(0,mo.YK)(null==e?void 0:e.currentState,r.fZ1.Events,t=>{t.getType()===r.Bx4.RoomTopic&&n(Fc(e))}),(0,s.useEffect)(()=>{n(Fc(e))},[e]),t}const Uc=({matrixClient:e,space:t})=>{var n,i,a;const[l,d]=(0,s.useState)(!1),[m,u]=(0,s.useState)(""),p=e.getUserId(),[h,g]=(0,s.useState)(null),v=t.currentState.maySendStateEvent(r.Bx4.RoomAvatar,p),_=null!==h,[f,y]=(0,s.useState)(t.name),E=t.currentState.maySendStateEvent(r.Bx4.RoomName,p),w=f!==t.name,S=null!==(n=null===(i=Fc(t))||void 0===i?void 0:i.text)&&void 0!==n?n:"",[b,A]=(0,s.useState)(S),C=t.currentState.maySendStateEvent(r.Bx4.RoomTopic,p),x=b!==S;return s.createElement(Rn,null,s.createElement(On,{heading:(0,c._t)("common|general")},s.createElement("div",null,s.createElement("div",null,(0,c._t)("room_settings|general|description_space")),m&&s.createElement("div",{className:"mx_SpaceRoomView_errorText"},m),s.createElement(Mc.A,{avatarUrl:null!==(a=(0,Mo.ze)(t,80,80,"crop"))&&void 0!==a?a:void 0,avatarDisabled:l||!v,setAvatar:g,name:f,nameDisabled:l||!E,setName:y,topic:b,topicDisabled:l||!C,setTopic:A}),s.createElement(Ve.A,{onClick:()=>{g(null),y(t.name),A(S)},disabled:l||!(_||w||x),kind:"link"},(0,c._t)("action|cancel")),s.createElement(Ve.A,{onClick:async()=>{d(!0);const n=[];if(_&&(h?n.push((async()=>{const{content_uri:n}=await e.uploadContent(h);await e.sendStateEvent(t.roomId,r.Bx4.RoomAvatar,{url:n},"")})()):n.push(e.sendStateEvent(t.roomId,r.Bx4.RoomAvatar,{},""))),w&&n.push(e.setRoomName(t.roomId,f)),x){const i=(0,Pi.Ro)(b,{forceHTML:!1});n.push(e.setRoomTopic(t.roomId,b,i))}const i=await Promise.allSettled(n);d(!1);const s=i.filter(e=>"rejected"===e.status);s.length>0&&(o.vF.error("Failed to save space settings: ",s),u((0,c._t)("room_settings|general|error_save_space_settings")))},disabled:l,kind:"primary"},l?(0,c._t)("common|saving"):(0,c._t)("room_settings|general|save"))),s.createElement(zn,{heading:(0,c._t)("room_settings|general|leave_space")},s.createElement(Ve.A,{kind:"danger",onClick:()=>{(0,Oc.e)(t)}},(0,c._t)("room_settings|general|leave_space")))))},Vc=(e=!1)=>{const[t,n]=(0,s.useState)(e);return[t,()=>{n(!t)},n]},Bc=({matrixClient:e,space:t,closeSettingsFn:n})=>{const[i,o]=(0,s.useState)(""),a=(0,De.e)(async()=>e.isVersionSupported("v1.4").then(t=>t||e.doesServerSupportUnstableFeature("org.matrix.msc3827.stable")),[e],!1),l=e.getUserId(),d=(0,zs.U)(t,e=>e.getJoinRule()),[m,u]=Es(()=>{var e;return(null===(e=t.currentState.getStateEvents(r.Bx4.RoomGuestAccess,""))||void 0===e||null===(e=e.getContent())||void 0===e?void 0:e.guest_access)===r.rFk.CanJoin},n=>e.sendStateEvent(t.roomId,r.Bx4.RoomGuestAccess,{guest_access:n?r.rFk.CanJoin:r.rFk.Forbidden},""),()=>o((0,c._t)("room_settings|visibility|error_update_guest_access"))),p=(0,s.useCallback)(e=>u(e.target.checked),[u]),[h,g]=Es(()=>{var e;return(null===(e=t.currentState.getStateEvents(r.Bx4.RoomHistoryVisibility,""))||void 0===e||null===(e=e.getContent())||void 0===e?void 0:e.history_visibility)||r.JvM.Shared},n=>e.sendStateEvent(t.roomId,r.Bx4.RoomHistoryVisibility,{history_visibility:n},""),()=>o((0,c._t)("room_settings|visibility|error_update_history_visibility"))),[v,_]=Vc(),f=t.currentState.maySendStateEvent(r.Bx4.RoomGuestAccess,l),y=t.currentState.maySendStateEvent(r.Bx4.RoomHistoryVisibility,l),E=t.currentState.mayClientSendStateEvent(r.Bx4.RoomCanonicalAlias,e),w=t.currentState.getStateEvents(r.Bx4.RoomCanonicalAlias,"");let S,b;return d===r.dxp.Public&&(S=s.createElement("div",null,s.createElement(Ve.A,{onClick:_,kind:"link",className:"mx_SettingsTab_showAdvanced","aria-expanded":v},v?(0,c._t)("action|hide_advanced"):(0,c._t)("action|show_advanced")),v&&s.createElement(Vi.I,{name:"guest-access-enabled",checked:m,onChange:p,disabled:!f,disabledMessage:(0,c._t)("room_settings|visibility|guest_access_disabled"),helpMessage:(0,c._t)("room_settings|visibility|guest_access_explainer"),label:(0,c._t)("room_settings|visibility|guest_access_label")}))),t.getJoinRule()===r.dxp.Public&&(b=s.createElement(On,{heading:(0,c._t)("room_settings|visibility|alias_section")},s.createElement(Ji,{roomId:t.roomId,canSetCanonicalAlias:E,canSetAliases:!0,canonicalAliasEvent:null!=w?w:void 0,hidePublishSetting:!a}))),s.createElement(Rn,null,s.createElement(On,{heading:(0,c._t)("room_settings|visibility|title")},i&&s.createElement("div",{className:"mx_SpaceRoomView_errorText"},i),s.createElement(Xn,{legend:(0,c._t)("room_settings|access|title"),description:(0,c._t)("room_settings|access|description_space",{spaceName:t.name})},s.createElement(xs,{room:t,onError:()=>o((0,c._t)("room_settings|visibility|error_failed_save")),closeSettingsFn:n}),s.createElement(Ln.lV.Root,{onSubmit:e=>{e.preventDefault(),e.stopPropagation()}},S,s.createElement(Vi.I,{name:"space-history-visibility",checked:h===r.JvM.WorldReadable,onChange:e=>{g(e.target.checked?r.JvM.WorldReadable:r.JvM.Shared)},helpMessage:(0,c._t)("room_settings|visibility|history_visibility_anyone_space_description"),disabled:!y,disabledMessage:(0,c._t)("room_settings|visibility|history_visibility_anyone_space_disabled"),label:(0,c._t)("room_settings|visibility|history_visibility_anyone_space")}),s.createElement("p",null,s.createElement("strong",null,(0,c._t)("room_settings|visibility|history_visibility_anyone_space_recommendation"))))),b))};let jc=function(e){return e.General="SPACE_GENERAL_TAB",e.Visibility="SPACE_VISIBILITY_TAB",e.Roles="SPACE_ROLES_TAB",e.Advanced="SPACE_ADVANCED_TAB",e}({});const Hc=({matrixClient:e,space:t,onFinished:n})=>{(0,Dc.F)(K.A,e=>{e.action===$.r.AfterLeaveRoom&&e.room_id===t.roomId&&n()});const i=(0,s.useMemo)(()=>[new Sn.oz(jc.General,(0,c.AO)("common|general"),s.createElement(Se.A,{key:jc.General}),s.createElement(Uc,{key:jc.General,matrixClient:e,space:t})),new Sn.oz(jc.Visibility,(0,c.AO)("room_settings|visibility|title"),s.createElement(kc.A,{key:jc.Visibility}),s.createElement(Bc,{key:jc.Visibility,matrixClient:e,space:t,closeSettingsFn:n})),new Sn.oz(jc.Roles,(0,c.AO)("room_settings|permissions|title"),s.createElement(_n.A,{key:jc.Roles}),s.createElement(fi,{key:jc.Roles,room:t})),S.A.getValue(as.f.AdvancedSettings)?new Sn.oz(jc.Advanced,(0,c.AO)("common|advanced"),s.createElement(wn.A,{key:jc.Advanced}),s.createElement(Jn,{key:jc.Advanced,room:t,closeSettingsFn:n})):null].filter(Boolean),[e,t,n]),[o,r]=s.useState(jc.General);return s.createElement(ke.A,{title:(0,c._t)("space_settings|title",{spaceName:t.name||(0,c._t)("common|unnamed_space")}),className:"mx_SpaceSettingsDialog",contentId:"mx_SpaceSettingsDialog",onFinished:n,fixedWidth:!1},s.createElement("div",{className:"mx_SpaceSettingsDialog_content",id:"mx_SpaceSettingsDialog"},s.createElement(Sn.Ay,{tabs:i,activeTabId:o,onChange:r})))};var zc,Wc=n("./src/components/views/dialogs/InviteDialog.tsx"),Jc=n("./src/components/views/dialogs/AddExistingToSpaceDialog.tsx"),Gc=n("./src/utils/space.tsx");class Kc{constructor(){(0,i.A)(this,"isRegistered",!1),(0,i.A)(this,"matrixClient",void 0),(0,i.A)(this,"onDispatch",e=>{if(this.matrixClient)switch(e.action){case"open_room_settings":X.Ay.createDialog(To,{roomId:e.room_id||gs._.instance.roomViewStore.getRoomId(),initialTabId:e.initial_tab_id,sdkContext:gs._.instance},void 0,!1,!0);break;case $.r.OpenForwardDialog:X.Ay.createDialog(Ac,{matrixClient:this.matrixClient,event:e.event,permalinkCreator:e.permalinkCreator});break;case $.r.OpenReportEventDialog:X.Ay.createDialog(xc,{mxEvent:e.event},"mx_Dialog_reportEvent");break;case $.r.OpenSpacePreferences:X.Ay.createDialog(Nc,{space:e.space},void 0,!1,!0);break;case $.r.OpenSpaceSettings:X.Ay.createDialog(Hc,{matrixClient:e.space.client,space:e.space},void 0,!1,!0);break;case $.r.OpenInviteDialog:X.Ay.createDialog(Wc.A,{kind:e.kind,call:e.call,roomId:e.roomId},un()("mx_InviteDialog_flexWrapper",e.className),!1,!0).finished.then(t=>{var n;null===(n=e.onFinishedCallback)||void 0===n||n.call(e,t)});break;case $.r.OpenAddToExistingSpaceDialog:{const t=e.space,{finished:n}=X.Ay.createDialog(Jc.Ay,{onCreateRoomClick:e=>{(0,Gc.PT)(t),Gi.A.trackInteraction("WebAddExistingToSpaceDialogCreateRoomButton",e)},onAddSubspaceClick:()=>(0,Gc.K1)(t),space:t},"mx_AddExistingToSpaceDialog_wrapper");n.then(([e])=>{e&&gs._.instance.roomViewStore.getRoomId()===t.roomId&&K.A.fire($.r.UpdateSpaceHierarchy)});break}}})}prepare(e){this.matrixClient=e,this.isRegistered||(K.A.register(this.onDispatch),this.isRegistered=!0)}}zc=Kc,(0,i.A)(Kc,"instance",new zc);var qc=n("./src/utils/ErrorUtils.tsx");let $c=function(e){return e.InvalidFragmentParameters="Invalid fragment parameters for OIDC native login. `code` and `state` are required.",e}({});const Yc="mx_oidc_client_id",Qc="mx_oauth_state";function Xc(e){return{clientId:e,redirectUri:l.A.get().getOAuthCallbackUrl().href}}const Zc=async(e,t,n,i,s)=>{const o=l.A.get(),a=(0,me.US)(32)+o.getOAuthClientState(),c=new r.sU_(e,Xc(t));!function(e){sessionStorage.setItem(Qc,JSON.stringify(e))}({authContext:c.context,metadata:e,homeserverUrl:n,identityServerUrl:i,state:a});const d=await c.generateAuthorizationCodeGrantUrl(a,"fragment",s?"create":void 0);window.location.href=d},ed=async e=>{const{code:t,state:n}=(({code:e,state:t})=>{if(!e||"string"!=typeof e||!t||"string"!=typeof t)throw new Error($c.InvalidFragmentParameters);return{code:e,state:t}})(e),i=function(){const e=sessionStorage.getItem(Qc);return JSON.parse(e)}();if((null==i?void 0:i.state)!==n)throw new Error(r.gzF.MissingOrInvalidStoredState);const s=await new r.sU_(i.metadata,i.authContext).completeAuthorizationCodeGrant(t);return{homeserverUrl:i.homeserverUrl,identityServerUrl:i.identityServerUrl,accessToken:s.access_token,refreshToken:s.refresh_token,clientId:i.authContext.clientId}};var td=n("./src/SupportedBrowser.ts");const nd=["roomId"];function id(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function sd(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?id(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):id(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const od="mx_hs_url",rd="mx_is_url";K.A.register(e=>{if(e.action===$.r.TriggerLogout)Pd();else if(e.action===$.r.OverwriteLogin){const t=e;Dd(!1),bd(t.credentials,!0,!0).catch(e=>{o.vF.warn("Failed to overwrite login",e)})}});let ad=!1;function ld(){if(ad)throw new cd("session lock has been released")}class cd extends Error{}async function dd(e={}){try{var t,n;let i=e.enableGuest||!1;const s=e.guestHsUrl,a=e.guestIsUrl,l=e.urlParams,c=e.defaultDeviceDisplayName;if(i&&!s&&(o.vF.warn("Cannot enable guest access: can't determine HS URL to use"),i=!1),i&&s&&null!=l&&null!==(t=l.guest)&&void 0!==t&&t.guest_user_id&&null!=l&&null!==(n=l.guest)&&void 0!==n&&n.guest_access_token)return o.vF.log("Using guest access credentials"),await bd({userId:l.guest.guest_user_id,accessToken:l.guest.guest_access_token,homeserverUrl:s,identityServerUrl:a,guest:!0},!0,!1),!0;return!!await Ed({ignoreGuest:Boolean(e.ignoreGuest)})||!ad&&(!(!i||!s)&&function(e,t,n){o.vF.log(`Doing guest login on ${e}`);const i=(0,r.UU6)({baseUrl:e});return i.registerGuest({body:{initial_device_display_name:n}}).then(n=>(o.vF.log(`Registered as guest: ${n.user_id}`),bd({userId:n.user_id,deviceId:n.device_id,accessToken:n.access_token,homeserverUrl:e,identityServerUrl:t,guest:!0},!0,!0).then(()=>!0)),e=>(o.vF.error("Failed to register as guest",e),!1))}(s,a,c))}catch(t){var i;return(null===(i=e.abortSignal)||void 0===i||!i.aborted)&&(!(t instanceof Ad)&&(!ad&&async function(e,t){o.vF.error("Unable to load session",e);const n=X.Ay.createDialog(ln,{error:e}),[i]=await n.finished;if(i)return await Nd(),!1;return dd(t)}(t,e)))}}async function md(){const{hsUrl:e,userId:t,hasAccessToken:n,isGuest:i}=await fd();return e&&t&&n?[t,!!i]:[null,null]}async function ud(e,t,n){return e.oauth2?async function(e){console.log("We have OAuth2 params - attempting login");try{const{accessToken:t,refreshToken:n,homeserverUrl:i,identityServerUrl:s,clientId:o}=await ed(e);return await pd({accessToken:t,refreshToken:n,homeserverUrl:i,identityServerUrl:s,clientId:o}),!0}catch(e){return o.vF.error("Failed to login via OAuth",e),vd((e=>{switch(e.message){case r.gzF.MissingOrInvalidStoredState:return(0,c._t)("auth|oidc|missing_or_invalid_stored_state");case $c.InvalidFragmentParameters:case r.gzF.CodeExchangeFailed:case r.gzF.InvalidBearerTokenResponse:default:return(0,c._t)("auth|oidc|generic_auth_error")}})(e)),!1}}(e.oauth2):function(e,t,n){var i;if(null==e||!e.loginToken)return Promise.resolve(!1);console.log("We have token login params - attempting token login");const s=localStorage.getItem(Qt.FL),a=null!==(i=localStorage.getItem(Qt.U7))&&void 0!==i?i:void 0;if(!s)return o.vF.warn("Cannot log in with token: can't determine HS URL to use"),vd((0,c._t)("auth|sso_failed_missing_storage")),Promise.resolve(!1);return ie(s,a,"m.login.token",{token:e.loginToken,initial_device_display_name:t}).then(async function(e){return o.vF.log("Logged in with token"),await gd(e),!0}).catch(e=>{const t=()=>{var e;const t=(0,r.UU6)({baseUrl:s,idBaseUrl:a}),i=localStorage.getItem(Qt.ot)||void 0;null===(e=l.A.get())||void 0===e||e.startSingleSignOn(t,"sso",n,i,r.SbG.LOGIN)};return vd((0,qc.Y0)(e,{hsUrl:s,hsName:s}),t),o.vF.error("Failed to log in with login token:",e),!1})}(e.legacy_sso,t,n)}async function pd({accessToken:e,refreshToken:t,homeserverUrl:n,identityServerUrl:i,clientId:s}){const{user_id:a,device_id:l,is_guest:c}=await async function(e,t,n){try{const i=(0,r.UU6)({baseUrl:t,accessToken:e,idBaseUrl:n});return await i.whoami()}catch(e){throw o.vF.error("Failed to retrieve userId using accessToken",e),new Error("Failed to retrieve userId using accessToken")}}(e,n,i),d={accessToken:e,refreshToken:t,homeserverUrl:n,identityServerUrl:i,deviceId:l,userId:a,isGuest:c};return o.vF.debug("Logged in via OAuth2 native flow"),await gd(d),(e=>{localStorage.setItem(Yc,e)})(s),d}async function hd(e){var t,n;const i=e.userId,s=e.deviceId;let r=null!==(t=await(null===(n=l.A.get())||void 0===n?void 0:n.getPickleKey(i,null!=s?s:"")))&&void 0!==t?t:void 0;var a,c;r?o.vF.log(`Pickle key already exists for ${e.userId}|${e.deviceId} do not create a new one`):(r=i&&s&&null!==(a=await(null===(c=l.A.get())||void 0===c?void 0:c.createPickleKey(i,s)))&&void 0!==a?a:void 0,r?o.vF.log(`Created pickle key for ${e.userId}|${e.deviceId}`):o.vF.log("Pickle key not created"));return r}async function gd(e){await Nd(),e.pickleKey=await hd(e),await Cd(e),sessionStorage.setItem("mx_fresh_login",String(!0))}function vd(e,t){const{finished:n}=X.Ay.createDialog(sn.A,{title:(0,c._t)("auth|oidc|error_title"),description:e,button:(0,c._t)("action|try_again")});n.then(([e])=>{e&&(null==t||t())})}async function _d(e){let t;try{t=await R.Gt("account",e)}catch(t){o.vF.error(`StorageManager.idbLoad failed for account:${e}`,t)}var n;if(!t&&(t=null!==(n=localStorage.getItem(e))&&void 0!==n?n:void 0,t))try{await R.x7("account",e,t),localStorage.removeItem(e)}catch(t){o.vF.error(`migration of token ${e} to IndexedDB failed`,t)}return t}async function fd(){var e,t,n,i;const s=null!==(e=localStorage.getItem(od))&&void 0!==e?e:void 0,o=null!==(t=localStorage.getItem(rd))&&void 0!==t?t:void 0,r=await _d(I),a=await _d(T),l="true"===localStorage.getItem(D)||!!r,c="true"===localStorage.getItem(M)||!!a,d=null!==(n=localStorage.getItem("mx_user_id"))&&void 0!==n?n:void 0,m=null!==(i=localStorage.getItem("mx_device_id"))&&void 0!==i?i:void 0;let u;return u=null!==localStorage.getItem("mx_is_guest")?"true"===localStorage.getItem("mx_is_guest"):"true"===localStorage.getItem("matrix-is-guest"),{hsUrl:s,isUrl:o,hasAccessToken:l,accessToken:r,refreshToken:a,hasRefreshToken:c,userId:d,deviceId:m,isGuest:u}}async function yd(){if(await async function(){const{finished:e}=X.Ay.createDialog(cn),[t]=await e;return!!t}())throw await Nd(),new Ad("Aborting login in progress because of storage inconsistency")}async function Ed(e){const t=null==e?void 0:e.ignoreGuest;if(!localStorage)return!1;const{hsUrl:n,isUrl:i,hasAccessToken:s,accessToken:r,refreshToken:a,userId:c,deviceId:d,isGuest:m}=await fd();if(s&&!r&&(o.vF.warn("restoreSessionFromStorage: storage indicates we should have an access token, but we do not. Displaying StorageEvictedDialog"),await yd()),r&&c&&n){var u,p;if(t&&m)return o.vF.log("Ignoring stored guest account: "+c),!1;const e=null!==(u=await(null===(p=l.A.get())||void 0===p?void 0:p.getPickleKey(c,null!=d?d:"")))&&void 0!==u?u:void 0;e?o.vF.log(`Got pickle key for ${c}|${d}`):o.vF.log(`No pickle key available for ${c}|${d}`);const s=await F(e,r,P),h=a&&await F(e,a,N),g="true"===sessionStorage.getItem("mx_fresh_login");return sessionStorage.removeItem("mx_fresh_login"),o.vF.log(`Restoring session for ${c}`),await bd({userId:c,deviceId:d,accessToken:s,refreshToken:h,homeserverUrl:n,identityServerUrl:i,guest:m,pickleKey:null!=e?e:void 0,freshLogin:g},!1,g),!0}return o.vF.log("No previous session found."),!1}async function wd(e){return e.freshLogin=!0,Dd(),e.pickleKey=await hd(e),bd(e,!0,!0)}async function Sd(e){const t=_.J.safeGet().getUserId(),n=_.J.safeGet().getDeviceId();Dd(),localStorage.removeItem("mx_soft_logout"),xd=!1;const i=e.userId!==t||e.deviceId!==n;var s,r;(i&&o.vF.warn("Clearing all data: Old session belongs to a different user/session"),e.pickleKey||void 0===e.deviceId)||(o.vF.info("Lifecycle#hydrateSession: Pickle key not provided - trying to get one"),e.pickleKey=null!==(s=await(null===(r=l.A.get())||void 0===r?void 0:r.getPickleKey(e.userId,e.deviceId)))&&void 0!==s?s:void 0);return bd(e,i,!1)}async function bd(e,t,n){ld(),e.guest=Boolean(e.guest);const i=Id();o.vF.log("setLoggedIn: mxid: "+e.userId+" deviceId: "+e.deviceId+" guest: "+e.guest+" hs: "+e.homeserverUrl+" softLogout: "+i," freshLogin: "+e.freshLogin),t&&await Nd();const s=await se.zV();let a;s.dataInLocalStorage&&s.cryptoInited&&!s.dataInCryptoStore&&(o.vF.warn("doSetLoggedIn: StorageManager consistency check failed; displaying StorageEvictedDialog."),await yd());try{a=await Md(e)}catch{}ld(),_.J.set(function(e,t){let n;if(e.refreshToken&&t){const i=new r.Klw(t,U.bind(null,e.pickleKey));n=null==i?void 0:i.tokenRefreshFunction}else o.vF.debug("No refresh token was supplied: access token will not be refreshed");const i=J({baseUrl:e.homeserverUrl,idBaseUrl:e.identityServerUrl,accessToken:e.accessToken,refreshToken:e.refreshToken,tokenRefreshFunction:n,userId:e.userId,deviceId:e.deviceId,pickleKey:e.pickleKey,timelineSupport:!0,forceTURN:!S.A.getValue("webRtcAllowPeerToPeer"),fallbackICEServerAllowed:!!S.A.getValue("fallbackICEServerAllowed"),iceCandidatePoolSize:20,verificationMethods:[E.V.Sas,E.V.ShowQrCode,E.V.Reciprocate],identityServer:new A.A,cryptoCallbacks:B({},b.c6),enableEncryptedStateEvents:S.A.getValue("feature_msc4362_encrypted_state_events"),unstableMSC1763Retention:S.A.getValue("feature_retention"),roomNameGenerator:W});i.setGuest(Boolean(e.guest));const s=new r.mCA(void 0,{timelineSupport:!0,pendingEvents:!1});return s.getLiveTimeline().setPaginationToken("",r.qss.BACKWARDS),i.setNotifTimelineSet(s),i}(e,a));const l=_.J.safeGet();if((0,dn.Tm)(e.userId),ue.Vo.instance.isEnabled()&&ue.Vo.instance.startListeningToSettingsChanges(l),localStorage)try{await Cd(e),sessionStorage.removeItem("mx_fresh_login")}catch(e){o.vF.warn("Error using local storage: can't persist session!",e)}else o.vF.warn("No local storage available: can't persist session!");ld(),K.A.dispatch({action:$.r.OnLoggedIn,client:l},!0);const c={};e.pickleKey&&(43===e.pickleKey.length?c.rustCryptoStoreKey=(0,r.y4v)(e.pickleKey):c.rustCryptoStorePassword=e.pickleKey);try{await Td(l,!i,c)}finally{var d;null===(d=c.rustCryptoStoreKey)||void 0===d||d.fill(0)}return S.A.runMigrations(n),n&&!e.guest&&localStorage.setItem("must_verify_device","true"),l}class Ad extends Error{}async function Cd(e){var t;localStorage.setItem(od,e.homeserverUrl),e.identityServerUrl&&localStorage.setItem(rd,e.identityServerUrl),localStorage.setItem("mx_user_id",e.userId),localStorage.setItem("mx_is_guest",JSON.stringify(e.guest)),await U(e.pickleKey,e),e.pickleKey?localStorage.setItem("mx_has_pickle_key",String(!0)):"true"===localStorage.getItem("mx_has_pickle_key")&&o.vF.error("Expected a pickle key, but none provided. Encryption may not work."),e.deviceId&&localStorage.setItem("mx_device_id",e.deviceId),null===(t=f.r.instance.extensions.cryptoSetup)||void 0===t||t.persistCredentials(e),o.vF.log(`Session persisted for ${e.userId}`)}let xd=!1;async function kd(){var e,t;const n=_.J.get();if(!n)return;let i;try{i=await Md({homeserverUrl:n.getHomeserverUrl(),deviceId:n.getDeviceId()})}catch(e){console.error("@@",e)}ue.Vo.instance.logout(),n.isGuest()?setTimeout(Pd,0):(xd=!0,null===(e=l.A.get())||void 0===e||e.destroyPickleKey(n.getSafeUserId(),null!==(t=n.getDeviceId())&&void 0!==t?t:""),async function(e,t){if(t){const n=e.getAccessToken(),i=e.getRefreshToken();await Promise.all((0,Me.Bo)([n?t.revokeToken(n,"access_token"):null,i?t.revokeToken(i,"refresh_token"):null])),e.stopClient(),e.http.abort()}else await e.logout(!0)}(n,null!=i?i:null).then(Pd,e=>{o.vF.warn("Failed to call logout API: token will not be invalidated",e),Pd()}))}function Rd(){_.J.get()&&(localStorage.setItem("mx_soft_logout","true"),o.vF.log("Soft logout initiated"),xd=!0,K.A.dispatch({action:$.r.ClientNotViable}),Dd(!1))}function Id(){return"true"===localStorage.getItem("mx_soft_logout")}async function Td(e,t,n){o.vF.log("Lifecycle: Starting MatrixClient"),K.A.dispatch({action:$.r.WillStartClient},!0),gs._.instance.typingStore.reset(),re.A.sharedInstance().reset(),Kc.instance.prepare(e),gs._.instance.notifier.start(),G.A.sharedInstance().start(),Q.A.makeShared(e).start(),ae.J.sharedInstance().startWatching(),Z.A.instance.start(),gs._.instance.legacyCallHandler.start(),(0,td.o7)(),le.u.sharedInstance().start(),t?(await y.A.init(),await _.J.start(n)):(o.vF.warn("Caller requested only auxiliary services be started"),await _.J.assign(n)),ld(),ye.sharedInstance().start(e),S.A.getValue("lowBandwidth")||Y.start(),Yt.k.getInstance().start(),K.A.dispatch({action:$.r.ClientStarted}),Id()&&Rd()}async function Pd(){var e,t;K.A.fire($.r.OnLoggedOut,!0),Dd(),await Nd({deleteEverything:!0}),null===(e=nn.A.onLoggedOutAndStorageCleared)||void 0===e||e.call(nn.A),await(null===(t=l.A.get())||void 0===t?void 0:t.clearStorage()),S.A.reset(),d.A.get().logout_redirect_url&&(o.vF.log("Redirecting to external provider to finish logout"),window.setTimeout(()=>{window.location.href=d.A.get().logout_redirect_url},100)),xd=!1}async function Nd(e){var t;if(o.vF.info(`Clearing storage, deleteEverything=${null==e?void 0:e.deleteEverything}`),window.localStorage){const t=S.A.getValueAt(oe.p.DEVICE,"language",null,!0,!0),n=tn.instance.getWireInvites(),i=window.localStorage.getItem("mx_registration_time");window.localStorage.clear();try{await R.pr("account")}catch(e){o.vF.error("idbClear failed for account",e)}null!=e&&e.deleteEverything||(t&&await S.A.setValue("language",null,oe.p.DEVICE,t),n.forEach(e=>{let{roomId:t}=e,n=(0,v.A)(e,nd);tn.instance.storeInvite(t,n)}),i&&window.localStorage.setItem("mx_registration_time",i))}null===(t=window.sessionStorage)||void 0===t||t.clear();const n=J({baseUrl:""});await y.A.deleteEventIndex(),await n.clearStores()}function Dd(e=!0){var t;gs._.instance.legacyCallHandler.stop(),gs._.instance.notifier.stop(),G.A.sharedInstance().stop(),gs._.instance.typingStore.reset(),Y.stop(),Z.A.instance.stop(),ae.J.sharedInstance().stopWatching(),le.u.sharedInstance().stop(),ye.sharedInstance().stop(),null===(t=Q.A.shared())||void 0===t||t.stop(),y.A.stop();const n=_.J.get();n&&(n.stopClient(),n.removeAllListeners(),e&&(_.J.unset(),y.A.unset(),n.store.destroy()))}async function Md(e){const t=(()=>{const e=localStorage.getItem(Yc);if(!e)throw new Error("OAuth client ID not found in storage");return e})(),n=new r.pBM({baseUrl:e.homeserverUrl}),i=await n.getAuthMetadata();return new r.sU_(i,sd(sd({},Xc(t)),{},{deviceId:e.deviceId}))}window.mxLoginWithAccessToken=async(e,t)=>{const n=(0,r.UU6)({baseUrl:e,accessToken:t}),{user_id:i,device_id:s}=await n.whoami();await bd({homeserverUrl:e,accessToken:t,userId:i,deviceId:s},!0,!1)};var Od=n("./src/utils/SnakedObject.ts"),Fd=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Tooltip/TooltipProvider.js"),Ld=(n("../../node_modules/.pnpm/what-input@5.2.12/node_modules/what-input/dist/what-input.js"),n("../../node_modules/.pnpm/sanitize-html@2.17.5/node_modules/sanitize-html/index.js")),Ud=n.n(Ld),Vd=n("./src/RoomInvite.tsx"),Bd=n("./src/Rooms.ts"),jd=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/version-support.ts");const Hd={deferredAction:null};class zd extends Ka.y{constructor(){super(K.A,Hd)}onDispatch(e){switch(e.action){case $.r.DoAfterSyncPrepared:this.updateState({deferredAction:e.deferred_action});break;case"cancel_after_sync_prepared":this.updateState({deferredAction:null});break;case"MatrixActions.sync":{if(e.state===r.Lmg.Syncing&&e.prevState!==r.Lmg.Syncing&&async function(){try{const e=_.J.get();if(!e)return;for(const t of jd.Hr)if(await e.isVersionSupported(t))return;const t="LEGACY_SERVER";re.A.sharedInstance().addOrReplaceToast({key:t,title:(0,c._t)("unsupported_server_title"),props:{description:(0,c._t)("unsupported_server_description",{version:jd.eD,brand:d.A.get().brand}),primaryLabel:(0,c._t)("action|ok"),onPrimaryClick:()=>{re.A.sharedInstance().dismissToast(t)}},component:lt.A,priority:98})}catch(e){o.vF.warn("Failed to check server versions",e)}}(),"PREPARED"!==e.state)break;if(!this.state.deferredAction)break;const t=Object.assign({},this.state.deferredAction);this.updateState({deferredAction:null}),K.A.dispatch(t);break}case $.r.ClientNotViable:case $.r.OnLoggedOut:this.reset()}}}let Wd=null;Wd||(Wd=new zd);var Jd=n("./src/PageTypes.ts");const Gd=/^[a-z0-9=_\-./]+$/;var Kd=n("./src/settings/watchers/ThemeWatcher.ts"),qd=n("./src/settings/watchers/FontWatcher.ts"),$d=n("./src/RoomAliasCache.ts"),Yd=n("./src/MediaDeviceHandler.ts");const Qd="serverlimit",Xd=()=>{re.A.sharedInstance().dismissToast(Qd)};var Zd=n("./src/stores/spaces/index.ts"),em=n("./src/customisations/helpers/UIComponents.ts"),tm=n("./src/LegacyCallHandler.tsx");class nm extends Xe.oY8{constructor(e){const t=e.legacyCallHandler.getSupportsPstnProtocol();super(e,nm.computeSnapshot(e.activeSpace,t)),(0,i.A)(this,"displayDialButton",!1),(0,i.A)(this,"onProtocolSupportChange",()=>{const e=this.props.legacyCallHandler.getSupportsPstnProtocol();this.displayDialButton=e,this.snapshot.set(nm.computeSnapshot(this.props.activeSpace,e))}),(0,i.A)(this,"onSearchClick",()=>{K.A.fire($.r.OpenSpotlight)}),(0,i.A)(this,"onDialPadClick",()=>{K.A.fire($.r.OpenDialPad)}),(0,i.A)(this,"onExploreClick",e=>{K.A.fire($.r.ViewRoomDirectory),Gi.A.trackInteraction("WebLeftPanelExploreRoomsButton",e)}),this.displayDialButton=t,this.disposables.trackListener(e.legacyCallHandler,tm.uv.ProtocolSupport,this.onProtocolSupportChange)}setActiveSpace(e){e!==this.props.activeSpace&&(this.props.activeSpace=e,this.snapshot.set(nm.computeSnapshot(e,this.displayDialButton)))}}function im({activeSpace:e}){const t=(0,s.useContext)(Ro.A),n=(0,Xe.s2q)(()=>new nm({activeSpace:e,legacyCallHandler:t.legacyCallHandler}));return(0,s.useEffect)(()=>{n.setActiveSpace(e)},[e,n]),s.createElement(Xe.L4Y,{vm:n})}(0,i.A)(nm,"computeSnapshot",(e,t)=>({displayExploreButton:e===Zd._b.Home&&(0,em.g)(as.C.ExploreRooms),displayDialButton:t,searchShortcut:ni.vL?"⌘ K":(0,c._t)(mc.hm[ni.Uz.CONTROL])+" K"}));var sm=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/public.js"),om=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/video-call-solid.js"),rm=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/arrow-down.js"),am=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/presence-solid-8x8.js"),lm=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/presence-outline-8x8.js"),cm=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/presence-strikethrough-8x8.js"),dm=n("./src/components/views/avatars/WithPresenceIndicator.tsx");let mm=function(e){return e.LowPriority="LowPriority",e.VideoRoom="VideoRoom",e.PublicRoom="PublicRoom",e.Presence="Presence",e}({});function um(e){const t=e.isElementVideoRoom()||e.isCallRoom(),n=(0,dm.rT)(e),i=(0,dm.xQ)(e,n),o=function(e){const[t,n]=(0,s.useState)(pm(e));return(0,mo.YK)(e,r.u99.Timeline,(t,i)=>{e.roomId===i.roomId&&(t.getType()!==r.Bx4.RoomJoinRules&&t.getType()!==r.Bx4.RoomMember||n(pm(i)))}),(0,s.useEffect)(()=>{n(pm(e))},[e]),t}(e);let a;return(0,mo.DY)(e,r.u99.Tags,()=>!!e.tags[Da.z.LowPriority])?a=mm.LowPriority:t?a=mm.VideoRoom:o?a=mm.PublicRoom:i&&(a=mm.Presence),{badgeDecoration:a,presence:i}}function pm(e){return e.getJoinRule()===r.dxp.Public}const hm=(0,s.memo)(function({room:e}){const t=um(e);if(!t.badgeDecoration)return s.createElement(ms.A,{size:"32px",room:e});const n=function(e,t){if(e===mm.LowPriority)return s.createElement(rm.A,{width:"16px",height:"16px",className:"mx_RoomAvatarView_icon",color:"var(--cpd-color-icon-tertiary)","aria-label":gm(e,t)});if(e===mm.VideoRoom)return s.createElement(om.A,{width:"16px",height:"16px",className:"mx_RoomAvatarView_icon",color:"var(--cpd-color-icon-tertiary)","aria-label":gm(e,t)});if(e===mm.PublicRoom)return s.createElement(sm.A,{width:"16px",height:"16px",className:"mx_RoomAvatarView_icon",color:"var(--cpd-color-icon-info-primary)","aria-label":gm(e,t)});if(e===mm.Presence)return function(e){switch(e){case dm.Cq.Online:return s.createElement(am.A,{width:"8px",height:"8px",className:"mx_RoomAvatarView_PresenceDecoration",color:"var(--cpd-color-icon-accent-primary)","aria-label":vm(e)});case dm.Cq.Away:return s.createElement(am.A,{width:"8px",height:"8px",className:"mx_RoomAvatarView_PresenceDecoration",color:"var(--cpd-color-icon-quaternary)","aria-label":vm(e)});case dm.Cq.Offline:return s.createElement(lm.A,{width:"8px",height:"8px",className:"mx_RoomAvatarView_PresenceDecoration",color:"var(--cpd-color-icon-tertiary)","aria-label":vm(e)});case dm.Cq.Busy:return s.createElement(cm.A,{width:"8px",height:"8px",className:"mx_RoomAvatarView_PresenceDecoration",color:"var(--cpd-color-icon-tertiary)","aria-label":vm(e)})}}(t)}(t.badgeDecoration,t.presence),i=gm(t.badgeDecoration,t.presence),o=t.badgeDecoration===mm.Presence?"mx_RoomAvatarView_RoomAvatar_presence":"mx_RoomAvatarView_RoomAvatar_icon";return s.createElement(Xe.son,{className:"mx_RoomAvatarView"},s.createElement(ms.A,{className:un()("mx_RoomAvatarView_RoomAvatar",o),size:"32px",room:e}),i?s.createElement(Ys.m,{label:i},n):n)});function gm(e,t){switch(e){case mm.LowPriority:return(0,c._t)("room|room_is_low_priority");case mm.VideoRoom:return(0,c._t)("room|video_room");case mm.PublicRoom:return(0,c._t)("room|header|room_is_public");case mm.Presence:return vm(t)}}function vm(e){switch(e){case dm.Cq.Online:return(0,c._t)("presence|online");case dm.Cq.Away:return(0,c._t)("presence|away");case dm.Cq.Offline:return(0,c._t)("presence|offline");case dm.Cq.Busy:return(0,c._t)("presence|busy")}}var _m=n("./src/accessibility/LandmarkNavigation.ts"),fm=n("./src/stores/room-list-v3/RoomListStoreV3.ts"),ym=n("./src/stores/room-list-v3/skip-list/filters/index.ts"),Em=n("./src/stores/notifications/RoomNotificationStateStore.ts"),wm=n("./src/utils/membership.ts");function Sm(e){return e.getMyMembership()===r.Owh.Invite||e.getMyMembership()!==r.Owh.Knock&&!(0,wm.yE)(e)&&(0,em.g)(as.C.RoomOptionsMenu)}function bm(e,t){var n;const i=(0,em.g)(as.C.CreateRooms);return t&&i?Boolean(null==t||null===(n=t.getLiveTimeline().getState(r.qss.FORWARDS))||void 0===n?void 0:n.maySendStateEvent(r.Bx4.RoomAvatar,e.getSafeUserId())):i}var Am=n("./src/stores/CallStore.ts"),Cm=n("./src/dispatcher/payloads.ts");class xm{static tagRoom(e,t,n,i){return s="RoomListActions.tagRoom",r=()=>{const s=[],r=t.roomId;if(void 0===n&&i===Da.z.DM||n===Da.z.DM&&void 0===i)return Bd.lA(t,i===Da.z.DM).catch(e=>{var t;o.vF.error("Failed to set DM tag "+e),X.Ay.createDialog(sn.A,{title:(0,c._t)("room_list|failed_set_dm_tag"),description:null!==(t=null==e?void 0:e.message)&&void 0!==t?t:(0,c._t)("invite|failed_generic")})});const a=n!==i;if(n&&n!==Da.z.DM&&a){const t=e.deleteRoomTag(r,n).catch(function(e){var t;o.vF.error("Failed to remove tag "+n+" from room: "+e),X.Ay.createDialog(sn.A,{title:(0,c._t)("room_list|failed_remove_tag",{tagName:n}),description:null!==(t=null==e?void 0:e.message)&&void 0!==t?t:(0,c._t)("invite|failed_generic")})});s.push(t)}if(i&&i!==Da.z.DM&&a){const t=e.setRoomTag(r,i).catch(function(e){var t;throw o.vF.error("Failed to add tag "+i+" to room: "+e),X.Ay.createDialog(sn.A,{title:(0,c._t)("room_list|failed_add_tag",{tagName:i}),description:null!==(t=null==e?void 0:e.message)&&void 0!==t?t:(0,c._t)("invite|failed_generic")}),e});s.push(t)}return Promise.all(s)},a=()=>({room:t,oldTag:n,newTag:i}),new Cm.n(e=>{e({action:s+".pending",request:"function"==typeof a?a():void 0}),r().then(t=>{e({action:s+".success",result:t})}).catch(t=>{e({action:s+".failure",err:t})})});var s,r,a}}var km=n("./src/stores/room-list-v3/section.ts"),Rm=n("./src/utils/room/getTagsForRoom.ts");function Im(e){var t;return null!==(t=(0,Rm.E)(e).find(e=>(0,km.QZ)(e)))&&void 0!==t?t:null}function Tm(e,t){const n="chats"===t?null:t;if(!(0,km.QZ)(t))return void o.vF.warn(`Unexpected tag ${n} applied to ${e.roomId}`);const i=Im(e),s=i,r=i===n?null:n;K.A.dispatch(xm.tagRoom(e.client,e,s,r))}var Pm=n("./src/models/Call.ts"),Nm=n("./src/utils/userStatus.ts");function Dm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function Mm(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Dm(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Dm(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class Om extends Xe.oY8{constructor(e){var t;const n=Em.n.instance.getRoomState(e.room),s=Om.computeAvailableSections(),o=Om.generateItemSync(e.room,e.client,n,s);super(e,o),(0,i.A)(this,"notifState",void 0),(0,i.A)(this,"currentCall",null),(0,i.A)(this,"availableSections",void 0),(0,i.A)(this,"dmUserId",void 0),(0,i.A)(this,"onNotificationChanged",()=>{this.updateItem()}),(0,i.A)(this,"onMessagePreviewChanged",()=>{this.loadAndSetMessagePreview()}),(0,i.A)(this,"onMessagePreviewSettingChanged",()=>{this.loadAndSetMessagePreview()}),(0,i.A)(this,"onShowSectionsChange",()=>{const e=S.A.getValue("RoomList.showSections");this.snapshot.merge({areSectionsEnabled:e})}),(0,i.A)(this,"onCallParticipantsChanged",e=>{Boolean(this.snapshot.current.notification.callType)&&e.size>0||this.updateItem()}),(0,i.A)(this,"onCallTypeChanged",()=>{void 0!==this.snapshot.current.notification.callType&&this.updateItem()}),(0,i.A)(this,"onCallStateChanged",()=>{const e=Am.e.instance.getCall(this.props.room.roomId);this.listenToCallParticipants();this.snapshot.current.notification.callType!==(e&&e.participants.size>0?e.callType===Kl.JG.Voice?"voice":"video":void 0)&&this.updateItem()}),(0,i.A)(this,"onRoomChanged",()=>{this.updateItem()}),(0,i.A)(this,"onUserProfileUpdate",(e,t)=>{e===this.dmUserId&&S.A.getValue("feature_user_status")&&this.snapshot.merge({userStatus:(0,Nm.Y6)(null==t?void 0:t["org.matrix.msc4426.status"])})}),(0,i.A)(this,"onOpenRoom",()=>{K.A.dispatch({action:$.r.ViewRoom,room_id:this.props.room.roomId,metricsTrigger:"RoomList"})}),(0,i.A)(this,"onMarkAsRead",async()=>{await(0,Ra.G9)(this.props.room,this.props.client),Gi.A.trackInteraction("WebRoomListRoomTileContextMenuMarkRead")}),(0,i.A)(this,"onMarkAsUnread",async()=>{await(0,Ra.bR)(this.props.room,this.props.client,!0),Gi.A.trackInteraction("WebRoomListRoomTileContextMenuMarkUnread")}),(0,i.A)(this,"onToggleFavorite",()=>{Tm(this.props.room,Da.z.Favourite),Gi.A.trackInteraction("WebRoomListRoomTileContextMenuFavouriteToggle")}),(0,i.A)(this,"onToggleLowPriority",()=>{Tm(this.props.room,Da.z.LowPriority)}),(0,i.A)(this,"onInvite",()=>{K.A.dispatch({action:"view_invite",roomId:this.props.room.roomId}),Gi.A.trackInteraction("WebRoomListRoomTileContextMenuInviteItem")}),(0,i.A)(this,"onCopyRoomLink",()=>{K.A.dispatch({action:"copy_room",room_id:this.props.room.roomId})}),(0,i.A)(this,"onLeaveRoom",()=>{const e=Boolean(this.props.room.tags[Da.z.Archived]);K.A.dispatch({action:e?"forget_room":"leave_room",room_id:this.props.room.roomId}),Gi.A.trackInteraction("WebRoomListRoomTileContextMenuLeaveItem")}),(0,i.A)(this,"onSetRoomNotifState",e=>{let t;switch(e){case"all_messages":default:t=Ds.dC.AllMessages;break;case"all_messages_loud":t=Ds.dC.AllMessagesLoud;break;case"mentions_only":t=Ds.dC.MentionsOnly;break;case"mute":t=Ds.dC.Mute}Ns.s.forRoom(this.props.room).notificationVolume=t}),(0,i.A)(this,"onCreateSection",async()=>{const e=await fm.default.instance.createSection();Gi.A.trackSectionCreation("RoomListItemOverflowMenu"),e&&Tm(this.props.room,e)}),(0,i.A)(this,"onToggleSection",e=>{Tm(this.props.room,e)}),(0,i.A)(this,"onRemoveFromSection",()=>{const e=this.props.room.tags,t=fm.default.instance.orderedSectionTags.find(t=>Boolean(e[t]));t&&Tm(this.props.room,t)}),(0,i.A)(this,"onCustomSectionsChange",()=>{this.availableSections=Om.computeAvailableSections();const e=Om.buildSections(this.props.room.tags,this.availableSections);this.snapshot.merge({sections:Ta(this.snapshot.current.sections,e)})}),this.notifState=n,this.availableSections=s,this.disposables.trackListener(this.notifState,Cr.ce.Update,this.onNotificationChanged),this.disposables.trackListener(Xa.instance,Xa.getPreviewChangedEventName(e.room),this.onMessagePreviewChanged);const a=S.A.watchSetting("RoomList.showMessagePreview",null,this.onMessagePreviewSettingChanged);this.disposables.track(()=>{S.A.unwatchSetting(a)});const l=S.A.watchSetting("RoomList.showSections",null,this.onShowSectionsChange);this.disposables.track(()=>S.A.unwatchSetting(l)),this.disposables.trackListener(Am.e.instance,Am.s.Call,this.onCallStateChanged),this.listenToCallParticipants(),this.disposables.trackListener(e.room,r.u99.Name,this.onRoomChanged),this.disposables.trackListener(e.room,r.u99.Tags,this.onRoomChanged);const c=S.A.watchSetting("RoomList.OrderedCustomSections",null,()=>this.onCustomSectionsChange()),d=S.A.watchSetting("RoomList.CustomSectionData",null,()=>this.onCustomSectionsChange());this.disposables.track(()=>{S.A.unwatchSetting(c),S.A.unwatchSetting(d)}),this.loadAndSetMessagePreview(),this.dmUserId=null!==(t=Q.A.shared().getUserIdForRoomId(e.room.roomId))&&void 0!==t?t:void 0,this.dmUserId&&(e.client.on(r.AUM.UserProfileUpdate,this.onUserProfileUpdate),this.disposables.track(()=>{e.client.off(r.AUM.UserProfileUpdate,this.onUserProfileUpdate)}),this.updateUserStatus())}dispose(){var e,t;super.dispose(),null===(e=this.currentCall)||void 0===e||e.off(Pm.$E.Participants,this.onCallParticipantsChanged),null===(t=this.currentCall)||void 0===t||t.off(Pm.$E.CallTypeChanged,this.onCallTypeChanged)}listenToCallParticipants(){const e=Am.e.instance.getCall(this.props.room.roomId);var t,n;e!==this.currentCall&&(null===(t=this.currentCall)||void 0===t||t.off(Pm.$E.Participants,this.onCallParticipantsChanged),null===(n=this.currentCall)||void 0===n||n.off(Pm.$E.CallTypeChanged,this.onCallTypeChanged),null==e||e.on(Pm.$E.Participants,this.onCallParticipantsChanged),null==e||e.on(Pm.$E.CallTypeChanged,this.onCallTypeChanged));this.currentCall=e}updateItem(){const e=Om.generateItemSync(this.props.room,this.props.client,this.notifState,this.availableSections);this.snapshot.merge(Mm(Mm({},e),{},{notification:Ta(this.snapshot.current.notification,e.notification),sections:Ta(this.snapshot.current.sections,e.sections),messagePreview:this.snapshot.current.messagePreview}))}getMessagePreviewTag(){return Boolean(Q.A.shared().getUserIdForRoomId(this.props.room.roomId))?Da.z.DM:Da.z.Untagged}async loadMessagePreview(){if(!S.A.getValue("RoomList.showMessagePreview"))return;const e=this.getMessagePreviewTag(),t=await Xa.instance.getPreviewForRoom(this.props.room,e);return null==t?void 0:t.text}async loadAndSetMessagePreview(){const e=await this.loadMessagePreview();this.snapshot.merge({messagePreview:e})}updateUserStatus(){(async()=>{let e;this.dmUserId&&S.A.getValue("feature_user_status")&&(e=await(0,Nm.iv)(this.props.client,this.dmUserId)),this.disposables.isDisposed||this.snapshot.merge({userStatus:e})})().catch(e=>{o.vF.warn(`Failed to update userStatus for ${this.dmUserId}`,e)})}static generateItemSync(e,t,n,i){var s;const o=e.tags,r=Boolean(Q.A.shared().getUserIdForRoomId(e.roomId)),a=Boolean(o[Da.z.Favourite]),l=Boolean(o[Da.z.LowPriority]),c=Boolean(o[Da.z.Archived]),d=Sm(e),m=function(e,t,n){return!t&&!n&&Sm(e)}(e,t.isGuest(),c),u=n.level>dr.S.None,p=!u&&!c,h=e.canInvite(t.getUserId())&&!r&&(0,em.g)(as.C.InviteUsers),g=!r,v=Ns.s.forRoom(e).notificationVolume;let _;switch(v){case Ds.dC.AllMessages:_=Xe.dCq.AllMessages;break;case Ds.dC.AllMessagesLoud:_=Xe.dCq.AllMessagesLoud;break;case Ds.dC.MentionsOnly:_=Xe.dCq.MentionsOnly;break;case Ds.dC.Mute:_=Xe.dCq.Mute;break;default:_=Xe.dCq.AllMessages}const f=v===Ds.dC.Mute,y=Am.e.instance.getCall(e.roomId),E=(null!==(s=null==y?void 0:y.participants.size)&&void 0!==s?s:0)>0,w=(null==y?void 0:y.callType)===Kl.JG.Voice?"voice":(null==y?void 0:y.callType)===Kl.JG.Video?"video":void 0,b=Om.buildSections(o,i),A=S.A.getValue("RoomList.showSections");return{id:e.roomId,room:e,name:e.name,isBold:n.hasAnyNotificationOrActivity,messagePreview:void 0,notification:{hasAnyNotificationOrActivity:n.hasAnyNotificationOrActivity||E,isUnsentMessage:n.isUnsentMessage,invited:n.invited,isMention:n.isMention,isActivityNotification:n.isActivityNotification,isNotification:n.isNotification,hasUnreadCount:n.hasUnreadCount,count:n.count,muted:f,callType:E?w:void 0},showMoreOptionsMenu:d,showNotificationMenu:m,isFavourite:a,isLowPriority:l,canInvite:h,canCopyRoomLink:g,canMarkAsRead:u,canMarkAsUnread:p,roomNotifState:_,sections:b,areSectionsEnabled:A}}static computeAvailableSections(){const e=(0,km.LA)();return fm.default.instance.orderedSectionTags.filter(e=>!(0,km.hv)(e)).map(t=>({tag:t,name:Om.getSectionName(t,e)}))}static buildSections(e,t){return t.map(({tag:t,name:n})=>({tag:t,name:n,isSelected:Boolean(e[t])}))}static getSectionName(e,t){var n;return e===Da.z.Favourite?(0,c._t)("room_list|section|favourites"):e===Da.z.LowPriority?(0,c._t)("room_list|section|low_priority"):(null===(n=t[e])||void 0===n?void 0:n.name)||e}}class Fm extends Xe.oY8{constructor(e){const t=(0,km.hv)(e.tag);super(e,{id:e.tag,title:e.title,isExpanded:!0,isUnread:!1,displaySectionMenu:!t,canBeReordered:!t||"chats"===e.tag}),(0,i.A)(this,"roomNotificationStates",new Set),(0,i.A)(this,"expandedBySpace",new Map),(0,i.A)(this,"currentCalls",new Set),(0,i.A)(this,"onClick",()=>{const e=!this.snapshot.current.isExpanded;this.expandedBySpace.set(this.props.spaceId,e),this.snapshot.merge({isExpanded:e}),this.props.onToggleExpanded(e)}),(0,i.A)(this,"onCallChanged",()=>{this.updateCallListeners(),this.updateNotificationState()}),(0,i.A)(this,"updateNotificationState",()=>{let e,t=!1,n=!1,i=!1,s=!1,o=!1,r=!1,a=0;for(const l of this.roomNotificationStates){l.hasAnyNotificationOrActivity&&(t=!0),l.isMention&&(n=!0),l.isNotification&&(i=!0),l.isUnsentMessage&&(s=!0),l.hasUnreadCount&&(o=!0),l.invited&&(r=!0),(l.isMention||l.isNotification)&&(a+=l.count||1);const c=l.room&&Am.e.instance.getCall(l.room.roomId);c&&c.participants.size>0&&(c.callType===Kl.JG.Video?e="video":c.callType===Kl.JG.Voice&&"video"!==e&&(e="voice"))}const l={hasAnyNotificationOrActivity:n||i||s||r||Boolean(e),isUnsentMessage:s,isMention:n,isNotification:i,hasUnreadCount:o,count:a,invited:r,callType:e,isActivityNotification:!1,muted:!1};this.snapshot.merge({isUnread:t,notification:l})}),(0,i.A)(this,"editSection",async()=>{await fm.default.instance.editSection(this.props.tag)}),(0,i.A)(this,"removeSection",async()=>{const e=0===this.roomNotificationStates.size;await fm.default.instance.removeSection(this.props.tag,e),Gi.A.trackInteraction("WebDeleteSection")});const n=S.A.watchSetting("RoomList.CustomSectionData",null,()=>this.onCustomSectionDataChange());this.disposables.track(()=>S.A.unwatchSetting(n)),this.disposables.trackListener(Am.e.instance,Am.s.Call,this.onCallChanged)}get isExpanded(){return this.snapshot.current.isExpanded}set isExpanded(e){this.expandedBySpace.set(this.props.spaceId,e),this.snapshot.merge({isExpanded:e});const t=e?"Expand":"Collapse";Gi.A.trackCollapseOrExpandSection(t,"SectionHeader")}setSpace(e){var t;this.props.spaceId=e;const n=null===(t=this.expandedBySpace.get(this.props.spaceId))||void 0===t||t;this.snapshot.merge({isExpanded:n})}setRooms(e){const t=new Set(e.map(e=>Em.n.instance.getRoomState(e)));for(const e of this.roomNotificationStates)t.has(e)||e.off(Cr.ce.Update,this.updateNotificationState);for(const e of t)this.roomNotificationStates.has(e)||e.on(Cr.ce.Update,this.updateNotificationState);this.roomNotificationStates=t,this.updateCallListeners(),this.updateNotificationState()}updateCallListeners(){const e=new Set;for(const t of this.roomNotificationStates){const n=t.room&&Am.e.instance.getCall(t.room.roomId);n&&e.add(n)}for(const t of this.currentCalls)e.has(t)||(t.off(Pm.$E.Participants,this.updateNotificationState),t.off(Pm.$E.CallTypeChanged,this.updateNotificationState));for(const t of e)this.currentCalls.has(t)||(t.on(Pm.$E.Participants,this.updateNotificationState),t.on(Pm.$E.CallTypeChanged,this.updateNotificationState));this.currentCalls=e}dispose(){for(const e of this.roomNotificationStates)e.off(Cr.ce.Update,this.updateNotificationState);this.roomNotificationStates.clear();for(const e of this.currentCalls)e.off(Pm.$E.Participants,this.updateNotificationState),e.off(Pm.$E.CallTypeChanged,this.updateNotificationState);this.currentCalls.clear(),super.dispose()}onCustomSectionDataChange(){const e=(0,km.Dm)(this.props.tag)?(0,km.LA)()[this.props.tag]:void 0;e&&this.snapshot.merge({title:e.name})}}function Lm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function Um(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Lm(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Lm(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const Vm=new Map([[ym.o.UnreadFilter,"unread"],[ym.o.PeopleFilter,"people"],[ym.o.RoomsFilter,"rooms"],[ym.o.FavouriteFilter,"favourite"],[ym.o.MentionsFilter,"mentions"],[ym.o.InvitesFilter,"invites"],[ym.o.LowPriorityFilter,"low_priority"]]),Bm=new Set(["favourite","low_priority"]);function jm(){const e=S.A.getValue("RoomList.showSections"),t=[...Vm.values()];return e?t.filter(e=>!Bm.has(e)):t}const Hm={[Da.z.Favourite]:(0,Xe._t)("room_list|section|favourites"),chats:(0,Xe._t)("room_list|section|chats"),[Da.z.LowPriority]:(0,Xe._t)("room_list|section|low_priority")};class zm extends Xe.oY8{constructor(e){const t=e.spaceStore.activeSpaceRoom,n=fm.default.instance.getSortedRoomsInActiveSpace(void 0),s=bm(e.client,t),o=jm(),{sections:r,isFlatList:a}=Wm(n,e=>!0),l=n.sections.every(e=>0===e.rooms.length);super(e,{isLoadingRooms:fm.default.instance.isLoadingRooms,isRoomListEmpty:l,filterIds:o,activeFilterId:void 0,roomListState:{activeRoomIndex:void 0,spaceId:n.spaceId,filterKeys:void 0},isFlatList:a,sections:Jm(r),canCreateRoom:s}),(0,i.A)(this,"activeFilter",void 0),(0,i.A)(this,"roomsResult",void 0),(0,i.A)(this,"sections",[]),(0,i.A)(this,"lastActiveRoomPosition",void 0),(0,i.A)(this,"roomItemViewModels",new Map),(0,i.A)(this,"roomsMap",new Map),(0,i.A)(this,"roomSectionHeaderViewModels",new Map),(0,i.A)(this,"savedExpansionStates",new Map),(0,i.A)(this,"toastRef",void 0),(0,i.A)(this,"eventToast",void 0),(0,i.A)(this,"hasUnreadActivityBelow",!1),(0,i.A)(this,"foldIndex",-1),(0,i.A)(this,"scrollToIndex",void 0),(0,i.A)(this,"onToggleFilter",e=>{let t;for(const[n,i]of Vm.entries())if(i===e){t=n;break}if(void 0===t)return;const n=this.activeFilter===t?void 0:t;this.activeFilter=n;const i=void 0!==this.activeFilter?[this.activeFilter]:void 0;this.roomsResult=fm.default.instance.getSortedRoomsInActiveSpace(i),this.updateRoomsMap(this.roomsResult),this.updateRoomListData()}),(0,i.A)(this,"onShowSectionsChange",()=>{this.activeFilter=void 0,this.clearViewModels(),this.roomsResult=fm.default.instance.getSortedRoomsInActiveSpace(),this.updateRoomsMap(this.roomsResult),this.snapshot.merge({filterIds:jm()}),this.updateRoomListData()}),(0,i.A)(this,"updateVisibleFold",e=>{this.foldIndex!==e&&(this.foldIndex=e,this.updateUnreadActivityBelow())}),(0,i.A)(this,"updateUnreadActivityBelow",()=>{const e=void 0!==this.firstUnreadRoomBelowFold();this.hasUnreadActivityBelow!==e&&(this.hasUnreadActivityBelow=e,this.recomputeToast())}),(0,i.A)(this,"setScrollToIndex",e=>{this.scrollToIndex=e}),(0,i.A)(this,"scrollToUnreadActivity",()=>{var e;const t=this.firstUnreadRoomBelowFold();t&&(null===(e=this.scrollToIndex)||void 0===e||e.call(this,t.index))}),(0,i.A)(this,"onDispatch",async e=>{e.action===$.r.ActiveRoomChanged?this.updateRoomListData(!0):e.action===$.r.ViewRoomDelta?this.handleViewRoomDelta(e):e.action===$.r.ViewRoom&&e.show_room_tile&&e.room_id?await this.scrollRoomIntoView(e.room_id):e.action===$.r.RoomListCollapseAllSections?this.onCollapseAllSections(!1):e.action===$.r.RoomListExpandAllSections&&this.onCollapseAllSections(!0)}),(0,i.A)(this,"onListsUpdate",()=>{const e=void 0!==this.activeFilter?[this.activeFilter]:void 0,t=this.roomsResult.spaceId;this.roomsResult=fm.default.instance.getSortedRoomsInActiveSpace(e);const n=this.roomsResult.spaceId;if(t!==n){this.clearViewModels(),this.roomsMap.clear(),this.updateRoomsMap(this.roomsResult);for(const e of this.roomSectionHeaderViewModels.values())e.setSpace(n);const e=this.props.spaceStore.getLastSelectedRoomIdForSpace(n);return void this.updateRoomListData(!0,e)}this.updateRoomsMap(this.roomsResult),this.updateRoomListData()}),(0,i.A)(this,"onListsLoaded",()=>{this.snapshot.merge({isLoadingRooms:!1})}),(0,i.A)(this,"createChatRoom",()=>{K.A.fire($.r.CreateChat)}),(0,i.A)(this,"createRoom",()=>{const e=this.props.spaceStore.activeSpaceRoom;e?K.A.dispatch({action:$.r.CreateRoom,parent_space:e}):K.A.dispatch({action:$.r.CreateRoom})}),(0,i.A)(this,"onSectionCreated",e=>{const t=void 0!==this.activeFilter?[this.activeFilter]:void 0;this.roomsResult=fm.default.instance.getSortedRoomsInActiveSpace(t),this.updateRoomsMap(this.roomsResult),this.updateRoomListData(!1,null,e),this.showToast("section_created")}),(0,i.A)(this,"onRoomTagged",()=>{S.A.getValue("RoomList.showSections")&&this.showToast("chat_moved")}),(0,i.A)(this,"closeToast",()=>{clearTimeout(this.toastRef),this.eventToast=void 0,this.recomputeToast()}),(0,i.A)(this,"changeSectionOrder",async(e,t)=>{await fm.default.instance.reorderSection(e,t);const n=void 0!==this.activeFilter?[this.activeFilter]:void 0;this.roomsResult=fm.default.instance.getSortedRoomsInActiveSpace(n),this.updateRoomsMap(this.roomsResult),this.updateRoomListData(!1,null,e)}),(0,i.A)(this,"onSectionDragStart",()=>{this.savedExpansionStates.clear();for(const[e,t]of this.roomSectionHeaderViewModels)this.savedExpansionStates.set(e,t.isExpanded),t.isExpanded=!1;this.updateRoomListData()}),(0,i.A)(this,"onSectionDragEnd",()=>{for(const[e,t]of this.savedExpansionStates){const n=this.roomSectionHeaderViewModels.get(e);n&&(n.isExpanded=t)}this.savedExpansionStates.clear(),this.updateRoomListData()}),(0,i.A)(this,"changeRoomSection",(e,t)=>{const n=this.props.client.getRoom(e);if(!n)return;Im(n)!==t&&Tm(n,t)}),this.roomsResult=n,this.sections=r,this.updateRoomsMap(n),this.disposables.trackListener(fm.default.instance,fm.Ko.ListsUpdate,this.onListsUpdate),this.disposables.trackListener(fm.default.instance,fm.Ko.ListsLoaded,this.onListsLoaded),this.disposables.trackListener(fm.default.instance,fm.Ko.SectionCreated,this.onSectionCreated),this.disposables.trackListener(fm.default.instance,fm.Ko.RoomTagged,this.onRoomTagged),this.disposables.trackListener(Em.n.instance,Em.N,this.updateUnreadActivityBelow);const c=K.A.register(this.onDispatch);this.disposables.track(()=>{K.A.unregister(c)});const d=S.A.watchSetting("RoomList.showSections",null,this.onShowSectionsChange);this.disposables.track(()=>S.A.unwatchSetting(d)),this.disposables.track(()=>{for(const e of this.roomItemViewModels.values())e.dispose();this.roomItemViewModels.clear()})}updateRoomsMap(e){for(const t of e.sections.flatMap(e=>e.rooms))this.roomsMap.set(t.roomId,t)}clearViewModels(){for(const e of this.roomItemViewModels.values())e.dispose();this.roomItemViewModels.clear()}get roomIds(){return this.roomsResult.sections.flatMap(e=>e.rooms).map(e=>e.roomId)}getRoomItemViewModel(e){let t=this.roomItemViewModels.get(e);if(!t){let n=this.roomsMap.get(e);if(n||(this.updateRoomsMap(this.roomsResult),n=this.roomsMap.get(e)),!n)return;t=new Om({room:n,client:this.props.client}),this.roomItemViewModels.set(e,t)}return t}getSectionHeaderViewModel(e){var t;if(this.roomSectionHeaderViewModels.has(e))return this.roomSectionHeaderViewModels.get(e);const n=Hm[e]||(0,km.Dm)(e)&&(null===(t=(0,km.LA)()[e])||void 0===t?void 0:t.name)||e,i=new Fm({tag:e,title:n,spaceId:this.roomsResult.spaceId,onToggleExpanded:()=>this.updateRoomListData()});return this.roomSectionHeaderViewModels.set(e,i),i}updateVisibleRooms(e,t){const n=this.roomIds.slice(e,t),i=new Set(n);for(const[e,t]of this.roomItemViewModels.entries())i.has(e)||(t.dispose(),this.roomItemViewModels.delete(e));this.updateUnreadActivityBelow()}firstUnreadRoomBelowFold(){if(this.foldIndex<0)return;const e=e=>Em.n.instance.getRoomState(e).hasUnreadCount;if(this.snapshot.current.isFlatList){const t=this.sections.flatMap(e=>e.rooms);for(let n=this.foldIndex+1;n<t.length;n++)if(e(t[n]))return{room:t[n],index:n};return}const t=new Map(this.roomsResult.sections.map(e=>[e.tag,e.rooms]));let n=-1;for(const r of this.sections){var i,s;n++;if(null===(i=null===(s=this.roomSectionHeaderViewModels.get(r.tag))||void 0===s?void 0:s.isExpanded)||void 0===i||i){for(const t of r.rooms)if(n++,n>this.foldIndex&&e(t))return{room:t,index:n}}else if(n>this.foldIndex){var o;const i=(null!==(o=t.get(r.tag))&&void 0!==o?o:[]).find(e);if(i)return{room:i,index:n}}}}async scrollRoomIntoView(e){var t;const n=this.roomsResult.sections.find(t=>t.rooms.some(t=>t.roomId===e));if(!n)return;const i=this.roomSectionHeaderViewModels.get(n.tag);i&&!i.isExpanded&&(i.isExpanded=!0,await this.updateRoomListData());const s=this.getRoomEntryIndex(e);void 0!==s&&(null===(t=this.scrollToIndex)||void 0===t||t.call(this,s))}getRoomEntryIndex(e){const t=!this.snapshot.current.isFlatList;let n=0;for(const i of this.sections){t&&n++;const s=i.rooms.findIndex(t=>t.roomId===e);if(-1!==s)return n+s;n+=i.rooms.length}}onCollapseAllSections(e){for(const t of this.roomSectionHeaderViewModels.values())t.isExpanded=e;this.updateRoomListData()}handleViewRoomDelta(e){const t=this.props.roomViewStore.getRoomId();if(!t)return;const{delta:n,unread:i}=e,s=this.sections.flatMap(e=>e.rooms),o=i?s.filter(e=>{const n=Em.n.instance.getRoomState(e);return e.roomId===t||n.isUnread}):s,r=o.findIndex(e=>e.roomId===t);if(-1===r)return;const[a]=o.slice((r+n)%o.length);a&&K.A.dispatch({action:$.r.ViewRoom,room_id:a.roomId,show_room_tile:!0,metricsTrigger:"WebKeyboardShortcut",metricsViaKeyboard:!0})}getActiveRoomIndex(e){if(!e)return;const t=this.sections.flatMap(e=>e.rooms).findIndex(t=>t.roomId===e);return t>=0?t:void 0}findRoomPosition(e,t){for(const n of e){const e=n.rooms.findIndex(e=>e.roomId===t);if(-1!==e)return{sectionTag:n.tag,indexInSection:e}}}applyStickyRoom(e,t){const n=this.roomsResult.sections;if(!t||e)return n;const i=this.lastActiveRoomPosition;if(!i)return n;const s=this.findRoomPosition(n,t);return s?s.sectionTag!==i.sectionTag||s.indexInSection===i.indexInSection?n:n.map(e=>{if(e.tag!==i.sectionTag)return e;const t=e.rooms;if(i.indexInSection>t.length-1)return e;const n=[...t],[o]=n.splice(s.indexInSection,1);return n.splice(i.indexInSection,0,o),Um(Um({},e),{},{rooms:n})}):n}async updateRoomListData(e=!1,t=null,n=void 0){var i;const s=null!=t?t:this.props.roomViewStore.getRoomId(),o=this.applyStickyRoom(e,s);this.roomsResult=Um(Um({},this.roomsResult),{},{sections:o}),this.updateRoomsMap(this.roomsResult),this.lastActiveRoomPosition=s?this.findRoomPosition(this.roomsResult.sections,s):void 0;for(const e of this.roomsResult.sections)this.getSectionHeaderViewModel(e.tag).setRooms(e.rooms);const{sections:r,isFlatList:a}=Wm(this.roomsResult,e=>{var t,n;return null===(t=null===(n=this.roomSectionHeaderViewModels.get(e))||void 0===n?void 0:n.isExpanded)||void 0===t||t});if(a){const e=this.roomSectionHeaderViewModels.get("chats");e&&(e.isExpanded=!0),null==e||e.setRooms(this.roomsResult.sections.flatMap(e=>e.rooms))}this.sections=r;const l=this.getActiveRoomIndex(s),c=this.snapshot.current.roomListState.filterKeys,d=null===(i=this.roomsResult.filterKeys)||void 0===i?void 0:i.map(e=>String(e)),m=Jm(this.sections),u=n&&m.some(e=>e.id===n)?n:void 0,p={activeRoomIndex:l,spaceId:this.roomsResult.spaceId,filterKeys:Ta(c,d),scrollToSectionTag:u},h=void 0!==this.activeFilter?Vm.get(this.activeFilter):void 0,g=this.roomsResult.sections.every(e=>0===e.rooms.length),v=fm.default.instance.isLoadingRooms,_=this.snapshot.current.sections;this.snapshot.merge({isLoadingRooms:v,isRoomListEmpty:g,activeFilterId:h,roomListState:Ta(this.snapshot.current.roomListState,p),sections:Ta(_,m),isFlatList:a}),this.notifyCollapseState(a),this.updateUnreadActivityBelow()}notifyCollapseState(e){if(e)return void K.A.dispatch({action:$.r.RoomListSectionsCollapseStateChanged,collapseSections:void 0});const t=this.snapshot.current.sections.every(({id:e})=>{var t,n;return!(null===(t=null===(n=this.roomSectionHeaderViewModels.get(e))||void 0===n?void 0:n.isExpanded)||void 0===t||t)});K.A.dispatch({action:$.r.RoomListSectionsCollapseStateChanged,collapseSections:t?"collapse":"expand"})}showToast(e){clearTimeout(this.toastRef),this.eventToast=e,this.recomputeToast(),this.toastRef=setTimeout(()=>{this.closeToast()},15e3)}recomputeToast(){var e;const t=null!==(e=this.eventToast)&&void 0!==e?e:this.hasUnreadActivityBelow?"unread_activity":void 0;this.snapshot.current.toast!==t&&this.snapshot.merge({toast:t})}}function Wm(e,t){const n=(0,km.LA)(),i=e.sections.filter(t=>{var i;return t.rooms.length>0||(0,km.Dm)(t.tag)&&(null===(i=n[t.tag])||void 0===i?void 0:i.spaceId)===e.spaceId}).map(e=>Um(Um({},e),{},{rooms:t(e.tag)?e.rooms:[]}));return{sections:i,isFlatList:0===i.length||1===i.length&&"chats"===i[0].tag}}function Jm(e){return e.map(({tag:e,rooms:t})=>({id:e,roomIds:t.map(e=>e.roomId)}))}function Gm(){const e=(0,s.useContext)(Ro.A),t=(0,Xe.s2q)(()=>new zm({client:e.client,roomViewStore:e.roomViewStore,spaceStore:e.spaceStore})),n=(0,s.useCallback)(e=>s.createElement(hm,{room:e}),[]),i=(0,s.useCallback)(e=>{const t=(0,dc.zM)().getNavigationAction(e);t!==mc.bY.NextLandmark&&t!==mc.bY.PreviousLandmark||(_m.r.findAndFocusNextLandmark(_m.H.ROOM_LIST,t===mc.bY.PreviousLandmark),e.stopPropagation(),e.preventDefault())},[]);return s.createElement(Xe.dR,{vm:t,renderAvatar:n,onKeyDown:i})}var Km=n("./src/stores/room-list-v3/skip-list/sorters/index.ts"),qm=n("../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/cloneDeep.js");const $m=["room_list_section","_test_dummy1","_test_dummy2"];class Ym extends r.Xlq{static get instance(){return Ym.internalInstance||(Ym.internalInstance=new Ym),Ym.internalInstance}constructor(){super(),(0,i.A)(this,"index",0),(0,i.A)(this,"enabled",!0),S.A.watchSetting("releaseAnnouncementData",null,()=>{this.emit("releaseAnnouncementChanged",this.getReleaseAnnouncement())}),re.A.sharedInstance().on("update",()=>{this.emit("releaseAnnouncementChanged",this.getReleaseAnnouncement())})}getViewedReleaseAnnouncements(){return(0,qm.A)(S.A.getValue("releaseAnnouncementData"))}enable(){this.enabled=!0}disable(){this.enabled=!1}getReleaseAnnouncement(){if(!this.enabled)return null;if(re.A.sharedInstance().getToasts().length>0)return null;const e=this.getViewedReleaseAnnouncements();for(let t=this.index;t<$m.length;t++)if(!e[$m[t]])return this.index=t,$m[this.index];return null}async markReleaseAnnouncementAsViewed(){if(!this.enabled)return;const e=this.getViewedReleaseAnnouncements();if(!$m[this.index])return;e[$m[this.index]]=!0,this.index++;if(!S.A.isLevelSupported(oe.p.ACCOUNT))return;if(S.A.canSetValue("releaseAnnouncementData",null,oe.p.ACCOUNT))try{await S.A.setValue("releaseAnnouncementData",null,oe.p.ACCOUNT,e)}catch(e){o.vF.log("Failed to set release announcement settings",e)}}async nextReleaseAnnouncement(){await this.markReleaseAnnouncementAsViewed(),this.emit("releaseAnnouncementChanged",this.getReleaseAnnouncement())}}function Qm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function Xm(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Qm(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Qm(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}(0,i.A)(Ym,"internalInstance",void 0);class Zm extends Xe.oY8{constructor(e){super(e,function(e,t){let n;switch(S.A.getValue("RoomList.preferredSorting")){case Km.U.Alphabetic:n="alphabetical";break;case Km.U.Recency:n="recent";break;case Km.U.Unread:n="unread-first"}const i=S.A.getValue("RoomList.showMessagePreview");return Xm({activeSortOption:n,isMessagePreviewEnabled:i},nu(e,t))}(e.spaceStore,e.matrixClient)),(0,i.A)(this,"activeSpace",void 0),(0,i.A)(this,"onSpaceChange",()=>{var e;const t=this.props.spaceStore.activeSpaceRoom;null===(e=this.activeSpace)||void 0===e||e.off(r.u99.Name,this.onSpaceNameChange),this.activeSpace=t,this.activeSpace&&this.disposables.trackListener(this.activeSpace,r.u99.Name,this.onSpaceNameChange),this.snapshot.merge(Xm({},nu(this.props.spaceStore,this.props.matrixClient)))}),(0,i.A)(this,"onHomeBehaviourChange",()=>{this.snapshot.merge({title:eu(this.props.spaceStore)})}),(0,i.A)(this,"onSpaceNameChange",()=>{this.snapshot.merge({title:eu(this.props.spaceStore)})}),(0,i.A)(this,"onVideoRoomsFeatureFlagChange",()=>{this.snapshot.merge({canCreateVideoRoom:tu(this.snapshot.current.canCreateRoom)})}),(0,i.A)(this,"onShowSectionsChange",()=>{this.snapshot.merge({areSectionsEnabled:S.A.getValue("RoomList.showSections")})}),(0,i.A)(this,"createChatRoom",e=>{K.A.fire($.r.CreateChat),Gi.A.trackInteraction("WebRoomListHeaderPlusMenuCreateChatItem",e)}),(0,i.A)(this,"createRoom",e=>{!async function(e){e?await(0,Gc.PT)(e):K.A.fire($.r.CreateRoom)}(this.activeSpace),Gi.A.trackInteraction("WebRoomListHeaderPlusMenuCreateRoomItem",e)}),(0,i.A)(this,"createVideoRoom",()=>{const e=S.A.getValue("feature_element_call_video_rooms")?r.CJY.UnstableCall:r.CJY.ElementVideo;this.activeSpace?(0,Gc.PT)(this.activeSpace,e):K.A.dispatch({action:$.r.CreateRoom,type:e})}),(0,i.A)(this,"openSpaceHome",()=>{this.activeSpace&&K.A.dispatch({action:$.r.ViewRoom,room_id:this.activeSpace.roomId,metricsTrigger:void 0})}),(0,i.A)(this,"inviteInSpace",()=>{this.activeSpace&&(0,Gc.Lo)(this.activeSpace)}),(0,i.A)(this,"openSpacePreferences",()=>{this.activeSpace&&(0,Gc.Wi)(this.activeSpace)}),(0,i.A)(this,"openSpaceSettings",()=>{this.activeSpace&&(0,Gc.hL)(this.activeSpace)}),(0,i.A)(this,"sort",e=>{const t=fm.default.instance.activeSortAlgorithm;let n;switch(e){case"alphabetical":n=Km.U.Alphabetic;break;case"recent":n=Km.U.Recency;break;case"unread-first":n=Km.U.Unread}fm.default.instance.resort(n),this.snapshot.merge({activeSortOption:e}),t&&Gi.A.trackRoomListSortingAlgorithmChange(t,n)}),(0,i.A)(this,"toggleMessagePreview",()=>{Gi.A.trackInteraction("WebRoomListMessagePreviewToggle");const e=!S.A.getValue("RoomList.showMessagePreview");S.A.setValue("RoomList.showMessagePreview",null,oe.p.DEVICE,e),this.snapshot.merge({isMessagePreviewEnabled:e})}),(0,i.A)(this,"createSection",()=>{fm.default.instance.createSection(),Gi.A.trackSectionCreation("RoomListHeader")}),(0,i.A)(this,"collapseOrExpandSections",()=>{const e="expand"===this.snapshot.current.collapseSections?$.r.RoomListExpandAllSections:$.r.RoomListCollapseAllSections;K.A.fire(e);const t=e===$.r.RoomListExpandAllSections?"Expand":"Collapse";Gi.A.trackCollapseOrExpandSection(t,"RoomListHeader")}),(0,i.A)(this,"onDispatch",e=>{if(e.action===$.r.RoomListSectionsCollapseStateChanged){const{collapseSections:t}=e;this.snapshot.merge({collapseSections:t&&("collapse"===t?"expand":"collapse")})}}),(0,i.A)(this,"closeSectionReleaseAnnouncement",()=>{Ym.instance.nextReleaseAnnouncement(),this.snapshot.merge({displaySectionReleaseAnnouncement:!1})}),(0,i.A)(this,"onReleaseAnnouncementChanged",()=>{const e="room_list_section"===Ym.instance.getReleaseAnnouncement();this.snapshot.merge({displaySectionReleaseAnnouncement:e})});const t=S.A.watchSetting("feature_video_rooms",null,this.onVideoRoomsFeatureFlagChange);this.disposables.track(()=>S.A.unwatchSetting(t));const n=S.A.watchSetting("RoomList.showSections",null,this.onShowSectionsChange);this.disposables.track(()=>S.A.unwatchSetting(n)),this.disposables.trackListener(e.spaceStore,Zd.tw,this.onSpaceChange),this.disposables.trackListener(e.spaceStore,Zd.EC,this.onHomeBehaviourChange),this.activeSpace=e.spaceStore.activeSpaceRoom,this.activeSpace&&this.disposables.trackListener(this.activeSpace,r.u99.Name,this.onSpaceNameChange);const s=K.A.register(this.onDispatch);this.disposables.track(()=>K.A.unregister(s)),this.disposables.trackListener(Ym.instance,"releaseAnnouncementChanged",this.onReleaseAnnouncementChanged)}}function eu(e){const t=e.activeSpaceRoom,n=null==t?void 0:t.name;return null!=n?n:(0,Zd.Ff)(e.activeSpace,e.allRoomsInHome)}function tu(e){return S.A.getValue("feature_video_rooms")&&e}function nu(e,t){const n="room_list_section"===Ym.instance.getReleaseAnnouncement(),i=S.A.getValue("RoomList.showSections"),s=e.activeSpaceRoom,o=eu(e),a=bm(t,s);return{title:o,canCreateRoom:a,canCreateVideoRoom:tu(a),displaySpaceMenu:Boolean(s),canInviteInSpace:Boolean((null==s?void 0:s.getJoinRule())===r.dxp.Public||(null==s?void 0:s.canInvite(t.getSafeUserId()))),canAccessSpaceSettings:Boolean(s&&(0,Gc.Kv)(s)),displaySectionReleaseAnnouncement:n,areSectionsEnabled:i}}const iu=({activeSpace:e})=>{const t=(0,s.useContext)(Ro.A),n=(0,em.g)(as.C.FilterContainer),[i,o]=(0,s.useState)(null),r=(0,s.useCallback)(e=>{o(e.target)},[]),a=(0,s.useCallback)(()=>{o(null)},[]),l=(0,s.useCallback)((e,t)=>{if(!i)return;const n=(0,dc.zM)().getNavigationAction(e);n!==mc.bY.PreviousLandmark&&n!==mc.bY.NextLandmark||(e.stopPropagation(),e.preventDefault(),_m.r.findAndFocusNextLandmark(_m.H.ROOM_SEARCH,n===mc.bY.PreviousLandmark))},[i]),d=(0,je.nH)(),m=(0,Xe.s2q)(()=>new Zm({matrixClient:d,spaceStore:t.spaceStore}));return s.createElement(Xe.son,{as:"nav",className:"mx_RoomListPanel",direction:"column",align:"stretch","aria-label":(0,c._t)("room_list|list_title"),onFocus:r,onBlur:a,onKeyDown:l},n&&s.createElement(im,{activeSpace:e}),s.createElement(Xe.UKO,{vm:m}),s.createElement(Gm,null))};class su extends s.Component{constructor(e,t){super(e,t),(0,i.A)(this,"updateActiveSpace",e=>{this.setState({activeSpace:e})}),this.state={activeSpace:t.spaceStore.activeSpace}}componentDidMount(){this.context.spaceStore.on(Zd.tw,this.updateActiveSpace)}componentWillUnmount(){this.context.spaceStore.off(Zd.tw,this.updateActiveSpace)}render(){const e=un()({mx_LeftPanel:!0,mx_LeftPanel_minimized:this.props.isMinimized});return s.createElement("div",{className:e},s.createElement("div",{className:"mx_LeftPanel_roomListContainer"},s.createElement(iu,{activeSpace:this.state.activeSpace})))}}(0,i.A)(su,"contextType",Ro.A);var ou=n("./src/stores/NonUrgentToastStore.ts");class ru extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"onUpdateToasts",()=>{this.setState({toasts:ou.A.instance.components})}),this.state={toasts:ou.A.instance.components}}componentDidMount(){ou.A.instance.on("update",this.onUpdateToasts)}componentWillUnmount(){ou.A.instance.off("update",this.onUpdateToasts)}render(){const e=this.state.toasts.map((e,t)=>s.createElement("div",{className:"mx_NonUrgentToastContainer_toast",key:`toast-${t}`},s.createElement(e,{})));return s.createElement("div",{className:"mx_NonUrgentToastContainer",role:"alert"},e)}}var au=n("../../node_modules/.pnpm/react-beautiful-dnd@13.1.1_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/react-beautiful-dnd/dist/react-beautiful-dnd.esm.js"),lu=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/home-solid.js"),cu=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/room.js"),du=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/plus.js"),mu=n("./src/components/views/spaces/SpaceCreateMenu.tsx"),uu=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/chevron-down.js");const pu=(e,t)=>{let n="";if(t)for(const e of t.entries())n+=e+"/";return`mx_space_collapsed_${n+e}`};class hu{static get instance(){return hu.internalInstance||(hu.internalInstance=new hu),hu.internalInstance}setSpaceCollapsedState(e,t,n){localStorage.setItem(pu(e,t),n.toString())}getSpaceCollapsedState(e,t,n){const i=localStorage.getItem(pu(e,t));return i?"true"===i:n}}(0,i.A)(hu,"internalInstance",void 0);var gu=n("./src/accessibility/context_menu/ContextMenuTooltipButton.tsx"),vu=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/user-add.js"),_u=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/leave.js"),fu=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/preferences.js"),yu=n("./src/components/views/context_menus/IconizedContextMenu.tsx"),Eu=n("./src/components/views/beta/BetaCard.tsx");const wu=["space","hideHeader","onFinished"],Su=e=>{let{space:t,hideHeader:n,onFinished:i}=e,o=(0,v.A)(e,wu);const a=(0,s.useContext)(je.Ay).getSafeUserId(),l=(0,es.ny)("feature_video_rooms"),d=(0,es.ny)("feature_element_call_video_rooms");if(!t)return null;let m=null;if("public"===t.getJoinRule()||t.canInvite(a)){const e=e=>{e.preventDefault(),e.stopPropagation(),(0,Gc.Lo)(t),i()};m=s.createElement(yu.R$,{className:"mx_SpacePanel_contextMenu_inviteButton",icon:s.createElement(vu.A,null),label:(0,c._t)("action|invite"),onClick:e})}let u=null,p=null;if((0,Gc.Kv)(t)){const e=e=>{e.preventDefault(),e.stopPropagation(),(0,Gc.hL)(t),i()};u=s.createElement(yu.R$,{icon:s.createElement(Se.A,null),label:(0,c._t)("common|settings"),onClick:e})}else{const e=e=>{e.preventDefault(),e.stopPropagation(),(0,Oc.e)(t),i()};p=s.createElement(yu.R$,{icon:s.createElement(_u.A,null),className:"mx_IconizedContextMenu_option_red",label:(0,c._t)("space|leave_dialog_action"),onClick:e})}let h=null;if(S.A.getValue("developerMode")){const e=e=>{e.preventDefault(),e.stopPropagation(),K.A.dispatch({action:$.r.ViewRoom,room_id:t.roomId,forceTimeline:!0,metricsTrigger:void 0}),i()};h=s.createElement(yu.R$,{icon:s.createElement(Se.A,null),label:(0,c._t)("space|context_menu|devtools_open_timeline"),onClick:e})}const g=t.currentState.maySendStateEvent(r.Bx4.SpaceChild,a),_=g&&(0,em.g)(as.C.CreateRooms),f=_&&l,y=g&&(0,em.g)(as.C.CreateSpaces);let E=null;if(_||y){const e=e=>{e.preventDefault(),e.stopPropagation(),Gi.A.trackInteraction("WebSpaceContextMenuNewRoomItem",e),(0,Gc.PT)(t),i()},n=e=>{e.preventDefault(),e.stopPropagation(),(0,Gc.PT)(t,d?r.CJY.UnstableCall:r.CJY.ElementVideo),i()},o=e=>{e.preventDefault(),e.stopPropagation(),(0,Gc.Sl)(t),i()};E=s.createElement(s.Fragment,null,s.createElement("div",{className:"mx_SpacePanel_contextMenu_separatorLabel"},(0,c._t)("action|add")),_&&s.createElement(yu.R$,{icon:s.createElement(du.A,null),label:(0,c._t)("common|room"),onClick:e}),f&&s.createElement(yu.R$,{icon:s.createElement(du.A,null),label:(0,c._t)("common|video_room"),onClick:n},s.createElement(Eu.s,null)),y&&s.createElement(yu.R$,{icon:s.createElement(du.A,null),label:(0,c._t)("common|space"),onClick:o},s.createElement(Eu.s,null)))}const w=e=>{e.preventDefault(),e.stopPropagation(),K.A.dispatch({action:$.r.ViewRoom,room_id:t.roomId,metricsTrigger:void 0}),i()};return s.createElement(yu.Ay,(0,xn.A)({},o,{onFinished:i,className:"mx_SpacePanel_contextMenu",compact:!0}),!n&&s.createElement("div",{className:"mx_SpacePanel_contextMenu_header"},t.name),s.createElement(yu.tx,{first:!0},s.createElement(yu.R$,{icon:s.createElement(lu.A,null),label:(0,c._t)("space|context_menu|home"),onClick:e=>{Gi.A.trackInteraction("WebSpaceContextMenuHomeItem",e),w(e)}}),m,s.createElement(yu.R$,{icon:s.createElement(ei.A,null),label:_?(0,c._t)("space|context_menu|manage_and_explore"):(0,c._t)("space|context_menu|explore"),onClick:e=>{Gi.A.trackInteraction("WebSpaceContextMenuExploreRoomsItem",e),w(e)}}),s.createElement(yu.R$,{icon:s.createElement(fu.A,null),label:(0,c._t)("common|preferences"),onClick:e=>{e.preventDefault(),e.stopPropagation(),(0,Gc.Wi)(t),i()}}),h,u,p,E))},bu=["space","spaceKey","className","icon","selected","label","contextMenuTooltip","notificationState","size","isNarrow","children","innerRef","ContextMenuComponent"],Au=["space","activeSpaces","isNested","isPanelCollapsed","onExpand","parents","innerRef","dragHandleProps"],Cu=["tabIndex"],xu=e=>{var t;let{space:n,spaceKey:i,className:o,icon:r,selected:a,label:l,contextMenuTooltip:d,notificationState:m,size:u,isNarrow:p,children:h,innerRef:g,ContextMenuComponent:_}=e,f=(0,v.A)(e,bu);const y=(0,s.useContext)(Ro.A),[E,w,S,b]=(0,tr.EF)(g),[A,C,x]=(0,Pr.A9)(w),k=C?0:-1,R=null!=i?i:null==n?void 0:n.roomId;let I,T,P=s.createElement("div",{className:"mx_SpaceButton_avatarPlaceholder"},s.createElement("div",{className:"mx_SpaceButton_icon"},r));if(n&&(P=s.createElement(ms.A,{size:u,room:n,type:"square"})),R&&m){let e=(0,c._t)("a11y_jump_first_unread_room");(null==n?void 0:n.getMyMembership())===$n.O.Invite&&(e=(0,c._t)("a11y|jump_first_invite"));const t=e=>{e.stopPropagation(),e.preventDefault(),y.spaceStore.setActiveRoomInSpace(R)};I=s.createElement("div",{className:"mx_SpacePanel_badgeContainer"},s.createElement(kr.A,{onClick:t,notification:m,"aria-label":e,tabIndex:k,showUnsentTooltip:!0}))}E&&w.current&&_&&(T=s.createElement(_,(0,xn.A)({},(0,tr.Dq)(w.current.getBoundingClientRect(),0),{space:n,onFinished:b})));const N=null!==(t=f.onClick)&&void 0!==t?t:a&&n?()=>K.A.dispatch({action:$.r.ViewRoom,room_id:n.roomId}):()=>{R&&y.spaceStore.setActiveSpace(R)};return s.createElement(Ve.A,(0,xn.A)({},f,{className:un()("mx_SpaceButton",o,{mx_SpaceButton_active:a,mx_SpaceButton_hasMenuOpen:E,mx_SpaceButton_narrow:p,mx_SpaceButton_withIcon:Boolean(r)}),"aria-label":l,title:!p||E?void 0:l,onClick:N,onContextMenu:S,ref:x,tabIndex:k,onFocus:A}),h,s.createElement("div",{className:"mx_SpaceButton_selectionWrapper"},s.createElement("div",{className:"mx_SpaceButton_avatarWrapper"},P,I),!p&&s.createElement("span",{className:"mx_SpaceButton_name"},l),_&&s.createElement(gu.o,{className:"mx_SpaceButton_menuButton",onClick:S,title:d,isExpanded:E},s.createElement(uc.A,null)),T))};class ku extends s.PureComponent{constructor(e,t){super(e,t),(0,i.A)(this,"buttonRef",(0,s.createRef)()),(0,i.A)(this,"onSpaceUpdate",()=>{this.setState({childSpaces:this.childSpaces})}),(0,i.A)(this,"onRoomNameChange",()=>{this.setState({name:this.props.space.name})}),(0,i.A)(this,"toggleCollapse",e=>{this.props.onExpand&&this.isCollapsed&&this.props.onExpand();const t=!this.isCollapsed;hu.instance.setSpaceCollapsedState(this.props.space.roomId,this.props.parents,t),this.setState({collapsed:t}),e.stopPropagation()}),(0,i.A)(this,"onKeyDown",e=>{var t;let n=!0;const i=(0,dc.zM)().getRoomListAction(e),s=null===(t=this.state.childSpaces)||void 0===t?void 0:t.length;switch(i){case mc.bY.CollapseRoomListSection:if(s&&!this.isCollapsed)this.toggleCollapse(e);else{var o;const e=null===(o=this.buttonRef)||void 0===o||null===(o=o.current)||void 0===o||null===(o=o.parentElement)||void 0===o?void 0:o.parentElement,t=null==e?void 0:e.previousElementSibling;null==t||t.focus()}break;case mc.bY.ExpandRoomListSection:if(s)if(this.isCollapsed)this.toggleCollapse(e);else{var r,a;const e=null===(r=this.buttonRef)||void 0===r||null===(r=r.current)||void 0===r?void 0:r.nextElementSibling,t=null==e?void 0:e.querySelector(".mx_SpaceItem");null==t||null===(a=t.querySelector(".mx_SpaceButton"))||void 0===a||a.focus()}break;default:n=!1}n&&(e.stopPropagation(),e.preventDefault())});const n=hu.instance.getSpaceCollapsedState(e.space.roomId,this.props.parents,!e.isNested);this.state={name:this.props.space.name,collapsed:n,childSpaces:this.childSpaces}}componentDidMount(){this.context.spaceStore.on(this.props.space.roomId,this.onSpaceUpdate),this.props.space.on(r.u99.Name,this.onRoomNameChange)}componentWillUnmount(){this.context.spaceStore.off(this.props.space.roomId,this.onSpaceUpdate),this.props.space.off(r.u99.Name,this.onRoomNameChange)}get childSpaces(){return this.context.spaceStore.getChildSpaces(this.props.space.roomId).filter(e=>{var t;return!(null!==(t=this.props.parents)&&void 0!==t&&t.has(e.roomId))})}get isCollapsed(){return this.state.collapsed||!!this.props.isPanelCollapsed}render(){var e,t;const n=this.props,{space:i,activeSpaces:o,isNested:r,isPanelCollapsed:a,onExpand:l,parents:d,innerRef:m,dragHandleProps:u}=n,p=(0,v.A)(n,Au),h=this.isCollapsed,g=un()(this.props.className,{mx_SpaceItem:!0,mx_SpaceItem_narrow:a,collapsed:h,hasSubSpaces:null===(e=this.state.childSpaces)||void 0===e?void 0:e.length}),_=i.getMyMembership()===$n.O.Invite,f=_?xr.forSymbol("!",dr.S.Highlight):this.context.spaceStore.getNotificationState(i.roomId),y=null===(t=this.state.childSpaces)||void 0===t?void 0:t.length;let E;y&&!h&&(E=s.createElement(Ru,{spaces:this.state.childSpaces,activeSpaces:o,isNested:!0,parents:new Set(d).add(i.roomId)}));const w=y?s.createElement(Ve.A,{className:"mx_SpaceButton_toggleCollapse",onClick:this.toggleCollapse,tabIndex:-1,"aria-label":h?(0,c._t)("action|expand"):(0,c._t)("action|collapse")},h?s.createElement(pc.A,null):s.createElement(uu.A,null)):null,S=u||{},{tabIndex:b}=S,A=(0,v.A)(S,Cu),C=o.includes(i.roomId);return s.createElement("li",(0,xn.A)({},p,{className:g,ref:m,"aria-expanded":y?!h:void 0,"aria-selected":C,role:"treeitem"}),s.createElement(xu,(0,xn.A)({},A,{space:i,className:_?"mx_SpaceButton_invite":void 0,selected:C,label:this.state.name,contextMenuTooltip:(0,c._t)("space|context_menu|options"),notificationState:f,isNarrow:a,size:r?"24px":"32px",onKeyDown:this.onKeyDown,ContextMenuComponent:this.props.space.getMyMembership()===$n.O.Join?Su:void 0}),w),E)}}(0,i.A)(ku,"contextType",Ro.A);const Ru=({spaces:e,activeSpaces:t,isNested:n,parents:i})=>s.createElement("ul",{className:"mx_SpaceTreeLevel",role:"group"},e.map(e=>s.createElement(ku,{key:e.roomId,activeSpaces:t,space:e,isNested:n,parents:i})));var Iu=n("./src/stores/UIStore.ts"),Tu=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Button/IconButton/IconButton.js"),Pu=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Typography/Text.js"),Nu=n("./src/theme.ts"),Du=n("./src/components/views/elements/Dropdown.tsx");function Mu(){const e=(0,es.ti)("theme"),t=(0,es.wL)(oe.p.DEVICE,"use_system_theme",null,!1,!0),n=(0,es.wL)(oe.p.DEVICE,"theme",null,!1,!0),i=(0,es.ti)("use_system_theme");return t?{theme:e,systemThemeActivated:!0}:n?{theme:e,systemThemeActivated:!1}:{theme:e,systemThemeActivated:i}}const Ou="MATCH_SYSTEM_THEME_ID",Fu=({requestClose:e})=>{const t=(0,s.useMemo)(()=>(0,Nu.E0)(),[]),n=Mu(),i=(0,Nu.kZ)(n.theme),o=i||n.theme,{systemThemeActivated:r}=n,a=[{id:Ou,name:(0,c._t)("theme|match_system")},...t],l=r?Ou:o;return s.createElement("div",{className:"mx_QuickThemeSwitcher"},s.createElement("h3",{className:"mx_QuickThemeSwitcher_heading"},(0,c._t)("common|theme")),s.createElement(Du.A,{id:"mx_QuickSettingsButton_themePickerDropdown",onOptionChange:async t=>{Gi.A.trackInteraction("WebQuickSettingsThemeDropdown");try{t===Ou?await S.A.setValue("use_system_theme",null,oe.p.DEVICE,!0):(K.A.dispatch({action:$.r.RecheckTheme,forceTheme:t}),await Promise.all([S.A.setValue("theme",null,oe.p.DEVICE,t),S.A.setValue("use_system_theme",null,oe.p.DEVICE,!1)]))}catch{K.A.dispatch({action:$.r.RecheckTheme})}e()},value:l,label:(0,c._t)("common|theme")},a.map(e=>s.createElement("div",{key:e.id},e.name))))};var Lu=n("./src/components/views/dialogs/DevtoolsDialog.tsx");const Uu=({isPanelCollapsed:e=!1})=>{const t=(0,s.useContext)(Ro.A),[n,i,o,r]=(0,tr.EF)(),a=t.roomViewStore.getRoomId(),l=(0,es.ti)("developerMode");let d;n&&i.current&&(d=s.createElement(tr.Ay,(0,xn.A)({},(0,tr.Gi)(i.current.getBoundingClientRect(),tr.t4.None,16),{wrapperClassName:"mx_QuickSettingsButton_ContextMenuWrapper",onFinished:r,managed:!1,focusLock:!0,role:"region","aria-label":(0,c._t)("quick_settings|title")}),s.createElement("h2",null,(0,c._t)("quick_settings|title")),s.createElement(Ve.A,{onClick:()=>{r(),K.A.dispatch({action:$.r.ViewUserSettings})},kind:"primary_outline"},(0,c._t)("quick_settings|all_settings")),a&&l&&s.createElement(Ve.A,{onClick:()=>{r(),X.Ay.createDialog(Lu.A,{roomId:a},"mx_DevtoolsDialog_wrapper")},kind:"danger_outline"},(0,c._t)("devtools|title")),s.createElement(Fu,{requestClose:r})));let m=s.createElement(Tu.K,{"aria-label":(0,c._t)("quick_settings|title"),className:un()("mx_QuickSettingsButton",{expanded:!e}),onClick:o,ref:i,"aria-expanded":!e},s.createElement(s.Fragment,null,s.createElement(Se.A,null),!e&&s.createElement(Pu.E,{className:"mx_QuickSettingsButton_label",as:"span",size:"md",title:(0,c._t)("common|settings")},(0,c._t)("common|settings"))));return e&&(m=s.createElement(Ys.m,{label:(0,c._t)("quick_settings|title"),placement:"right"},m)),s.createElement(s.Fragment,null,m,d)},Vu=["children","trackHorizontalOverflow","verticalScrollsHorizontally","className"];class Bu extends s.Component{constructor(e){super(e),(0,i.A)(this,"scrollElement",void 0),(0,i.A)(this,"likelyTrackpadUser",null),(0,i.A)(this,"checkAgainForTrackpad",0),(0,i.A)(this,"collectScroller",e=>{var t,n;null===(t=(n=this.props).wrappedRef)||void 0===t||t.call(n,e),e&&!this.scrollElement&&(this.scrollElement=e,this.scrollElement.addEventListener("scroll",this.checkOverflow,{passive:!0}),this.checkOverflow())}),(0,i.A)(this,"checkOverflow",()=>{if(!this.scrollElement)return;const e=this.scrollElement.scrollTop>0,t=this.scrollElement.scrollHeight>this.scrollElement.scrollTop+this.scrollElement.clientHeight,n=this.scrollElement.scrollLeft>0,i=this.scrollElement.scrollWidth>this.scrollElement.scrollLeft+this.scrollElement.clientWidth;e?this.scrollElement.classList.add("mx_IndicatorScrollbar_topOverflow"):this.scrollElement.classList.remove("mx_IndicatorScrollbar_topOverflow"),t?this.scrollElement.classList.add("mx_IndicatorScrollbar_bottomOverflow"):this.scrollElement.classList.remove("mx_IndicatorScrollbar_bottomOverflow"),n?this.scrollElement.classList.add("mx_IndicatorScrollbar_leftOverflow"):this.scrollElement.classList.remove("mx_IndicatorScrollbar_leftOverflow"),i?this.scrollElement.classList.add("mx_IndicatorScrollbar_rightOverflow"):this.scrollElement.classList.remove("mx_IndicatorScrollbar_rightOverflow"),this.props.trackHorizontalOverflow&&this.setState({leftIndicatorOffset:n?`${this.scrollElement.scrollLeft}px`:"0",rightIndicatorOffset:i?`-${this.scrollElement.scrollLeft}px`:"0"})}),(0,i.A)(this,"onMouseWheel",e=>{if(this.props.verticalScrollsHorizontally&&this.scrollElement){const t=0,n=1,i=(new Date).getTime();if(Math.abs(e.deltaX)>0?(this.likelyTrackpadUser=!0,this.checkAgainForTrackpad=i+6e4):this.likelyTrackpadUser&&i>=this.checkAgainForTrackpad&&(this.likelyTrackpadUser=!1),this.likelyTrackpadUser)return;if(Math.abs(e.deltaX)<=t){const t=e.deltaY<0?-50:50,i=Math.abs(e.deltaY)<25?e.deltaY+t:e.deltaY;this.scrollElement.scrollLeft+=i*n}}}),this.state={leftIndicatorOffset:"0",rightIndicatorOffset:"0"}}componentDidUpdate(e){s.Children.count(e.children)!==s.Children.count(this.props.children)&&this.checkOverflow()}componentDidMount(){this.checkOverflow(),Iu.A.instance.on(Iu.x.Resize,this.checkOverflow)}componentWillUnmount(){var e;null===(e=this.scrollElement)||void 0===e||e.removeEventListener("scroll",this.checkOverflow),Iu.A.instance.off(Iu.x.Resize,this.checkOverflow)}render(){const e=this.props,{children:t,trackHorizontalOverflow:n,verticalScrollsHorizontally:i,className:o}=e,r=(0,v.A)(e,Vu),a={left:this.state.leftIndicatorOffset},l={right:this.state.rightIndicatorOffset},c=n?s.createElement("div",{className:"mx_IndicatorScrollbar_leftOverflowIndicator",style:a}):null,d=n?s.createElement("div",{className:"mx_IndicatorScrollbar_rightOverflowIndicator",style:l}):null;return s.createElement(Xe.qme,(0,xn.A)({},r,{className:un()("mx_AutoHideScrollbar",o),wrappedRef:this.collectScroller,onWheel:this.onMouseWheel}),c,t,d)}}var ju=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/threads-solid.js");const Hu=["displayLabel","notificationLevel","disableTooltip","ref"],zu=function(e){let{displayLabel:t,notificationLevel:n,disableTooltip:i,ref:o}=e,r=(0,v.A)(e,Hu);const a=!i&&!t&&void 0;return s.createElement(Ys.m,{label:(0,c._t)("common|threads"),placement:"right",open:a},s.createElement(Tu.K,(0,xn.A)({"aria-label":(0,c._t)("common|threads"),className:un()("mx_ThreadsActivityCentreButton",{expanded:t}),indicator:(0,Ra.W7)(n)},r,{ref:o}),s.createElement(s.Fragment,null,s.createElement(ju.A,{className:"mx_ThreadsActivityCentreButton_Icon"}),t&&s.createElement(Pu.E,{className:"mx_ThreadsActivityCentreButton_Text",as:"span",size:"md",title:(0,c._t)("common|threads")},(0,c._t)("common|threads")))))};var Wu=n("./src/stores/right-panel/RightPanelStorePhases.ts"),Ju=n("./src/Unread.ts"),Gu=n("./src/stores/room-list-v3/isRoomVisible.ts");function Ku(e){const t=(0,es.ti)("feature_dynamic_room_predecessors"),n=(0,es.ti)("Notifications.tac_only_notifications"),i=(0,je.nH)(),[o,a]=(0,s.useState)({greatestNotificationLevel:dr.S.None,rooms:[]}),l=(0,s.useCallback)(()=>{a(function(e,t,n){const i=e.getVisibleRooms(t);let s=dr.S.None;const o=[];for(const e of i)if((0,Gu._)(e)&&(0,Ju.Nb)(e)){const t=(0,Ra.gM)(e);if(n&&t<=dr.S.Activity)continue;t>s&&(s=t),o.push({room:e,notificationLevel:t})}const r=o.sort((e,t)=>function(e,t){var n,i;const{notificationLevel:s,room:o}=e,{notificationLevel:r,room:a}=t,l=null===(n=o.getLastThread())||void 0===n||null===(n=n.events.at(-1))||void 0===n?void 0:n.getTs(),c=null===(i=a.getLastThread())||void 0===i||null===(i=i.events.at(-1))||void 0===i?void 0:i.getTs();return s>r?-1:r>s?1:l?c?c-l:-1:1}(e,t));return{greatestNotificationLevel:s,rooms:r}}(i,t,n))},[i,t,n]),c=(0,s.useMemo)(()=>(0,Gn.A)(l,500,{leading:!1,trailing:!0}),[l]);return(0,mo.ml)(i,r.AUM.Sync,c),(0,mo.ml)(i,r.OQv.Decrypted,c),(0,s.useEffect)(()=>{e&&l()},[l,e]),o}var qu=n("./src/components/views/rooms/NotificationBadge/StatelessNotificationBadge.tsx");function $u({displayButtonLabel:e}){const[t,n]=(0,s.useState)(!1),i=Ku(t),o=(0,es.ti)("Notifications.tac_only_notifications")?(0,c._t)("threads_activity_centre|no_rooms_with_threads_notifs"):(0,c._t)("threads_activity_centre|no_rooms_with_unread_threads");return s.createElement("div",{className:"mx_ThreadsActivityCentre_container",onKeyDown:e=>{if(!t)return;(0,dc.zM)().getNavigationAction(e)===mc.bY.FilterRooms&&e.stopPropagation()}},s.createElement(bi.W,{align:"start",side:"top",open:t,onOpenChange:e=>{e&&Gi.A.trackInteraction("WebThreadsActivityCentreButton"),n(e)},title:(0,c._t)("threads_activity_centre|header"),trigger:s.createElement(zu,{displayLabel:e,notificationLevel:i.greatestNotificationLevel})},s.createElement("div",{className:"mx_ThreadsActivityCentre_rows"},i.rooms.map(({room:e,notificationLevel:t})=>s.createElement(Yu,{key:e.roomId,room:e,notificationLevel:t,onClick:()=>n(!1)})),0===i.rooms.length&&s.createElement("div",{className:"mx_ThreadsActivityCentre_emptyCaption"},o))))}function Yu({room:e,onClick:t,notificationLevel:n}){const i=(0,s.useContext)(Ro.A);return s.createElement(Ai.D,{className:"mx_ThreadsActivityCentreRow",onSelect:n=>{t(),i.rightPanelStore.setCard({phase:Wu.n.ThreadPanel},!0,e.roomId),Gi.A.trackInteraction("WebThreadsActivityCentreRoomItem",n),K.A.dispatch({action:$.r.ViewRoom,show_room_tile:!0,room_id:e.roomId,metricsTrigger:"WebThreadsActivityCentre",focusNext:"threadsPanel"})},label:e.name,Icon:s.createElement(tc.A,{room:e,size:"32px"})},s.createElement(qu.V,{level:n,count:0,symbol:null,forceDot:!0}))}var Qu=n("./src/components/views/settings/KeyboardShortcut.tsx"),Xu=n("./src/modules/ExtrasApi.ts"),Zu=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/chat-solid.js"),ep=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/bug.js"),tp=n("./src/components/views/dialogs/InfoDialog.tsx"),np=n("./src/rageshake/submit-rageshake.ts");const ip=e=>{const t=(0,s.useRef)(null),[n,i]=(0,s.useState)(""),[o,r]=Vc(!1);(0,s.useEffect)(()=>{var e;null===(e=t.current)||void 0===e||e.focus()},[]);const a=()=>{e.onFinished(),X.Ay.createDialog(rn.A,{})},l=!!d.A.get().bug_report_endpoint_url;let m,u;l&&(m=s.createElement("div",{className:"mx_FeedbackDialog_section mx_FeedbackDialog_rateApp"},s.createElement(Zu.A,null),s.createElement("h3",null,(0,c._t)("feedback|comment_label")),s.createElement("p",null,(0,c._t)("feedback|platform_username")),s.createElement(yi.A,{id:"feedbackComment",label:(0,c._t)("common|feedback"),type:"text",autoComplete:"off",value:n,element:"textarea",onChange:e=>{i(e.target.value)},ref:t}),s.createElement(hs.A,{checked:o,onChange:r},(0,c._t)("feedback|may_contact_label")))),l&&(u=s.createElement("p",{className:"mx_FeedbackDialog_section_microcopy"},(0,c._t)("feedback|pro_type",{},{debugLogsLink:e=>s.createElement(Ve.A,{kind:"link_inline",onClick:a},e)})));const p=d.A.getObject("feedback").get("existing_issues_url"),h=d.A.getObject("feedback").get("new_issue_url");return s.createElement(on.A,{className:"mx_FeedbackDialog",hasCancelButton:l,title:(0,c._t)("common|feedback"),description:s.createElement(s.Fragment,null,s.createElement("div",{className:"mx_FeedbackDialog_section"},s.createElement(ep.A,null),s.createElement("h3",null,(0,c._t)("common|report_a_bug")),s.createElement("p",null,(0,c._t)("feedback|existing_issue_link",{},{existingIssuesLink:e=>s.createElement(it.A,{target:"_blank",rel:"noreferrer noopener",href:p},e),newIssueLink:e=>s.createElement(it.A,{target:"_blank",rel:"noreferrer noopener",href:h},e)})),u),m),button:l?(0,c._t)("feedback|send_feedback_action"):(0,c._t)("action|go_back"),buttonDisabled:l&&!n,onFinished:t=>{if(l&&t){const t=e.feature?`${e.feature}-feedback`:"feedback";(0,np.Wz)(t,n,o),X.Ay.createDialog(tp.A,{title:(0,c._t)("feedback|sent"),description:(0,c._t)("bug_reporting|thank_you")})}e.onFinished()}})};var sp=n("./src/utils/Feedback.ts"),op=n("./src/utils/WellKnownUtils.ts");function rp(e,t){const n=new Od.Q(e).get("embedded_pages");let i=n?new Od.Q(n).get("home_url"):null;var s;i||(i=null===(s=(0,op.qh)(t))||void 0===s?void 0:s.home_url);return i}class ap extends Xe.oY8{constructor(e){super(e,{userStatus:e.ownProfileStore.userStatus}),(0,i.A)(this,"onProfileStoreUpdate",()=>{this.snapshot.merge({userStatus:this.props.ownProfileStore.userStatus})}),(0,i.A)(this,"setStatus",e=>{const t=this.snapshot.current.userStatus;this.snapshot.merge({userStatus:e}),(0,Nm.if)(this.props.client,e).catch(e=>{this.snapshot.merge({userStatus:t}),o.vF.warn("Failed to set user status",e)})}),(0,i.A)(this,"clearStatus",()=>{const e=this.snapshot.current.userStatus;this.snapshot.merge({userStatus:void 0}),(0,Nm.jg)(this.props.client).catch(t=>{this.snapshot.merge({userStatus:e}),o.vF.warn("Failed to clear user status",t)})}),this.disposables.trackListener(e.ownProfileStore,"update",this.onProfileStoreUpdate)}}class lp extends ap{constructor(e){super(e),(0,i.A)(this,"onSetStatusClick",()=>{K.A.dispatch({action:$.r.ToggleUserMenu}),K.A.dispatch({action:$.r.ViewUserSettings,initialTabId:ct.v.Account})})}}class cp extends Xe.oY8{static computeSnapshot(e,t,n){var i;const s=!!rp(d.A.get(),e),o=!e.isGuest(),r=e.getSafeUserId(),a=t.displayName||r,l=null!==(i=t.getHttpAvatarUrl(88))&&void 0!==i?i:void 0,c=new lp({client:e,ownProfileStore:t});return{open:!1,userId:r,displayName:a,avatarUrl:l,expanded:!n,manageAccountHref:void 0,showAvatar:o,userStatus:t.userStatus,showUserStatus:S.A.getValue("feature_user_status")&&o,setStatusViewModel:c,actions:{createAccount:!o,signIn:!o,openHomePage:s,linkNewDevice:o,openSecurity:o,openFeedback:(0,sp.I)(),openSettings:!0}}}constructor(e,t,n,s){super(e,cp.computeSnapshot(n,e.ownProfileStore,s)),(0,i.A)(this,"setStatusVm",void 0),(0,i.A)(this,"recalculateProfile",()=>{var e;const t=this.props.ownProfileStore.displayName||this.snapshot.current.userId,n=null!==(e=this.props.ownProfileStore.getHttpAvatarUrl(88))&&void 0!==e?e:void 0,i=this.props.ownProfileStore.userStatus;this.snapshot.merge({displayName:t,avatarUrl:n,userStatus:i})}),(0,i.A)(this,"setOpen",e=>{this.snapshot.merge({open:e})}),(0,i.A)(this,"setExpanded",e=>{this.snapshot.merge({expanded:e})}),(0,i.A)(this,"createAccount",()=>{this.setOpen(!1),this.dispatcher.dispatch({action:"start_registration"})}),(0,i.A)(this,"signIn",()=>{this.setOpen(!1),this.dispatcher.dispatch({action:"start_login"})}),(0,i.A)(this,"openHomePage",()=>{this.setOpen(!1),this.dispatcher.dispatch({action:$.r.ViewHomePage})}),(0,i.A)(this,"openFeedback",()=>{this.setOpen(!1),X.Ay.createDialog(ip)}),(0,i.A)(this,"linkNewDevice",()=>{this.setOpen(!1),this.dispatcher.dispatch({action:$.r.ViewUserSettings,initialTabId:ct.v.SessionManager,props:{showMsc4108QrCode:!0}})}),(0,i.A)(this,"openSecurity",()=>{this.setOpen(!1),this.dispatcher.dispatch({action:$.r.ViewUserSettings,initialTabId:ct.v.Security})}),(0,i.A)(this,"openSettings",()=>{this.setOpen(!1),this.dispatcher.dispatch({action:$.r.ViewUserSettings})}),(0,i.A)(this,"clearStatus",()=>{this.setOpen(!1),(0,Nm.jg)(this.client).catch(e=>{o.vF.warn("Failed to clear user status",e)})}),this.dispatcher=t,this.client=n,this.setStatusVm=new lp({client:n,ownProfileStore:e.ownProfileStore}),e.ownProfileStore.on("update",this.recalculateProfile),this.loadAuthMetadata()}dispose(){this.props.ownProfileStore.off("update",this.recalculateProfile),this.setStatusVm.dispose(),super.dispose()}async loadAuthMetadata(){const e=await this.client.getAuthMetadata().catch(()=>{});this.snapshot.merge({manageAccountHref:null==e?void 0:e.account_management_uri})}}var dp=n("./src/stores/OwnProfileStore.ts");const mp=["onFinished","hideHeader"],up=["selected","isPanelCollapsed","size"],pp=["children","isPanelCollapsed","setPanelCollapsed","isDraggingOver","innerRef"],hp=e=>{let{onFinished:t,hideHeader:n}=e,i=(0,v.A)(e,mp);const o=(0,es.ti)("Spaces.allRoomsInHome");return s.createElement(yu.Ay,(0,xn.A)({},i,{onFinished:t,className:"mx_SpacePanel_contextMenu",compact:!0}),!n&&s.createElement("div",{className:"mx_SpacePanel_contextMenu_header"},(0,c._t)("common|home")),s.createElement(yu.tx,{first:!0},s.createElement(yu.LS,{label:(0,c._t)("settings|sidebar|metaspaces_home_all_rooms"),active:o,onClick:()=>{t(),S.A.setValue("Spaces.allRoomsInHome",null,oe.p.ACCOUNT,!o)}})))},gp=e=>{let{selected:t,isPanelCollapsed:n,size:i="32px"}=e,o=(0,v.A)(e,up);return s.createElement("li",{className:un()("mx_SpaceItem",{collapsed:n}),role:"treeitem","aria-selected":t},s.createElement(xu,(0,xn.A)({},o,{selected:t,isNarrow:n,size:i})))},vp=e=>e.spaceStore.allRoomsInHome?e.roomNotificationStateStore.globalState:e.spaceStore.getNotificationState(Zd._b.Home),_p=({isPanelCollapsed:e,setPanelCollapsed:t})=>{const[n,i,o,r]=(0,tr.EF)();let a;(0,s.useEffect)(()=>{!e&&n&&r()},[e]),n&&(a=s.createElement(mu.Ay,{onFinished:r}));const l=n?r:()=>{e||t(!0),o()};return s.createElement("li",{className:un()("mx_SpaceItem mx_SpaceItem_new",{collapsed:e}),role:"treeitem","aria-selected":!1},s.createElement(xu,{className:un()("mx_SpaceButton_new",{mx_SpaceButton_newCancel:n}),label:n?(0,c._t)("action|cancel"):(0,c._t)("create_space|label"),onClick:l,isNarrow:e,innerRef:i,size:"32px",icon:s.createElement(du.A,null)}),a)},fp={[Zd._b.Home]:({selected:e,isPanelCollapsed:t})=>{const n=(0,s.useContext)(Ro.A),i=(0,mo.dF)(n.spaceStore,Zd.EC,()=>n.spaceStore.allRoomsInHome),[o,r]=(0,s.useState)(vp(n)),a=(0,s.useCallback)(()=>{r(vp(n))},[n]);return(0,s.useEffect)(a,[a,i]),(0,mo.ml)(n.roomNotificationStateStore,Em.N,a),s.createElement(gp,{spaceKey:Zd._b.Home,selected:e,isPanelCollapsed:t,label:(0,Zd.Ff)(Zd._b.Home,i),notificationState:o,ContextMenuComponent:hp,contextMenuTooltip:(0,c._t)("common|options"),size:"32px",icon:s.createElement(lu.A,null)})},[Zd._b.Orphans]:({selected:e,isPanelCollapsed:t})=>{const n=(0,s.useContext)(Ro.A);return s.createElement(gp,{spaceKey:Zd._b.Orphans,selected:e,isPanelCollapsed:t,label:(0,Zd.Ff)(Zd._b.Orphans),notificationState:n.spaceStore.getNotificationState(Zd._b.Orphans),size:"32px",icon:s.createElement(cu.A,null)})},[Zd._b.VideoRooms]:({selected:e,isPanelCollapsed:t})=>{const n=(0,s.useContext)(Ro.A);return s.createElement(gp,{spaceKey:Zd._b.VideoRooms,selected:e,isPanelCollapsed:t,label:(0,Zd.Ff)(Zd._b.VideoRooms),notificationState:n.spaceStore.getNotificationState(Zd._b.VideoRooms),size:"32px",icon:s.createElement(om.A,null)})}},yp=s.memo(e=>{let{children:t,isPanelCollapsed:n,setPanelCollapsed:i,isDraggingOver:o,innerRef:r}=e,a=(0,v.A)(e,pp);const l=(0,s.useContext)(Ro.A),[d,m,u,p]=(()=>{const e=(0,s.useContext)(Ro.A),t=(0,mo.dF)(e.spaceStore,Zd.kQ,()=>e.spaceStore.invitedSpaces),[n,i]=(0,mo.dF)(e.spaceStore,Zd.bZ,()=>[e.spaceStore.enabledMetaSpaces,e.spaceStore.spacePanelSpaces]);return[t,n,i,(0,mo.dF)(e.spaceStore,Zd.tw,()=>e.spaceStore.activeSpace)]})(),h=p?[p]:[],g=(0,Xu.a)(yl.r.instance.extras),_=m.filter(e=>!(e===Zd._b.VideoRooms&&!S.A.getValue("feature_video_rooms"))).map(e=>{const t=fp[e];return s.createElement(t,{key:e,selected:p===e,isPanelCollapsed:n})});return s.createElement(Bu,(0,xn.A)({},a,{wrappedRef:r,className:"mx_SpaceTreeLevel",style:o?{pointerEvents:"none"}:void 0,as:"ul",role:"tree","aria-label":(0,c._t)("common|spaces")}),_,d.map(e=>s.createElement(ku,{key:e.roomId,space:e,activeSpaces:h,isPanelCollapsed:n,onExpand:()=>i(!1)})),u.map((e,t)=>s.createElement(au.sx,{key:e.roomId,draggableId:e.roomId,index:t},(t,o)=>s.createElement(ku,(0,xn.A)({},t.draggableProps,{dragHandleProps:t.dragHandleProps,key:e.roomId,innerRef:t.innerRef,className:o.isDragging?"mx_SpaceItem_dragging":void 0,space:e,activeSpaces:h,isPanelCollapsed:n,onExpand:()=>i(!1)})))),t,g.map(e=>s.createElement("li",{key:e.spaceKey,className:un()("mx_SpaceItem",{collapsed:n}),role:"treeitem","aria-selected":!1},s.createElement(xu,(0,xn.A)({},e,{isNarrow:n,size:"32px",selected:p===e.spaceKey,onClick:()=>{var t;l.spaceStore.setActiveSpace(e.spaceKey),null===(t=e.onSelected)||void 0===t||t.call(e)}})))),(0,em.g)(as.C.CreateSpaces)&&s.createElement(_p,{isPanelCollapsed:n,setPanelCollapsed:i}))}),Ep=()=>{const e=(0,s.useContext)(Ro.A),t=e.client,[n,i]=(0,s.useState)(!1),[o,r]=(0,s.useState)(!0),a=(0,s.useRef)(null);(0,s.useLayoutEffect)(()=>(a.current&&Iu.A.instance.trackElementDimensions("SpacePanel",a.current),()=>Iu.A.instance.stopTrackingElementDimensions("SpacePanel")),[]),(0,Dc.F)(K.A,e=>{e.action===$.r.ToggleSpacePanel&&r(!o)});const l=(0,Xe.s2q)(()=>new cp({ownProfileStore:dp.V.instance},K.A,t,o));return(0,Dc.F)(K.A,e=>{e.action===$.r.ToggleUserMenu&&l.setOpen(!l.getSnapshot().open)}),(0,s.useEffect)(()=>{l.setExpanded(!o)},[l,o]),s.createElement(Pr.Se,{handleHomeEnd:!0,handleUpDown:!n},({onKeyDownHandler:t,onDragEndHandler:n})=>s.createElement(au.JY,{onDragStart:()=>{i(!0)},onDragEnd:t=>{i(!1),t.destination&&(e.spaceStore.moveRootSpace(t.source.index,t.destination.index),n())}},s.createElement("nav",{className:un()("mx_SpacePanel",{collapsed:o}),onKeyDown:e=>{const n=(0,dc.zM)().getNavigationAction(e);if(n===mc.bY.NextLandmark||n===mc.bY.PreviousLandmark)return _m.r.findAndFocusNextLandmark(_m.H.ACTIVE_SPACE_BUTTON,n===mc.bY.PreviousLandmark),e.stopPropagation(),void e.preventDefault();t(e)},ref:a,"aria-label":(0,c._t)("common|spaces")},s.createElement(Xe.BgT,{vm:l,className:"mx_UserMenu"}),s.createElement(Ve.A,{className:un()("mx_SpacePanel_toggleCollapse",{expanded:!o}),onClick:()=>r(!o),title:o?(0,c._t)("action|expand"):(0,c._t)("action|collapse"),caption:s.createElement(Qu.S,{value:{ctrlOrCmdKey:!0,shiftKey:!0,key:"d"},className:"mx_SpacePanel_Tooltip_KeyboardShortcut"})},s.createElement(pc.A,null)),s.createElement(au.gL,{droppableId:"top-level-spaces"},(e,t)=>s.createElement(yp,(0,xn.A)({},e.droppableProps,{isPanelCollapsed:o,setPanelCollapsed:r,isDraggingOver:t.isDraggingOver,innerRef:e.innerRef}),e.placeholder)),s.createElement($u,{displayButtonLabel:!o}),s.createElement(Uu,{isPanelCollapsed:o}))))};var wp=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/webrtc/callFeed.ts");class Sp extends s.Component{constructor(e){super(e),(0,i.A)(this,"element",(0,s.createRef)()),(0,i.A)(this,"onAudioOutputChanged",e=>{const t=this.element.current;if(e)try{t.setSinkId(e)}catch(e){o.vF.error("Couldn't set requested audio output device: using default",e),o.vF.warn("Couldn't set requested audio output device: using default",e)}}),(0,i.A)(this,"onNewStream",()=>{this.setState({audioMuted:this.props.feed.isAudioMuted()}),this.playMedia()}),this.state={audioMuted:this.props.feed.isAudioMuted()}}componentDidMount(){Yd.Ay.instance.addListener(Yd.hW.AudioOutputChanged,this.onAudioOutputChanged),this.props.feed.addListener(wp.B.NewStream,this.onNewStream),this.playMedia()}componentWillUnmount(){Yd.Ay.instance.removeListener(Yd.hW.AudioOutputChanged,this.onAudioOutputChanged),this.props.feed.removeListener(wp.B.NewStream,this.onNewStream),this.stopMedia()}async playMedia(){const e=this.element.current;if(e){this.onAudioOutputChanged(Yd.Ay.getAudioOutput()),e.muted=!1,e.srcObject=this.props.feed.stream,e.autoplay=!0;try{e.load()}catch(e){o.vF.info(`Failed to play media element with feed for userId ${this.props.feed.userId} with purpose ${this.props.feed.purpose}`,e)}}}stopMedia(){const e=this.element.current;e&&(e.pause(),e.removeAttribute("src"))}render(){return this.state.audioMuted?null:s.createElement("audio",{ref:this.element})}}class bp extends s.Component{constructor(e){super(e),(0,i.A)(this,"onFeedsChanged",()=>{this.setState({feeds:this.props.call.getRemoteFeeds()})}),this.state={feeds:this.props.call.getRemoteFeeds()}}componentDidMount(){this.props.call.addListener(Kl.$E.FeedsChanged,this.onFeedsChanged)}componentWillUnmount(){this.props.call.removeListener(Kl.$E.FeedsChanged,this.onFeedsChanged)}render(){return this.state.feeds.map((e,t)=>s.createElement(Sp,{feed:e,key:t}))}}var Ap=n("../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/debounce.js"),Cp=n("./src/TimezoneHandler.ts"),xp=n("./src/ContentMessages.ts"),kp=n("../../node_modules/.pnpm/re-resizable@6.11.2_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/re-resizable/lib/index.js");class Rp extends s.Component{constructor(e,t){super(e,t),(0,i.A)(this,"onResizeStart",()=>{this.context.resizeNotifier.startResizing()}),(0,i.A)(this,"onResize",()=>{this.context.resizeNotifier.notifyRightHandleResized()}),(0,i.A)(this,"onResizeStop",(e,t,n,i)=>{const s=this.loadSidePanelSize().width+i.width;this.context.resizeNotifier.stopResizing(),window.localStorage.setItem(this.sizeSettingStorageKey,s.toString()),ue.Vo.instance.trackEvent({eventName:"WebPanelResize",panel:"right",roomType:this.props.analyticsRoomType,size:s})})}get sizeSettingStorageKey(){let e="mx_rhs_size";return this.props.sizeKey&&(e+=`_${this.props.sizeKey}`),e}loadSidePanelSize(){let e=parseInt(window.localStorage.getItem(this.sizeSettingStorageKey),10);return isNaN(e)&&(e=this.props.defaultSize),{height:"100%",width:e}}render(){const e=s.Children.only(this.props.children),t=this.props.panel;let n;return!this.props.collapsedRhs&&t&&(n=s.createElement(kp.c,{key:this.props.sizeKey,defaultSize:this.loadSidePanelSize(),minWidth:320,maxWidth:"50%",enable:{top:!1,right:!1,bottom:!1,left:!0,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1},onResizeStart:this.onResizeStart,onResize:this.onResize,onResizeStop:this.onResizeStop,className:"mx_RightPanel_ResizeWrapper",handleClasses:{left:"mx_ResizeHandle--horizontal"}},t)),s.createElement("div",{className:"mx_MainSplit"},e,n)}}(0,i.A)(Rp,"contextType",Ro.A),(0,i.A)(Rp,"defaultProps",{defaultSize:320});var Ip=n("./src/stores/right-panel/RightPanelStore.ts"),Tp=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Link/Link.js"),Pp=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Badge/Badge.js"),Np=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Search/Search.js"),Dp=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Menu/ToggleMenuItem.js"),Mp=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/favourite.js"),Op=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/link.js"),Fp=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/export-archive.js"),Lp=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/files.js"),Up=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/extensions.js"),Vp=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/user-profile.js"),Bp=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/pin.js"),jp=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/lock-off.js"),Hp=n("./src/components/views/right_panel/BaseCard.tsx"),zp=n("./src/hooks/useIsEncrypted.ts"),Wp=n("./src/utils/video-rooms.ts");function Jp(e){const t=e.client;return(!!e.canInvite(t.getSafeUserId())||!(!e.isSpaceRoom()||e.getJoinRule()!==r.dxp.Public))&&e.getMyMembership()===$n.O.Join&&(0,em.g)(as.C.InviteUsers)}const Gp=({room:e,matrixClient:t,permalinkCreator:n,onFinished:i})=>s.createElement(ke.A,{onFinished:i},s.createElement(yo,{room:e,matrixClient:t,permalinkCreator:n,onFinished:i}));let Kp=function(e){return e.Html="Html",e.PlainText="PlainText",e.Json="Json",e}({}),qp=function(e){return e.Timeline="Timeline",e.Beginning="Beginning",e.LastNMessages="LastNMessages",e}({});const $p=e=>{switch(e){case Kp.Html:return(0,c._t)("export_chat|html");case Kp.Json:return(0,c._t)("export_chat|json");case Kp.PlainText:return(0,c._t)("export_chat|text");default:throw new Error("Unknown format")}};var Yp=n("./src/components/views/elements/Validation.tsx"),Qp=n("../../node_modules/.pnpm/react-dom@19.2.7_react@19.2.7/node_modules/react-dom/client.js"),Xp=n("../../node_modules/.pnpm/react-dom@19.2.7_react@19.2.7/node_modules/react-dom/server.browser.js"),Zp=n("../../node_modules/.pnpm/escape-html@1.0.3/node_modules/escape-html/index.js"),eh=n.n(Zp),th=n("../../node_modules/.pnpm/file-saver@2.0.5/node_modules/file-saver/dist/FileSaver.min.js"),nh=n("../../node_modules/.pnpm/sanitize-filename@1.6.4/node_modules/sanitize-filename/index.js"),ih=n.n(nh),sh=n("./src/utils/DecryptFile.ts");function oh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function rh(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?oh(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oh(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class ah{constructor(e,t,n,s){if((0,i.A)(this,"files",[]),(0,i.A)(this,"fileNames",new Map),(0,i.A)(this,"cancelled",!1),(0,i.A)(this,"getRelationsForEvent",(e,t,n)=>this.room.getUnfilteredTimelineSet().relations.getChildEventsForEvent(e,t,n)),this.room=e,this.exportType=t,this.exportOptions=n,this.setProgressText=s,n.maxSize<1048576||n.maxSize>8388608e3||n.numberOfMessages&&n.numberOfMessages>10**8||t===qp.LastNMessages&&!n.numberOfMessages)throw new Error("Invalid export options");window.addEventListener("beforeunload",this.onBeforeUnload)}get destinationFileName(){return this.makeFileNameNoExtension()+".zip"}onBeforeUnload(e){return e.preventDefault(),e.returnValue=(0,c._t)("export_chat|unload_confirm")}updateProgress(e,t=!0,n=!0){t&&o.vF.log(e),n&&this.setProgressText(e)}addFile(e,t){const n={name:e,blob:t};this.files.push(n)}makeFileNameNoExtension(){var e;const t=ih()(null!==(e=this.room.name)&&void 0!==e?e:(0,c._t)("common|unnamed_room")).trim()||"Unnamed Room",n=(0,Bt.td)(new Date).replace(/:/g,"-");return`${ih()(d.A.get().brand)} - ${t} - Chat Export - ${n}`}async downloadZIP(){const e=this.destinationFileName,t=e.substring(0,e.lastIndexOf(".")),{default:i}=await n.e(6090).then(n.t.bind(n,"../../node_modules/.pnpm/jszip@3.10.1/node_modules/jszip/dist/jszip.min.js",23)),s=new i;if(this.cancelled)return this.cleanUp();this.updateProgress((0,c._t)("export_chat|generating_zip"));for(const e of this.files)s.file(t+"/"+e.name,e.blob);const o=await s.generateAsync({type:"blob"});(0,th.saveAs)(o,t+".zip")}cleanUp(){return o.vF.log("Cleaning up..."),window.removeEventListener("beforeunload",this.onBeforeUnload),""}async cancelExport(){o.vF.log("Cancelling export..."),this.cancelled=!0}downloadPlainText(e,t){const n=new Blob([t],{type:"text/plain"});(0,th.saveAs)(n,e)}setEventMetadata(e){return e.setMetadata(this.room.currentState,!1),e}getLimit(){let e;if(this.exportType===qp.LastNMessages)e=this.exportOptions.numberOfMessages;else e=10**8;return e}async getRequiredEvents(){const e=this.room.client.getEventMapper();let t=null,n=[];if(this.exportType===qp.Timeline)n=this.room.getLiveTimeline().getEvents();else{let s=this.getLimit();for(;s;){var i;const o=Math.min(s,1e3),a=await this.room.client.createMessagesRequest(this.room.roomId,t,o,r.OP3.Backward);if(this.cancelled)return this.cleanUp(),[];if(0===a.chunk.length)break;s-=a.chunk.length;const l=a.chunk.map(e);for(const e of l)n.push(e);this.exportType===qp.LastNMessages?this.updateProgress((0,c._t)("export_chat|fetched_n_events_with_total",{count:n.length,total:this.exportOptions.numberOfMessages})):this.updateProgress((0,c._t)("export_chat|fetched_n_events",{count:n.length})),t=null!==(i=a.end)&&void 0!==i?i:null}n.reverse()}const s=n.filter(e=>e.isEncrypted()).map(e=>this.room.client.decryptEventIfNeeded(e,{emit:!1}));await Promise.all(s);for(let e=0;e<n.length;e++)this.setEventMetadata(n[e]);return n}async getMediaBlob(e){let t;try{const n=e.isEncrypted(),i=e.getContent();if(n&&i.hasOwnProperty("file")&&"m.sticker"!==e.getType())t=await(0,sh.It)(i.file);else{const e=(0,Ci.m)(i);if(!e.srcHttp)throw new Error("Cannot fetch without srcHttp");const n=await fetch(e.srcHttp);t=await n.blob()}}catch{o.vF.log("Error decrypting media")}if(!t)throw new Error("Unable to fetch file");return t}splitFileName(e){const t=e.lastIndexOf(".");if(-1===t)return[e,""];return[e.slice(0,t),"."+e.slice(t+1)]}makeUniqueFilePath(e){const t=({directory:e,name:t,date:n,extension:i,count:s=0})=>`${e}/${t}-${n}${s>0?` (${s})`:""}${i}`,n=t(e),i=this.fileNames.get(n)||0;return this.fileNames.set(n,i+1),i>0?t(rh(rh({},e),{},{count:i})):n}getFilePath(e){let t;switch(e.getContent().msgtype){case"m.image":t="images";break;case"m.video":t="videos";break;case"m.audio":t="audio";break;default:t="m.sticker"===e.getType()?"stickers":"files"}const n=(0,Bt.ej)(new Date(e.getTs()));let[i,s]=this.splitFileName(e.getContent().body);return"m.sticker"===e.getType()&&(s=".png"),(0,Ho.Mp)(e)&&(s=".ogg"),this.makeUniqueFilePath({directory:t,name:i,date:n,extension:s})}isReply(e){const t=(e.isEncrypted()?e.event.content:e.getContent())["m.relates_to"];return!(!t||!t["m.in_reply_to"])}isAttachment(e){const t=["m.sticker","m.image","m.file","m.video","m.audio"];return e.getType()===t[0]||t.includes(e.getContent().msgtype)}}class lh extends s.Component{constructor(e){super(e),(0,i.A)(this,"onMouseDown",e=>{this.setState({location:{currentX:e.clientX,currentY:e.clientY}}),document.addEventListener("mousemove",this.state.onMouseMove),document.addEventListener("mouseup",this.state.onMouseUp)}),(0,i.A)(this,"onMouseUp",e=>{document.removeEventListener("mousemove",this.state.onMouseMove),document.removeEventListener("mouseup",this.state.onMouseUp),this.props.onMouseUp(e)}),this.state={onMouseMove:this.onMouseMove.bind(this),onMouseUp:this.onMouseUp.bind(this),location:{currentX:0,currentY:0}}}onMouseMove(e){const t=this.props.dragFunc(this.state.location,e);this.setState({location:t})}render(){return s.createElement("div",{className:this.props.className,onMouseDown:this.onMouseDown})}}class ch extends s.Component{constructor(e){super(e),(0,i.A)(this,"dragFunc",(e,t)=>{const n=t.clientX-e.currentX,i=this.state.width+n;return i<this.props.minWidth||i>this.props.maxWidth?e:(this.setState({width:i}),this.updateCSSWidth.bind(this)(i),{currentX:t.clientX,currentY:e.currentY})}),(0,i.A)(this,"onMoueUp",()=>{this.props.roomId&&S.A.setValue("ircDisplayNameWidth",this.props.roomId,oe.p.ROOM_DEVICE,this.state.width)}),this.state={width:S.A.getValue("ircDisplayNameWidth",this.props.roomId),IRCLayoutRoot:null}}componentDidMount(){this.setState({IRCLayoutRoot:document.querySelector(".mx_IRCLayout")},()=>this.updateCSSWidth(this.state.width))}updateCSSWidth(e){var t;null===(t=this.state.IRCLayoutRoot)||void 0===t||t.style.setProperty("--name-width",e+"px")}render(){return s.createElement(lh,{className:"mx_ProfileResizer",dragFunc:this.dragFunc,onMouseUp:this.onMoueUp})}}function dh(e){return uh(e,[e.client.getSafeUserId()].concat(e.client.getIgnoredUsers()))}function mh(e){return uh(e,[e.client.getSafeUserId()])}function uh(e,t=[]){const n=[],i=Object.keys(e.currentState.members);for(const s of i)e.currentState.members[s].typing&&-1===t.indexOf(s)&&n.push(e.currentState.members[s]);return n}class ph extends s.Component{constructor(...e){super(...e),(0,i.A)(this,"state",{usersTyping:mh(this.props.room),delayedStopTypingTimers:{}}),(0,i.A)(this,"isVisible",()=>ph.isVisible(this.state)),(0,i.A)(this,"onRoomTimeline",(e,t)=>{if((null==t?void 0:t.roomId)===this.props.room.roomId){const t=e.getSender(),n=this.state.usersTyping.filter(e=>e.userId!==t);n.length!==this.state.usersTyping.length&&this.setState({usersTyping:n}),this.abortUserTimer(t)}}),(0,i.A)(this,"onRoomMemberTyping",()=>{const e=dh(this.props.room);this.setState({delayedStopTypingTimers:this.updateDelayedStopTypingTimers(e),usersTyping:e})})}componentDidMount(){_.J.safeGet().on(r.o5X.Typing,this.onRoomMemberTyping),_.J.safeGet().on(r.u99.Timeline,this.onRoomTimeline)}componentDidUpdate(e,t){const n=ph.isVisible(t),i=ph.isVisible(this.state);this.props.onShown&&!n&&i?this.props.onShown():this.props.onHidden&&n&&!i&&this.props.onHidden()}componentWillUnmount(){const e=_.J.get();e&&(e.removeListener(r.o5X.Typing,this.onRoomMemberTyping),e.removeListener(r.u99.Timeline,this.onRoomTimeline)),Object.values(this.state.delayedStopTypingTimers).forEach(e=>e.abort())}static isVisible(e){return 0!==e.usersTyping.length||0!==Object.keys(e.delayedStopTypingTimers).length}updateDelayedStopTypingTimers(e){const t=this.state.usersTyping.filter(t=>!e.some(e=>t.userId===e.userId)),n=e.filter(e=>!this.state.usersTyping.some(t=>e.userId===t.userId));n.forEach(e=>{const t=this.state.delayedStopTypingTimers[e.userId];t&&t.abort()});let i=Object.assign({},this.state.delayedStopTypingTimers);return i=n.reduce((e,t)=>(delete e[t.userId],e),i),i=t.reduce((e,t)=>{if(!e[t.userId]){const n=new q.A(5e3);e[t.userId]=n,n.start(),n.finished().then(()=>this.removeUserTimer(t.userId),()=>{})}return e},i),i}abortUserTimer(e){const t=this.state.delayedStopTypingTimers[e];t&&(t.abort(),this.removeUserTimer(e))}removeUserTimer(e){if(this.state.delayedStopTypingTimers[e]){const t=Object.assign({},this.state.delayedStopTypingTimers);delete t[e],this.setState({delayedStopTypingTimers:t})}}renderTypingIndicatorAvatars(e,t){let n=0;e.length>t&&(n=e.length-t+1,e=e.slice(0,t-1));const i=e.map(e=>s.createElement(bo.A,{key:e.userId,member:e,size:"24px",resizeMethod:"crop",viewUserOnClick:!0,"aria-live":"off"}));return n>0&&i.push(s.createElement("span",{className:"mx_WhoIsTypingTile_remainingAvatarPlaceholder",key:"others"},"+",n)),i}render(){const e=[...this.state.usersTyping];for(const t in this.state.delayedStopTypingTimers){const n=this.props.room.getMember(t);n&&e.push(n)}const t=new Intl.Collator;e.sort((e,n)=>t.compare(e.name,n.name));const n=function(e,t){let n=0;if(e.length>t&&(n=e.length-t+1),0===e.length)return"";if(1===e.length)return(0,c._t)("timeline|typing_indicator|one_user",{displayName:e[0].name});const i=e.map(e=>e.name);if(n>=1)return(0,c._t)("timeline|typing_indicator|more_users",{names:i.slice(0,t-1).join(", "),count:n});{const e=i.pop();return(0,c._t)("timeline|typing_indicator|two_users",{names:i.join(", "),lastPerson:e})}}(e,this.props.whoIsTypingLimit);return n?s.createElement("li",{className:"mx_WhoIsTypingTile","aria-atomic":"true"},s.createElement("div",{className:"mx_WhoIsTypingTile_avatars"},this.renderTypingIndicatorAvatars(e,this.props.whoIsTypingLimit)),s.createElement("div",{className:"mx_WhoIsTypingTile_label"},n)):null}}(0,i.A)(ph,"defaultProps",{whoIsTypingLimit:3});var hh=n("./src/components/structures/ScrollPanel.tsx"),gh=n("./src/Editing.ts");class vh{constructor(e,t,n,s,o,r){(0,i.A)(this,"events",[]),(0,i.A)(this,"ejectedEvents",[]),(0,i.A)(this,"readMarker",void 0),this.panel=e,this.firstEventAndShouldShow=t,this.prevEvent=n,this.lastShownEvent=s,this.nextEvent=o,this.nextEventTile=r,this.readMarker=e.readMarkerForEvent(t.event.getId(),t.event===s)}}(0,i.A)(vh,"canStartGroup",(e,t)=>!0);var _h=n("./src/TextForEvent.tsx"),fh=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/visibility-off.js");const yh=()=>{var e;const{room:t}=(0,aa.ME)("room"),n=null==t?void 0:t.getLiveTimeline().getState(r.qss.BACKWARDS),i=null==n||null===(e=n.getStateEvents("m.room.history_visibility")[0])||void 0===e?void 0:e.getContent().history_visibility;let o;return"invited"==i?o=(0,c._t)("timeline|no_permission_messages_before_invite"):"joined"==i&&(o=(0,c._t)("timeline|no_permission_messages_before_join")),s.createElement(Xe.pc8,{icon:s.createElement(fh.A,null),className:"mx_EventTileBubble mx_HistoryTile",title:(0,c._t)("timeline|historical_messages_unavailable"),subtitle:o})},Eh=({events:e,children:t,threshold:n=3,onToggle:i,startExpanded:r=!1,summaryMembers:a,summaryText:l,layout:d=Do.P.Group})=>{const[m,u]=Vc(r);(0,s.useEffect)(()=>{i&&i()},[m]);const p=e.map(e=>e.getId()).join(",");if(e.length<n)return s.createElement("li",{className:"mx_GenericEventListSummary","data-scroll-tokens":p,"data-expanded":!0,"data-layout":d},s.createElement("ol",{className:"mx_GenericEventListSummary_unstyledList"},t));let h;if(m)h=s.createElement(s.Fragment,null,s.createElement("div",{className:"mx_GenericEventListSummary_spacer"}," "),s.createElement("ol",{className:"mx_GenericEventListSummary_unstyledList"},t));else{const e=(0,Br.A)(null==a?void 0:a.filter(e=>!(null==e||!e.getMxcAvatarUrl)||(o.vF.error("EventListSummary given null summaryMember, termites may be afoot eating event senders",a),!1)),e=>e.getMxcAvatarUrl()).map(e=>s.createElement(bo.A,{key:e.userId,member:e,size:"14px"}));h=s.createElement("div",{className:"mx_EventTile_line"},s.createElement("div",{className:"mx_EventTile_info"},s.createElement("span",{className:"mx_GenericEventListSummary_avatars",onClick:u},e),s.createElement("span",{className:"mx_TextualEvent mx_GenericEventListSummary_summary"},l)))}return s.createElement("li",{className:"mx_GenericEventListSummary","data-scroll-tokens":p,"data-expanded":m+"","data-layout":d},s.createElement(Ve.A,{kind:"link_inline",className:"mx_GenericEventListSummary_toggle",onClick:u,"aria-expanded":m},m?(0,c._t)("action|collapse"):(0,c._t)("action|expand")),h)};var wh=n("./src/utils/ReactUtils.tsx"),Sh=n("./src/components/views/elements/Spoiler.tsx");const bh=()=>{Ip.A.instance.setCard({phase:Wu.n.PinnedMessages},!1)},Ah=[r.Bx4.RoomMember];var Ch=function(e){return e.Joined="joined",e.Left="left",e.JoinedAndLeft="joined_and_left",e.LeftAndJoined="left_and_joined",e.InviteReject="invite_reject",e.InviteWithdrawal="invite_withdrawal",e.Invited="invited",e.Banned="banned",e.Unbanned="unbanned",e.Kicked="kicked",e.ChangedName="changed_name",e.ChangedAvatar="changed_avatar",e.NoChange="no_change",e.ChangedPins="pinned_messages",e.MessageRemoved="message_removed",e.HiddenEvent="hidden_event",e}(Ch||{});class xh extends s.Component{constructor(e){super(e),(0,i.A)(this,"onEventSentinelUpdated",(0,Gn.A)(()=>{this.setState(this.generateState())},500,{leading:!0,trailing:!0})),this.state=this.generateState()}generateState(){const e=this.props.events,t=new Map,n={};return e.forEach((e,i)=>{var s;const o=e.getType();let a=e.getSender();e.isState()&&o===r.Bx4.RoomThirdPartyInvite?a=e.getContent().display_name:e.isState()&&o===r.Bx4.RoomMember?a=e.getStateKey():e.isRedacted()&&null!==(s=e.getUnsigned())&&void 0!==s&&s.redacted_because&&(a=e.getUnsigned().redacted_because.sender),n[a]||(n[a]=[]);let l=a;if(e.isRedacted()){var c;const e=null===(c=this.context)||void 0===c||null===(c=c.room)||void 0===c?void 0:c.getMember(a);e&&(l=e.name,t.set(a,e))}else e.target&&Ah.includes(o)?(l=e.target.name,t.set(a,e.target)):e.sender&&o!==r.Bx4.RoomThirdPartyInvite&&(l=e.sender.name,t.set(a,e.sender));n[a].push({mxEvent:e,displayName:l,index:i})}),{userEvents:n,summaryMembers:Array.from(t.values())}}componentDidMount(){this.bindSentinelListeners(this.props.events)}componentDidUpdate(e){e.events!==this.props.events&&(this.unbindSentinelListeners(e.events),this.bindSentinelListeners(this.props.events),this.setState(this.generateState()))}componentWillUnmount(){this.unbindSentinelListeners(this.props.events)}bindSentinelListeners(e){for(const t of e)t.on(r.OQv.SentinelUpdated,this.onEventSentinelUpdated)}unbindSentinelListeners(e){for(const t of e)t.off(r.OQv.SentinelUpdated,this.onEventSentinelUpdated)}shouldComponentUpdate(e,t){return e.events.length!==this.props.events.length||e.events.length<this.props.threshold||e.layout!==this.props.layout||(0,Me.dc)(t.summaryMembers,this.state.summaryMembers)||(0,Me.dc)(Object.values(t.userEvents),Object.values(this.state.userEvents))||Object.keys(t.userEvents).length!==Object.keys(this.state.userEvents).length||Object.keys(t.userEvents).some(e=>t.userEvents[e].some((t,n)=>{var i,s;return(0,ui.No)(t,null!==(i=null===(s=this.state.userEvents[e])||void 0===s?void 0:s[n])&&void 0!==i?i:{})}))}generateSummary(e,t){const n=t.map(t=>{const n=e[t];let i;i=function(e){return e.startsWith(Ch.Banned)||e.includes(`,${Ch.Banned}`)}(t)?n.map(e=>s.createElement(Sh.A,{key:e},e)):n.map(e=>s.createElement(s.Fragment,null,e));const o=this.renderNameList(i),r=t.split(","),a=xh.getCanonicalTransitions(r),l=xh.coalesceRepeatedTransitions(a).map(e=>xh.getDescriptionForTransition(e.transitionType,i.length,e.repeats)),d=(0,C.ki)(l);return(0,c._t)("timeline|summary|format",{nameList:o,transitionList:d})});return n?(0,wh.i)(n,", "):null}renderNameList(e){return(0,C.ki)(e,this.props.summaryLength)}static getCanonicalTransitions(e){const t={[Ch.Joined]:{after:Ch.Left,newTransition:Ch.JoinedAndLeft},[Ch.Left]:{after:Ch.Joined,newTransition:Ch.LeftAndJoined}},n=[];for(let i=0;i<e.length;i++){const s=e[i],o=e[i+1];let r=s;i<e.length-1&&t[s]&&t[s].after===o&&(r=t[s].newTransition,i++),n.push(r)}return n}static coalesceRepeatedTransitions(e){const t=[];for(const n of e)t.length>0&&t[t.length-1].transitionType===n?t[t.length-1].repeats+=1:t.push({transitionType:n,repeats:1});return t}static getDescriptionForTransition(e,t,n){let i;switch(e){case Ch.Joined:i=t>1?(0,c._t)("timeline|summary|joined_multiple",{severalUsers:"",count:n}):(0,c._t)("timeline|summary|joined",{oneUser:"",count:n});break;case Ch.Left:i=t>1?(0,c._t)("timeline|summary|left_multiple",{severalUsers:"",count:n}):(0,c._t)("timeline|summary|left",{oneUser:"",count:n});break;case Ch.JoinedAndLeft:i=t>1?(0,c._t)("timeline|summary|joined_and_left_multiple",{severalUsers:"",count:n}):(0,c._t)("timeline|summary|joined_and_left",{oneUser:"",count:n});break;case Ch.LeftAndJoined:i=t>1?(0,c._t)("timeline|summary|rejoined_multiple",{severalUsers:"",count:n}):(0,c._t)("timeline|summary|rejoined",{oneUser:"",count:n});break;case Ch.InviteReject:i=t>1?(0,c._t)("timeline|summary|rejected_invite_multiple",{severalUsers:"",count:n}):(0,c._t)("timeline|summary|rejected_invite",{oneUser:"",count:n});break;case Ch.InviteWithdrawal:i=t>1?(0,c._t)("timeline|summary|invite_withdrawn_multiple",{severalUsers:"",count:n}):(0,c._t)("timeline|summary|invite_withdrawn",{oneUser:"",count:n});break;case Ch.Invited:i=t>1?(0,c._t)("timeline|summary|invited_multiple",{count:n}):(0,c._t)("timeline|summary|invited",{count:n});break;case Ch.Banned:i=t>1?(0,c._t)("timeline|summary|banned_multiple",{count:n}):(0,c._t)("timeline|summary|banned",{count:n});break;case Ch.Unbanned:i=t>1?(0,c._t)("timeline|summary|unbanned_multiple",{count:n}):(0,c._t)("timeline|summary|unbanned",{count:n});break;case Ch.Kicked:i=t>1?(0,c._t)("timeline|summary|kicked_multiple",{count:n}):(0,c._t)("timeline|summary|kicked",{count:n});break;case Ch.ChangedName:i=t>1?(0,c._t)("timeline|summary|changed_name_multiple",{severalUsers:"",count:n}):(0,c._t)("timeline|summary|changed_name",{oneUser:"",count:n});break;case Ch.ChangedAvatar:i=t>1?(0,c._t)("timeline|summary|changed_avatar_multiple",{severalUsers:"",count:n}):(0,c._t)("timeline|summary|changed_avatar",{oneUser:"",count:n});break;case Ch.NoChange:i=t>1?(0,c._t)("timeline|summary|no_change_multiple",{severalUsers:"",count:n}):(0,c._t)("timeline|summary|no_change",{oneUser:"",count:n});break;case Ch.ChangedPins:i=t>1?(0,c._t)("timeline|summary|pinned_events_multiple",{severalUsers:"",count:n},{a:e=>s.createElement(Ve.A,{kind:"link_inline",onClick:bh},e)}):(0,c._t)("timeline|summary|pinned_events",{oneUser:"",count:n},{a:e=>s.createElement(Ve.A,{kind:"link_inline",onClick:bh},e)});break;case Ch.MessageRemoved:i=t>1?(0,c._t)("timeline|summary|redacted_multiple",{severalUsers:"",count:n}):(0,c._t)("timeline|summary|redacted",{oneUser:"",count:n});break;case Ch.HiddenEvent:i=t>1?(0,c._t)("timeline|summary|hidden_event_multiple",{severalUsers:"",count:n}):(0,c._t)("timeline|summary|hidden_event",{oneUser:"",count:n})}return null!=i?i:null}static getTransitionSequence(e){return e.map(xh.getTransition)}static getTransition(e){if(e.mxEvent.isRedacted())return Ch.MessageRemoved;switch(e.mxEvent.getType()){case r.Bx4.RoomThirdPartyInvite:return(0,Vd.Qo)(e.mxEvent)?Ch.Invited:Ch.InviteWithdrawal;case r.Bx4.RoomPinnedEvents:return Ch.ChangedPins;case r.Bx4.RoomMember:switch(e.mxEvent.getContent().membership){case $n.O.Invite:return Ch.Invited;case $n.O.Ban:return Ch.Banned;case $n.O.Join:return e.mxEvent.getPrevContent().membership===$n.O.Join?e.mxEvent.getContent().displayname!==e.mxEvent.getPrevContent().displayname?Ch.ChangedName:e.mxEvent.getContent().avatar_url!==e.mxEvent.getPrevContent().avatar_url?Ch.ChangedAvatar:Ch.NoChange:Ch.Joined;case $n.O.Leave:if(e.mxEvent.getSender()===e.mxEvent.getStateKey())return e.mxEvent.getPrevContent().membership===$n.O.Invite?Ch.InviteReject:Ch.Left;switch(e.mxEvent.getPrevContent().membership){case $n.O.Invite:return Ch.InviteWithdrawal;case $n.O.Ban:return Ch.Unbanned;default:return Ch.Kicked}default:return null}default:return Ch.HiddenEvent}}getAggregate(e){const t={},n={};return Object.keys(e).forEach(i=>{const s=e[i][0],o=s.displayName,r=xh.getTransitionSequence(e[i]).join(",");t[r]||(t[r]=[],n[r]=-1),t[r].push(o),(-1===n[r]||s.index<n[r])&&(n[r]=s.index)}),{names:t,indices:n}}render(){const e=this.getAggregate(this.state.userEvents),t=Object.keys(e.names).sort((t,n)=>e.indices[t]-e.indices[n]);return s.createElement(Eh,{events:this.props.events,threshold:this.props.threshold,onToggle:this.props.onToggle,startExpanded:this.props.startExpanded,children:this.props.children,summaryMembers:this.state.summaryMembers,layout:this.props.layout,summaryText:this.generateSummary(e.names,t)})}}(0,i.A)(xh,"contextType",Qo.Ay),(0,i.A)(xh,"defaultProps",{summaryLength:1,threshold:3,avatarsMaxLength:5,layout:Do.P.Group});var kh=n("./src/viewmodels/room/timeline/DateSeparatorViewModel.tsx");const Rh=[r.Bx4.RoomMember,r.Bx4.RoomThirdPartyInvite,r.Bx4.RoomServerAcl,r.Bx4.RoomPinnedEvents];function Ih({roomId:e,ts:t}){const n=(0,s.useContext)(Ro.A),i=(0,Xe.s2q)(()=>new kh.Q({roomId:e,ts:t,roomViewStore:n.roomViewStore}));return s.createElement(Xe.p2V,{vm:i,className:"mx_TimelineSeparator"})}class Th extends vh{constructor(e,t,n,i,s,o){super(e,t,n,i,s,o),this.panel=e,this.firstEventAndShouldShow=t,this.prevEvent=n,this.lastShownEvent=i,this.events=[t]}shouldGroup({event:e,shouldShow:t}){return!t||this.panel.wantsSeparator(this.events[0].event,e)!==Bh.Date&&(!(!e.isState()||!Rh.includes(e.getType()))||(!!e.isRedacted()||!(!this.panel.showHiddenEvents||this.panel.shouldShowEvent(e,!0))))}add(e){const{event:t,shouldShow:n}=e;(t.getType()!==r.Bx4.RoomMember||(0,_h.I3)(t,_.J.safeGet(),this.panel.showHiddenEvents))&&(this.readMarker=this.readMarker||this.panel.readMarkerForEvent(t.getId(),t===this.lastShownEvent),(this.panel.showHiddenEvents||n)&&t.getType()!==r.Bx4.RoomPinnedEvents&&this.events.push(e))}generateKey(){return"eventlistsummary-"+this.events[0].event.getId()}getTiles(){var e;if(null===(e=this.events)||void 0===e||!e.length)return[];const t=this.panel,n=this.lastShownEvent,i=[];if(t.wantsSeparator(this.prevEvent,this.events[0].event)===Bh.Date){const e=this.events[0].event.getRoomId(),t=this.events[0].event.getTs();i.push(s.createElement("li",{key:`${e}-${t}~`},s.createElement(Ih,{roomId:e,ts:t})))}const o=this.events.find(e=>this.panel.grouperKeyMap.get(e.event)),r=o&&this.panel.grouperKeyMap.has(o.event)?this.panel.grouperKeyMap.get(o.event):this.generateKey();o||this.panel.grouperKeyMap.set(this.events[0].event,r);let a=!1,l=this.events.map((e,i)=>(e.event.getId()===t.props.highlightedEventId&&(a=!0),t.getTilesForEvent(0===i?this.prevEvent:this.events[i-1].event,e,e.event===n,true,this.nextEvent,this.nextEventTile))).reduce((e,t)=>e.concat(t),[]);return 0===l.length&&(l=null),this.panel.props.canBackPaginate||this.prevEvent||i.push(s.createElement(yh,{key:"historytile"})),i.push(s.createElement(xh,{key:r,events:this.events.map(e=>e.event),onToggle:t.onHeightChanged,startExpanded:a,layout:this.panel.props.layout},l)),this.readMarker&&i.push(this.readMarker),i}getNewPrevEvent(){return this.events[this.events.length-1].event}}(0,i.A)(Th,"canStartGroup",function(e,{event:t,shouldShow:n}){return!!n&&(!(!t.isState()||!Rh.includes(t.getType()))||(!!t.isRedacted()||!(!e.showHiddenEvents||e.shouldShowEvent(t,!0))))});var Ph=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/take-photo-solid.js");const Nh=({hasAvatar:e,hasAvatarLabel:t,noAvatarLabel:n,setAvatarUrl:i,isUserAvatar:o,children:a,onClick:l})=>{var c;const d=(0,s.useContext)(je.Ay),[m,u]=(0,s.useState)(!1),p=(0,s.useRef)(null),h=e||m?t:n,{room:g}=(0,aa.ME)("room");return o||(null==g||null===(c=g.currentState)||void 0===c?void 0:c.maySendStateEvent(r.Bx4.RoomAvatar,d.getSafeUserId()))?s.createElement(s.Fragment,null,s.createElement("input",{type:"file",ref:p,className:"mx_MiniAvatarUploader_input",onClick:e=>{(0,xi.e)(e),null==l||l(e)},onChange:async e=>{u(!0);const t=Ii(e);if(t){const{content_uri:e}=await d.uploadContent(t);await i(e)}u(!1)},accept:"image/*"}),s.createElement(Ve.A,{className:un()("mx_MiniAvatarUploader",{mx_MiniAvatarUploader_busy:m,mx_MiniAvatarUploader_hasAvatar:e}),disabled:m,onClick:()=>{var e;null===(e=p.current)||void 0===e||e.click()},"aria-label":h},a,s.createElement("div",{className:"mx_MiniAvatarUploader_indicator"},m?s.createElement(Be.A,{size:20}):s.createElement(Ph.A,{className:"mx_MiniAvatarUploader_cameraIcon"})))):s.createElement(s.Fragment,null,a)};var Dh=n("./src/utils/rooms.ts");const Mh=e=>{if(!(0,Dh.u)(e.client))return{shouldEncrypt:!1};if(!Q.A.shared().getRoomIds().has(e.roomId))return{shouldEncrypt:!1};if(1!==e.getInvitedAndJoinedMemberCount())return{shouldEncrypt:!1};const t=e.currentState.getStateEvents("m.room.third_party_invite")||[];return 1===t.length?{shouldEncrypt:!0,inviteEvent:t[0]}:{shouldEncrypt:!1}};const Oh=()=>{const e=(0,s.useContext)(Ro.A),t=e.client,{room:n,roomId:i}=(0,aa.ME)("room","roomId"),o=Lc(n),a=n instanceof Ni.N;let l;var d;a?l=null==n||null===(d=n.targets[0])||void 0===d?void 0:d.userId:i&&(l=Q.A.shared().getUserIdForRoomId(i));const m=(0,s.useMemo)(()=>l?void 0:s.createElement(Xe.fap,{as:"span"},(0,Us.sH)(null==o?void 0:o.text,null==o?void 0:o.html)),[o,l]);if(!n||!i)throw new Error("Unable to create a NewRoomIntro without room and roomId");let u;if(l){const{shouldEncrypt:e}=Mh(n),t=((e,t)=>e instanceof Ni.N?(0,c.AO)("room|intro|send_message_start_dm"):t?(0,c.AO)("room|intro|encrypted_3pid_dm_pending_join"):(0,c.AO)("room|intro|start_of_dm_history"))(n,e);let i;n instanceof Ni.N||e||n.getJoinedMemberCount()+n.getInvitedMemberCount()!==2||(i=(0,c._t)("room|intro|dm_caption"));const o=null==n?void 0:n.getMember(l),r=(null==n?void 0:n.name)||(null==o?void 0:o.rawDisplayName)||l;u=s.createElement(s.Fragment,null,s.createElement(ms.A,{room:n,size:"52px",onClick:()=>{K.A.dispatch({action:$.r.ViewUser,member:o||{userId:l}})}}),s.createElement("h2",null,n.name),s.createElement("p",null,(0,c._t)(t,{},{displayName:()=>s.createElement("strong",null,r)})),i&&s.createElement("p",null,i))}else{var p,h,g,v;const a=n&&n.getMyMembership()===$n.O.Join&&n.currentState.maySendStateEvent(r.Bx4.RoomTopic,t.getSafeUserId()),l=()=>{K.A.dispatch({action:"open_room_settings",room_id:i},!0),setTimeout(()=>{var e;null===(e=window.document.getElementById("profileTopic"))||void 0===e||e.focus()})};let d;a&&o?d=(0,c._t)("room|intro|edit_topic",{},{a:e=>s.createElement(Ve.A,{element:"a",kind:"link_inline",onClick:l},e),topic:m}):o?d=(0,c._t)("room|intro|display_topic",{},{topic:m}):a&&(d=(0,c._t)("room|intro|no_topic",{},{a:e=>s.createElement(Ve.A,{element:"a",kind:"link_inline",onClick:l},e)}));const _=null===(p=n.currentState.getStateEvents(r.Bx4.RoomCreate,""))||void 0===p?void 0:p.getSender(),f=_&&(null==n||null===(h=n.getMember(_))||void 0===h?void 0:h.rawDisplayName)||_;let y,E,w;y=_===t.getUserId()?(0,c._t)("room|intro|you_created"):(0,c._t)("room|intro|user_created",{displayName:f}),null!==(g=e.spaceStore.activeSpaceRoom)&&void 0!==g&&g.canInvite(t.getSafeUserId())&&e.spaceStore.isRoomInSpace(e.spaceStore.activeSpace,n.roomId)&&(E=e.spaceStore.activeSpaceRoom),E&&(0,em.g)(as.C.InviteUsers)?w=s.createElement("div",{className:"mx_NewRoomIntro_buttons"},s.createElement(Ve.A,{className:"mx_NewRoomIntro_inviteButton",kind:"primary",onClick:()=>{(0,Gc.Lo)(E)}},s.createElement(vu.A,null),(0,c._t)("invite|to_space",{spaceName:E.name})),n.canInvite(t.getSafeUserId())&&s.createElement(Ve.A,{className:"mx_NewRoomIntro_inviteButton",kind:"primary_outline",onClick:()=>{K.A.dispatch({action:"view_invite",roomId:i})}},s.createElement(vu.A,null),(0,c._t)("room|intro|room_invite"))):n.canInvite(t.getSafeUserId())&&(0,em.g)(as.C.InviteUsers)&&(w=s.createElement("div",{className:"mx_NewRoomIntro_buttons"},s.createElement(Ve.A,{className:"mx_NewRoomIntro_inviteButton",kind:"primary",onClick:()=>{K.A.dispatch({action:"view_invite",roomId:i})}},s.createElement(vu.A,null),(0,c._t)("room|invite_this_room"))));const S=null===(v=n.currentState.getStateEvents(r.Bx4.RoomAvatar,""))||void 0===v||null===(v=v.getContent())||void 0===v?void 0:v.url;let b=s.createElement(ms.A,{room:n,size:"52px",viewAvatarOnClick:!!S});S||(b=s.createElement(Nh,{hasAvatar:!1,noAvatarLabel:(0,c._t)("room|intro|no_avatar_label"),setAvatarUrl:e=>t.sendStateEvent(i,r.Bx4.RoomAvatar,{url:e},"")},b)),u=s.createElement(s.Fragment,null,b,s.createElement("h2",null,n.name),s.createElement("p",null,y," ",(0,c._t)("room|intro|start_of_room",{},{roomName:()=>s.createElement("strong",null,n.name)})),s.createElement("p",null,d),w)}const _=(0,c._t)("room|intro|private_unencrypted_warning");let f;n.currentState.mayClientSendStateEvent(r.Bx4.RoomEncryption,t)&&!a&&(f=s.createElement(Ve.A,{kind:"link_inline",onClick:function(e){e.preventDefault(),K.A.dispatch({action:"open_room_settings",initial_tab_id:ws.e.Security})}},(0,c._t)("room|intro|enable_encryption_prompt")));const y=s.createElement("span",null," ",_," ",f," ");return s.createElement("li",{className:"mx_NewRoomIntro"},!function(e,t){const n=e.isRoomEncrypted(t.roomId);return"public"===t.getJoinRule()||!(0,Dh.u)(e)||n}(t,n)&&s.createElement(Xe.pc8,{icon:s.createElement(we.A,{color:"var(--cpd-color-icon-critical-primary)"}),className:"mx_EventTileBubble mx_cryptoEvent",title:(0,c._t)("room|intro|unencrypted_warning"),subtitle:y}),u)};function Fh({roomId:e,ts:t}){const n=(0,s.useContext)(Ro.A),i=(0,Xe.s2q)(()=>new kh.Q({roomId:e,ts:t,roomViewStore:n.roomViewStore}));return s.createElement(Xe.p2V,{vm:i,className:"mx_TimelineSeparator"})}class Lh extends vh{shouldGroup({event:e,shouldShow:t}){const n=this.panel,i=this.firstEventAndShouldShow.event;if(!t)return!0;if(n.wantsSeparator(this.firstEventAndShouldShow.event,e)===Bh.Date)return!1;const s=e.getType();return(s!==r.Bx4.RoomMember||e.getStateKey()===i.getSender()&&e.getContent().membership===$n.O.Join)&&(!r.EyL.matches(s)&&!(!e.isState()||e.getSender()!==i.getSender()))}add(e){const{event:t,shouldShow:n}=e,i=this.panel;this.readMarker=this.readMarker||i.readMarkerForEvent(t.getId(),t===this.lastShownEvent),n&&(t.getType()===r.Bx4.RoomEncryption?this.ejectedEvents.push(e):this.events.push(e))}getTiles(){var e,t;if(!this.events||!this.events.length)return[];const n=this.panel,i=[],o=!0,r=this.firstEventAndShouldShow,a=this.lastShownEvent;if(n.wantsSeparator(this.prevEvent,r.event)===Bh.Date){const e=r.event.getRoomId(),t=r.event.getTs();i.push(s.createElement("li",{key:`${e}-${t}~`},s.createElement(Fh,{roomId:e,ts:t})))}r.shouldShow&&i.push(...n.getTilesForEvent(r.event,r));for(const e of this.ejectedEvents)i.push(...n.getTilesForEvent(r.event,e,r.event===a,o));const l=this.events.map(e=>n.getTilesForEvent(e.event,e,e.event===a,o)).reduce((e,t)=>e.concat(t),[]),d=this.events[this.events.length-1].event;let m;const u=d.getRoomId(),p=null!==(e=null===(t=d.sender)||void 0===t?void 0:t.name)&&void 0!==e?e:d.getSender();return m=u&&Q.A.shared().getUserIdForRoomId(u)?(0,c._t)("timeline|creation_summary_dm",{creator:p}):(0,c._t)("timeline|creation_summary_room",{creator:p}),i.push(s.createElement(Oh,{key:"newroomintro"})),i.push(s.createElement(Eh,{key:"roomcreationsummary",events:this.events.map(e=>e.event),onToggle:n.onHeightChanged,summaryMembers:d.sender?[d.sender]:void 0,summaryText:m,layout:this.panel.props.layout},l)),this.readMarker&&i.push(this.readMarker),i}getNewPrevEvent(){return this.firstEventAndShouldShow.event}}(0,i.A)(Lh,"canStartGroup",function(e,{event:t}){return t.getType()===r.Bx4.RoomCreate});const Uh=[r.Bx4.Sticker,r.Bx4.RoomMessage];function Vh({roomId:e,ts:t}){const n=(0,s.useContext)(Ro.A),i=(0,Xe.s2q)(()=>new kh.Q({roomId:e,ts:t,roomViewStore:n.roomViewStore}));return s.createElement(Xe.p2V,{vm:i,className:"mx_TimelineSeparator"})}let Bh=function(e){return e[e.None=0]="None",e[e.Date=1]="Date",e[e.LateEvent=2]="LateEvent",e}({});function jh(e,t,n,i,s){return s!==Qo.Ae.ThreadsList&&(!(null==e||!e.sender||!t.sender)&&(!(t.getTs()-e.getTs()>3e5)&&(t.isRedacted()===e.isRedacted()&&(!!(t.getType()===e.getType()||Uh.includes(t.getType())&&Uh.includes(e.getType()))&&(t.sender.userId===e.sender.userId&&t.sender.name===e.sender.name&&t.sender.getMxcAvatarUrl()===e.sender.getMxcAvatarUrl()&&((!(0,Ho.zr)(t)&&!(0,Ho.zr)(e)||s===Qo.Ae.Thread)&&!!(0,zo.bN)(e,n,i)))))))}class Hh extends s.Component{constructor(e){super(e),(0,i.A)(this,"readReceiptMap",{}),(0,i.A)(this,"readReceiptsByEvent",new Map),(0,i.A)(this,"readReceiptsByUserId",new Map),(0,i.A)(this,"_showHiddenEvents",void 0),(0,i.A)(this,"unmounted",!1),(0,i.A)(this,"readMarkerNode",null),(0,i.A)(this,"whoIsTyping",(0,s.createRef)()),(0,i.A)(this,"scrollPanel",(0,s.createRef)()),(0,i.A)(this,"showTypingNotificationsWatcherRef",void 0),(0,i.A)(this,"eventTiles",{}),(0,i.A)(this,"grouperKeyMap",new WeakMap),(0,i.A)(this,"calculateRoomMembersCount",()=>{this.setState({hideSender:this.shouldHideSender()})}),(0,i.A)(this,"onShowTypingNotificationsChange",()=>{this.setState({showTypingNotifications:S.A.getValue("showTypingNotifications")})}),(0,i.A)(this,"isUnmounting",()=>this.unmounted),(0,i.A)(this,"collectReadMarker",e=>{this.readMarkerNode=e}),(0,i.A)(this,"collectGhostReadMarker",e=>{e&&requestAnimationFrame(()=>{e.style.width="10%",e.style.opacity="0"})}),(0,i.A)(this,"onGhostTransitionEnd",e=>{const t=e.target.dataset.eventid;this.setState({ghostReadMarkers:this.state.ghostReadMarkers.filter(e=>e!==t)})}),(0,i.A)(this,"collectEventTile",(e,t)=>{this.eventTiles[e]=t}),(0,i.A)(this,"onHeightChanged",()=>{var e;null===(e=this.scrollPanel.current)||void 0===e||e.checkScroll()}),(0,i.A)(this,"resizeObserver",new ResizeObserver(this.onHeightChanged)),(0,i.A)(this,"onTypingShown",()=>{const e=this.scrollPanel.current;null==e||e.checkScroll(),e&&e.getScrollState().stuckAtBottom&&e.preventShrinking()}),(0,i.A)(this,"onTypingHidden",()=>{const e=this.scrollPanel.current;e&&(e.updatePreventShrinking(),e.checkScroll())}),this.state={ghostReadMarkers:[],showTypingNotifications:S.A.getValue("showTypingNotifications"),hideSender:this.shouldHideSender()},this._showHiddenEvents=S.A.getValue("showHiddenEventsInTimeline")}componentDidMount(){var e;this.unmounted=!1,this.showTypingNotificationsWatcherRef=S.A.watchSetting("showTypingNotifications",null,this.onShowTypingNotificationsChange),this.calculateRoomMembersCount(),null===(e=this.props.room)||void 0===e||e.currentState.on(r.fZ1.Update,this.calculateRoomMembersCount)}componentWillUnmount(){var e;this.unmounted=!0,null===(e=this.props.room)||void 0===e||e.currentState.off(r.fZ1.Update,this.calculateRoomMembersCount),S.A.unwatchSetting(this.showTypingNotificationsWatcherRef),this.readReceiptMap={},this.resizeObserver.disconnect()}componentDidUpdate(e,t){if(e.layout!==this.props.layout&&this.calculateRoomMembersCount(),e.readMarkerVisible&&e.readMarkerEventId&&this.props.readMarkerEventId!==e.readMarkerEventId){const t=this.state.ghostReadMarkers;t.push(e.readMarkerEventId),this.setState({ghostReadMarkers:t})}const n=this.pendingEditItem;if(!this.props.editState&&this.props.room&&n){const e=this.props.room.findEventById(n);K.A.dispatch({action:$.r.EditEvent,event:null!=e&&e.isRedacted()?null:e,timelineRenderingType:this.context.timelineRenderingType})}}shouldHideSender(){return!!this.props.room&&this.props.room.getInvitedAndJoinedMemberCount()<=2&&this.props.layout===Do.P.Bubble}getNodeForEventId(e){var t,n;if(this.eventTiles)return null!==(t=null===(n=this.eventTiles[e])||void 0===n||null===(n=n.ref)||void 0===n?void 0:n.current)&&void 0!==t?t:void 0}getTileForEventId(e){if(this.eventTiles&&e)return this.eventTiles[e]}isAtBottom(){var e;return null===(e=this.scrollPanel.current)||void 0===e?void 0:e.isAtBottom()}getScrollState(){var e,t;return null!==(e=null===(t=this.scrollPanel.current)||void 0===t?void 0:t.getScrollState())&&void 0!==e?e:null}getReadMarkerPosition(){var e;const t=this.readMarkerNode,n=null===(e=this.scrollPanel.current)||void 0===e?void 0:e.divScroll;if(!t||!n)return null;const i=n.getBoundingClientRect(),s=t.getBoundingClientRect();return s.bottom+2<i.top?-1:s.top<i.bottom?0:1}scrollToTop(){var e;null===(e=this.scrollPanel.current)||void 0===e||e.scrollToTop()}scrollToBottom(){var e;null===(e=this.scrollPanel.current)||void 0===e||e.scrollToBottom()}handleScrollKey(e){var t;null===(t=this.scrollPanel.current)||void 0===t||t.handleScrollKey(e)}scrollToEvent(e,t,n){var i;null===(i=this.scrollPanel.current)||void 0===i||i.scrollToToken(e,t,n)}scrollToEventIfNeeded(e){const t=this.getNodeForEventId(e);t&&t.scrollIntoView({block:"nearest",behavior:"instant"})}get showHiddenEvents(){var e,t;return null!==(e=null===(t=this.context)||void 0===t?void 0:t.showHiddenEvents)&&void 0!==e?e:this._showHiddenEvents}shouldShowEvent(e,t=!1){if(this.props.hideThreadedMessages&&this.props.room){const{shouldLiveInRoom:t}=this.props.room.eventShouldLiveIn(e,this.props.events);if(!t)return!1}return!_.J.safeGet().isUserIgnored(e.getSender())&&(!(!this.showHiddenEvents||t)||!!(0,zo.bN)(e,_.J.safeGet(),this.showHiddenEvents)&&(this.props.highlightedEventId===e.getId()||!(0,qa.A)(e,this.context)))}readMarkerForEvent(e,t){if(this.context.timelineRenderingType===Qo.Ae.File)return null;const n=!t&&!!this.props.readMarkerVisible;return this.props.readMarkerEventId===e?s.createElement(Xe.fqB,{key:"readMarker_"+e,eventId:e,kind:"current",showLine:n,onCurrentMarkerRef:this.collectReadMarker,className:"mx_MessagePanel_myReadMarker"}):this.state.ghostReadMarkers.includes(e)?s.createElement(Xe.fqB,{key:"_readuptoghost_"+e,eventId:e,kind:"ghost",showLine:!0,onGhostLineRef:this.collectGhostReadMarker,onGhostTransitionEnd:this.onGhostTransitionEnd,className:"mx_MessagePanel_myReadMarker"}):null}getNextEventInfo(e,t){const n=t<e.length-1?e[t+1]:null,i=function(e,t){for(let n=e+1;n<t.length;n++){const{event:e,shouldShow:i}=t[n];if(i)return e}return null}(t,e);return{nextEventAndShouldShow:n,nextTile:i}}get pendingEditItem(){if(!this.props.room)return null;try{return localStorage.getItem((0,gh.O)(this.props.room.roomId,this.context.timelineRenderingType))}catch(e){return o.vF.error(e),null}}isSentState(e){const t=e.getAssociatedStatus();return!t||t===r.fbu.SENT}getEventTiles(){let e;const t=this.props.events.map(e=>({event:e,shouldShow:this.shouldShowEvent(e)})),n=_.J.safeGet().getSafeUserId();let i=!1,s=-1;for(let o=t.length-1;o>=0;o--){const{event:r,shouldShow:a}=t[o];if(a&&(void 0===e&&(e=r),!i&&this.isSentState(r)&&xl(r)&&(i=!0,r.getSender()===n&&(t[o].lastSuccessfulWeSent=!0)),s<0&&!r.status&&(s=o),s>=0&&i))break}const o=[];let r=null;this.readReceiptsByEvent=new Map,this.props.showReadReceipts&&(this.readReceiptsByEvent=this.getReadReceiptsByShownEvent(t));let a=null;for(let n=0;n<t.length;n++){const i=t[n],{event:l,shouldShow:c}=i,d=l.getId(),m=l===e,{nextEventAndShouldShow:u,nextTile:p}=this.getNextEventInfo(t,n);if(a){if(a.shouldGroup(i)){a.add(i);continue}o.push(...a.getTiles()),r=a.getNewPrevEvent(),a=null}for(const t of zh)if(t.canStartGroup(this,i)&&!this.props.disableGrouping){a=new t(this,i,r,e,u,p);break}if(!a){c&&(o.push(...this.getTilesForEvent(r,i,m,!1,u,p)),r=l);const e=this.readMarkerForEvent(d,n>=s);e&&o.push(e)}}return a&&o.push(...a.getTiles()),o}getTilesForEvent(e,t,n=!1,i=!1,o=null,r=null){var a,l,d;const m=t.event,u=[],p=(null===(a=this.props.editState)||void 0===a?void 0:a.getEvent().getId())===m.getId(),h=null!==(l=m.getTs())&&void 0!==l?l:Date.now(),g=this.wantsSeparator(e,m);if(!i&&this.props.room)if(g===Bh.Date){const e=this.props.room.roomId;u.push(s.createElement("li",{key:`${e}-${h}`},s.createElement(Vh,{key:`${e}-${h}`,roomId:e,ts:h})))}else if(g===Bh.LateEvent){var v;const e=(0,c._t)("timeline|late_event_separator",{dateTime:(0,Bt.Yq)(null!==(v=m.getDate())&&void 0!==v?v:new Date)});u.push(s.createElement("li",{key:h},s.createElement(Xe.nnG,{key:h,label:e,className:"mx_TimelineSeparator"},e)))}const f=_.J.safeGet();let y=!0;if(r){const e=r;y=this.wantsSeparator(m,e)===Bh.Date||m.getSender()!==e.getSender()||Wo(f,e,this.showHiddenEvents).isInfoMessage||!jh(m,e,f,this.showHiddenEvents,this.context.timelineRenderingType)}const E=g===Bh.None&&jh(e,m,f,this.showHiddenEvents,this.context.timelineRenderingType),w=m.getId(),S=w===this.props.highlightedEventId,b=this.readReceiptsByEvent.get(w),A=this.props.callEventGroupers.get(m.getContent().call_id);return u.push(s.createElement(ec,{key:m.getTxnId()||w,as:"li",ref:this.collectEventTile.bind(this,w),alwaysShowTimestamps:this.props.alwaysShowTimestamps,mxEvent:m,continuation:E,isRedacted:m.isRedacted(),replacingEventId:m.replacingEventId(),editState:p?this.props.editState:void 0,resizeObserver:this.resizeObserver,readReceipts:b,readReceiptMap:this.readReceiptMap,showUrlPreview:this.props.showUrlPreview,checkUnmounting:this.isUnmounting,eventSendStatus:null!==(d=m.getAssociatedStatus())&&void 0!==d?d:void 0,isTwelveHour:this.props.isTwelveHour,permalinkCreator:this.props.permalinkCreator,last:n,lastInSection:y,lastSuccessful:t.lastSuccessfulWeSent,isSelectedEvent:S,getRelationsForEvent:this.props.getRelationsForEvent,showReactions:this.props.showReactions,layout:this.props.layout,showReadReceipts:this.props.showReadReceipts,callEventGrouper:A,hideSender:this.state.hideSender})),u}wantsSeparator(e,t){var n;if(this.context.timelineRenderingType===Qo.Ae.ThreadsList)return Bh.None;if(null!==e){var i;const n=_r(t);if((null==n?void 0:n.group_id)!==(null===(i=_r(e))||void 0===i?void 0:i.group_id))return void 0!==n?Bh.LateEvent:Bh.Date}if(null===e&&!this.props.canBackPaginate)return Bh.Date;const s=null!==(n=t.getDate())&&void 0!==n?n:new Date;return null!==e&&(0,Bt.fq)(e.getDate()||void 0,s)?Bh.Date:Bh.None}getReadReceiptsForEvent(e){const t=_.J.safeGet().credentials.userId,{room:n}=this.props;if(!n)return null;const i=this.context.threadId?n.getThread(this.context.threadId):n,s=[];return i?(i.getReceiptsForEvent(e).forEach(e=>{if(!e.userId||!(0,Pa.ll)(e.type)||e.userId===t)return;if(_.J.safeGet().isUserIgnored(e.userId))return;const i=n.getMember(e.userId);s.push({userId:e.userId,roomMember:i,ts:e.data?e.data.ts:0})}),s):(o.vF.debug("Discarding request, could not find the receiptDestination for event: "+this.context.threadId),s)}getReadReceiptsByShownEvent(e){const t=new Map,n=new Map;let i;for(const e of this.props.events){if(this.shouldShowEvent(e)&&(i=e.getId()),!i)continue;const s=t.get(i)||[],o=this.getReadReceiptsForEvent(e);if(o){t.set(i,s.concat(o));for(const e of o)n.set(e.userId,{lastShownEventId:i,receipt:e})}}for(const e of this.readReceiptsByUserId.keys()){if(n.get(e))continue;const{lastShownEventId:i,receipt:s}=this.readReceiptsByUserId.get(e),o=t.get(i)||[];t.set(i,o.concat(s)),n.set(e,{lastShownEventId:i,receipt:s})}this.readReceiptsByUserId=n;for(const e of t.values())e.sort((e,t)=>t.ts-e.ts);return t}updateTimelineMinHeight(){const e=this.scrollPanel.current;if(e){const t=e.isAtBottom(),n=this.whoIsTyping.current,i=n&&n.isVisible();t&&i&&e.preventShrinking()}}onTimelineReset(){const e=this.scrollPanel.current;e&&e.clearPreventShrinking()}render(){let e,t;this.props.backPaginating&&(e=s.createElement("li",{key:"_topSpinner"},s.createElement(Be.A,null))),this.props.forwardPaginating&&(t=s.createElement("li",{key:"_bottomSpinner"},s.createElement(Be.A,null)));const n=this.props.hidden?{display:"none"}:{};let i,o;var r,a;(this.props.room&&this.state.showTypingNotifications&&this.context.timelineRenderingType===Qo.Ae.Room&&(i=s.createElement(ph,{room:this.props.room,onShown:this.onTypingShown,onHidden:this.onTypingHidden,ref:this.whoIsTyping})),this.props.layout==Do.P.IRC)&&(o=s.createElement(ch,{minWidth:20,maxWidth:600,roomId:null!==(r=null===(a=this.props.room)||void 0===a?void 0:a.roomId)&&void 0!==r?r:null}));const l=un()(this.props.className,{mx_MessagePanel_narrow:this.context.narrow});return s.createElement(So,null,s.createElement(hh.A,{ref:this.scrollPanel,className:l,onScroll:this.props.onScroll,onFillRequest:this.props.onFillRequest,onUnfillRequest:this.props.onUnfillRequest,style:n,stickyBottom:this.props.stickyBottom,fixedChildren:o},e,this.getEventTiles(),i,t))}}(0,i.A)(Hh,"contextType",Qo.Ay),(0,i.A)(Hh,"defaultProps",{disableGrouping:!1});const zh=[Lh,Th];var Wh=n("./src/utils/exportUtils/exportCustomCSS.css?raw");const Jh=/\.[\w-]+/g;function Gh(e){const t="-apple-system, BlinkMacSystemFont, avenir next,\n avenir, segoe ui, helvetica neue, helvetica, Ubuntu, roboto, noto, arial, sans-serif";return e.replace(/font-family: ?(Inter|'Inter'|"Inter")/g,`font-family: ${t}`).replace(/--cpd-font-family-sans: ?(Inter|'Inter'|"Inter")/g,`--cpd-font-family-sans: ${t}`).replace(/font-family: ?Fira Code/g,"font-family: Menlo, Consolas, Monaco, Liberation Mono, Lucida Console, monospace")}function Kh(e,t){if("Atrule"===e.type){if("font-face"===e.name)return!1;if(e.block)return e.block.children=e.block.children.filter(e=>Kh(e,t)),!e.block.children.isEmpty}return"Rule"!==e.type||function(e,t){return"Raw"!==e.prelude.type||!e.block.children.isEmpty&&e.prelude.value.split(",").some(e=>{const n=e.trim().match(Jh);return!(n&&!n.every(e=>t.has(e.substring(1))))})}(e,t)}const qh=async e=>{const t=await n.e(8436).then(n.bind(n,"../../node_modules/.pnpm/css-tree@3.2.1/node_modules/css-tree/lib/index.js")),i=["bundle.css","theme-light.css"].map(e=>{var t;return null===(t=document.querySelector(`link[rel="stylesheet"][href$="${e}"]`))||void 0===t?void 0:t.href});let s="";for(const n of i){if(!n)continue;const i=await fetch(n),o=await i.text(),r=t.parse(o,{context:"stylesheet",parseAtrulePrelude:!1,parseRulePrelude:!1,parseValue:!1,parseCustomProperty:!1});for(const n of r.children)Kh(n,e)&&(s+=Gh(t.generate(n)))}return`${s}@layer app-web {${Wh}}`};class $h extends ah{constructor(e,t,n,s){super(e,t,n,s),(0,i.A)(this,"avatars",void 0),(0,i.A)(this,"permalinkCreator",void 0),(0,i.A)(this,"totalSize",void 0),(0,i.A)(this,"mediaOmitText",void 0),this.avatars=new Map,this.permalinkCreator=new Ls.pE(this.room),this.totalSize=0,this.mediaOmitText=this.exportOptions.attachmentsIncluded?(0,c._t)("export_chat|media_omitted_file_size"):(0,c._t)("export_chat|media_omitted")}renderToStaticMarkupWithProviders(e){return(0,Xp.qV)(s.createElement(Xe.gJG.Provider,{value:window.mxModuleApi.i18n},e))}async getRoomAvatar(){let e;const t=Mo.ze(this.room,32,32,"crop"),n="room.png";if(t)try{const i=await fetch(t);e=await i.blob(),this.totalSize+=e.size,this.addFile(n,e)}catch(e){o.vF.log("Failed to fetch room's avatar"+e)}const i=s.createElement(ki.A,{size:"32px",name:this.room.name,title:this.room.name,url:e?n:""});return this.renderToStaticMarkupWithProviders(i)}async wrapHTML(e,t,n){var i,o,a,l;const d=await this.getRoomAvatar(),m=(0,Bt.Ah)(new Date),u=null===(i=this.room.currentState.getStateEvents(r.Bx4.RoomCreate,""))||void 0===i?void 0:i.getSender(),p=(u?null===(o=this.room.getMember(u))||void 0===o?void 0:o.rawDisplayName:u)||u,h=this.room.client.getSafeUserId(),g=null===(a=this.room.getMember(h))||void 0===a?void 0:a.rawDisplayName,v=(null===(l=this.room.currentState.getStateEvents(r.Bx4.RoomTopic,""))||void 0===l||null===(l=l.getContent())||void 0===l?void 0:l.topic)||"",_=eh()((0,c._t)("export_chat|creator_summary",{creatorName:p})),f=eh()(h),y=eh()(this.room.name),E=eh()(v),w=this.renderToStaticMarkupWithProviders(s.createElement("p",null,(0,c._t)("export_chat|export_info",{exportDate:m},{roomName:()=>s.createElement("strong",null,y),exporterDetails:()=>s.createElement("a",{href:`https://matrix.to/#/${encodeURIComponent(h)}`,target:"_blank",rel:"noopener noreferrer"},g?s.createElement(s.Fragment,null,s.createElement("strong",null,eh()(g)),"I "," ("+f+")"):s.createElement("strong",null,f))}))),S=v?(0,c._t)("export_chat|topic",{topic:E}):"",b=this.renderToStaticMarkupWithProviders(0!==t?s.createElement("div",{style:{textAlign:"center"}},s.createElement("a",{href:`./messages${1===t?"":t}.html`,style:{fontWeight:"bold"}},(0,c._t)("export_chat|previous_page"))):s.createElement(s.Fragment,null)),A=this.renderToStaticMarkupWithProviders(t<n-1?s.createElement("div",{style:{textAlign:"center",margin:"10px"}},s.createElement("a",{href:"./messages"+(t+2)+".html",style:{fontWeight:"bold"}},(0,c._t)("export_chat|next_page"))):s.createElement(s.Fragment,null));return`\n <!DOCTYPE html>\n <html lang="en">\n <head>\n <meta charset="UTF-8" />\n <meta http-equiv="X-UA-Compatible" content="IE=edge" />\n <meta name="viewport" content="width=device-width, initial-scale=1.0" />\n <link href="css/style.css" rel="stylesheet" />\n <script src="js/script.js"><\/script>\n <title>${(0,c._t)("export_chat|html_title")}</title>\n </head>\n <body style="height: 100vh;" class="cpd-theme-light">\n <div id="matrixchat" style="height: 100%; overflow: auto">\n <div class="mx_MatrixChat_wrapper" aria-hidden="false">\n <div class="mx_MatrixChat">\n <main class="mx_RoomView">\n <div class="mx_RoomHeader light-panel">\n ${d}\n <div class="mx_RoomHeader_infoWrapper">\n <div\n dir="auto"\n class="mx_RoomHeader_info"\n title="${y}"\n >\n <span class="mx_RoomHeader_truncated mx_lineClamp">\n ${y}\n </span>\n </div>\n </div>\n </div>\n ${b}\n <div class="mx_MainSplit">\n <div class="mx_RoomView_body">\n <div\n class="mx_RoomView_timeline mx_RoomView_timeline_rr_enabled"\n >\n <div\n class="\n mx_AutoHideScrollbar\n mx_ScrollPanel\n mx_RoomView_messagePanel\n "\n >\n <div class="mx_RoomView_messageListWrapper">\n <ol\n class="mx_RoomView_MessageList"\n aria-live="polite"\n role="list"\n >\n ${0==t?`<div class="mx_NewRoomIntro">\n ${d}\n <h2> ${y} </h2>\n <p> ${_} <br/><br/> ${w} </p>\n <br/>\n <p> ${S} </p>\n </div>`:""}\n ${e}\n </ol>\n </div>\n </div>\n </div>\n <div class="mx_RoomView_statusArea">\n <div class="mx_RoomView_statusAreaBox">\n <div class="mx_RoomView_statusAreaBox_line"></div>\n </div>\n </div>\n </div>\n </div>\n ${A}\n </main>\n </div>\n </div>\n </div>\n <div id="snackbar"/>\n </body>\n </html>`}getAvatarURL(e){const t=e.sender,n=null==t?void 0:t.getMxcAvatarUrl();return n?(0,Ci.l)(n).getThumbnailOfSourceHttp(30,30,"crop"):null}async saveAvatarIfNeeded(e){const t=e.sender;if(!this.avatars.has(t.userId))try{const n=this.getAvatarURL(e);this.avatars.set(t.userId,!0);const i=await fetch(n),s=await i.blob();this.addFile(`users/${t.userId.replace(/:/g,"-")}.png`,s)}catch(e){o.vF.log("Failed to fetch user's avatar"+e)}}getDateSeparator(e){const t=e.getTs(),n=new kh.Q({roomId:e.getRoomId(),ts:t,forExport:!0,roomViewStore:gs._.instance.roomViewStore});try{const e=s.createElement("li",{key:t},s.createElement(Xe.p2V,{vm:n,className:"mx_TimelineSeparator"}));return this.renderToStaticMarkupWithProviders(e)}finally{n.dispose()}}needsDateSeparator(e,t){return!t||(0,Bt.fq)(t.getDate()||void 0,e.getDate()||void 0)}getEventTile(e,t,n){return s.createElement("div",{className:"mx_Export_EventWrapper",id:e.getId()},s.createElement(Xe.gJG.Provider,{value:window.mxModuleApi.i18n},s.createElement(je.Ay.Provider,{value:this.room.client},s.createElement(Ro.A.Provider,{value:gs._.instance},s.createElement(Fd.B,null,s.createElement(ec,{mxEvent:e,continuation:t,isRedacted:e.isRedacted(),replacingEventId:e.replacingEventId(),forExport:!0,alwaysShowTimestamps:!0,showUrlPreview:!1,checkUnmounting:()=>!1,isTwelveHour:!1,last:!1,lastInSection:!1,permalinkCreator:this.permalinkCreator,lastSuccessful:!1,isSelectedEvent:!1,showReactions:!0,layout:Do.P.Group,showReadReceipts:!1,getRelationsForEvent:this.getRelationsForEvent,ref:n}))))))}async getEventTileMarkup(e,t,n){const i=this.getAvatarURL(e),s=!!i;s&&await this.saveAvatarIfNeeded(e);const o=Promise.withResolvers(),a=this.getEventTile(e,t,o.resolve);let l;if(e.getContent().msgtype==r.Wrw.Emote||e.getContent().msgtype==r.Wrw.Notice||e.getContent().msgtype===r.Wrw.Text){const e=document.createElement("div"),t=(0,Qp.createRoot)(e);t.render(a),await o.promise,l=e.innerHTML,t.unmount()}else l=this.renderToStaticMarkupWithProviders(a);if(n){var c,d;const t=null!==(c=e.getContent().url)&&void 0!==c?c:null===(d=e.getContent().file)||void 0===d?void 0:d.url;l=l.split(t).join(n)}return l=l.replace(/<span class="mx_MFileBody".*?>.*?<\/span>/,""),s&&(l=l.replace(encodeURI(i).replace(/&/g,"&"),`users/${e.sender.userId.replace(/:/g,"-")}.png`)),l}createModifiedEvent(e,t,n=!0){const i={msgtype:r.Wrw.Text,body:`${e}`,format:"org.matrix.custom.html",formatted_body:`${e}`};n&&(i.formatted_body="<em>"+i.formatted_body+"</em>",i.body="*"+i.body+"*");const s=new r.klx;return s.event=t.event,s.sender=t.sender,s.event.type="m.room.message",s.event.content=i,s}async createMessageBody(e,t=!1){let n;try{if(this.isAttachment(e))if(this.exportOptions.attachmentsIncluded)try{const i=await this.getMediaBlob(e);if(this.totalSize+i.size>this.exportOptions.maxSize)n=await this.getEventTileMarkup(this.createModifiedEvent(this.mediaOmitText,e),t);else{this.totalSize+=i.size;const s=this.getFilePath(e);n=await this.getEventTileMarkup(e,t,s),this.totalSize==this.exportOptions.maxSize&&(this.exportOptions.attachmentsIncluded=!1),this.addFile(s,i)}}catch(i){o.vF.log("Error while fetching file"+i),n=await this.getEventTileMarkup(this.createModifiedEvent((0,c._t)("export_chat|error_fetching_file"),e),t)}else n=await this.getEventTileMarkup(this.createModifiedEvent(this.mediaOmitText,e),t);else n=await this.getEventTileMarkup(e,t)}catch(i){o.vF.error(i),n=await this.getEventTileMarkup(this.createModifiedEvent((0,_h.Rd)(e,this.room.client),e,!1),t)}return n}async createHTML(e,t,n,i){let s="",o=null;for(let n=t;n<Math.min(t+1e3,e.length);n++){const t=e[n];if(this.updateProgress((0,c._t)("export_chat|processing_event_n",{number:n+1,total:e.length}),!1,!0),this.cancelled)return this.cleanUp();if(!(0,zo.bN)(t,this.room.client,!1))continue;s+=this.needsDateSeparator(t,o)?this.getDateSeparator(t):"";const i=!this.needsDateSeparator(t,o)&&jh(o,t,this.room.client,!1),r=await this.createMessageBody(t,i);this.totalSize+=(new TextEncoder).encode(r).byteLength,s+=r,o=t}return this.wrapHTML(s,n,i)}async export(){this.updateProgress((0,c._t)("export_chat|starting_export"));const e=performance.now(),t=await this.getRequiredEvents(),n=performance.now();this.updateProgress((0,c._t)("export_chat|fetched_n_events_in_time",{count:t.length,seconds:(n-e)/1e3}),!0,!1),this.updateProgress((0,c._t)("export_chat|creating_html"));const i=new Set;for(let e=0;e<t.length/1e3;e++){const n=await this.createHTML(t,1e3*e,e,t.length/1e3);(new DOMParser).parseFromString(n,"text/html").querySelectorAll("*").forEach(e=>{e.classList.forEach(e=>i.add(e))}),this.addFile(`messages${e?e+1:""}.html`,new Blob([n]))}const s=await qh(i);this.addFile("css/style.css",new Blob([s])),this.addFile("js/script.js",new Blob(['/*\nCopyright 2024 New Vector Ltd.\nCopyright 2021 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\n// This file is raw-imported (imported as plain text) for the export bundle, which is why this is in JS\nfunction showToastIfNeeded(replyId) {\n const el = document.getElementById(replyId);\n if (!el) {\n showToast("The message you\'re looking for wasn\'t exported");\n return;\n }\n}\nfunction showToast(text) {\n const el = document.getElementById("snackbar");\n el.innerHTML = text;\n el.className = "mx_show";\n window.setTimeout(() => {\n el.className = el.className.replace("mx_show", "");\n }, 2000);\n}\nwindow.onload = () => {\n document.querySelectorAll(".mx_reply_anchor").forEach(element => {\n element.addEventListener("click", event => {\n showToastIfNeeded(event.target.dataset.scrollTo);\n });\n });\n};'])),await this.downloadZIP();const r=performance.now();this.cancelled?o.vF.info("Export cancelled successfully"):(this.updateProgress((0,c._t)("export_chat|export_successful")),this.updateProgress((0,c._t)("export_chat|exported_n_events_in_time",{count:t.length,seconds:(r-e)/1e3}))),this.cleanUp()}}class Yh extends ah{constructor(e,t,n,s){super(e,t,n,s),(0,i.A)(this,"totalSize",0),(0,i.A)(this,"messages",[])}get destinationFileName(){return this.makeFileNameNoExtension()+".json"}createJSONString(){var e,t,n,i;const s=(0,Bt.Ah)(new Date),o=null===(e=this.room.currentState.getStateEvents(r.Bx4.RoomCreate,""))||void 0===e?void 0:e.getSender(),a=o&&(null===(t=this.room)||void 0===t||null===(t=t.getMember(o))||void 0===t?void 0:t.rawDisplayName)||o,l=(null===(n=this.room.currentState.getStateEvents(r.Bx4.RoomTopic,""))||void 0===n||null===(n=n.getContent())||void 0===n?void 0:n.topic)||"",c=this.room.client.getUserId(),d=(null===(i=this.room)||void 0===i||null===(i=i.getMember(c))||void 0===i?void 0:i.rawDisplayName)||c,m={room_name:this.room.name,room_creator:a,topic:l,export_date:s,exported_by:d,messages:this.messages};return JSON.stringify(m,null,2)}async getJSONString(e){if(this.exportOptions.attachmentsIncluded&&this.isAttachment(e))try{const t=await this.getMediaBlob(e);if(this.totalSize+t.size<this.exportOptions.maxSize){this.totalSize+=t.size;const n=this.getFilePath(e);this.totalSize==this.exportOptions.maxSize&&(this.exportOptions.attachmentsIncluded=!1),this.addFile(n,t)}}catch(e){o.vF.log("Error fetching file: "+e)}return e.getEffectiveEvent()}async createOutput(e){for(let t=0;t<e.length;t++){const n=e[t];if(this.updateProgress((0,c._t)("export_chat|processing_event_n",{number:t+1,total:e.length}),!1,!0),this.cancelled)return this.cleanUp();(0,zo.bN)(n,this.room.client,!1)&&this.messages.push(await this.getJSONString(n))}return this.createJSONString()}async export(){o.vF.info("Starting export process..."),o.vF.info("Fetching events...");const e=performance.now(),t=await this.getRequiredEvents(),n=performance.now();o.vF.log(`Fetched ${t.length} events in ${(n-e)/1e3}s`),o.vF.info("Creating output...");const i=await this.createOutput(t);if(this.files.length)this.addFile("export.json",new Blob([i])),await this.downloadZIP();else{const e=this.destinationFileName;this.downloadPlainText(e,i)}const s=performance.now();this.cancelled?o.vF.info("Export cancelled successfully"):(o.vF.info("Export successful!"),o.vF.log(`Exported ${t.length} events in ${(s-e)/1e3} seconds`)),this.cleanUp()}}class Qh extends ah{constructor(e,t,n,s){super(e,t,n,s),(0,i.A)(this,"totalSize",void 0),(0,i.A)(this,"mediaOmitText",void 0),(0,i.A)(this,"textForReplyEvent",e=>{const t=/> <(.*?)>(.*?)\n\n(.*)/s.exec(e.body);if(!t)return e.body;let n;const i=t[1],s=t[3];n=t[2].substring(1);const o=n.split("\n").filter(e=>!/^\s*$/.test(e));return o.length>0?(n=o[0].substring(0,32),o[0].length>32&&(n+="..."),n=` "${n}"`):n="",`<${i}${n}> ${s}`}),(0,i.A)(this,"plainTextForEvent",async e=>{const t=e.sender&&e.sender.name?e.sender.name:e.getSender();let n="";if(this.isAttachment(e))if(this.exportOptions.attachmentsIncluded)try{const t=await this.getMediaBlob(e);if(this.totalSize+t.size>this.exportOptions.maxSize)n=` (${this.mediaOmitText})`;else{this.totalSize+=t.size;const i=this.getFilePath(e);n=" ("+(0,c._t)("export_chat|file_attached")+")",this.addFile(i,t),this.totalSize==this.exportOptions.maxSize&&(this.exportOptions.attachmentsIncluded=!1)}}catch(e){n=" ("+(0,c._t)("export_chat|error_fetching_file")+")",o.vF.log("Error fetching file "+e)}else n=` (${this.mediaOmitText})`;return this.isReply(e)?t+": "+this.textForReplyEvent(e.getContent())+n:(0,_h.Rd)(e,this.room.client)+n}),this.totalSize=0,this.mediaOmitText=this.exportOptions.attachmentsIncluded?(0,c._t)("export_chat|media_omitted_file_size"):(0,c._t)("export_chat|media_omitted")}get destinationFileName(){return this.makeFileNameNoExtension()+".txt"}async createOutput(e){let t="";for(let n=0;n<e.length;n++){const i=e[n];if(this.updateProgress((0,c._t)("export_chat|processing_event_n",{number:n+1,total:e.length}),!1,!0),this.cancelled)return this.cleanUp();if(!(0,zo.bN)(i,this.room.client,!1))continue;const s=await this.plainTextForEvent(i);t+=s&&`${(0,Bt.Lu)(new Date(i.getTs()),S.A.getValue("showTwelveHourTimestamps"))} - ${s}\n`}return t}async export(){this.updateProgress((0,c._t)("export_chat|starting_export")),this.updateProgress((0,c._t)("export_chat|fetching_events"));const e=performance.now(),t=await this.getRequiredEvents(),n=performance.now();o.vF.log(`Fetched ${t.length} events in ${(n-e)/1e3}s`),this.updateProgress((0,c._t)("export_chat|creating_output"));const i=await this.createOutput(t);if(this.files.length)this.addFile("export.txt",new Blob([i])),await this.downloadZIP();else{const e=this.destinationFileName;this.downloadPlainText(e,i)}const s=performance.now();this.cancelled?o.vF.info("Export cancelled successfully"):(o.vF.info("Export successful!"),o.vF.log(`Exported ${t.length} events in ${(s-e)/1e3} seconds`)),this.cleanUp()}}var Xh=n("./src/customisations/ChatExport.ts");const Zh=(e,t)=>n=>"number"==typeof n&&!(isNaN(n)||e>n||n>t),eg=({room:e,onFinished:t})=>{const{exportFormat:n,exportType:i,includeAttachments:r,numberOfMessages:a,sizeLimit:l,setExportFormat:d,setExportType:m,setNumberOfMessages:u,setSizeLimit:p,setAttachments:h}=(()=>{var e,t,n,i,o;const r=Xh.A.getForceChatExportParameters(),[a,l]=(0,s.useState)(null!==(e=r.format)&&void 0!==e?e:Kp.Html),[c,d]=(0,s.useState)(null!==(t=r.range)&&void 0!==t?t:qp.Timeline),[m,u]=(0,s.useState)(null!==(n=r.includeAttachments)&&void 0!==n&&n),[p,h]=(0,s.useState)(null!==(i=r.numberOfMessages)&&void 0!==i?i:100),[g,v]=(0,s.useState)(null!==(o=r.sizeMb)&&void 0!==o?o:8);return{exportFormat:a,exportType:c,includeAttachments:m,numberOfMessages:p,sizeLimit:g,setExportFormat:r.format?void 0:l,setExportType:r.range?void 0:d,setNumberOfMessages:r.numberOfMessages?void 0:h,setSizeLimit:r.sizeMb?void 0:v,setAttachments:void 0===r.includeAttachments?u:void 0}})(),[g,v]=(0,s.useState)(!1),_=(0,s.useRef)(null),f=(0,s.useRef)(null),[y,E]=(0,s.useState)((0,c._t)("export_chat|processing")),[w,S]=(0,s.useState)(!1),[b,A]=(0,s.useState)(!1),[C,x]=(0,s.useState)(!1),[k,R]=((e,t)=>{const[n,i]=(0,s.useState)(e);return[n,e=>{i(e),t(e)}]})(null,async e=>{await(null==e?void 0:e.export().then(()=>{b||x(!0)}))}),I=async()=>{var t;if(!p||await(null===(t=_.current)||void 0===t?void 0:t.validate({focused:!1}))){if(i===qp.LastNMessages){var s;var c;if(!await(null===(s=f.current)||void 0===s?void 0:s.validate({focused:!1})))return void(null===(c=f.current)||void 0===c||c.validate({focused:!0}))}v(!0),await(async()=>{const t={numberOfMessages:a,attachmentsIncluded:r,maxSize:1024*l*1024};switch(n){case Kp.Html:R(new $h(e,qp[i],t,E));break;case Kp.Json:R(new Yh(e,qp[i],t,E));break;case Kp.PlainText:R(new Qh(e,qp[i],t,E));break;default:return void o.vF.error("Unknown export format")}})()}else{var d;null===(d=_.current)||void 0===d||d.validate({focused:!0})}},T=(0,Yp.A)({rules:[{key:"required",test:({value:e,allowEmpty:t})=>t||!!e,invalid:()=>(0,c._t)("export_chat|enter_number_between_min_max",{min:1,max:2e3})},{key:"number",test:({value:e})=>{const t=parseInt(e,10);return Zh(1,2e3)(t)},invalid:()=>(0,c._t)("export_chat|size_limit_min_max",{min:1,max:2e3})}]}),P=async e=>await T(e),N=(0,Yp.A)({rules:[{key:"required",test:({value:e,allowEmpty:t})=>t||!!e,invalid:()=>(0,c._t)("export_chat|enter_number_between_min_max",{min:1,max:10**8})},{key:"number",test:({value:e})=>{const t=parseInt(e,10);return Zh(1,10**8)(t)},invalid:()=>(0,c._t)("export_chat|num_messages_min_max",{min:1,max:10**8})}]}),D=async e=>await N(e),M=async()=>{g?S(!0):t(!1)},O=async()=>{await(null==k?void 0:k.cancelExport()),A(!0),v(!1),R(null)},F=Object.values(Kp).map(e=>({value:e,label:$p(e)})),L=Object.values(qp).map(e=>s.createElement("option",{key:qp[e],value:e},(e=>{switch(e){case qp.Beginning:return(0,c._t)("export_chat|from_the_beginning");case qp.LastNMessages:return(0,c._t)("export_chat|number_of_messages");case qp.Timeline:return(0,c._t)("export_chat|current_timeline");default:throw new Error("Unknown type: "+e)}})(e)));let U;i===qp.LastNMessages&&u&&(U=s.createElement(yi.A,{id:"message-count",element:"input",type:"number",value:a.toString(),ref:f,onValidate:D,label:(0,c._t)("export_chat|num_messages"),onChange:e=>{u(parseInt(e.target.value))}}));const V=s.createElement("span",null,(0,c._t)("export_chat|size_limit_postfix"));return b?s.createElement(tp.A,{title:(0,c._t)("export_chat|cancelled"),description:(0,c._t)("export_chat|cancelled_detail"),hasCloseButton:!0,onFinished:t}):C?s.createElement(tp.A,{title:(0,c._t)("export_chat|successful"),description:(0,c._t)("export_chat|successful_detail"),hasCloseButton:!0,onFinished:t}):w?s.createElement(ke.A,{title:(0,c._t)("common|warning"),className:"mx_ExportDialog",contentId:"mx_Dialog_content",onFinished:t,fixedWidth:!0},s.createElement("p",null,(0,c._t)("export_chat|confirm_stop")),s.createElement(an.A,{primaryButton:(0,c._t)("action|stop"),primaryButtonClass:"danger",hasCancel:!0,cancelButton:(0,c._t)("action|continue"),onCancel:()=>S(!1),onPrimaryButtonClick:O})):s.createElement(ke.A,{title:g?(0,c._t)("export_chat|exporting_your_data"):(0,c._t)("export_chat|title"),className:`mx_ExportDialog ${g&&"mx_ExportDialog_Exporting"}`,contentId:"mx_Dialog_content",hasCancel:!0,onFinished:t,fixedWidth:!0},g?null:s.createElement("p",null,(0,c._t)("export_chat|select_option")),s.createElement("div",{className:"mx_ExportDialog_options"},!!d&&s.createElement(s.Fragment,null,s.createElement("span",{className:"mx_ExportDialog_subheading"},(0,c._t)("export_chat|format")),s.createElement(rs.A,{name:"exportFormat",value:n,onChange:e=>d(Kp[e]),definitions:F})),!!m&&s.createElement(s.Fragment,null,s.createElement("span",{className:"mx_ExportDialog_subheading"},(0,c._t)("export_chat|messages")),s.createElement(yi.A,{id:"export-type",element:"select",value:i,onChange:e=>{m(qp[e.target.value])}},L),U),p&&s.createElement(s.Fragment,null,s.createElement("span",{className:"mx_ExportDialog_subheading"},(0,c._t)("export_chat|size_limit")),s.createElement(yi.A,{id:"size-limit",type:"number",autoComplete:"off",onValidate:P,element:"input",ref:_,value:l.toString(),postfixComponent:V,onChange:e=>p(parseInt(e.target.value))})),h&&s.createElement(hs.A,{className:"mx_ExportDialog_attachments-checkbox",id:"include-attachments",checked:r,onChange:e=>h(e.target.checked)},(0,c._t)("export_chat|include_attachments"))),g?s.createElement("div",{className:"mx_ExportDialog_progress"},s.createElement(Be.A,{size:24}),s.createElement("p",null,y),s.createElement(an.A,{primaryButton:(0,c._t)("action|cancel"),primaryButtonClass:"danger",hasCancel:!1,onPrimaryButtonClick:M})):s.createElement(an.A,{primaryButton:(0,c._t)("action|export"),onPrimaryButtonClick:I,onCancel:()=>t(!1)}))};var tg=n("./src/components/views/dialogs/ShareDialog.tsx");const ng=function({roomId:e,onFinished:t}){var n;const[i,o]=(0,s.useState)(),[r,a]=(0,s.useState)(!1),[l,m]=(0,s.useState)(""),[u,p]=(0,s.useState)(!1),h=_.J.safeGet(),g=(0,s.useCallback)(e=>m(e.target.value),[]),v=(0,s.useCallback)(e=>p(e.target.checked),[p]),f=(0,s.useCallback)(()=>t(!1),[t]),y=(0,s.useCallback)(async()=>{a(!0);try{await h.reportRoom(e,l),t(u)}catch(e){a(!1),e instanceof Error?o(e.message):o("Unknown error")}},[e,l,h,u,t]),E=null===(n=d.A.getObject("report_event"))||void 0===n?void 0:n.get("admin_message_md","adminMessageMD");let w;if(E){const e=new Cc.A(E).toHTML({externalLinks:!0});w=s.createElement("p",{dangerouslySetInnerHTML:{__html:e}})}return s.createElement(ke.A,{className:"mx_ReportRoomDialog",onFinished:f,title:(0,c._t)("action|report_room"),contentId:"mx_ReportEventDialog"},s.createElement(Ki.b,{id:"mx_ReportEventDialog",onSubmit:y},s.createElement(qi.D,{name:"reason"},s.createElement($i.J,{htmlFor:"mx_ReportRoomDialog_reason"},(0,c._t)("report_room|reason_label")),s.createElement("textarea",{id:"mx_ReportRoomDialog_reason",rows:5,onChange:g,value:l,disabled:r}),i?s.createElement(Yi.Kw,null,i):null,s.createElement(Yi.po,null,(0,c._t)("report_room|description"))),w,r?s.createElement(We.Z,null):null,s.createElement(Vi.I,{name:"leave-room",label:(0,c._t)("room_list|more_options|leave_room"),checked:u,onChange:v}),s.createElement(an.A,{primaryButton:(0,c._t)("action|send_report"),onPrimaryButtonClick:y,focus:!0,onCancel:f,primaryButtonClass:"danger",primaryDisabled:r||!l})))};var ig=n("./src/components/views/right_panel/types.ts"),sg=n("./src/utils/promise.ts");function og(e){var t,n;const i=null!==(t=null==e||null===(n=e.getLiveTimeline().getState(r.qss.FORWARDS))||void 0===n||null===(n=n.getStateEvents(r.Bx4.RoomPinnedEvents,""))||void 0===n||null===(n=n.getContent())||void 0===n?void 0:n.pinned)&&void 0!==t?t:[];return Array.isArray(i)?i.slice(0,100):(o.vF.warn("Encountered invalid pinned events state in room",null==e?void 0:e.roomId,i),[])}const rg=e=>{const[t,n]=(0,s.useState)(og(e)),i=(0,s.useCallback)(t=>{t&&t.getType()!==r.Bx4.RoomPinnedEvents||n(og(e))},[e]);return(0,mo.YK)(null==e?void 0:e.getLiveTimeline().getState(r.qss.FORWARDS),r.fZ1.Events,i),(0,s.useEffect)(()=>(n(og(e)),()=>{n([])}),[e]),t};function ag(e){var t,n;return new Set(null!==(t=null==e||null===(n=e.getAccountData(ig.M))||void 0===n||null===(n=n.getContent())||void 0===n?void 0:n.event_ids)&&void 0!==t?t:[])}function lg(e,t){const n=(0,je.nH)(),i=(0,De.e)(()=>{const i=t.map(t=>()=>async function(e,t,n){var i;const s=e.getUnfilteredTimelineSet(),a=null==s||null===(i=s.getTimelineForEvent(t))||void 0===i?void 0:i.getEvents().find(e=>e.getId()===t);if(null!=a&&a.isEncrypted()&&await n.decryptEventIfNeeded(a,{emit:!1}),a)return fr.A.isUnpinnable(a)?a:null;try{const[i,{events:[s]}]=await Promise.all([n.fetchRoomEvent(e.roomId,t),n.relations(e.roomId,t,r.zZR.Replace,null,{limit:1})]),o=new r.klx(i);if(o.isEncrypted()&&await n.decryptEventIfNeeded(o,{emit:!1}),await e.processPollEvents([o]),o.getSender()&&fr.A.isUnpinnable(o))return o.setMetadata(e.currentState,!1),s&&o.makeReplaced(s),o}catch(n){o.vF.error(`Error looking up pinned event ${t} in room ${e.roomId}`),o.vF.error(n)}return null}(e,t,n));return(0,sg.vA)(i,10)},[n,e,t],[]);return(0,Me.Bo)(i)}function cg(e,t){const n=lg(e,t);return(0,s.useMemo)(()=>n.sort((e,t)=>e.getTs()-t.getTs()),[n])}function dg(e){e.client.isGuest()?K.A.dispatch({action:"require_registration"}):K.A.dispatch({action:"view_invite",roomId:e.roomId})}const mg=e=>{const t=((e,t)=>{const[n,i]=(0,s.useState)(()=>{return null==(n=e.getAccountData(t))?void 0:n.getContent();var n}),o=(0,s.useCallback)(e=>{e.getType()===t&&i(e.getContent())},[t]);return(0,mo.YK)(e,r.AUM.AccountData,o),n||{}})(e.client,r.Bx4.Direct),[n,i]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{for(const[,s]of Object.entries(t)){var n;if(s.includes(null!==(n=null==e?void 0:e.roomId)&&void 0!==n?n:"")){i(!0);break}}},[e,t]),n};function ug(e,t,n){var i;const o=(0,je.nH)(),a=null!==(i=(0,zp.g)(o,e))&&void 0!==i&&i,l=(0,aa.ME)("e2eStatus","timelineRenderingType").e2eStatus,c=(0,Wp.j)(e),{historyVisibility:d,roomJoinRule:m}=(0,zs.U)(e,e=>({roomJoinRule:e.getJoinRule(),historyVisibility:e.getHistoryVisibility()})),u=e.getCanonicalAlias()||e.getAltAliases()[0]||"",p=rg(e).length,h=(0,mo.dF)(e,r.fZ1.Update,()=>Jp(e)),g=(0,mo.dF)(e,r.u99.Tags,()=>(0,Rm.E)(e)).includes(Da.z.Favourite),v=mg(e),_=(0,dm.rT)(e),f=(0,Vo.n)(null==_?void 0:_.userId),{searchInputRef:y,onUpdateSearchInput:E}=(e=>{const t=(0,s.useRef)(null);return(0,Dc.F)(K.A,e=>{var n;e.action===$.r.FocusMessageSearch&&(null===(n=t.current)||void 0===n||n.focus())}),{searchInputRef:t,onUpdateSearchInput:n=>{t.current&&n.key===ni.Uz.ESCAPE&&(t.current.value="",null==e||e())}}})(n);return{isDirectMessage:v,userStatus:f,isRoomEncrypted:a,roomJoinRule:m,e2eStatus:l,historyVisibility:d,isVideoRoom:c,alias:u,isFavorite:g,canInviteToState:h,searchInputRef:y,pinCount:p,onRoomMembersClick:()=>{Ip.A.instance.pushCard({phase:Wu.n.MemberList},!0)},onRoomThreadsClick:()=>{Ip.A.instance.pushCard({phase:Wu.n.ThreadPanel},!0)},onRoomFilesClick:()=>{Ip.A.instance.pushCard({phase:Wu.n.FilePanel},!0)},onRoomExtensionsClick:()=>{Ip.A.instance.pushCard({phase:Wu.n.Extensions},!0)},onRoomPinsClick:()=>{Gi.A.trackInteraction("PinnedMessageRoomInfoButton"),Ip.A.instance.pushCard({phase:Wu.n.PinnedMessages},!0)},onRoomSettingsClick:e=>{K.A.dispatch({action:"open_room_settings"}),Gi.A.trackInteraction("WebRightPanelRoomInfoSettingsButton",e)},onLeaveRoomClick:()=>{K.A.dispatch({action:"leave_room",room_id:e.roomId})},onShareRoomClick:()=>{X.Ay.createDialog(tg.G,{target:e})},onRoomExportClick:async()=>{X.Ay.createDialog(eg,{room:e})},onRoomPollHistoryClick:()=>{X.Ay.createDialog(Gp,{room:e,matrixClient:o,permalinkCreator:t})},onReportRoomClick:async()=>{const[t]=await X.Ay.createDialog(ng,{roomId:e.roomId}).finished;t&&K.A.dispatch({action:"leave_room",room_id:e.roomId})},onUpdateSearchInput:E,onFavoriteToggleClick:()=>{Tm(e,Da.z.Favourite)},onInviteToRoomClick:()=>{dg(e)}}}const pg=["room","className"];function hg(e){const t=e.target,n=(0,Ls.uK)(t.href);n!==t.href&&(e.preventDefault(),window.location.hash=n)}function gg(e){let{room:t,className:n}=e,i=(0,v.A)(e,pg);const o=(0,s.useContext)(je.Ay),[a,l]=(0,s.useState)(!1),d=Lc(t),m=(0,Us.sH)(null==d?void 0:d.text,null==d?void 0:d.html),u=(0,s.useCallback)(e=>{var t;null===(t=i.onClick)||void 0===t||t.call(i,e);"A"===e.target.tagName.toUpperCase()?hg(e):K.A.fire($.r.ShowRoomTopic)},[i]),p=e=>{l("A"===e.target.tagName.toUpperCase())};return(0,Dc.F)(K.A,e=>{if(e.action===$.r.ShowRoomTopic){const e=t.currentState.maySendStateEvent(r.Bx4.RoomTopic,o.getSafeUserId()),n=(0,Us.sH)(null==d?void 0:d.text,null==d?void 0:d.html,void 0,!0),i=X.Ay.createDialog(tp.A,{title:t.name,description:s.createElement("div",null,s.createElement(Xe.fap,{onLinkClick:()=>i.close()},n),e&&s.createElement(Ve.A,{kind:"primary_outline",onClick:()=>{i.close(),K.A.dispatch({action:"open_room_settings"})}},(0,c._t)("room|edit_topic"))),hasCloseButton:!0,button:!1})}}),m?s.createElement(Ys.m,{description:(0,c._t)("room|read_topic"),disabled:a},s.createElement("div",(0,xn.A)({},i,{tabIndex:0,role:"button",onClick:u,className:un()(n,"mx_RoomTopic"),onMouseOver:p,onFocus:p,"aria-label":(0,c._t)("room|read_topic")}),s.createElement(Xe.fap,null,m))):s.createElement("div",{className:un()(n,"mx_RoomTopic")})}const vg=({room:e})=>{var t,n;const i=function(e){const[t,n]=(0,s.useState)(!0);return{topic:Lc(e),expanded:t,canEditTopic:(0,zs.U)(e,t=>t.maySendStateEvent(r.Bx4.RoomTopic,e.client.getSafeUserId())),onEditClick:e=>{e.preventDefault(),e.stopPropagation(),K.A.dispatch({action:"open_room_settings"})},onExpandedClick:e=>{e.preventDefault(),e.stopPropagation(),n(e=>!e)},onTopicLinkClick:e=>{e.target instanceof HTMLAnchorElement&&hg(e)}}}(e),o=(0,Us.sH)(null===(t=i.topic)||void 0===t?void 0:t.text,null===(n=i.topic)||void 0===n?void 0:n.html);if(!o&&!i.canEditTopic)return null;if(!o)return s.createElement(Xe.son,{as:"section",direction:"column",justify:"center",gap:"var(--cpd-space-2x)",className:"mx_RoomSummaryCard_topic"},s.createElement(Xe.azJ,{flex:"1",className:"mx_RoomSummaryCard_topic_box"},s.createElement(Tp.N,{kind:"primary",onClick:i.onEditClick},s.createElement(Pu.E,{size:"sm",weight:"regular"},(0,c._t)("right_panel|add_topic")))));const a=i.expanded?s.createElement(Xe.fap,{as:"span"},o):o;return s.createElement(Xe.son,{as:"section",direction:"column",justify:"center",gap:"var(--cpd-space-2x)",className:un()("mx_RoomSummaryCard_topic",{mx_RoomSummaryCard_topic_collapsed:!i.expanded})},s.createElement(Xe.azJ,{flex:"1",className:"mx_RoomSummaryCard_topic_container mx_RoomSummaryCard_topic_box"},s.createElement(Pu.E,{size:"sm",weight:"regular",onClick:i.onTopicLinkClick},a),s.createElement(Tu.K,{className:"mx_RoomSummaryCard_topic_chevron",size:"24px",onClick:i.onExpandedClick},s.createElement(uu.A,null))),i.expanded&&i.canEditTopic&&s.createElement(Xe.azJ,{flex:"1",className:"mx_RoomSummaryCard_topic_edit"},s.createElement(Tp.N,{kind:"primary",onClick:i.onEditClick},s.createElement(Pu.E,{size:"sm",weight:"regular"},(0,c._t)("action|edit")))))},_g=({room:e,permalinkCreator:t,onSearchChange:n,onSearchCancel:i,focusRoomSearch:o,searchTerm:a=""})=>{const l=ug(e,t,i),d=Tc(e),[m,u]=(0,s.useState)(a);(0,s.useEffect)(()=>{u(a)},[a]);const p=s.createElement("header",{className:"mx_RoomSummaryCard_container"},s.createElement(ms.A,{room:e,size:"80px",viewAvatarOnClick:!0}),s.createElement(Tn.D,{as:"h1",size:"md",weight:"semibold",className:"mx_RoomSummaryCard_roomName text-primary",title:d},d),l.userStatus&&s.createElement(Xe.r3i,{status:l.userStatus}),s.createElement(Pu.E,{as:"div",size:"sm",weight:"semibold",className:"mx_RoomSummaryCard_alias text-secondary",title:l.alias},l.alias),s.createElement(Xe.son,{as:"section",justify:"center",gap:"var(--cpd-space-2x)",wrap:"wrap",className:"mx_RoomSummaryCard_badges"},!l.isDirectMessage&&l.roomJoinRule===r.dxp.Public&&s.createElement(Pp.E,{kind:"blue"},s.createElement(sm.A,{width:"1rem",height:"1rem",color:"var(--cpd-color-icon-info-primary)"}),(0,c._t)("common|public_room")),l.isRoomEncrypted&&l.e2eStatus!==ot.z.Warning&&s.createElement(Pp.E,{kind:"green"},s.createElement(Ce.A,{width:"1rem",height:"1rem"}),(0,c._t)("common|encrypted")),!l.isRoomEncrypted&&s.createElement(Pp.E,{kind:"blue"},s.createElement(jp.A,{width:"1rem",height:"1rem",color:"var(--cpd-color-icon-info-primary)"}),(0,c._t)("common|unencrypted")),l.e2eStatus===ot.z.Warning&&s.createElement(Pp.E,{kind:"red"},s.createElement(we.A,{width:"1rem",height:"1rem"}),(0,c._t)("common|not_trusted")),s.createElement(Xe.oyE,{historyVisibility:l.historyVisibility})),s.createElement(vg,{room:e})),h=n&&s.createElement(Ln.lV.Root,{className:"mx_RoomSummaryCard_search",onSubmit:e=>e.preventDefault()},s.createElement(Np.v,{placeholder:(0,c._t)("room|search|placeholder"),name:"room_message_search",onChange:e=>{u(e.currentTarget.value),n(e.currentTarget.value)},value:m,className:"mx_no_textinput",ref:l.searchInputRef,autoFocus:o,onKeyDown:l.onUpdateSearchInput}));return s.createElement(Hp.A,{id:"room-summary-panel",className:"mx_RoomSummaryCard",ariaLabelledBy:"room-summary-panel-tab",role:"tabpanel",header:h},p,s.createElement(Fn.w,null),s.createElement("div",{role:"menubar","aria-orientation":"vertical"},s.createElement(Dp.X,{Icon:Mp.A,label:(0,c._t)("room|context_menu|favourite"),checked:l.isFavorite,onSelect:l.onFavoriteToggleClick}),s.createElement(Ai.D,{Icon:vu.A,label:(0,c._t)("action|invite"),disabled:!l.canInviteToState,onSelect:l.onInviteToRoomClick}),s.createElement(Fn.w,null),s.createElement(Ai.D,{Icon:Vp.A,label:(0,c._t)("common|people"),onSelect:l.onRoomMembersClick}),s.createElement(Ai.D,{Icon:ra.A,label:(0,c._t)("common|threads"),onSelect:l.onRoomThreadsClick}),!l.isVideoRoom&&s.createElement(s.Fragment,null,s.createElement(Ai.D,{Icon:Bp.A,label:(0,c._t)("right_panel|pinned_messages_button"),onSelect:l.onRoomPinsClick},s.createElement(Pu.E,{as:"span",size:"sm"},l.pinCount)),s.createElement(Ai.D,{Icon:Lp.A,label:(0,c._t)("right_panel|files_button"),onSelect:l.onRoomFilesClick}),s.createElement(Ai.D,{Icon:Up.A,label:(0,c._t)("right_panel|extensions_button"),onSelect:l.onRoomExtensionsClick})),s.createElement(Fn.w,null),s.createElement(Ai.D,{Icon:Op.A,label:(0,c._t)("action|copy_link"),onSelect:l.onShareRoomClick}),!l.isVideoRoom&&s.createElement(s.Fragment,null,s.createElement(Ai.D,{Icon:En.A,label:(0,c._t)("right_panel|polls_button"),onSelect:l.onRoomPollHistoryClick}),s.createElement(Ai.D,{Icon:Fp.A,label:(0,c._t)("export_chat|title"),onSelect:l.onRoomExportClick})),s.createElement(Ai.D,{Icon:pn.A,label:(0,c._t)("common|settings"),onSelect:l.onRoomSettingsClick}),s.createElement(Fn.w,null),s.createElement("div",{className:"mx_RoomSummaryCard_bottomOptions"},s.createElement(Ai.D,{Icon:dt.A,kind:"critical",label:(0,c._t)("action|report_room"),onSelect:l.onReportRoomClick}),s.createElement(Ai.D,{className:"mx_RoomSummaryCard_leave",Icon:_u.A,kind:"critical",label:(0,c._t)("action|leave_room"),onSelect:l.onLeaveRoomClick}))))};var fg=n("./src/utils/WidgetUtils.ts"),yg=n("../../node_modules/.pnpm/matrix-widget-api@1.17.0/node_modules/matrix-widget-api/lib/index.js"),Eg=n("../../node_modules/.pnpm/@matrix-org+react-sdk-module-api@2.5.0_patch_hash=016146c9cc96e6363609d2b2ac0896ccef567_88e9e4948198afef3a26d5a493f07dc1/node_modules/@matrix-org/react-sdk-module-api/lib/lifecycles/WidgetLifecycle.js"),wg=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/collapse.js"),Sg=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/expand.js"),bg=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/minus.js"),Ag=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/help.js"),Cg=n("./src/utils/UrlUtils.ts");function xg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}class kg extends s.Component{constructor(e){super(e);const t=this.parseWidgetUrl(),n=_.J.safeGet().getRoom(this.props.roomId);let s=null;n&&(s=n.getMember(this.props.creatorUserId)),this.state=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xg(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xg(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({roomMember:s},t)}parseWidgetUrl(){const e=(0,Cg.Dl)(this.props.url);if(fg.A.isScalarUrl(this.props.url)&&e.searchParams.has("url")){const t=(0,Cg.Dl)(e.searchParams.get("url"));return{widgetDomain:t.host||t.hostname,isWrapped:!0}}return{widgetDomain:e.host||e.hostname,isWrapped:!1}}render(){const e=d.A.get().brand,t=this.state.roomMember?this.state.roomMember.name:this.props.creatorUserId,n=t===this.props.creatorUserId?null:this.props.creatorUserId,i=this.state.roomMember?s.createElement(bo.A,{member:this.state.roomMember,size:"38px"}):s.createElement(ki.A,{name:this.props.creatorUserId,size:"38px"}),o=s.createElement(Ys.m,{label:(0,c._t)("analytics|shared_data_heading"),caption:s.createElement("ul",null,s.createElement("li",null,(0,c._t)("widget|shared_data_name")),s.createElement("li",null,(0,c._t)("widget|shared_data_avatar")),s.createElement("li",null,(0,c._t)("widget|shared_data_mxid")),s.createElement("li",null,(0,c._t)("widget|shared_data_device_id")),s.createElement("li",null,(0,c._t)("widget|shared_data_theme")),s.createElement("li",null,(0,c._t)("widget|shared_data_lang")),s.createElement("li",null,(0,c._t)("widget|shared_data_url",{brand:e})),s.createElement("li",null,(0,c._t)("widget|shared_data_room_id")),s.createElement("li",null,(0,c._t)("widget|shared_data_widget_id")))},s.createElement("div",{className:"mx_TextWithTooltip_target mx_TextWithTooltip_target--helpIcon"},s.createElement(Ag.A,{className:"mx_Icon mx_Icon_12"}))),r=this.state.isWrapped?(0,c._t)("widget|shared_data_warning_im",{widgetDomain:this.state.widgetDomain},{helpIcon:()=>o}):(0,c._t)("widget|shared_data_warning",{widgetDomain:this.state.widgetDomain},{helpIcon:()=>o}),a=this.props.isRoomEncrypted?(0,c._t)("widget|unencrypted_warning"):null;return s.createElement("div",{className:"mx_AppPermission"},s.createElement("div",{className:"mx_AppPermission_content"},s.createElement("div",{className:"mx_AppPermission_content_bolder"},(0,c._t)("widget|added_by")),s.createElement("div",null,i,s.createElement(In.A,{size:"4"},t),s.createElement("div",null,n)),s.createElement("div",null,r),s.createElement("div",null,(0,c._t)("widget|cookie_warning")," ",a),s.createElement("div",null,s.createElement(Ve.A,{kind:"primary_sm",onClick:this.props.onPermissionGranted},(0,c._t)("action|continue")))))}}(0,i.A)(kg,"defaultProps",{onPermissionGranted:()=>{}});const Rg=e=>s.createElement("div",{className:"mx_AppWarning"},s.createElement("div",null,s.createElement(os.A,{width:"24px",height:"24px"})),s.createElement("div",null,s.createElement("span",null,e.errorMsg||"Error")));function Ig(e){const t=document.createElement("div");return t.id=e,function(){let e=document.getElementById("mx_PersistedElement_container");return e||(e=document.createElement("div"),e.id="mx_PersistedElement_container",document.body.appendChild(e)),e}().appendChild(t),t}class Tg extends s.Component{constructor(e){super(e),(0,i.A)(this,"resizeObserver",void 0),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"childContainer",void 0),(0,i.A)(this,"child",void 0),(0,i.A)(this,"collectChildContainer",e=>{this.childContainer&&this.resizeObserver.unobserve(this.childContainer),this.childContainer=e,e&&this.resizeObserver.observe(e)}),(0,i.A)(this,"collectChild",e=>{this.child=e,this.updateChild()}),(0,i.A)(this,"onAction",e=>{"timeline_resize"===e.action?this.repositionChild():"logout"===e.action&&Tg.destroyElement(this.props.persistKey)}),(0,i.A)(this,"repositionChild",()=>{this.updateChildPosition(this.child,this.childContainer)}),this.resizeObserver=new ResizeObserver(this.repositionChild),this.props.moveRef&&(this.props.moveRef.current=this.repositionChild)}static destroyElement(e){const t=Tg.rootMap[e];t&&(t[0].unmount(),t[1].remove()),delete Tg.rootMap[e]}static isMounted(e){return Boolean(Tg.rootMap[e])}componentDidMount(){window.addEventListener("resize",this.repositionChild),this.dispatcherRef=K.A.register(this.onAction),this.updateChild(),this.renderApp()}componentDidUpdate(){this.updateChild(),this.renderApp()}componentWillUnmount(){this.updateChildVisibility(this.child,!1),this.resizeObserver.disconnect(),window.removeEventListener("resize",this.repositionChild),K.A.unregister(this.dispatcherRef)}updateChild(){this.updateChildPosition(this.child,this.childContainer),this.updateChildVisibility(this.child,!0)}renderApp(){const e=s.createElement(s.StrictMode,null,s.createElement(Ro.A.Provider,{value:this.context},s.createElement(je.Ay.Provider,{value:this.context.client},s.createElement(Fd.B,null,s.createElement("div",{ref:this.collectChild,style:this.props.style},this.props.children)))));let t=Tg.rootMap[this.props.persistKey];if(!t){const e=Ig("mx_persistedElement_"+this.props.persistKey);t=[(0,Qp.createRoot)(e),e],Tg.rootMap[this.props.persistKey]=t}t[0].render(e)}updateChildVisibility(e,t=!1){e&&(e.style.display=t?"block":"none")}updateChildPosition(e,t){if(!e||!t)return;const n=t.getBoundingClientRect();Object.assign(e.style,{zIndex:(0,Pa.hX)(this.props.zIndex)?9:this.props.zIndex,position:"absolute",top:"0",left:"0",transform:`translateX(${n.left}px) translateY(${n.top}px)`,width:n.width+"px",height:n.height+"px"})}render(){return s.createElement("div",{ref:this.collectChildContainer})}}(0,i.A)(Tg,"contextType",Ro.A),(0,i.A)(Tg,"rootMap",{});var Pg=n("./src/widgets/WidgetType.ts"),Ng=n("./src/stores/widgets/WidgetMessaging.ts"),Dg=n("./src/stores/WidgetStore.ts");const Mg=["app","className","size"],Og=e=>{let{app:t,className:n,size:i="20px"}=e,o=(0,v.A)(e,Mg),r="img/element-icons/room/default_app.79b63ba.svg";return t.type.includes("jitsi")?r="img/element-icons/room/default_video.f29df7d.svg":t.type.includes("meeting")||t.type.includes("calendar")?r="img/element-icons/room/default_cal.6bea887.svg":t.type.includes("pad")||t.type.includes("doc")||t.type.includes("calc")?r="img/element-icons/room/default_doc.a42767c.svg":t.type.includes("clock")&&(r="img/element-icons/room/default_clock.d7c6411.svg"),s.createElement(ki.A,(0,xn.A)({},o,{role:"img",name:t.id,className:un()("mx_WidgetAvatar",n),url:(0,Dg.Sw)(t)&&t.avatar_url?(0,Ci.l)(t.avatar_url).getSquareThumbnailHttp(20):null,urls:[r],size:i}))};var Fg=n("./src/stores/widgets/ElementWidgetCapabilities.ts"),Lg=n("./src/stores/widgets/WidgetMessagingStore.ts"),Ug=n("./src/modules/WidgetLifecycleApi.ts"),Vg=n("../../node_modules/.pnpm/@sentry+core@10.63.0/node_modules/@sentry/core/build/esm/logs/public-api.js"),Bg=n("./src/stores/widgets/ElementWidgetActions.ts");function jg(){return d.A.get("audio_stream_url")}async function Hg(e,t,n){const i=await async function(e,t){const n=await e.getOpenIdToken(),i=jg()+"/createStream",s=await window.fetch(i,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({room_id:t,openid_token:n})});return(await s.json()).stream_id}(e,n);await t.transport.send(Bg.k.StartLiveStream,{rtmpStreamKey:"rtmp://audiostream.dummy/"+i})}var zg=n("./src/stores/widgets/WidgetLayoutStore.ts");class Wg extends Xe.oY8{constructor(e){const{app:t,cli:n,room:s,roomId:o,userWidget:r,showUnpin:a,menuDisplayed:l,trigger:c,onDeleteClick:d}=e;super(e,Wg.computeSnapshot(t,n,s,r,a,l,c,d)),(0,i.A)(this,"_app",void 0),(0,i.A)(this,"_roomId",void 0),(0,i.A)(this,"_room",void 0),(0,i.A)(this,"_cli",void 0),(0,i.A)(this,"_widgetMessaging",void 0),this._app=t,this._roomId=o,this._room=s,this._cli=n,this._widgetMessaging=Lg.c.instance.getMessagingForUid(fg.A.getWidgetUid(e.app))}get onFinished(){return()=>this.props.onFinished()}get onRevokeClick(){return()=>{var e;const t=(0,Dg.Sw)(this._app)?this._app.eventId:void 0;Vg.pq("Revoking permission for widget to load: "+t);const n=S.A.getValue("allowedWidgets",this._roomId);void 0!==t&&(n[t]=!1);const i=S.A.firstSupportedLevel("allowedWidgets");if(!i)throw new Error("level must be defined");S.A.setValue("allowedWidgets",null!==(e=this._roomId)&&void 0!==e?e:null,i,n).catch(e=>{Vg.z3(e)}),this.props.onFinished()}}get onDeleteClick(){return()=>{if(this.props.onDeleteClick)this.props.onDeleteClick();else if(this._roomId){const{finished:e}=X.Ay.createDialog(on.A,{title:(0,c._t)("widget|context_menu|delete"),description:(0,c._t)("widget|context_menu|delete_warning"),button:(0,c._t)("widget|context_menu|delete")});e.then(([e])=>{e&&fg.A.setRoomWidget(this._cli,this._roomId,this._app.id)})}this.props.onFinished()}}get onSnapshotClick(){return()=>{var e;null===(e=this._widgetMessaging)||void 0===e||null===(e=e.widgetApi)||void 0===e||e.takeScreenshot().then(e=>{K.A.dispatch({action:"picture_snapshot",file:e.screenshot})}).catch(e=>{Vg.z3("Failed to take screenshot: ",e)}),this.props.onFinished()}}get onStreamAudioClick(){return async()=>{try{this._roomId&&await Hg(this._cli,this._widgetMessaging.widgetApi,this._roomId)}catch(e){Vg.z3("Failed to start livestream",e);const t=e instanceof Error?e.message:(0,c._t)("widget|error_unable_start_audio_stream_description");X.Ay.createDialog(sn.A,{title:(0,c._t)("widget|error_unable_start_audio_stream_title"),description:t})}this.props.onFinished()}}get onEditClick(){return()=>{this.props.onEditClick?this.props.onEditClick():this._room&&fg.A.editWidget(this._room,this._app),this.props.onFinished()}}get onMoveButton(){return e=>{if(!this._room)throw new Error("room must be defined");zg.a.instance.moveWithinContainer(this._room,"top",this._app,e),this.props.onFinished()}}}function Jg(e){const{app:t,userWidget:n,showUnpin:i,menuDisplayed:o,trigger:r,onEditClick:a,onDeleteClick:l,onFinished:c}=e,d=(0,s.useContext)(je.Ay),{room:m,roomId:u}=(0,aa.ME)("room","roomId"),p=(0,s.useMemo)(()=>new Wg({menuDisplayed:o,room:m,roomId:u,cli:d,app:t,showUnpin:i,userWidget:n,trigger:r,onEditClick:a,onDeleteClick:l,onFinished:c}),[t,m,u,n,i,o,d,r,a,l,c]);(0,s.useEffect)(()=>()=>{p.dispose()},[p]);const{showStreamAudioStreamButton:h,showEditButton:g,showRevokeButton:v,showDeleteButton:_,showSnapshotButton:f,showMoveButtons:y}=p.getSnapshot();return h||g||v||_||f||y.some(Boolean)?s.createElement(Xe.Sz1,{vm:p}):s.createElement(s.Fragment,null)}function Gg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function Kg(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Gg(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Gg(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}(0,i.A)(Wg,"computeSnapshot",(e,t,n,i,s,o,r,a)=>{var l;const c=!!jg()&&Pg.x.JITSI.matches(e.type),d=i||fg.A.canUserModifyWidgets(t,null==n?void 0:n.roomId),m=Lg.c.instance.getMessagingForUid(fg.A.getWidgetUid(e)),u=!!a||d,p=S.A.getValue("enableWidgetScreenshots")&&!(null==m||null===(l=m.widgetApi)||void 0===l||!l.hasCapability(yg.MatrixCapabilities.Screenshots));let h=[!1,!1];if(s){const t=n?zg.a.instance.getContainerWidgets(n,"top"):[],i=t.findIndex(t=>t.id===e.id);h=[i>0,i<t.length-1]}const g=d&&fg.A.isManagedByManager(e),v=((e,t,n,i)=>{const s={approved:void 0};if(f.r.instance.invoke(Eg.Z.PreLoadRequest,s,new Ng.vS(n)),!s.approved){var o;const s=(0,Dg.Sw)(n)&&void 0!==n.eventId&&null!==(o=S.A.getValue("allowedWidgets",t)[n.eventId])&&void 0!==o&&o||n.creatorUserId===(null==e?void 0:e.getUserId()),r=Pg.x.JITSI.matches(n.type);return!i&&!r&&s}return!1})(t,null==n?void 0:n.roomId,e,i);return{showStreamAudioStreamButton:c,showEditButton:g,showRevokeButton:v,showDeleteButton:u,showSnapshotButton:p,showMoveButtons:h,canModify:d,userWidget:!!i,isMenuOpened:o,trigger:r}});class qg extends s.Component{constructor(e,t){var n;if(super(e,t),(0,i.A)(this,"widget",void 0),(0,i.A)(this,"contextMenuButton",(0,s.createRef)()),(0,i.A)(this,"iframeParent",null),(0,i.A)(this,"allowedWidgetsWatchRef",void 0),(0,i.A)(this,"persistKey",void 0),(0,i.A)(this,"messaging",void 0),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"unmounted",!1),(0,i.A)(this,"watchUserReady",()=>{dp.V.instance.isProfileInfoFetched||dp.V.instance.once("update",this.onUserReady)}),(0,i.A)(this,"onUserReady",()=>{this.setState({isUserProfileReady:!0})}),(0,i.A)(this,"hasPermissionToLoadSync",e=>{var t;if(this.usingLocalWidget())return!0;if(!e.room)return!0;const n={approved:void 0};if(f.r.instance.invoke(Eg.Z.PreLoadRequest,n,new Ng.vS(this.props.app)),n.approved)return!0;const i=S.A.getValue("allowedWidgets",e.room.roomId);return(0,Dg.Sw)(e.app)&&void 0!==e.app.eventId&&null!==(t=i[e.app.eventId])&&void 0!==t&&t||e.userId===e.creatorUserId}),(0,i.A)(this,"onMyMembership",(e,t)=>{var n;t!==$n.O.Leave&&t!==$n.O.Ban||e.roomId!==(null===(n=this.props.room)||void 0===n?void 0:n.roomId)||this.onUserLeftRoom()}),(0,i.A)(this,"onAllowedWidgetsChange",()=>{this.resolvePermissionToLoad(this.props).then(e=>{if(!this.unmounted){var t;if(this.state.hasPermissionToLoad&&!e)Z.A.instance.destroyPersistentWidget(this.props.app.id,(0,Dg.Sw)(this.props.app)?this.props.app.roomId:null),Tg.destroyElement(this.persistKey),null===(t=this.messaging)||void 0===t||t.stop();!this.state.hasPermissionToLoad&&e&&this.startWidget(),this.setState({hasPermissionToLoad:e})}})}),(0,i.A)(this,"onMessagingStart",e=>{e.on("ready",this.onWidgetReady),e.on("error:preparing",this.updateRequiresClient),e.on("capabilitiesNotified",this.updateRequiresClient)}),(0,i.A)(this,"onMessagingStop",e=>{e.off("ready",this.onWidgetReady),e.off("error:preparing",this.updateRequiresClient),e.off("capabilitiesNotified",this.updateRequiresClient)}),(0,i.A)(this,"iframeParentRef",e=>{var t;if(!this.unmounted)if(null===(t=this.iframeParent)||void 0===t||null===(t=t.querySelector("iframe"))||void 0===t||t.remove(),this.iframeParent=e,null===this.iframeParent)this.resetWidget(this.props);else if(this.messaging&&null===this.iframeParent.querySelector("iframe")){const e=document.createElement("iframe");e.title=fg.A.getWidgetName(this.props.app),e.allow="microphone; camera; encrypted-media; autoplay; display-capture; clipboard-write; clipboard-read;",e.src=this.messaging.embedUrl,e.allowFullscreen=!0,e.sandbox="allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-presentation allow-downloads",this.iframeParent.appendChild(e),requestAnimationFrame(()=>{if(null!==e.parentElement)try{var t;null===(t=this.messaging)||void 0===t||t.start(e)}catch(e){o.vF.error("Failed to start widget",e)}})}}),(0,i.A)(this,"onWidgetReady",()=>{this.setState({loading:!1})}),(0,i.A)(this,"updateRequiresClient",()=>{var e;this.setState({requiresClient:!(null===(e=this.messaging)||void 0===e||null===(e=e.widgetApi)||void 0===e||!e.hasCapability(Fg.z.RequiresClient))})}),(0,i.A)(this,"onAction",e=>{var t,n;switch(e.action){case"m.sticker":e.widgetId===this.props.app.id&&null!==(t=this.messaging)&&void 0!==t&&null!==(t=t.widgetApi)&&void 0!==t&&t.hasCapability(yg.MatrixCapabilities.StickerSending)?(K.A.dispatch({action:"post_sticker_message",data:Kg(Kg({},e.data),{},{threadId:this.props.threadId})}),K.A.dispatch({action:"stickerpicker_close"})):o.vF.warn("Ignoring sticker message. Invalid capability");break;case $.r.AfterLeaveRoom:e.room_id===(null===(n=this.props.room)||void 0===n?void 0:n.roomId)&&this.onUserLeftRoom()}}),(0,i.A)(this,"grantWidgetPermission",()=>{var e;const t=null===(e=this.props.room)||void 0===e?void 0:e.roomId,n=(0,Dg.Sw)(this.props.app)?this.props.app.eventId:void 0;o.vF.info("Granting permission for widget to load: "+n);const i=S.A.getValue("allowedWidgets",t);void 0!==n&&(i[n]=!0);const s=S.A.firstSupportedLevel("allowedWidgets");S.A.setValue("allowedWidgets",null!=t?t:null,s,i).then(()=>{this.setState({hasPermissionToLoad:!0}),this.startWidget()}).catch(e=>{o.vF.error(e)})}),(0,i.A)(this,"onPopoutWidgetClick",()=>{var e;Pg.x.JITSI.matches(this.props.app.type)&&this.reload(),Object.assign(document.createElement("a"),{target:"_blank",href:null===(e=this.messaging)||void 0===e?void 0:e.popoutUrl,rel:"noreferrer noopener"}).click()}),(0,i.A)(this,"onToggleMaximisedClick",()=>{if(!this.props.room)return;const e=this.context.widgetLayoutStore.isInContainer(this.props.room,this.props.app,"center")?"top":"center";this.context.widgetLayoutStore.moveToContainer(this.props.room,this.props.app,e),"top"===e&&this.closeChatCardIfNeeded()}),(0,i.A)(this,"onMinimiseClicked",()=>{this.props.room&&(this.context.widgetLayoutStore.moveToContainer(this.props.room,this.props.app,"right"),this.closeChatCardIfNeeded())}),(0,i.A)(this,"closeChatCardIfNeeded",()=>{this.props.room&&this.context.rightPanelStore.currentCardForRoom(this.props.room.roomId).phase===Wu.n.Timeline&&this.context.rightPanelStore.popCard(this.props.room.roomId)}),(0,i.A)(this,"onContextMenuClick",()=>{this.setState({menuDisplayed:!0})}),(0,i.A)(this,"closeContextMenu",()=>{this.setState({menuDisplayed:!1})}),this.persistKey="widget_"+fg.A.getWidgetUid(this.props.app),this.widget=new Ng.vS(e.app),this.messaging=Lg.c.instance.getMessaging(this.widget,null===(n=e.room)||void 0===n?void 0:n.roomId),void 0===this.messaging)try{var r;this.messaging=new Ng.Hw(this.widget,e),Lg.c.instance.storeMessaging(this.widget,null===(r=e.room)||void 0===r?void 0:r.roomId,this.messaging)}catch(e){o.vF.error("Failed to construct widget",e)}this.state=this.getNewState(e)}async resolvePermissionToLoad(e){if(this.hasPermissionToLoadSync(e))return!0;if(!e.room)return!1;try{const t=(0,Ug.H)(this.widget,e.room.roomId);return!0===await yl.r.instance.widgetLifecycle.preapprovePreload(t)}catch(e){return o.vF.error("Module API preload approval check failed",e),!1}}onUserLeftRoom(){Z.A.instance.getWidgetPersistence(this.props.app.id,(0,Dg.Sw)(this.props.app)?this.props.app.roomId:null)&&(this.props.room&&this.context.roomViewStore.getRoomId()!==this.props.room.roomId?this.endWidgetActions():Pg.x.JITSI.matches(this.props.app.type)?this.reload():Z.A.instance.destroyPersistentWidget(this.props.app.id,(0,Dg.Sw)(this.props.app)?this.props.app.roomId:null))}determineInitialRequiresClientState(){try{var e;const t=new Ng.vS(this.props.app),n=Lg.c.instance.getMessaging(t,null===(e=this.props.room)||void 0===e?void 0:e.roomId);if(null!=n&&n.widgetApi)return n.widgetApi.hasCapability(Fg.z.RequiresClient)}catch{}return!0}getNewState(e){return{initialising:!0,loading:!this.props.waitForIframeLoad&&!Tg.isMounted(this.persistKey),hasPermissionToLoad:this.hasPermissionToLoadSync(e),isUserProfileReady:dp.V.instance.isProfileInfoFetched,error:null,menuDisplayed:!1,requiresClient:this.determineInitialRequiresClientState()}}isMixedContent(){const e=window.location.protocol,t=(0,Cg.Dl)(this.props.app.url).protocol;return"https:"===e&&"https:"!==t&&(o.vF.warn("Refusing to load mixed-content app:",e,t,window.location,this.props.app.url),!0)}componentDidMount(){var e;(this.unmounted=!1,this.props.miniMode||Z.A.instance.dockWidget(this.props.app.id,(0,Dg.Sw)(this.props.app)?this.props.app.roomId:null),this.messaging&&this.setupMessagingListeners(),this.state.hasPermissionToLoad&&this.messaging?this.startWidget():this.resolvePermissionToLoad(this.props).then(e=>{this.unmounted||(this.setState({hasPermissionToLoad:e}),e&&this.startWidget())}),this.watchUserReady(),this.props.room)&&(null===(e=this.context.client)||void 0===e||e.on(r.u99.MyMembership,this.onMyMembership));this.allowedWidgetsWatchRef=S.A.watchSetting("allowedWidgets",null,this.onAllowedWidgetsChange),this.dispatcherRef=K.A.register(this.onAction)}componentWillUnmount(){var e;(this.unmounted=!0,this.props.miniMode||Z.A.instance.undockWidget(this.props.app.id,(0,Dg.Sw)(this.props.app)?this.props.app.roomId:null),Z.A.instance.isLive(this.props.app.id,(0,Dg.Sw)(this.props.app)?this.props.app.roomId:null)||this.endWidgetActions(),K.A.unregister(this.dispatcherRef),this.props.room)&&(null===(e=this.context.client)||void 0===e||e.off(r.u99.MyMembership,this.onMyMembership));S.A.unwatchSetting(this.allowedWidgetsWatchRef),dp.V.instance.removeListener("update",this.onUserReady)}setupMessagingListeners(){var e,t;null===(e=this.messaging)||void 0===e||e.on(Ng.Tl.Start,this.onMessagingStart),null===(t=this.messaging)||void 0===t||t.on(Ng.Tl.Stop,this.onMessagingStop)}stopMessagingListeners(){var e,t;null===(e=this.messaging)||void 0===e||e.off(Ng.Tl.Start,this.onMessagingStart),null===(t=this.messaging)||void 0===t||t.off(Ng.Tl.Stop,this.onMessagingStop)}resetWidget(e){var t;null===(t=this.messaging)||void 0===t||t.stop(),this.stopMessagingListeners();try{var n,i;Lg.c.instance.stopMessaging(this.widget,null===(n=this.props.room)||void 0===n?void 0:n.roomId),this.messaging=new Ng.Hw(this.widget,e),Lg.c.instance.storeMessaging(this.widget,null===(i=this.props.room)||void 0===i?void 0:i.roomId,this.messaging),this.setupMessagingListeners(),this.startWidget()}catch(e){o.vF.error("Failed to construct widget",e),this.messaging=void 0}}startWidget(){var e;null===(e=this.messaging)||void 0===e||e.prepare().then(()=>{this.unmounted||this.setState({initialising:!1})})}componentDidUpdate(e){e.app.url!==this.props.app.url&&(this.getNewState(this.props),this.state.hasPermissionToLoad&&this.resetWidget(this.props))}endWidgetActions(){var e;Pg.x.JITSI.matches(this.props.app.type)&&this.props.room&&this.context.legacyCallHandler.hangupCallApp(this.props.room.roomId),Tg.destroyElement(this.persistKey),Z.A.instance.destroyPersistentWidget(this.props.app.id,(0,Dg.Sw)(this.props.app)?this.props.app.roomId:null),null===(e=this.messaging)||void 0===e||e.stop({forceDestroy:!0})}formatAppTileName(){let e="No name";return this.props.app.name&&this.props.app.name.trim()&&(e=this.props.app.name.trim()),e}usingLocalWidget(){return Pg.x.JITSI.matches(this.props.app.type)}getTileTitle(){const e=this.formatAppTileName(),t=s.createElement("span",null," - ");let n="";return this.props.widgetPageTitle&&this.props.widgetPageTitle!==this.formatAppTileName()&&(n=this.props.widgetPageTitle),s.createElement("span",null,s.createElement(Og,{app:this.props.app,size:"20px"}),s.createElement("h1",null,e),s.createElement("span",null,n?t:"",n))}reload(){var e;this.endWidgetActions(),this.resetWidget(this.props),null===(e=this.iframeParent)||void 0===e||null===(e=e.querySelector("iframe"))||void 0===e||e.remove()}render(){let e;const t=un()({mx_AppTileBody:!0,"mx_AppTileBody--large":!this.props.miniMode,"mx_AppTileBody--mini":this.props.miniMode,"mx_AppTileBody--loading":this.state.loading,"mx_AppTileBody--call":this.props.app.type===Pg.x.CALL.preferred}),n={};this.props.pointerEvents&&(n.pointerEvents=this.props.pointerEvents);const i=s.createElement("div",{className:"mx_AppTileBody_fadeInSpinner"},s.createElement(Be.A,{message:(0,c._t)("common|loading")}));if(null===this.messaging)e=s.createElement("div",{className:t,style:n},s.createElement(Rg,{errorMsg:(0,c._t)("widget|error_loading")}));else if(!this.state.hasPermissionToLoad&&this.props.room&&this.messaging){var o;const i=null===(o=this.context.client)||void 0===o?void 0:o.isRoomEncrypted(this.props.room.roomId);e=s.createElement("div",{className:t,style:n},s.createElement(kg,{roomId:this.props.room.roomId,creatorUserId:this.props.creatorUserId,url:this.messaging.embedUrl,isRoomEncrypted:i,onPermissionGranted:this.grantWidgetPermission}))}else if(this.state.initialising||!this.state.isUserProfileReady)e=s.createElement("div",{className:t,style:n},i);else if(this.isMixedContent())e=s.createElement("div",{className:t,style:n},s.createElement(Rg,{errorMsg:(0,c._t)("widget|error_mixed_content")}));else if(this.messaging&&(e=s.createElement(s.Fragment,null,s.createElement("div",{className:t,style:n,ref:this.iframeParentRef},this.state.loading&&i),this.props.overlay),!this.props.userWidget)){const t=101;e=s.createElement("div",{className:"mx_AppTile_persistedWrapper"},s.createElement(Tg,{zIndex:this.props.miniMode?t:9,persistKey:this.persistKey,moveRef:this.props.movePersistedElement},e))}let r;r=this.props.miniMode?{mx_AppTile_mini:!0}:this.props.fullWidth?{mx_AppTileFullWidth:!0}:{mx_AppTile:!0},r=un()(r);const a=[];if(this.props.showLayoutButtons){const e=this.props.room&&this.context.widgetLayoutStore.isInContainer(this.props.room,this.props.app,"center");a.push(s.createElement(Ve.A,{key:"toggleMaximised",className:"mx_AppTileMenuBar_widgets_button",title:e?(0,c._t)("widget|unmaximise"):(0,c._t)("action|maximise"),onClick:this.onToggleMaximisedClick},e?s.createElement(wg.A,{className:"mx_Icon mx_Icon_12"}):s.createElement(Sg.A,{className:"mx_Icon mx_Icon_12"}))),a.push(s.createElement(Ve.A,{key:"minimise",className:"mx_AppTileMenuBar_widgets_button",title:(0,c._t)("action|minimise"),onClick:this.onMinimiseClicked},s.createElement(bg.A,{className:"mx_Icon mx_Icon_16"})))}return s.createElement("div",{className:r,id:this.props.app.id},this.props.showMenubar&&s.createElement("div",{className:"mx_AppTileMenuBar"},s.createElement("span",{className:"mx_AppTileMenuBar_title",style:{pointerEvents:this.props.handleMinimisePointerEvents?"all":"none"}},this.props.showTitle&&this.getTileTitle()),s.createElement("span",{className:"mx_AppTileMenuBar_widgets"},a,this.props.showPopout&&!this.state.requiresClient&&s.createElement(Ve.A,{className:"mx_AppTileMenuBar_widgets_button",title:(0,c._t)("widget|popout"),onClick:this.onPopoutWidgetClick},s.createElement(mt.A,{className:"mx_Icon mx_Icon_12"})),s.createElement(Xe.gJG.Provider,{value:window.mxModuleApi.i18n},s.createElement(Jg,{trigger:s.createElement(tr.VJ,{className:"mx_AppTileMenuBar_widgets_button",label:(0,c._t)("common|options"),isExpanded:this.state.menuDisplayed,ref:this.contextMenuButton,onClick:this.onContextMenuClick},s.createElement(uc.A,{className:"mx_Icon mx_Icon_12"})),app:this.props.app,onFinished:this.closeContextMenu,showUnpin:!this.props.userWidget,userWidget:this.props.userWidget,onEditClick:this.props.onEditClick,onDeleteClick:this.props.onDeleteClick,menuDisplayed:this.state.menuDisplayed})))),e)}}(0,i.A)(qg,"contextType",Ro.A),(0,i.A)(qg,"defaultProps",{waitForIframeLoad:!0,showMenubar:!0,showTitle:!0,showPopout:!0,handleMinimisePointerEvents:!1,userWidget:!1,miniMode:!1,threadId:null,showLayoutButtons:!0});const $g=({room:e,widgetId:t,onClose:n})=>{var i,o;const r=(0,s.useContext)(Ro.A),a=(0,fg.X)(e).find(e=>e.id===t),l=a&&r.widgetLayoutStore.isInContainer(e,a,"right"),[d,m,u,p]=(0,tr.EF)();if((0,s.useEffect)(()=>{a&&l||r.rightPanelStore.popCard()},[a,l,r.rightPanelStore]),!a||!l)return null;const h=s.createElement(Jg,{trigger:s.createElement(tr.VJ,{className:"mx_BaseCard_header_title_button--option",ref:m,onClick:u,isExpanded:d,label:(0,c._t)("common|options")}),onFinished:p,app:a,menuDisplayed:d}),g=s.createElement("div",{className:"mx_BaseCard_header_title"},s.createElement(In.A,{size:"4",className:"mx_BaseCard_header_title_heading",as:"h1"},fg.A.getWidgetName(a)),h);return s.createElement(Hp.A,{header:g,className:"mx_WidgetCard",onClose:n,withoutScrollContainer:!0},s.createElement(qg,{app:a,fullWidth:!0,showMenubar:!1,room:e,userId:null!==(i=null===(o=r.client)||void 0===o?void 0:o.getUserId())&&void 0!==i?i:void 0,creatorUserId:a.creatorUserId,widgetPageTitle:fg.A.getWidgetDataTitle(a),waitForIframeLoad:a.waitForIframeLoad}))};var Yg=n("./src/components/views/right_panel/UserInfo.tsx");class Qg extends s.Component{constructor(e){var t,n,s,a;super(e),(0,i.A)(this,"room",void 0),(0,i.A)(this,"onRoomStateEvents",e=>{if(e.getType()===r.Bx4.RoomThirdPartyInvite&&e.getStateKey()===this.state.stateKey){const t=e.getContent().display_name,n={invited:(0,Vd.Qo)(e)};t&&(n.displayName=t),this.setState(n)}}),(0,i.A)(this,"onCancel",()=>{K.A.dispatch({action:$.r.View3pidInvite,event:null})}),(0,i.A)(this,"onKickClick",()=>{_.J.safeGet().sendStateEvent(this.state.roomId,r.Bx4.RoomThirdPartyInvite,{},this.state.stateKey).catch(e=>{o.vF.error(e),this.setState({invited:!0}),X.Ay.createDialog(sn.A,{title:(0,c._t)("user_info|error_revoke_3pid_invite_title"),description:(0,c._t)("user_info|error_revoke_3pid_invite_description")})}),this.setState({invited:!1})}),this.room=_.J.safeGet().getRoom(this.props.event.getRoomId());const l=null===(t=this.room)||void 0===t?void 0:t.getMember(_.J.safeGet().getSafeUserId()),d=null===(n=this.room)||void 0===n?void 0:n.currentState.getStateEvents("m.room.power_levels",""),m=this.props.event.getSender();let u=d?d.getContent().kick:50;"number"!=typeof u&&(u=50);const p=null===(s=this.room)||void 0===s?void 0:s.getMember(m);this.state={stateKey:this.props.event.getStateKey(),roomId:this.props.event.getRoomId(),displayName:this.props.event.getContent().display_name,invited:!0,canKick:!!l&&l.powerLevel>u,senderName:null!==(a=null==p?void 0:p.name)&&void 0!==a?a:m}}componentDidMount(){_.J.safeGet().on(r.fZ1.Events,this.onRoomStateEvents)}componentWillUnmount(){const e=_.J.get();e&&e.removeListener(r.fZ1.Events,this.onRoomStateEvents)}render(){let e;return this.state.canKick&&this.state.invited&&(e=s.createElement(Xe.son,{direction:"column",as:"section",justify:"start",gap:"var(--cpd-space-2x)"},s.createElement(Pu.E,{as:"span",role:"heading",size:"lg",weight:"semibold"},(0,c._t)("user_info|admin_tools_section")),s.createElement(xe.$,{size:"md",kind:"destructive",className:"mx_MemberInfo_field",onClick:this.onKickClick},(0,c._t)("user_info|revoke_invite")))),s.createElement(Hp.A,{onClose:this.props.onClose,header:(0,c._t)("common|profile")},s.createElement(Xe.son,{className:"mx_ThirdPartyMemberInfo",direction:"column",gap:"var(--cpd-space-4x)"},s.createElement(Xe.son,{direction:"column",as:"section",justify:"start",gap:"var(--cpd-space-2x)"},s.createElement(Pu.E,{as:"span",role:"heading",size:"lg",weight:"semibold"},this.state.displayName),s.createElement(Pu.E,{as:"span"},(0,c._t)("user_info|invited_by",{sender:this.state.senderName}))),e))}}let Xg=function(e){return e[e.Files=0]="Files",e[e.Search=1]="Search",e}({});function Zg({isRoomEncrypted:e,kind:t,showLogo:n=!0}){if(!e)return s.createElement(s.Fragment,null);if(y.A.get())return s.createElement(s.Fragment,null);if(y.A.error)return s.createElement("div",{className:"mx_SearchWarning"},(0,c._t)("seshat|error_initialising",{},{a:e=>s.createElement(Ve.A,{kind:"link_inline",onClick:e=>{e.preventDefault(),K.A.dispatch({action:$.r.ViewUserSettings,initialTabId:ct.v.Security})}},e)}));const i=d.A.get("brand"),r=d.A.getObject("desktop_builds");let a,l;if(null!=r&&r.get("available")){l=s.createElement("img",{alt:"",src:r.get("logo"),width:"32px"});const e=r.get("url");switch(t){case Xg.Files:a=(0,c._t)("seshat|warning_kind_files_app",{},{a:t=>s.createElement("a",{href:e,target:"_blank",rel:"noreferrer noopener"},t)});break;case Xg.Search:a=(0,c._t)("seshat|warning_kind_search_app",{},{a:t=>s.createElement("a",{href:e,target:"_blank",rel:"noreferrer noopener"},t)})}}else switch(t){case Xg.Files:a=(0,c._t)("seshat|warning_kind_files",{brand:i});break;case Xg.Search:a=(0,c._t)("seshat|warning_kind_search",{brand:i})}return a?s.createElement("div",{className:"mx_SearchWarning"},n?l:null,s.createElement("span",null,a)):(o.vF.warn("Unknown desktop builds warning kind: ",t),s.createElement(s.Fragment,null))}var ev=n("./src/components/structures/LegacyCallEventGrouper.ts");const tv=(...e)=>{S.A.getValue("debug_timeline_panel")&&o.vF.log.call(console,"TimelinePanel debuglog:",...e)};class nv extends s.Component{constructor(e,t){if(super(e,t),(0,i.A)(this,"lastRRSentEventId",void 0),(0,i.A)(this,"lastRMSentEventId",void 0),(0,i.A)(this,"messagePanel",(0,s.createRef)()),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"timelineWindow",void 0),(0,i.A)(this,"unmounted",!1),(0,i.A)(this,"readReceiptActivityTimer",null),(0,i.A)(this,"readMarkerActivityTimer",null),(0,i.A)(this,"callEventGroupers",new Map),(0,i.A)(this,"initialReadMarkerId",null),(0,i.A)(this,"syncImpliesForwardPaginating",void 0),(0,i.A)(this,"onDumpDebugLogs",()=>{var e,t,n,i,s,a;const l=null===(e=this.props.timelineSet)||void 0===e?void 0:e.room,c=null===(t=this.state)||void 0===t||null===(t=t.events)||void 0===t?void 0:t.map(e=>e.getId());let d,m,u;try{const e=this.messagePanelDiv;if(e){d=[...e.querySelectorAll("[data-event-id]")].map(e=>e.getAttribute("data-event-id"))}}catch(e){o.vF.error("onDumpDebugLogs: Failed to get the actual event ID's in the DOM",e)}const p={};if(l){const e=l.getTimelineSets(),t=l.threadsTimelineSets;try{m=iv(e),u=iv(t)}catch(e){o.vF.error("onDumpDebugLogs: Failed to serialize event IDs from timelinesets",e)}try{l.getThreads().forEach(e=>{var t,n;p[e.id]={events:e.events.map(e=>e.getId()),numTimelines:e.timelineSet.getTimelines().length,liveTimeline:e.timelineSet.getLiveTimeline().getEvents().length,prevTimeline:null===(t=e.timelineSet.getLiveTimeline().getNeighbouringTimeline(r.OP3.Backward))||void 0===t?void 0:t.getEvents().length,nextTimeline:null===(n=e.timelineSet.getLiveTimeline().getNeighbouringTimeline(r.OP3.Forward))||void 0===n?void 0:n.getEvents().length}})}catch(e){o.vF.error("onDumpDebugLogs: Failed to serialize event IDs from the threads",e)}}let h,g;try{var v;h=null===(v=this.timelineWindow)||void 0===v?void 0:v.getEvents().map(e=>e.getId())}catch(e){o.vF.error("onDumpDebugLogs: Failed to get event IDs from the timelineWindow",e)}try{g=this.props.timelineSet.getPendingEvents().map(e=>e.getId())}catch(e){o.vF.error("onDumpDebugLogs: Failed to get pending event IDs",e)}o.vF.debug(`TimelinePanel(${this.context.timelineRenderingType}): Debugging info for ${null==l?void 0:l.roomId}\n\tevents(${c.length})=${JSON.stringify(c)}\n\trenderedEventIds(${null!==(n=null===(i=d)||void 0===i?void 0:i.length)&&void 0!==n?n:0})=${JSON.stringify(d)}\n\tserializedEventIdsFromTimelineSets=${JSON.stringify(m)}\n\tserializedEventIdsFromThreadsTimelineSets=${JSON.stringify(u)}\n\tserializedThreadsMap=${JSON.stringify(p)}\n\ttimelineWindowEventIds(${null===(s=h)||void 0===s?void 0:s.length})=${JSON.stringify(h)}\n\tpendingEventIds(${null===(a=g)||void 0===a?void 0:a.length})=${JSON.stringify(g)}`)}),(0,i.A)(this,"onMessageListUnfillRequest",(e,t)=>{const n=e?r.qss.BACKWARDS:r.qss.FORWARDS;tv("unpaginating events in direction",n);const i=t,s=this.timelineWindow.getEvents(),o=s.findIndex(e=>e.getId()===i);let a;a=-1===o?0:e?o+1:s.length-o,a>0&&(tv("Unpaginating",a,"in direction",n),this.timelineWindow.unpaginate(a,e));const{events:l,liveEvents:c}=this.getEvents();this.buildLegacyCallEventGroupers(l),this.setState({events:l,liveEvents:c}),e?this.setState({canBackPaginate:!0}):this.setState({canForwardPaginate:!0})}),(0,i.A)(this,"onPaginationRequest",(e,t,n)=>this.props.onPaginationRequest?this.props.onPaginationRequest(e,t,n):e.paginate(t,n)),(0,i.A)(this,"onMessageListFillRequest",e=>{var t;if(!this.shouldPaginate())return Promise.resolve(!1);const n=e?r.qss.BACKWARDS:r.qss.FORWARDS,i=e?"canBackPaginate":"canForwardPaginate",s=e?"backPaginating":"forwardPaginating";return this.state[i]?null!==(t=this.timelineWindow)&&void 0!==t&&t.canPaginate(n)?(tv("Initiating paginate; backwards:"+e),this.setState({[s]:!0}),this.onPaginationRequest(this.timelineWindow,n,50).then(async t=>{var n;if(this.unmounted)return!1;tv("paginate complete backwards:"+e+"; success:"+t);const{events:o,liveEvents:a}=this.getEvents();this.buildLegacyCallEventGroupers(o);const l={[s]:!1,[i]:t,events:o,liveEvents:a},c=e?r.qss.FORWARDS:r.qss.BACKWARDS,d=e?"canForwardPaginate":"canBackPaginate";return!this.state[d]&&null!==(n=this.timelineWindow)&&void 0!==n&&n.canPaginate(c)&&(tv("can now",c,"paginate again"),l[d]=!0),new Promise(e=>{this.setState(l,()=>{e(t)})})})):(tv("can't",n,"paginate any further"),this.setState({[i]:!1}),Promise.resolve(!1)):(tv("have given up",n,"paginating this timeline"),Promise.resolve(!1))}),(0,i.A)(this,"onMessageListScroll",e=>{var t,n;null===(t=(n=this.props).onScroll)||void 0===t||t.call(n,e),this.props.manageReadMarkers&&this.doManageReadMarkers()}),(0,i.A)(this,"doManageReadMarkers",(0,Ap.A)(()=>{var e;const t=this.getReadMarkerPosition();if(null===t)return;t<0&&this.setState({readMarkerVisible:!0});const n=this.readMarkerTimeout(t);null===(e=this.readMarkerActivityTimer)||void 0===e||e.changeTimeout(n)},100,{leading:!1,trailing:!0})),(0,i.A)(this,"onAction",e=>{switch(e.action){case"ignore_state_changed":this.forceUpdate();break;case $.r.DumpDebugLogs:this.onDumpDebugLogs()}}),(0,i.A)(this,"onRoomTimeline",(e,t,n,i,s)=>{var o,a;s.timeline.getTimelineSet()===this.props.timelineSet&&(r.jVh.hasServerSideSupport||this.context.timelineRenderingType!==Qo.Ae.Thread||(n&&!this.state.canBackPaginate&&this.setState({canBackPaginate:!0}),n||this.state.canForwardPaginate||this.setState({canForwardPaginate:!0})),!n&&s&&s.liveEvent&&null!==(o=this.messagePanel.current)&&void 0!==o&&o.getScrollState()&&(null!==(a=this.messagePanel.current.getScrollState())&&void 0!==a&&a.stuckAtBottom?this.timelineWindow.paginate(r.qss.FORWARDS,1,!1).then(()=>{if(this.unmounted)return;const{events:t,liveEvents:n}=this.getEvents();this.buildLegacyCallEventGroupers(t);const i=n[n.length-1],s={events:t,liveEvents:n};let o=!1;if(this.props.manageReadMarkers){const t=_.J.safeGet().credentials.userId;if(o=!1,e.getSender()===t||G.A.sharedInstance().userActiveRecently()){if(i&&0===this.getReadMarkerPosition()){var r;this.setReadMarker(null!==(r=i.getId())&&void 0!==r?r:null,i.getTs(),!0),s.readMarkerVisible=!1,s.readMarkerEventId=i.getId(),o=!0}}else s.readMarkerVisible=!0}this.setState(s,()=>{var e,t,n;(null===(e=this.messagePanel.current)||void 0===e||e.updateTimelineMinHeight(),o)&&(null===(t=(n=this.props).onReadMarkerUpdated)||void 0===t||t.call(n))})}):this.setState({canForwardPaginate:!0})))}),(0,i.A)(this,"onRoomTimelineReset",(e,t)=>{t===this.props.timelineSet&&this.canResetTimeline()&&this.loadTimeline()}),(0,i.A)(this,"canResetTimeline",()=>{var e;return!0===(null===(e=this.messagePanel)||void 0===e||null===(e=e.current)||void 0===e?void 0:e.isAtBottom())}),(0,i.A)(this,"onRoomRedaction",(e,t)=>{this.unmounted||this.hasTimelineSetFor(t.roomId)&&this.forceUpdate()}),(0,i.A)(this,"onThreadUpdate",e=>{var t;if(this.unmounted)return;if(!this.hasTimelineSetFor(e.roomId))return;const n=null===(t=this.messagePanel.current)||void 0===t?void 0:t.getTileForEventId(e.id);n&&n.forceUpdate()}),(0,i.A)(this,"onEventVisibilityChange",e=>{var t;if(this.unmounted)return;if(!this.hasTimelineSetFor(e.getRoomId()))return;const n=null===(t=this.messagePanel.current)||void 0===t?void 0:t.getTileForEventId(e.getId());n&&n.forceUpdate()}),(0,i.A)(this,"onVisibilityPowerLevelChange",(e,t)=>{var n;if(!this.unmounted&&this.hasTimelineSetFor(t.roomId)&&t.userId==(null===(n=_.J.safeGet().credentials)||void 0===n?void 0:n.userId)){for(const e of this.state.events){var i;const t=null===(i=this.messagePanel.current)||void 0===i?void 0:i.getTileForEventId(e.getId());t&&t.forceUpdate()}this.forceUpdate()}}),(0,i.A)(this,"onEventReplaced",e=>{this.unmounted||this.hasTimelineSetFor(e.getRoomId())&&this.forceUpdate()}),(0,i.A)(this,"onRoomReceipt",(e,t)=>{this.unmounted||t===this.props.timelineSet.room&&this.forceUpdate()}),(0,i.A)(this,"onLocalEchoUpdated",(e,t,n)=>{this.unmounted||this.hasTimelineSetFor(t.roomId)&&this.reloadEvents()}),(0,i.A)(this,"onAccountData",(e,t)=>{this.unmounted||t===this.props.timelineSet.room&&e.getType()===r.Bx4.FullyRead&&this.setState({readMarkerEventId:e.getContent().event_id},this.props.onReadMarkerUpdated)}),(0,i.A)(this,"onEventDecrypted",e=>{this.props.timelineSet.room&&this.hasTimelineSetFor(e.getRoomId())&&this.state.events.includes(e)&&(this.buildLegacyCallEventGroupers(this.state.events),this.forceUpdate())}),(0,i.A)(this,"onSync",(e,t,n)=>{if(this.unmounted)return;const i=nv.isSyncForwardPaginating(e);i!==this.syncImpliesForwardPaginating&&(this.syncImpliesForwardPaginating=i,this.forceUpdate())}),(0,i.A)(this,"sendReadReceipts",async()=>{var e,t;if(S.A.getValue("lowBandwidth"))return;if(!this.messagePanel.current)return;if(!this.props.manageReadReceipts)return;const n=_.J.get();if(!n||n.isGuest())return;const i=this.getCurrentReadReceipt(!0),s=this.indexForEventId(i),o=this.getLastDisplayedEventIndex({ignoreOwn:!0}),r=null!==(e=this.state.events[null!=o?o:this.state.events.length-1])&&void 0!==e?e:null,a=this.shouldSendReadReceipt(i,s,r,o),l=this.state.readMarkerEventId,c=this.shouldSendFullyReadMarker(l),d=null===(t=this.props.timelineSet.room)||void 0===t?void 0:t.roomId;tv(`Sending Read Markers for ${d}: `,{shouldSendReadReceipt:a,shouldSendFullyReadMarker:c,currentReadReceiptEventId:i,currentReadReceiptEventIndex:s,lastReadEventId:null==r?void 0:r.getId(),lastReadEventIndex:o,readMarkerEventId:this.state.readMarkerEventId});const m=[];if(a&&m.push(this.sendReadReceipt(n,r)),c){this.props.timelineSet.findEventById(l)&&m.push(this.sendFullyReadMarker(n,null!=d?d:"",l))}await Promise.all(m)}),(0,i.A)(this,"updateReadMarker",async()=>{if(!this.props.manageReadMarkers)return;if(1===this.getReadMarkerPosition())return;const e=this.getLastDisplayedEventIndex({allowPartial:!0});if(null===e)return;const t=this.state.events[e];await this.setReadMarker(t.getId(),t.getTs()),this.state.readMarkerVisible&&this.setState({readMarkerVisible:!1}),await this.sendReadReceipts()}),(0,i.A)(this,"jumpToLiveTimeline",()=>{var e,t;null!==(e=this.timelineWindow)&&void 0!==e&&e.canPaginate(r.qss.FORWARDS)?this.loadTimeline():null===(t=this.messagePanel.current)||void 0===t||t.scrollToBottom()}),(0,i.A)(this,"scrollToEventIfNeeded",e=>{var t;null===(t=this.messagePanel.current)||void 0===t||t.scrollToEventIfNeeded(e)}),(0,i.A)(this,"jumpToReadMarker",()=>{if(!this.props.manageReadMarkers)return;if(!this.messagePanel.current)return;if(!this.state.readMarkerEventId)return;null===this.messagePanel.current.getReadMarkerPosition()?this.loadTimeline(this.state.readMarkerEventId,0,1/3):this.messagePanel.current.scrollToEvent(this.state.readMarkerEventId,0,1/3)}),(0,i.A)(this,"forgetReadMarker",async()=>{if(!this.props.manageReadMarkers)return;const e=this.getCurrentReadReceipt(),t=this.props.timelineSet.getTimelineForEvent(null!=e?e:"");let n;if(t){const i=t.getEvents().find(t=>t.getId()==e);i&&(n=i.getTs())}await this.setReadMarker(e,n),await this.sendReadReceipts()}),(0,i.A)(this,"isAtEndOfLiveTimeline",()=>{var e;return(null===(e=this.messagePanel.current)||void 0===e?void 0:e.isAtBottom())&&this.timelineWindow&&!this.timelineWindow.canPaginate(r.qss.FORWARDS)}),(0,i.A)(this,"getScrollState",()=>this.messagePanel.current?this.messagePanel.current.getScrollState():null),(0,i.A)(this,"getReadMarkerPosition",()=>{if(!this.props.manageReadMarkers)return null;if(!this.messagePanel.current)return null;if(!this.props.timelineSet.room)return null;const e=this.messagePanel.current.getReadMarkerPosition();if(null!==e)return e;const t=nv.roomReadMarkerTsMap[this.props.timelineSet.room.roomId];return t&&this.state.events.length>0?t<this.state.events[0].getTs()?-1:1:null}),(0,i.A)(this,"canJumpToReadMarker",()=>{const e=this.getReadMarkerPosition();return null!==this.state.readMarkerEventId&&(null===e||e<0)}),(0,i.A)(this,"handleScrollKey",e=>{if(!this.messagePanel.current)return;(0,dc.zM)().getRoomAction(e)===mc.bY.JumpToLatestMessage?this.jumpToLiveTimeline():this.messagePanel.current.handleScrollKey(e)}),(0,i.A)(this,"getRelationsForEvent",(e,t,n)=>{var i;return null===(i=this.props.timelineSet.relations)||void 0===i?void 0:i.getChildEventsForEvent(e,t,n)}),tv("mounting"),this.syncImpliesForwardPaginating=nv.isSyncForwardPaginating(_.J.safeGet().getSyncState()),this.props.manageReadMarkers){var n;const e=null===(n=this.props.timelineSet.room)||void 0===n?void 0:n.getAccountData("m.fully_read");this.initialReadMarkerId=e?e.getContent().event_id:this.getCurrentReadReceipt()}this.state={events:[],liveEvents:[],timelineLoading:!0,canBackPaginate:!1,canForwardPaginate:!1,readMarkerVisible:!0,readMarkerEventId:this.initialReadMarkerId,backPaginating:!1,forwardPaginating:!1,isTwelveHour:S.A.getValue("showTwelveHourTimestamps"),alwaysShowTimestamps:S.A.getValue("alwaysShowTimestamps"),readMarkerInViewThresholdMs:S.A.getValue("readMarkerInViewThresholdMs"),readMarkerOutOfViewThresholdMs:S.A.getValue("readMarkerOutOfViewThresholdMs")}}componentDidMount(){var e;this.unmounted=!1,this.dispatcherRef=K.A.register(this.onAction);const t=_.J.safeGet();t.on(r.u99.Timeline,this.onRoomTimeline),t.on(r.u99.TimelineReset,this.onRoomTimelineReset),t.on(r.u99.Redaction,this.onRoomRedaction),S.A.getValue("feature_msc3531_hide_messages_pending_moderation")&&(t.on(r.OQv.VisibilityChange,this.onEventVisibilityChange),t.on(r.o5X.PowerLevel,this.onVisibilityPowerLevelChange)),t.on(r.u99.RedactionCancelled,this.onRoomRedaction),t.on(r.u99.Receipt,this.onRoomReceipt),t.on(r.u99.LocalEchoUpdated,this.onLocalEchoUpdated),t.on(r.u99.AccountData,this.onAccountData),t.on(r.OQv.Decrypted,this.onEventDecrypted),t.on(r.OQv.Replaced,this.onEventReplaced),t.on(r.AUM.Sync,this.onSync),null===(e=this.props.timelineSet.room)||void 0===e||e.on(r.juu.Update,this.onThreadUpdate),this.props.manageReadReceipts&&this.props.enableReadReceiptsAndMarkersOnActivity&&this.updateReadReceiptOnUserActivity(),this.props.manageReadMarkers&&this.props.enableReadReceiptsAndMarkersOnActivity&&this.updateReadMarkerOnUserActivity(),this.initTimeline(this.props)}componentDidUpdate(e){var t,n;e.timelineSet!==this.props.timelineSet&&o.vF.warn("Replacing timelineSet on a TimelinePanel - confusion may ensue"),null===(t=this.props.timelineSet.room)||void 0===t||t.off(r.juu.Update,this.onThreadUpdate),null===(n=this.props.timelineSet.room)||void 0===n||n.on(r.juu.Update,this.onThreadUpdate);const i=e.eventId!=this.props.eventId,s=e.highlightedEventId!=this.props.highlightedEventId,a=e.eventScrollIntoView&&!this.props.eventScrollIntoView;(i||s||a)&&(o.vF.log(`TimelinePanel switching to eventId ${this.props.eventId} (was ${e.eventId}), scrollIntoView: ${this.props.eventScrollIntoView} (was ${e.eventScrollIntoView})`),this.initTimeline(this.props))}componentWillUnmount(){this.unmounted=!0,this.readReceiptActivityTimer&&(this.readReceiptActivityTimer.abort(),this.readReceiptActivityTimer=null),this.readMarkerActivityTimer&&(this.readMarkerActivityTimer.abort(),this.readMarkerActivityTimer=null),K.A.unregister(this.dispatcherRef);const e=_.J.get();var t;e&&(e.removeListener(r.u99.Timeline,this.onRoomTimeline),e.removeListener(r.u99.TimelineReset,this.onRoomTimelineReset),e.removeListener(r.u99.Redaction,this.onRoomRedaction),e.removeListener(r.u99.RedactionCancelled,this.onRoomRedaction),e.removeListener(r.u99.Receipt,this.onRoomReceipt),e.removeListener(r.u99.LocalEchoUpdated,this.onLocalEchoUpdated),e.removeListener(r.u99.AccountData,this.onAccountData),e.removeListener(r.o5X.PowerLevel,this.onVisibilityPowerLevelChange),e.removeListener(r.OQv.Decrypted,this.onEventDecrypted),e.removeListener(r.OQv.Replaced,this.onEventReplaced),e.removeListener(r.OQv.VisibilityChange,this.onEventVisibilityChange),e.removeListener(r.AUM.Sync,this.onSync),null===(t=this.props.timelineSet.room)||void 0===t||t.removeListener(r.juu.Update,this.onThreadUpdate))}get messagePanelDiv(){var e,t;return null!==(e=null===(t=this.messagePanel.current)||void 0===t||null===(t=t.scrollPanel.current)||void 0===t?void 0:t.divScroll)&&void 0!==e?e:null}hasTimelineSetFor(e){var t;return void 0!==e&&e===(null===(t=this.props.timelineSet.room)||void 0===t?void 0:t.roomId)}static isSyncForwardPaginating(e){return e===r.Lmg.Prepared||e===r.Lmg.Catchup}readMarkerTimeout(e){var t,n,i,s;return 0===e?null!==(t=null===(n=this.context)||void 0===n?void 0:n.readMarkerInViewThresholdMs)&&void 0!==t?t:this.state.readMarkerInViewThresholdMs:null!==(i=null===(s=this.context)||void 0===s?void 0:s.readMarkerOutOfViewThresholdMs)&&void 0!==i?i:this.state.readMarkerOutOfViewThresholdMs}async updateReadMarkerOnUserActivity(){const e=this.readMarkerTimeout(this.getReadMarkerPosition());for(this.readMarkerActivityTimer=new q.A(e);this.readMarkerActivityTimer;){G.A.sharedInstance().timeWhileActiveRecently(this.readMarkerActivityTimer);try{await this.readMarkerActivityTimer.finished()}catch{continue}await this.updateReadMarker()}}async updateReadReceiptOnUserActivity(){for(this.readReceiptActivityTimer=new q.A(500);this.readReceiptActivityTimer;){G.A.sharedInstance().timeWhileActiveNow(this.readReceiptActivityTimer);try{await this.readReceiptActivityTimer.finished()}catch{continue}await this.sendReadReceipts()}}async determineReceiptType(e){var t,n;const i=null!==(t=null===(n=this.props.timelineSet.room)||void 0===n?void 0:n.roomId)&&void 0!==t?t:null;return S.A.getValue("sendReadReceipts",i)?r.Lcq.Read:await e.doesServerSupportUnstableFeature("org.matrix.msc2285.stable")||await e.isVersionSupported("v1.4")?r.Lcq.ReadPrivate:(o.vF.warn("Falling back to public instead of private receipts because the homeserver does not support them"),r.Lcq.Read)}shouldSendFullyReadMarker(e){return!!this.state.readMarkerEventId&&((!this.lastRMSentEventId||this.lastRMSentEventId!==this.state.readMarkerEventId)&&((!this.state.readMarkerEventId||this.state.readMarkerEventId!==this.initialReadMarkerId)&&!this.props.timelineSet.thread))}shouldSendReadReceipt(e,t,n,i){var s;return!!n&&(n.status!==r.fbu.NOT_SENT&&((!e||null!==t||null===(s=this.timelineWindow)||void 0===s||!s.canPaginate(r.qss.FORWARDS))&&((null===i||null===t||i>t)&&(!this.lastRRSentEventId||this.lastRRSentEventId!==(null==n?void 0:n.getId())))))}async sendReadReceipt(e,t){this.lastRRSentEventId=t.getId();const n=await this.determineReceiptType(e);try{await e.sendReadReceipt(t,n)}catch(e){var i;this.lastRRSentEventId=void 0,o.vF.error("Error sending receipt",{room:null===(i=this.props.timelineSet.room)||void 0===i?void 0:i.roomId,error:e})}}async sendFullyReadMarker(e,t,n){this.lastRMSentEventId=this.state.readMarkerEventId;try{await e.setRoomReadMarkers(t,n)}catch(e){this.lastRMSentEventId=void 0,o.vF.error("Error sending fully_read",{roomId:t,error:e})}}advanceReadMarkerPastMyEvents(){if(!this.props.manageReadMarkers||!this.timelineWindow)return;const e=this.timelineWindow.getEvents();let t;for(t=0;t<e.length&&e[t].getId()!=this.state.readMarkerEventId;t++);if(t>=e.length)return;const n=_.J.safeGet().credentials.userId;for(t++;t<e.length;t++){if(e[t].getSender()!==n)break}t--;const i=e[t];this.setReadMarker(i.getId(),i.getTs())}initTimeline(e){const t=e.eventId,n=e.eventPixelOffset;let i=1;return null==n&&(i=.5),this.loadTimeline(t,n,i,e.eventScrollIntoView)}scrollIntoView(e,t,n){var i,s;const o=()=>{this.messagePanel.current&&(e?(tv("TimelinePanel scrolling to eventId "+e+" at position "+100*n+"% + "+t),this.messagePanel.current.scrollToEvent(e,t,n)):(tv("TimelinePanel scrolling to bottom"),this.messagePanel.current.scrollToBottom()))};tv("TimelinePanel scheduling scroll to event"),null===(i=(s=this.props).onEventScrolledIntoView)||void 0===i||i.call(s,e),o(),window.requestAnimationFrame(()=>{o()})}loadTimeline(e,t,n,i=!0){const s=_.J.safeGet();this.timelineWindow=new r.SJk(s,this.props.timelineSet,{windowLimit:this.props.timelineCap});const a=()=>{var s,a,l,c,d;this.unmounted||(null===(s=this.messagePanel.current)||void 0===s||s.onTimelineReset(),this.reloadEvents(),this.advanceReadMarkerPastMyEvents(),this.setState({canBackPaginate:null!==(a=null===(l=this.timelineWindow)||void 0===l?void 0:l.canPaginate(r.qss.BACKWARDS))&&void 0!==a&&a,canForwardPaginate:null!==(c=null===(d=this.timelineWindow)||void 0===d?void 0:d.canPaginate(r.qss.FORWARDS))&&void 0!==c&&c,timelineLoading:!1},()=>{this.messagePanel.current?(i&&this.scrollIntoView(e,t,n),this.props.sendReadReceiptOnLoad&&this.sendReadReceipts().catch(e=>{o.vF.warn("Error sending receipts on load",e)})):o.vF.log("can't initialise scroll state because messagePanel didn't load")}))};if(this.props.timelineSet.getTimelineForEvent(e))return this.timelineWindow.load(e,30),void a();const l=this.timelineWindow.load(e,30);this.buildLegacyCallEventGroupers(),this.setState({events:[],liveEvents:[],canBackPaginate:!1,canForwardPaginate:!1,timelineLoading:!0}),l.then(a,t=>{var n;if(this.unmounted)return;let i,s;this.setState({timelineLoading:!1}),o.vF.error(`Error loading timeline panel at ${null===(n=this.props.timelineSet.room)||void 0===n?void 0:n.roomId}/${e}`,t),e&&this.props.timelineSet.room&&(i=()=>{K.A.dispatch({action:$.r.ViewRoom,room_id:this.props.timelineSet.room.roomId,metricsTrigger:void 0})}),s="M_FORBIDDEN"==t.errcode?(0,c._t)("timeline|load_error|no_permission"):(0,c._t)("timeline|load_error|unable_to_find");const{finished:r}=X.Ay.createDialog(sn.A,{title:(0,c._t)("timeline|load_error|title"),description:s});i&&r.then(i)})}reloadEvents(){if(this.unmounted)return;const e=this.getEvents();this.buildLegacyCallEventGroupers(e.events),this.setState(e)}refreshTimeline(e){this.loadTimeline(e,void 0,void 0,!1),this.reloadEvents()}getEvents(){const e=this.timelineWindow.getEvents(),t=_.J.safeGet();for(let n=e.length-1;n>=0;--n)t.decryptEventIfNeeded(e[n]);const n=[...e];if(!this.timelineWindow.canPaginate(r.qss.FORWARDS)){const t=this.props.timelineSet.getPendingEvents();e.push(...t.filter(e=>{const{shouldLiveInRoom:n,threadId:i}=this.props.timelineSet.room.eventShouldLiveIn(e,t);return this.context.timelineRenderingType===Qo.Ae.Thread?i===this.context.threadId:n}))}return{events:e,liveEvents:n}}indexForEventId(e){if(null===e)return null;if(this.context.timelineRenderingType===Qo.Ae.Thread)return 0;const t=this.state.events.findIndex(t=>t.getId()===e);return t>-1?t:null}getLastDisplayedEventIndex(e={}){const t=e.ignoreOwn||!1,n=e.allowPartial||!1,i=this.messagePanel.current;if(!i)return null;const s=this.messagePanelDiv;if(!s)return null;const o=s.getBoundingClientRect(),r=_.J.safeGet().credentials.userId,a=e=>{if(e){const t=e.getBoundingClientRect();if(n&&t.top<=o.bottom||!n&&t.bottom<=o.bottom)return!0}return!1};let l=0;for(let e=this.state.liveEvents.length-1;e>=0;--e){var c;const n=this.state.liveEvents[e],s=i.getNodeForEventId(n.getId()),o=a(s);if(o&&0!==l)return e+l;s&&!o&&(l=0);const d=!!n.status||t&&n.getSender()===r;if(!(!(0,zo.bN)(n,_.J.safeGet(),null===(c=this.context)||void 0===c?void 0:c.showHiddenEvents)||(0,qa.A)(n,this.context))&&s){if(!d&&o)return e}else(!d||d&&0!==l)&&++l}return null}getCurrentReadReceipt(e=!1){var t,n;const i=_.J.get();if(null==i)return null;const s=i.getSafeUserId(),o=null!==(t=this.props.timelineSet.thread)&&void 0!==t?t:this.props.timelineSet.room;return null!==(n=null==o?void 0:o.getEventReadUpTo(s,e))&&void 0!==n?n:null}async setReadMarker(e,t,n=!1){var i;const s=null===(i=this.props.timelineSet.room)||void 0===i?void 0:i.roomId;e!==this.state.readMarkerEventId&&null!==e&&(void 0!==t?nv.roomReadMarkerTsMap[null!=s?s:""]=t:delete nv.roomReadMarkerTsMap[null!=s?s:""],n||await new Promise(t=>{this.setState({readMarkerEventId:e},()=>{var e,n;null===(e=(n=this.props).onReadMarkerUpdated)||void 0===e||e.call(n),t()})}))}shouldPaginate(){return!this.state.events.some(e=>e.isBeingDecrypted())}buildLegacyCallEventGroupers(e){this.callEventGroupers=(0,ev.fN)(this.callEventGroupers,e)}render(){var e,t,n,i,o,a;if(this.state.timelineLoading)return s.createElement("div",{className:"mx_RoomView_messagePanelSpinner"},s.createElement(Be.A,null));if(0==this.state.events.length&&!this.state.canBackPaginate&&this.props.empty)return s.createElement("div",{className:this.props.className+" mx_RoomView_messageListWrapper"},s.createElement("div",{className:"mx_RoomView_empty"},this.props.empty));const l=!(null!==(e=this.timelineWindow)&&void 0!==e&&e.canPaginate(r.qss.FORWARDS)),c=this.state.forwardPaginating||this.syncImpliesForwardPaginating,d=this.state.events;return s.createElement(Hh,{ref:this.messagePanel,room:this.props.timelineSet.room,permalinkCreator:this.props.permalinkCreator,hidden:this.props.hidden,backPaginating:this.state.backPaginating,forwardPaginating:c,events:d,highlightedEventId:this.props.highlightedEventId,readMarkerEventId:this.state.readMarkerEventId,readMarkerVisible:this.state.readMarkerVisible,canBackPaginate:this.state.canBackPaginate,showUrlPreview:this.props.showUrlPreview,showReadReceipts:this.props.showReadReceipts,ourUserId:_.J.safeGet().getSafeUserId(),stickyBottom:l,onScroll:this.onMessageListScroll,onFillRequest:this.onMessageListFillRequest,onUnfillRequest:this.onMessageListUnfillRequest,isTwelveHour:null!==(t=null===(n=this.context)||void 0===n?void 0:n.showTwelveHourTimestamps)&&void 0!==t?t:this.state.isTwelveHour,alwaysShowTimestamps:null!==(i=null!==(o=this.props.alwaysShowTimestamps)&&void 0!==o?o:null===(a=this.context)||void 0===a?void 0:a.alwaysShowTimestamps)&&void 0!==i?i:this.state.alwaysShowTimestamps,className:this.props.className,getRelationsForEvent:this.getRelationsForEvent,editState:this.props.editState,showReactions:this.props.showReactions,layout:this.props.layout,hideThreadedMessages:this.props.hideThreadedMessages,disableGrouping:this.props.disableGrouping,callEventGroupers:this.callEventGroupers})}}function iv(e){return e.map(e=>{const t={},n=e.getTimelines(),i=e.getLiveTimeline();return n.forEach((e,n)=>{t[e===i?"liveTimeline":`${n}`]=e.getEvents().map(e=>e.getId())}),t})}(0,i.A)(nv,"contextType",Qo.Ay),(0,i.A)(nv,"roomReadMarkerTsMap",{}),(0,i.A)(nv,"defaultProps",{timelineCap:Number.MAX_VALUE,className:"mx_RoomView_messagePanel",sendReadReceiptOnLoad:!0,hideThreadedMessages:!0,disableGrouping:!1,enableReadReceiptsAndMarkersOnActivity:!0});const sv=nv;let ov=0;function rv({sensor:e,breakpoint:t=500,onMeasurement:n}){const i=(0,s.useRef)(ov++).current;(0,s.useEffect)(()=>(e.current&&Iu.A.instance.trackElementDimensions(`Measured${i}`,e.current),()=>{Iu.A.instance.stopTrackingElementDimensions(`Measured${i}`)}),[e,i]);const o=(0,mo.dF)(Iu.A.instance,`Measured${i}`,(e,n)=>!!n&&n.contentRect.width<=t);return(0,s.useEffect)(()=>{n(o)},[n,o]),null}const av=({Icon:e,title:t,description:n})=>s.createElement(Xe.son,{className:"mx_EmptyState",direction:"column",gap:"var(--cpd-space-4x)",align:"center",justify:"center"},s.createElement(e,{width:"32px",height:"32px"}),s.createElement(Pu.E,{size:"lg",weight:"semibold"},t),s.createElement(Pu.E,{size:"md",weight:"regular"},n)),lv={[Do.P.Bubble]:"bubble",[Do.P.Group]:"group",[Do.P.IRC]:"irc"};function cv(e,t){return t&&e===Do.P.Group?"compact":"default"}function dv({layout:e,children:t}){const n=(0,es.ti)("useCompactLayout"),i=lv[e],o=cv(e,n),r=(0,s.useMemo)(()=>({layout:i,density:o}),[i,o]);return s.createElement(Xe.E_g,{value:r},t)}class mv extends s.Component{constructor(...e){super(...e),(0,i.A)(this,"decryptingEvents",new Set),(0,i.A)(this,"noRoom",!1),(0,i.A)(this,"card",(0,s.createRef)()),(0,i.A)(this,"state",{timelineSet:null,narrow:!1}),(0,i.A)(this,"onRoomTimeline",(e,t,n,i,s)=>{if((null==t?void 0:t.roomId)!==this.props.roomId)return;if(n||!s||!s.liveEvent||e.isRedacted())return;_.J.safeGet().decryptEventIfNeeded(e),e.isBeingDecrypted()?this.decryptingEvents.add(e.getId()):this.addEncryptedLiveEvent(e)}),(0,i.A)(this,"onEventDecrypted",(e,t)=>{if(e.getRoomId()!==this.props.roomId)return;const n=e.getId();this.decryptingEvents.delete(n)&&(t||this.addEncryptedLiveEvent(e))}),(0,i.A)(this,"onPaginationRequest",(e,t,n)=>{const i=_.J.safeGet(),s=y.A.get(),o=this.props.roomId,r=i.getRoom(o);return r&&i.isRoomEncrypted(o)&&null!==s?s.paginateTimelineWindow(r,e,t,n):e.paginate(t,n)}),(0,i.A)(this,"onMeasurement",e=>{this.setState({narrow:e})})}addEncryptedLiveEvent(e){if(!this.state.timelineSet)return;const t=this.state.timelineSet.getLiveTimeline();"m.room.message"===e.getType()&&["m.file","m.image","m.video","m.audio"].includes(e.getContent().msgtype)&&(this.state.timelineSet.eventIdToTimeline(e.getId())||this.state.timelineSet.addEventToTimeline(e,t,{fromCache:!1,addToState:!1,toStartOfTimeline:!1}))}async componentDidMount(){const e=_.J.safeGet();await this.updateTimelineSet(this.props.roomId),e.isRoomEncrypted(this.props.roomId)&&null!==y.A.get()&&(e.on(r.u99.Timeline,this.onRoomTimeline),e.on(r.OQv.Decrypted,this.onEventDecrypted))}componentWillUnmount(){const e=_.J.get();null!==e&&e.isRoomEncrypted(this.props.roomId)&&null!==y.A.get()&&(e.removeListener(r.u99.Timeline,this.onRoomTimeline),e.removeListener(r.OQv.Decrypted,this.onEventDecrypted))}async fetchFileEventsServer(e){const t=_.J.safeGet(),n=new r.dJT(t.getSafeUserId());return n.setDefinition({room:{timeline:{contains_url:!0,types:["m.room.message"]}}}),n.filterId=await t.getOrCreateFilter("FILTER_FILES_"+t.credentials.userId,n),e.getOrCreateFilteredTimelineSet(n)}async updateTimelineSet(e){const t=_.J.safeGet(),n=t.getRoom(e),i=y.A.get();if(this.noRoom=!n,n){let s;try{if(s=await this.fetchFileEventsServer(n),t.isRoomEncrypted(e)&&null!==i){const e=s.getLiveTimeline();await i.populateFileTimeline(s,e,n,10)}this.setState({timelineSet:s})}catch(e){o.vF.error("Failed to get or create file panel filter",e)}}else o.vF.error("Failed to add filtered timelineSet for FilePanel as no room!")}render(){if(_.J.safeGet().isGuest())return s.createElement(Hp.A,{className:"mx_FilePanel mx_RoomView_messageListWrapper",onClose:this.props.onClose,header:(0,c._t)("right_panel|files_button")},s.createElement("div",{className:"mx_RoomView_empty"},(0,c._t)("file_panel|guest_note",{},{a:e=>s.createElement("a",{href:"#/register",key:"sub"},e)})));if(this.noRoom)return s.createElement(Hp.A,{className:"mx_FilePanel mx_RoomView_messageListWrapper",onClose:this.props.onClose,header:(0,c._t)("right_panel|files_button")},s.createElement("div",{className:"mx_RoomView_empty"},(0,c._t)("file_panel|peek_note")));const e=s.createElement(av,{Icon:Lp.A,title:(0,c._t)("file_panel|empty_heading"),description:(0,c._t)("file_panel|empty_description")}),t=!this.noRoom&&_.J.safeGet().isRoomEncrypted(this.props.roomId);return this.state.timelineSet?s.createElement(aa.yw,(0,xn.A)({},this.context,{timelineRenderingType:Qo.Ae.File,narrow:this.state.narrow}),s.createElement(Hp.A,{className:"mx_FilePanel",onClose:this.props.onClose,withoutScrollContainer:!0,ref:this.card,header:(0,c._t)("right_panel|files_button")},s.createElement(rv,{sensor:this.card,onMeasurement:this.onMeasurement}),s.createElement(Zg,{isRoomEncrypted:t,kind:Xg.Files}),s.createElement(dv,{layout:Do.P.Group},s.createElement(sv,{manageReadReceipts:!1,manageReadMarkers:!1,timelineSet:this.state.timelineSet,showUrlPreview:!1,onPaginationRequest:this.onPaginationRequest,empty:e,layout:Do.P.Group})))):s.createElement(aa.yw,(0,xn.A)({},this.context,{timelineRenderingType:Qo.Ae.File}),s.createElement(Hp.A,{className:"mx_FilePanel",onClose:this.props.onClose,header:(0,c._t)("right_panel|files_button")},s.createElement(Be.A,null)))}}(0,i.A)(mv,"contextType",Qo.Ay);const uv=mv;var pv=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/send-solid.js");class hv extends s.Component{constructor(...e){super(...e),(0,i.A)(this,"resize",()=>{this.props.onResize&&this.props.onResize()})}componentDidMount(){window.addEventListener("resize",this.resize)}componentWillUnmount(){window.removeEventListener("resize",this.resize)}render(){return s.createElement("div",null,this.props.element)}}var gv=n("./res/img/stickerpack-placeholder.png"),vv=n.n(gv);const _v="stickerPicker";class fv extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"prevSentVisibility",void 0),(0,i.A)(this,"popoverWidth",300),(0,i.A)(this,"popoverHeight",300),(0,i.A)(this,"scalarClient",null),(0,i.A)(this,"removeStickerpickerWidgets",async()=>{const e=await this.acquireScalarClient();o.vF.log("Removing Stickerpicker widgets"),this.state.widgetId?e?e.disableWidgetAssets(Pg.x.STICKERPICKER,this.state.widgetId).then(()=>{o.vF.log("Assets disabled")}).catch(()=>{o.vF.error("Failed to disable assets")}):o.vF.error("Cannot disable assets: no scalar client"):o.vF.warn("No widget ID specified, not disabling assets"),this.props.setStickerPickerOpen(!1),fg.A.removeStickerpickerWidgets(this.props.room.client).then(()=>{this.forceUpdate()}).catch(e=>{o.vF.error("Failed to remove sticker picker widget",e)})}),(0,i.A)(this,"updateWidget",()=>{var e,t,n,i;const s=fg.A.getStickerpickerWidgets(this.props.room.client)[0];if(!s)return fv.currentWidget=void 0,void this.setState({stickerpickerWidget:null,widgetId:null});const o=fv.currentWidget,r=null!==(e=null==o||null===(t=o.content)||void 0===t?void 0:t.url)&&void 0!==e?e:null;(null!==(n=null==s||null===(i=s.content)||void 0===i?void 0:i.url)&&void 0!==n?n:null)!==r&&Tg.destroyElement(_v),fv.currentWidget=s,this.setState({stickerpickerWidget:s,widgetId:s?s.id:null})}),(0,i.A)(this,"onAction",e=>{switch(e.action){case"user_widget_updated":this.forceUpdate();break;case"stickerpicker_close":case"show_left_panel":case"hide_left_panel":this.props.setStickerPickerOpen(!1)}}),(0,i.A)(this,"onRightPanelStoreUpdate",()=>{this.props.setStickerPickerOpen(!1)}),(0,i.A)(this,"onResize",()=>{this.props.isStickerPickerOpen&&this.props.setStickerPickerOpen(!1)}),(0,i.A)(this,"onFinished",()=>{this.props.isStickerPickerOpen&&this.props.setStickerPickerOpen(!1)}),(0,i.A)(this,"launchManageIntegrations",()=>{var e,t;null===(e=ae.J.sharedInstance())||void 0===e||null===(e=e.getPrimaryManager())||void 0===e||e.open(this.props.room,`type_${Pg.x.STICKERPICKER.preferred}`,null!==(t=this.state.widgetId)&&void 0!==t?t:void 0)}),this.state={imError:null,stickerpickerWidget:null,widgetId:null}}async acquireScalarClient(){return this.scalarClient?Promise.resolve(this.scalarClient):ae.J.sharedInstance().hasManager()?(this.scalarClient=null!==(e=null===(t=ae.J.sharedInstance().getPrimaryManager())||void 0===t?void 0:t.getScalarClient())&&void 0!==e?e:null,null===(n=this.scalarClient)||void 0===n?void 0:n.connect().then(()=>(this.forceUpdate(),this.scalarClient)).catch(e=>{this.imError((0,c.AO)("integration_manager|error_connecting_heading"),e)})):void ae.J.sharedInstance().openNoManagerDialog();var e,t,n}componentDidMount(){var e;window.addEventListener("resize",this.onResize),this.dispatcherRef=K.A.register(this.onAction),null===(e=this.context.client)||void 0===e||e.on(r.AUM.AccountData,this.updateWidget),this.context.rightPanelStore.on("update",this.onRightPanelStoreUpdate),this.updateWidget()}componentWillUnmount(){var e;null===(e=this.context.client)||void 0===e||e.removeListener(r.AUM.AccountData,this.updateWidget),this.context.rightPanelStore.off("update",this.onRightPanelStoreUpdate),window.removeEventListener("resize",this.onResize),K.A.unregister(this.dispatcherRef)}componentDidUpdate(){this.sendVisibilityToWidget(this.props.isStickerPickerOpen)}imError(e,t){o.vF.error(e,t),this.setState({imError:(0,c._t)(e)}),this.props.setStickerPickerOpen(!1)}defaultStickerpickerContent(){return s.createElement(Ve.A,{onClick:this.launchManageIntegrations,className:"mx_Stickers_contentPlaceholder"},s.createElement("p",null,(0,c._t)("stickers|empty")),s.createElement("p",{className:"mx_Stickers_addLink"},(0,c._t)("stickers|empty_add_prompt")),s.createElement("img",{src:vv(),alt:""}))}errorStickerpickerContent(){return s.createElement("div",{style:{textAlign:"center"},className:"error"},s.createElement("p",null," ",this.state.imError," "))}sendVisibilityToWidget(e){if(!this.state.stickerpickerWidget)return;const t=Lg.c.instance.getMessagingForUid(fg.A.calcWidgetUid(this.state.stickerpickerWidget.id));null!=t&&t.widgetApi&&e!==this.prevSentVisibility&&(t.widgetApi.updateVisibility(e).catch(e=>{o.vF.error("Error updating widget visibility: ",e)}),this.prevSentVisibility=e)}getStickerpickerContent(){var e;if(this.state.imError)return this.errorStickerpickerContent();const t=this.state.stickerpickerWidget;let n;if(null!=t&&null!==(e=t.content)&&void 0!==e&&e.url){var i,o,r;t.content.name=t.content.name||(0,c._t)("common|stickerpack");const e={id:t.id,url:t.content.url,name:t.content.name,type:t.content.type,data:t.content.data,creatorUserId:t.content.creatorUserId||t.sender};n=s.createElement("div",{className:"mx_Stickers_content_container"},s.createElement("div",{id:"stickersContent",className:"mx_Stickers_content",style:{border:"none",height:this.popoverHeight,width:this.popoverWidth}},s.createElement(Tg,{persistKey:_v,zIndex:3500},s.createElement(qg,{app:e,room:this.props.room,threadId:this.props.threadId,fullWidth:!0,userId:null!==(i=null===(o=this.context.client)||void 0===o?void 0:o.credentials.userId)&&void 0!==i?i:void 0,creatorUserId:t.sender||(null===(r=this.context.client)||void 0===r?void 0:r.credentials.userId)||void 0,waitForIframeLoad:!0,showMenubar:!0,onEditClick:this.launchManageIntegrations,onDeleteClick:this.removeStickerpickerWidgets,showTitle:!1,showPopout:!1,handleMinimisePointerEvents:!0,userWidget:!0,showLayoutButtons:!1}))))}else n=this.defaultStickerpickerContent();return n}render(){return this.props.isStickerPickerOpen?s.createElement(tr.Ay,(0,xn.A)({chevronFace:tr.t4.Bottom,menuWidth:this.popoverWidth,menuHeight:this.popoverHeight,onFinished:this.onFinished,menuPaddingTop:0,menuPaddingLeft:0,menuPaddingRight:0,zIndex:3500,mountAsChild:!0},this.props.menuPosition),s.createElement(hv,{element:this.getStickerpickerContent(),onResize:this.onFinished})):null}}(0,i.A)(fv,"contextType",Ro.A),(0,i.A)(fv,"defaultProps",{threadId:null}),(0,i.A)(fv,"currentWidget",void 0);class yv extends s.Component{render(){return this.props.replyToEvent?s.createElement("div",{className:"mx_ReplyPreview"},s.createElement("div",{className:"mx_ReplyPreview_section"},s.createElement("div",{className:"mx_ReplyPreview_header"},s.createElement("span",null,(0,c._t)("composer|replying_title")),s.createElement(Ve.A,{className:"mx_ReplyPreview_header_cancel",onClick:()=>function(e){K.A.dispatch({action:"reply_to_event",event:null,context:e})}(this.context.timelineRenderingType)},s.createElement(ti.A,null))),s.createElement($o,{mxEvent:this.props.replyToEvent,permalinkCreator:this.props.permalinkCreator}))):null}}function Ev(e,t){const n=(0,je.nH)(),i=n.getCrypto(),[a,l]=(0,s.useState)([]),[c,d]=(0,s.useState)(void 0),m=(0,s.useMemo)(()=>(0,Gn.A)(async()=>{if(!(i&&await i.isEncryptionEnabledInRoom(e.roomId)))return l([]),void d(void 0);const t=await e.getEncryptionTargetMembers();l(t);const n=await async function(e,t){const n=new Array;for(const i of t){const t=await e.getUserVerificationStatus(i.userId);t.wasCrossSigningVerified()&&!t.isCrossSigningVerified()?n.push({member:i,type:"VerificationViolation"}):t.needsUserApproval&&n.push({member:i,type:"PinViolation"})}return n}(i,t);let s;if(n.length>0){const e=n.sort((e,t)=>e.member.userId.localeCompare(t.member.userId));s=e[0]}else s=void 0;d(e=>e&&n.includes(e)?e:s||void 0)}),[i,e]);(0,mo.YK)(n,r.fZ1.Events,(0,s.useCallback)(async t=>{if(!i||t.getRoomId()!==e.roomId)return;let n=!1;const s=t.getType();if(s===r.Bx4.RoomEncryption&&""===t.getStateKey())n=!0;else if(s==r.Bx4.RoomMember){n=!!t.getStateKey()}n&&m().catch(e=>{o.vF.error("Error refreshing UserIdentityWarningViewModel:",e)})},[i,e,m])),(0,mo.YK)(n,Ee.cr.UserTrustStatusChanged,(0,s.useCallback)(e=>{a.find(t=>t.userId==e)&&m().catch(e=>{o.vF.error("Error refreshing UserIdentityWarning:",e)})},[m,a])),(0,s.useEffect)(()=>{m().catch(e=>{o.vF.error("Error initialising UserIdentityWarning:",e)})},[m]);return{currentPrompt:c,dispatchAction:(0,s.useCallback)(e=>{i&&("PinUserIdentity"===e.type?i.pinCurrentUserIdentity(e.userId).catch(e=>{o.vF.error("Error pinning user identity:",e)}):"WithdrawVerification"===e.type&&i.withdrawVerificationRequirement(e.userId).catch(e=>{o.vF.error("Error withdrawing verification requirement:",e)}))},[i])}}(0,i.A)(yv,"contextType",Qo.Ay);const wv=({room:e})=>{const{currentPrompt:t,dispatchAction:n}=Ev(e,e.roomId);if(!t)return null;const[i,o]=function(e){let t,n;"VerificationViolation"===e.type?(t=e.member.rawDisplayName===e.member.userId?(0,c._t)("encryption|verified_identity_changed_no_displayname",{userId:e.member.userId},{a:Sv,b:bv}):(0,c._t)("encryption|verified_identity_changed",{displayName:e.member.rawDisplayName,userId:e.member.userId},{a:Sv,b:bv}),n=(0,c._t)("encryption|withdraw_verification_action")):(t=e.member.rawDisplayName===e.member.userId?(0,c._t)("encryption|pinned_identity_changed_no_displayname",{userId:e.member.userId},{a:Sv,b:bv}):(0,c._t)("encryption|pinned_identity_changed",{displayName:e.member.rawDisplayName,userId:e.member.userId},{a:Sv,b:bv}),n=(0,c._t)("action|dismiss"));return[t,n]}(t);return function(e,t,n,i,o){return s.createElement("div",{className:un()("mx_UserIdentityWarning",{critical:e})},s.createElement(Fn.w,null),s.createElement("div",{className:"mx_UserIdentityWarning_row"},t,s.createElement("span",{className:un()("mx_UserIdentityWarning_main",{critical:e})},n),s.createElement(xe.$,{kind:"secondary",size:"md",onClick:o},i)))}("VerificationViolation"===t.type,(r=t.member,s.createElement(bo.A,{member:r,title:r.userId,size:"30px"})),i,o,e=>{e.preventDefault(),"VerificationViolation"===t.type?n({type:"WithdrawVerification",userId:t.member.userId}):n({type:"PinUserIdentity",userId:t.member.userId})});var r};function Sv(e){return s.createElement("a",{href:"https://element.io/help#encryption18",target:"_blank",rel:"noreferrer noopener"},e)}function bv(e){return s.createElement("b",null,e)}var Av=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/stop-solid.js"),Cv=n("./src/audio/VoiceRecording.ts"),xv=n("./src/components/views/audio_messages/Waveform.tsx"),kv=n("./src/utils/MarkedExecution.ts");class Rv extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"waveform",[]),(0,i.A)(this,"scheduledUpdate",new kv.L(()=>this.updateWaveform(),()=>requestAnimationFrame(()=>this.scheduledUpdate.trigger()))),this.state={waveform:(0,Me.DG)(0,44)}}componentDidMount(){this.props.recorder.liveData.onUpdate(e=>{this.waveform=(0,Me.$S)(Array.from(e.waveform),44),this.scheduledUpdate.mark()})}updateWaveform(){this.setState({waveform:this.waveform})}render(){return s.createElement(xv.A,{relHeights:this.state.waveform})}}class Iv extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"seconds",0),(0,i.A)(this,"scheduledUpdate",new kv.L(()=>this.updateClock(),()=>requestAnimationFrame(()=>this.scheduledUpdate.trigger()))),this.state={seconds:0}}componentDidMount(){this.props.recorder.liveData.onUpdate(e=>{this.seconds=e.timeSeconds,this.scheduledUpdate.mark()})}updateClock(){this.setState({seconds:this.seconds})}render(){return s.createElement(Xe.zD7,{seconds:this.state.seconds,"aria-live":"off"})}}var Tv=n("./src/utils/Singleflight.ts"),Pv=n("./src/audio/Playback.ts");class Nv{constructor(e,t){(0,i.A)(this,"lastUpload",void 0),(0,i.A)(this,"buffer",new Uint8Array(0)),(0,i.A)(this,"playback",void 0),(0,i.A)(this,"onDataAvailable",e=>{const t=new Uint8Array(e);this.buffer=(0,Me.xW)(this.buffer,t)}),this.matrixClient=e,this.voiceRecording=t,this.voiceRecording.onDataAvailable=this.onDataAvailable}async start(){if(this.lastUpload||this.hasRecording)throw new Error("Recording already prepared");return this.voiceRecording.start()}async stop(){return await this.voiceRecording.stop(),this.audioBuffer}on(e,t){return this.voiceRecording.on(e,t),this}off(e,t){return this.voiceRecording.off(e,t),this}emit(e,...t){return this.voiceRecording.emit(e,...t)}get hasRecording(){return this.buffer.length>0}get isRecording(){return this.voiceRecording.isRecording}getPlayback(){return this.playback=Tv.j.for(this,"playback").do(()=>new Pv.Y(this.audioBuffer.buffer,this.voiceRecording.amplitudes)),this.playback}async upload(e){if(!this.hasRecording)throw new Error("No recording available to upload");if(this.lastUpload)return this.lastUpload;try{this.emit(Cv.$T.Uploading);const{url:t,file:n}=await(0,xp.QM)(this.matrixClient,e,new Blob([this.audioBuffer],{type:this.contentType}));this.lastUpload={mxc:t,encrypted:n},this.emit(Cv.$T.Uploaded)}catch(e){throw this.emit(Cv.$T.Ended),e}return this.lastUpload}get durationSeconds(){return this.voiceRecording.durationSeconds}get contentType(){return this.voiceRecording.contentType}get contentLength(){return this.buffer.length}get liveData(){return this.voiceRecording.liveData}get isSupported(){return this.voiceRecording.isSupported}destroy(){var e;null===(e=this.playback)||void 0===e||e.destroy(),this.voiceRecording.destroy()}get audioBuffer(){return this.buffer.slice(0)}}function Dv(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function Mv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function Ov(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Mv(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Mv(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class Fv extends Na.r{constructor(){super(K.A,{})}static get instance(){return this.internalInstance||(this.internalInstance=new Fv,this.internalInstance.start()),this.internalInstance}async onAction(e){}static getVoiceRecordingId(e,t){return"io.element.thread"===(null==t?void 0:t.rel_type)||(null==t?void 0:t.rel_type)===r.zZR.Thread?e.roomId+"|"+t.event_id:e.roomId}getActiveRecording(e){return this.state[e]}startRecording(e){if(!this.matrixClient)throw new Error("Cannot start a recording without a MatrixClient");if(!e)throw new Error("Recording must be associated with a room");if(this.state[e])throw new Error("A recording is already in progress");const t=(n=this.matrixClient,new Nv(n,new Cv.Qj));var n;return this.updateState(Ov(Ov({},this.state),{},{[e]:t})),t}disposeRecording(e){var t;null===(t=this.state[e])||void 0===t||t.destroy();const n=this.state,{[e]:i}=n,s=(0,v.A)(n,[e].map(Dv));return this.reset(s)}}(0,i.A)(Fv,"internalInstance",void 0),window.mxVoiceRecordingStore=Fv.instance;var Lv=n("./src/components/views/audio_messages/RecordingPlayback.tsx"),Uv=n("./src/audio/PlaybackManager.ts"),Vv=n("./src/utils/local-room.ts");class Bv extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"voiceRecordingId",void 0),(0,i.A)(this,"onCancel",async()=>{await this.disposeRecording()}),(0,i.A)(this,"onRecordStartEndClick",async()=>{if(this.state.recorder)return void await this.state.recorder.stop();const e=()=>{X.Ay.createDialog(sn.A,{title:(0,c._t)("voip|unable_to_access_audio_input_title"),description:s.createElement("p",null,(0,c._t)("voip|unable_to_access_audio_input_description"))})};try{var t;const e=await Yd.Ay.getDevices();if(null==e||null===(t=e[Yd.cm.AudioInput])||void 0===t||!t.length)return void X.Ay.createDialog(sn.A,{title:(0,c._t)("voip|no_audio_input_title"),description:s.createElement("p",null,(0,c._t)("voip|no_audio_input_description"))})}catch(t){return o.vF.error("Error getting devices: ",t),void e()}try{Uv.T.instance.pauseAllExcept();const e=Fv.instance.startRecording(this.voiceRecordingId);await e.start(),this.bindNewRecorder(e),this.setState({recorder:e,recordingPhase:Cv.$T.Started})}catch(t){o.vF.error("Error starting recording: ",t),e(),Fv.instance.disposeRecording(this.voiceRecordingId)}}),(0,i.A)(this,"onRecordingUpdate",e=>{e!==Cv.$T.EndingSoon&&this.setState({recordingPhase:e})}),this.state={},this.voiceRecordingId=Fv.getVoiceRecordingId(this.props.room,this.props.relation)}componentDidMount(){const e=Fv.instance.getActiveRecording(this.voiceRecordingId);e&&(!e.isRecording&&e.hasRecording||o.vF.warn("Cached recording hasn't ended yet and might cause issues"),this.bindNewRecorder(e),this.setState({recorder:e,recordingPhase:Cv.$T.Ended}))}async componentWillUnmount(){const e=Fv.instance.getActiveRecording(this.voiceRecordingId);await(null==e?void 0:e.stop()),this.bindNewRecorder(null)}async send(){if(!this.state.recorder)throw new Error("No recording started - cannot send anything");const{replyToEvent:e,relation:t}=this.props;let n;await this.state.recorder.stop();try{n=await this.state.recorder.upload(this.voiceRecordingId)}catch(e){return o.vF.error("Error uploading voice message:",e),void this.setState({didUploadFail:!0})}try{const o=(i=n.mxc,s=this.state.recorder.contentType,a=Math.round(1e3*this.state.recorder.durationSeconds),l=this.state.recorder.contentLength,c=n.encrypted,d=this.state.recorder.getPlayback().thumbnailWaveform.map(e=>Math.round(1024*e)),{body:"Voice message",msgtype:r.Wrw.Audio,url:i,file:c,info:{duration:a,mimetype:s,size:l},"org.matrix.msc1767.text":"Voice message","org.matrix.msc1767.file":{url:i,file:c,name:"Voice message.ogg",mimetype:s,size:l},"org.matrix.msc1767.audio":{duration:a,waveform:d},"org.matrix.msc3245.voice":{}});(0,gc.LO)(_.J.safeGet().getSafeUserId(),o,null,e),(0,gc.gV)(o,t),e&&((0,Yo.fh)(o,e),K.A.dispatch({action:"reply_to_event",event:null,context:this.context.timelineRenderingType})),(0,Vv.Y)(this.props.room.roomId,e=>_.J.safeGet().sendMessage(e,o),this.props.room.client)}catch(e){o.vF.error("Error sending voice message:",e)}var i,s,a,l,c,d;await this.disposeRecording()}async disposeRecording(){await Fv.instance.disposeRecording(this.voiceRecordingId),this.setState({recorder:void 0,recordingPhase:void 0,didUploadFail:!1})}bindNewRecorder(e){this.state.recorder&&this.state.recorder.off("update",this.onRecordingUpdate),e&&e.on("update",this.onRecordingUpdate)}renderWaveformArea(){return this.state.recorder?this.state.recordingPhase!==Cv.$T.Started?s.createElement(Lv.A,{playback:this.state.recorder.getPlayback(),layout:Lv._.Composer}):s.createElement(Xe.Top,{className:"mx_VoiceMessagePrimaryContainer mx_VoiceRecordComposerTile_recording"},s.createElement(Iv,{recorder:this.state.recorder}),s.createElement(Rv,{recorder:this.state.recorder})):null}render(){if(!this.state.recordingPhase)return null;let e,t,n;if(this.state.recordingPhase===Cv.$T.Started){var i;let t=(0,c._t)("composer|send_voice_message");this.state.recorder&&(t=(0,c._t)("composer|stop_voice_message")),e=s.createElement(Ve.A,{className:"mx_VoiceRecordComposerTile_stop",onClick:this.onRecordStartEndClick,title:t},s.createElement(Av.A,null)),!this.state.recorder||null!==(i=this.state.recorder)&&void 0!==i&&i.isRecording||(e=null)}return this.state.recorder&&this.state.recordingPhase!==Cv.$T.Uploading&&(t=s.createElement(Ve.A,{className:"mx_VoiceRecordComposerTile_delete",title:(0,c._t)("action|delete"),onClick:this.onCancel},s.createElement(Si.A,null))),this.state.recordingPhase===Cv.$T.Uploading?n=s.createElement("span",{className:"mx_VoiceRecordComposerTile_uploadingState"},s.createElement($s.A,{size:16})):this.state.didUploadFail&&this.state.recordingPhase===Cv.$T.Ended&&(n=s.createElement("span",{className:"mx_VoiceRecordComposerTile_failedState"},s.createElement("span",{className:"mx_VoiceRecordComposerTile_uploadState_badge"},s.createElement(kr.A,{notification:xr.forSymbol("!",dr.S.Highlight)})),s.createElement("span",{className:"text-warning"},(0,c._t)("timeline|send_state_failed")))),s.createElement(s.Fragment,null,n,t,e,this.renderWaveformArea())}}(0,i.A)(Bv,"contextType",Qo.Ay);var jv=n("./src/components/views/rooms/BasicMessageComposer.tsx"),Hv=n("./src/SendHistoryManager.ts"),zv=n("./src/slash-commands/SlashCommands.tsx"),Wv=n("./src/effects/utils.ts"),Jv=n("./src/effects/index.ts"),Gv=n("./src/sendTimePerformanceMetrics.ts"),Kv=n("./src/editor/position.ts"),qv=n("./src/dispatcher/payloads/ComposerInsertPayload.ts"),$v=n("./src/editor/commands.tsx"),Yv=n("./src/utils/blobs.ts"),Qv=n("./src/viewmodels/room/RoomUploadViewModel.tsx");const Xv="mx_cider_state_";class Zv extends s.Component{constructor(e,t){super(e,t),(0,i.A)(this,"prepareToEncrypt",void 0),(0,i.A)(this,"editorRef",(0,s.createRef)()),(0,i.A)(this,"model",void 0),(0,i.A)(this,"currentlyComposedEditorState",null),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"sendHistoryManager",void 0),(0,i.A)(this,"onKeyDown",e=>{var t,n,i,s;if(null!==(t=this.editorRef.current)&&void 0!==t&&t.isComposing(e))return;const o=(null===(n=this.props.relation)||void 0===n?void 0:n.key)===r.RNJ.name,a=(0,dc.zM)().getMessageComposerAction(e);switch(a){case mc.bY.SendMessage:this.sendMessage(),e.preventDefault();break;case mc.bY.SelectPrevSendHistory:case mc.bY.SelectNextSendHistory:this.selectSendHistory(a===mc.bY.SelectPrevSendHistory)&&e.preventDefault();break;case mc.bY.ShowStickerPicker:if(!S.A.getValue("MessageComposerInput.showStickersButton"))return;this.props.toggleStickerPickerOpen(),e.preventDefault();break;case mc.bY.EditPrevMessage:if(null!==(i=this.editorRef.current)&&void 0!==i&&i.isSelectionCollapsed()&&null!==(s=this.editorRef.current)&&void 0!==s&&s.isCaretAtStart()){var l;const t=null===(l=this.context.liveTimeline)||void 0===l?void 0:l.getEvents().concat(o?[]:this.props.room.getPendingEvents()),n=t?(0,Ho.Iy)({events:t,isForward:!1,matrixClient:_.J.safeGet()}):void 0;n&&(e.preventDefault(),K.A.dispatch({action:$.r.EditEvent,event:n,timelineRenderingType:this.context.timelineRenderingType}))}break;case mc.bY.CancelReplyOrEdit:this.context.replyToEvent&&(K.A.dispatch({action:"reply_to_event",event:null,context:this.context.timelineRenderingType}),e.preventDefault(),e.stopPropagation())}}),(0,i.A)(this,"shouldSaveStoredEditorState",()=>!this.model.isEmpty||!!this.props.replyToEvent),(0,i.A)(this,"saveStoredEditorState",()=>{if(this.shouldSaveStoredEditorState()){const e=Hv.A.createItem(this.model,this.props.replyToEvent);localStorage.setItem(this.editorStateKey,JSON.stringify(e))}else this.clearStoredEditorState()}),(0,i.A)(this,"onAction",e=>{var t;if(!this.props.disabled)switch(e.action){case"reply_to_event":case $.r.FocusSendMessageComposer:var n;if((null!==(t=e.context)&&void 0!==t?t:Qo.Ae.Room)===this.context.timelineRenderingType)null===(n=this.editorRef.current)||void 0===n||n.focus();break;case $.r.ComposerInsert:if(e.timelineRenderingType!==this.context.timelineRenderingType)break;if(e.composerType!==qv.D.Send)break;var i;if(e.userId)null===(i=this.editorRef.current)||void 0===i||i.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 o;null===(o=this.editorRef.current)||void 0===o||o.insertPlaintext(e.text)}}}),(0,i.A)(this,"onPaste",(e,t)=>{if(t.files.length&&!t.types.includes("text/rtf"))return this.props.uploadVm.initiateViaDataTransfer(t),!0;if(t.types.includes("text/html")){var n;const e=t.getData("text/html"),i=(new DOMParser).parseFromString(e,"text/html");if(1!==i.getElementsByTagName("img").length||null===(n=i.querySelector("img"))||void 0===n||!n.src.startsWith("blob:")||1!==i.childNodes.length)return console.log("Failed to handle pasted content as Safari inserted content"),!1;const s=i.querySelector("img").src;return fetch(s).then(e=>{e.blob().then(t=>{const n=t.type,i=(0,Yv.F)(n),s=n.split("/")[1],o=e.url.split("/"),r=o[o.length-1],a=new File([t],r+"."+s,{type:i});this.props.uploadVm.initiateViaInputFiles([a])},e=>{console.log(e)})},e=>{console.log(e)}),!0}return!1}),(0,i.A)(this,"onChange",(e,t,n)=>{var i,s,o;n&&(null===(o=this.prepareToEncrypt)||void 0===o||o.call(this));null===(i=(s=this.props).onChange)||void 0===i||i.call(s,this.model)}),(0,i.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,Gn.A)(()=>{var e;null===(e=this.props.mxClient.getCrypto())||void 0===e||e.prepareToEncrypt(this.props.room)},6e4,{leading:!0,trailing:!1}));const n=new vc.dK(this.props.room,this.props.mxClient),o=this.restoreStoredEditorState(n)||[];this.model=new fc.A(o,n),this.sendHistoryManager=new Hv.A(this.props.room.roomId,"mx_cider_history_")}componentDidMount(){window.addEventListener("beforeunload",this.saveStoredEditorState),this.dispatcherRef=K.A.register(this.onAction)}componentDidUpdate(e){var t,n,i;const s=(null===(t=this.props.relation)||void 0===t?void 0:t.key)===r.RNJ.name,o=(null===(n=this.props.relation)||void 0===n?void 0:n.event_id)!==(null===(i=e.relation)||void 0===i?void 0:i.event_id);if(s&&o){var a;const e=new vc.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:n,replyEventId:i}=this.sendHistoryManager.getItem(t);var s;(K.A.dispatch({action:"reply_to_event",event:i?this.props.room.findEventById(i):null,context:this.context.timelineRenderingType}),n)&&(this.model.reset(n),null===(s=this.editorRef.current)||void 0===s||s.focus());return!0}sendQuickReaction(){const e=this.context.liveTimeline;if(!e)return;const t=e.getEvents(),n=this.model.parts[1].text;for(let e=t.length-1;e>=0;e--)if(t[e].getType()===r.Bx4.RoomMessage){let s=!0;const o=t[e],a=_.J.safeGet().getSafeUserId(),l=this.props.room.relations.getChildEventsForEvent(o.getId(),r.zZR.Annotation,r.Bx4.Reaction);if(l){var i;s=![...(null===(i=l.getAnnotationsBySender())||void 0===i?void 0:i[a])||new Set].filter(e=>!e.isRedacted()).map(e=>{var t;return null===(t=e.getRelation())||void 0===t?void 0:t.key}).includes(n)}s&&(_.J.safeGet().sendEvent(o.getRoomId(),r.Bx4.Reaction,{"m.relates_to":{rel_type:r.zZR.Annotation,event_id:o.getId(),key:n}}),K.A.dispatch({action:"message_sent"}));break}}async sendMessage(){var e;const t=this.model;if(t.isEmpty)return;const n={eventName:"Composer",isEditing:!1,messageType:"Text",isReply:!!this.props.replyToEvent,inThread:(null===(e=this.props.relation)||void 0===e?void 0:e.rel_type)===r.RNJ.name};if(n.inThread&&this.props.relation.event_id){var i;const e=this.props.room.findEventById(this.props.relation.event_id);n.startsThread=1===(null==e||null===(i=e.getThread())||void 0===i?void 0:i.events.length)}if(ue.Vo.instance.trackEvent(n),S.A.getValue("MessageComposerInput.autoReplaceEmoji")){var s;const e=t.parts.length-1,n=t.parts[e].text.length;null===(s=this.editorRef.current)||void 0===s||s.replaceEmoticon(new Kv.A(e,n),jv.v)}const o=this.props.replyToEvent;let a=!0,l=null;if(!(0,Pi.ID)(t)&&(0,$v.nU)(this.model)){const[e,n,i]=(0,$v.Dr)(this.props.room.roomId,this.model);if(e){var c,d;const i=(null===(c=this.props.relation)||void 0===c?void 0:c.rel_type)===r.RNJ.name?null===(d=this.props.relation)||void 0===d?void 0:d.event_id:null;let s;if([l,s]=await(0,$v.m8)(_.J.safeGet(),e,n,this.props.room.roomId,null!=i?i:null),!s)return;l&&[zv.ge.messages,zv.ge.effects].includes(e.category)?((0,gc.LO)(this.props.mxClient.getSafeUserId(),l,t,o),(0,gc.gV)(l,this.props.relation),o&&(0,Yo.fh)(l,o)):a=!1}else{const e=await(0,$v.d8)(i);if(K.A.dispatch({action:$.r.FocusAComposer,context:this.context.timelineRenderingType}),!e)return}}(function(e){const t=e.parts;if(0==t.length)return!1;const n=(0,Pi.OA)(e);if(t.length<=2){const e=n.startsWith("+")||n.startsWith("+ "),t=n.match(Us.nr);if(e&&t&&1==t.length)return t[0]===n.substring(1)||t[0]===n.substring(2)}return!1})(t)&&(a=!1,this.sendQuickReaction());const m=()=>{var e,n;this.sendHistoryManager.save(t,o),t.reset([]),null===(e=this.editorRef.current)||void 0===e||e.clearUndoHistory(),null===(n=this.editorRef.current)||void 0===n||n.focus(),this.clearStoredEditorState(),a&&S.A.getValue("scrollToBottomOnMessageSent")&&K.A.dispatch({action:"scroll_to_bottom",timelineRenderingType:this.context.timelineRenderingType})};if(a){var u;const{roomId:e}=this.props.room;if(l||(l=function(e,t,n,i){const s=(0,Pi.ID)(t);s&&(t=(0,Pi.k$)(t)),(0,Pi.w1)(t,"//")&&(t=(0,Pi.tk)(t,"/")),t=(0,Pi.GE)(t);const o=(0,Pi.OA)(t),a={msgtype:s?r.Wrw.Emote:r.Wrw.Text,body:o},l=(0,Pi.MN)(t,{useMarkdown:S.A.getValue("MessageComposerInput.useMarkdown")});return l&&(a.format="org.matrix.custom.html",a.formatted_body=l),(0,gc.LO)(e,a,t,n),(0,gc.gV)(a,i),n&&(0,Yo.fh)(a,n),a}(this.props.mxClient.getSafeUserId(),t,o,this.props.relation)),!l.body.trim())return;m(),(0,gc.QZ)(this.props.urlPreviewVm.getSnapshot(),l),S.A.getValue("Performance.addSendMessageTimingMetadata")&&(0,Gv.H)(l);const n=(null===(u=this.props.relation)||void 0===u?void 0:u.rel_type)===r.RNJ.name?this.props.relation.event_id:null,i=(0,Vv.Y)(e,e=>this.props.mxClient.sendMessage(e,null!=n?n:null,l),this.props.mxClient);o&&K.A.dispatch({action:"reply_to_event",event:null,context:this.context.timelineRenderingType}),K.A.dispatch({action:"message_sent"}),Jv.y.forEach(e=>{if((0,Wv._)(l,e.emojis)){var t;(null===(t=this.props.relation)||void 0===t?void 0:t.rel_type)!==r.RNJ.name&&K.A.dispatch({action:`effects.${e.command}`})}}),S.A.getValue("Performance.addSendMessageTimingMetadata")&&i.then(t=>{(0,Gv._)(this.props.mxClient,e,t.event_id)})}else m()}componentWillUnmount(){K.A.unregister(this.dispatcherRef),window.removeEventListener("beforeunload",this.saveStoredEditorState),this.saveStoredEditorState()}get editorStateKey(){var e;let t=Xv+this.props.room.roomId;return(null===(e=this.props.relation)||void 0===e?void 0:e.rel_type)===r.RNJ.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)===r.RNJ.name)return null;const n=localStorage.getItem(this.editorStateKey);if(n)try{const{parts:t,replyEventId:i}=JSON.parse(n),s=t.map(t=>e.deserializePart(t));return i&&K.A.dispatch({action:"reply_to_event",event:this.props.room.findEventById(i),context:this.context.timelineRenderingType}),s}catch(e){o.vF.error(e)}return null}render(){var e;const t=(null===(e=this.props.relation)||void 0===e?void 0:e.rel_type)===r.RNJ.name?this.props.relation.event_id:void 0;return s.createElement("div",{className:"mx_SendMessageComposer",onClick:this.focusComposer,onKeyDown:this.onKeyDown},s.createElement(jv.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,i.A)(Zv,"contextType",Qo.Ay);const e_=function(e){const t=(0,je.nH)(),n=(0,Qv.ug)();return s.createElement(Zv,(0,xn.A)({},e,{mxClient:t,uploadVm:n}))};var t_=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/sticker.js"),n_=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/mic-on.js"),i_=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/text-formatting.js"),s_=n("./src/components/views/rooms/CollapsibleButton.tsx"),o_=n("./src/components/views/location/index.tsx"),r_=n("./src/components/views/elements/PollCreateDialog.tsx"),a_=n("./src/components/views/rooms/EmojiButton.tsx");function l_(e){return s.createElement(a_.h,{key:"emoji_button",addEmoji:e.addEmoji,menuPosition:e.menuPosition,className:"mx_MessageComposer_button"})}function c_(e){return e.showStickersButton?s.createElement(s_.J,{id:"stickersButton",key:"controls_stickers",className:"mx_MessageComposer_button",onClick:()=>e.setStickerPickerOpen(!e.isStickerPickerOpen),title:e.isStickerPickerOpen?(0,c._t)("composer|close_sticker_picker"):(0,c._t)("common|sticker")},s.createElement(t_.A,null)):null}function d_(e,t){return t?null:s.createElement(s_.J,{key:"voice_message_send",className:"mx_MessageComposer_button",onClick:e.onRecordStartEndClick,title:(0,c._t)("composer|voice_message_button")},s.createElement(n_.A,null))}function m_(e,t){return s.createElement(u_,{key:"polls",room:e,relation:t})}class u_ extends s.PureComponent{constructor(...e){super(...e),(0,i.A)(this,"onCreateClick",()=>{var e;null===(e=this.context)||void 0===e||e.call(this);if(this.props.room.currentState.maySendEvent(r.$SO.name,_.J.safeGet().getSafeUserId())){var t;const e=(null===(t=this.props.relation)||void 0===t?void 0:t.rel_type)===r.RNJ.name?this.props.relation.event_id:void 0;X.Ay.createDialog(r_.A,{room:this.props.room,threadId:e},"mx_CompoundDialog",!1,!0)}else X.Ay.createDialog(sn.A,{title:(0,c._t)("composer|poll_button_no_perms_title"),description:(0,c._t)("composer|poll_button_no_perms_description")})})}render(){var e;return(null===(e=this.props.relation)||void 0===e?void 0:e.rel_type)===r.RNJ.name?null:s.createElement(s_.J,{className:"mx_MessageComposer_button",onClick:this.onCreateClick,title:(0,c._t)("composer|poll_button")},s.createElement(En.A,null))}}function p_(e,t,n){const i=t.getMember(n.getSafeUserId());return e.showLocationButton&&i?s.createElement(o_.Uo,{key:"location",roomId:t.roomId,relation:e.relation,sender:i,menuPosition:e.menuPosition}):null}function h_({isRichTextEnabled:e,onClick:t}){const n=e?(0,c._t)("composer|mode_plain"):(0,c._t)("composer|mode_rich_text");return s.createElement(s_.J,{className:"mx_MessageComposer_button",onClick:t,title:n},s.createElement(i_.A,null))}(0,i.A)(u_,"contextType",s_.Z);const g_=e=>{const t=(0,s.useContext)(je.Ay),n=(0,Qv.ug)(),i=(0,Xe.ifm)(n),{room:o,narrow:r}=(0,aa.ME)("room","narrow"),a=(0,es.ti)("feature_wysiwyg_composer");if(!t||!o||e.haveRecording)return null;let l,d;r?(l=[a?s.createElement(h_,{key:"composerModeButton",isRichTextEnabled:e.isRichTextEnabled,onClick:e.onComposerModeClick}):l_(e)],d=[i.options.map(({type:e,icon:t,label:i})=>s.createElement(yu.R$,{onClick:()=>n.onUploadOptionSelected(e),icon:t&&s.createElement(t,null),label:i,key:e})),c_(e),d_(e,r),e.showPollsButton?m_(o,e.relation):null,p_(e,o,t)]):(l=[a?s.createElement(h_,{key:"composerModeButton",isRichTextEnabled:e.isRichTextEnabled,onClick:e.onComposerModeClick}):l_(e),s.createElement(Xe.s5p,{key:"upload",vm:n})],d=[c_(e),d_(e,r),e.showPollsButton?m_(o,e.relation):null,p_(e,o,t)]),l=(0,Me.Bo)(l),d=(0,Me.Bo)(d);const m=un()({mx_MessageComposer_button:!0,mx_MessageComposer_buttonMenu:!0,mx_MessageComposer_closeButtonMenu:e.isMenuOpen});return s.createElement(s.Fragment,null,l,d.length>0&&s.createElement(Ve.A,{className:m,onClick:e.toggleButtonMenu,title:(0,c._t)("quick_settings|sidebar_settings")},s.createElement(uc.A,null)),e.isMenuOpen&&s.createElement(yu.Ay,(0,xn.A)({onFinished:e.toggleButtonMenu},e.menuPosition,{wrapperClassName:"mx_MessageComposer_Menu",compact:!0}),s.createElement(s_.Z.Provider,{value:e.toggleButtonMenu},s.createElement(yu.tx,null,d))))};var v_=n("./src/components/views/rooms/wysiwyg_composer/index.ts");function __({urlPreviewVm:e,moduleApi:t=yl.r.instance}){const{roomId:n}=(0,aa.ME)("showUrlPreview","roomId"),{content:i}=(0,Xe.ifm)(e),o=t.customComponents.renderComposerPreview({text:i,roomId:n},()=>s.createElement(Xe.Qtr,{vm:e}));return null!=o?o:s.createElement(Xe.Qtr,{vm:e})}var f_=n("./src/utils/UrlPreviewFetcher.ts");const y_=o.vF.getChild("MessageComposerUrlPreviewViewModel");class E_ extends Xe.oY8{constructor(e){var t;super(e,{previews:[],content:null!==(t=e.content)&&void 0!==t?t:""}),(0,i.A)(this,"fetcher",void 0),(0,i.A)(this,"links",new Set),(0,i.A)(this,"urlPreviewVisible",void 0),(0,i.A)(this,"content",void 0),(0,i.A)(this,"computeSnapshotDebounced",(0,Ap.A)(e=>this.computeSnapshot(e),500)),(0,i.A)(this,"updateUrlPreviewVisible",e=>(this.urlPreviewVisible=e,this.fetcher.clearCache(),this.computeSnapshot(this.content))),this.urlPreviewVisible=e.visible,this.fetcher=new f_.Z4(e.client,Date.now(),e.showTooltips),this.content=this.snapshot.current.content}async computeSnapshot(e){const t=e.split(" ").map(e=>e.trim()).filter(e=>URL.canParse(e)),n=new Set(t);if(!this.urlPreviewVisible)return void this.snapshot.set({previews:[],content:e});if(0===this.links.symmetricDifference(n).size)return;let i;if(this.links=n,this.props.urlPreviewBundle){const t=Array.from(this.links).map(async e=>{try{return await this.fetcher.fetchPreview(e,!0)}catch(e){return y_.warn("Fetching preview failed",e),null}});i=(await Promise.all(t)).filter(e=>null!==e),this.snapshot.set({previews:i,content:e})}else{for(const t of this.links)try{const n=await this.fetcher.fetchPreview(t,!0);if(n)return void this.snapshot.set({previews:[n],content:e})}catch(e){y_.warn("Fetching preview failed",e)}this.snapshot.set({previews:[],content:e})}}async updateWithText({content:e,debounced:t}){return void 0!==e&&(this.content=e),t?this.computeSnapshotDebounced(this.content):this.computeSnapshot(this.content)}}const w_="mx_wysiwyg_state_";let S_=0;function b_(e){var t;return s.createElement(Ve.A,{className:"mx_MessageComposer_sendMessage",onClick:e.onClick,title:null!==(t=e.title)&&void 0!==t?t:(0,c._t)("composer|send_button_title")},s.createElement(pv.A,null))}class A_ extends s.Component{constructor(e){var t;super(e),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"messageComposerInput",(0,s.createRef)()),(0,i.A)(this,"voiceRecordingButton",(0,s.createRef)()),(0,i.A)(this,"ref",(0,s.createRef)()),(0,i.A)(this,"instanceId",void 0),(0,i.A)(this,"_voiceRecording",void 0),(0,i.A)(this,"saveWysiwygEditorState",()=>{if(this.shouldSaveWysiwygEditorState()){const{isRichTextEnabled:e,composerContent:t}=this.state,n={content:t,isRichText:e,replyEventId:this.props.replyToEvent?this.props.replyToEvent.getId():void 0};localStorage.setItem(this.editorStateKey,JSON.stringify(n))}else this.clearStoredEditorState()}),(0,i.A)(this,"shouldSaveWysiwygEditorState",()=>{const{isWysiwygLabEnabled:e,isComposerEmpty:t}=this.state;return e&&(!t||!!this.props.replyToEvent)}),(0,i.A)(this,"onResize",(e,t)=>{if(e===Iu.x.Resize){const{narrow:e}=this.context;this.setState({isMenuOpen:!!e&&this.state.isMenuOpen,isStickerPickerOpen:!1})}}),(0,i.A)(this,"onAction",e=>{switch(e.action){case"reply_to_event":e.context===this.context.timelineRenderingType&&window.setTimeout(()=>{this.props.resizeNotifier.notifyTimelineHeightChanged()},100);break;case $.r.SettingUpdated:{const t=e;switch(t.settingName){case"MessageComposerInput.showStickersButton":{const e=S.A.getValue("MessageComposerInput.showStickersButton");this.state.showStickersButton!==e&&this.setState({showStickersButton:e});break}case"MessageComposerInput.showPollsButton":{const e=S.A.getValue("MessageComposerInput.showPollsButton");this.state.showPollsButton!==e&&this.setState({showPollsButton:e});break}case"feature_wysiwyg_composer":this.state.isWysiwygLabEnabled!==t.newValue&&this.setState({isWysiwygLabEnabled:Boolean(t.newValue)})}}}}),(0,i.A)(this,"onTombstoneClick",e=>{var t,n;e.preventDefault();const i=null===(t=this.context.tombstone)||void 0===t?void 0:t.getContent().replacement_room,s=_.J.safeGet().getRoom(i);let o;if(s){const e=s.currentState.getStateEvents(r.Bx4.RoomCreate,"");null!=e&&e.getId()&&(o=e.getId())}const a=null===(n=this.context.tombstone)||void 0===n?void 0:n.getSender(),l=a?[a.split(":").slice(1).join(":")]:void 0;K.A.dispatch({action:$.r.ViewRoom,highlighted:!0,event_id:o,room_id:i,auto_join:!0,via_servers:l,metricsTrigger:"Tombstone",metricsViaKeyboard:"click"!==e.type})}),(0,i.A)(this,"renderPlaceholderText",()=>{if(this.props.replyToEvent){var e;const t=(null===(e=this.props.relation)||void 0===e?void 0:e.rel_type)===r.RNJ.name;return t&&this.props.e2eStatus?(0,c._t)("composer|placeholder_thread_encrypted"):t?(0,c._t)("composer|placeholder_thread"):this.props.e2eStatus?(0,c._t)("composer|placeholder_reply_encrypted"):(0,c._t)("composer|placeholder_reply")}return this.props.e2eStatus?(0,c._t)("composer|placeholder_encrypted"):(0,c._t)("composer|placeholder")}),(0,i.A)(this,"addEmoji",e=>(K.A.dispatch({action:$.r.ComposerInsert,text:e,timelineRenderingType:this.context.timelineRenderingType}),!0)),(0,i.A)(this,"sendMessage",async()=>{var e,t;if(this.props.urlPreviewVm.updateWithText({content:"",debounced:!1}),this.state.haveRecording&&this.voiceRecordingButton.current)await(null===(t=this.voiceRecordingButton.current)||void 0===t?void 0:t.send());else if(null===(e=this.messageComposerInput.current)||void 0===e||e.sendMessage(),this.state.isWysiwygLabEnabled){const{relation:e,replyToEvent:t}=this.props,n=this.state.composerContent;this.setState({composerContent:"",initialComposerContent:""}),K.A.dispatch({action:$.r.ClearAndFocusSendMessageComposer,timelineRenderingType:this.context.timelineRenderingType}),await(0,v_._z)(n,this.state.isRichTextEnabled,{mxClient:this.props.mxClient,roomContext:this.context,relation:e,replyToEvent:t,urlPreviewSnapshot:this.props.urlPreviewVm.getSnapshot()})}}),(0,i.A)(this,"onChange",e=>{this.props.urlPreviewVm.updateWithText({content:e.contentPlainText,debounced:!0}),this.setState({isComposerEmpty:e.isEmpty})}),(0,i.A)(this,"onWysiwygChange",e=>{this.props.urlPreviewVm.updateWithText({content:e,debounced:!0}),this.setState({composerContent:e,isComposerEmpty:0===(null==e?void 0:e.length)})}),(0,i.A)(this,"onRichTextToggle",async()=>{const{richToPlain:e,plainToRich:t}=await(0,v_.Os)(),{isRichTextEnabled:n,composerContent:i}=this.state,s=n?await e(i,!1):await t(i,!1);this.setState({isRichTextEnabled:!n,composerContent:s,initialComposerContent:s})}),(0,i.A)(this,"onVoiceStoreUpdate",()=>{this.updateRecordingState()}),(0,i.A)(this,"onRecordingStarted",()=>{const e=Fv.getVoiceRecordingId(this.props.room,this.props.relation);this.voiceRecording=Fv.instance.getActiveRecording(e),this.setState({haveRecording:!!this.voiceRecording})}),(0,i.A)(this,"onRecordingEndingSoon",({secondsLeft:e})=>{this.setState({recordingTimeLeftSeconds:e}),window.setTimeout(()=>this.setState({recordingTimeLeftSeconds:void 0}),3e3)}),(0,i.A)(this,"setStickerPickerOpen",e=>{this.setState({isStickerPickerOpen:e,isMenuOpen:!1})}),(0,i.A)(this,"toggleStickerPickerOpen",()=>{this.setStickerPickerOpen(!this.state.isStickerPickerOpen)}),(0,i.A)(this,"toggleButtonMenu",()=>{this.setState({isMenuOpen:!this.state.isMenuOpen})}),(0,i.A)(this,"onRecordStartEndClick",()=>{var e;null===(e=this.voiceRecordingButton.current)||void 0===e||e.onRecordStartEndClick(),this.context.narrow&&this.toggleButtonMenu()});const n=S.A.getValue("feature_wysiwyg_composer");let o=!0,a="";if(n){const e=this.restoreWysiwygEditorState();e&&(o=e.isRichText,a=e.content)}this.state={isComposerEmpty:0===(null===(t=a)||void 0===t?void 0:t.length),composerContent:a,haveRecording:!1,recordingTimeLeftSeconds:void 0,isMenuOpen:!1,isStickerPickerOpen:!1,showStickersButton:S.A.getValue("MessageComposerInput.showStickersButton"),showPollsButton:S.A.getValue("MessageComposerInput.showPollsButton"),isWysiwygLabEnabled:n,isRichTextEnabled:o,initialComposerContent:a},this.instanceId=S_++}get editorStateKey(){var e;let t=w_+this.props.room.roomId;return(null===(e=this.props.relation)||void 0===e?void 0:e.rel_type)===r.RNJ.name&&(t+=`_${this.props.relation.event_id}`),t}restoreWysiwygEditorState(){const e=localStorage.getItem(this.editorStateKey);if(e)try{return JSON.parse(e)}catch(e){o.vF.error(e)}}clearStoredEditorState(){localStorage.removeItem(this.editorStateKey)}get voiceRecording(){return this._voiceRecording}set voiceRecording(e){this._voiceRecording&&(this._voiceRecording.off(Cv.$T.Started,this.onRecordingStarted),this._voiceRecording.off(Cv.$T.EndingSoon,this.onRecordingEndingSoon)),this._voiceRecording=e,e&&(e.on(Cv.$T.Started,this.onRecordingStarted),e.on(Cv.$T.EndingSoon,this.onRecordingEndingSoon))}componentDidMount(){if(Fv.instance.on("update",this.onVoiceStoreUpdate),window.addEventListener("beforeunload",this.saveWysiwygEditorState),this.state.isWysiwygLabEnabled){const e=this.restoreWysiwygEditorState();null!=e&&e.replyEventId&&K.A.dispatch({action:"reply_to_event",event:this.props.room.findEventById(e.replyEventId),context:this.context.timelineRenderingType})}S.A.monitorSetting("MessageComposerInput.showStickersButton",null),S.A.monitorSetting("MessageComposerInput.showPollsButton",null),S.A.monitorSetting("feature_wysiwyg_composer",null),this.dispatcherRef=K.A.register(this.onAction),this.waitForOwnMember(),Iu.A.instance.trackElementDimensions(`MessageComposer${this.instanceId}`,this.ref.current),Iu.A.instance.on(`MessageComposer${this.instanceId}`,this.onResize),this.updateRecordingState()}waitForOwnMember(){const e=this.props.room.getMember(_.J.safeGet().getUserId());e?this.setState({me:e}):this.props.room.loadMembersIfNeeded().then(()=>{var e;const t=null!==(e=this.props.room.getMember(_.J.safeGet().getSafeUserId()))&&void 0!==e?e:void 0;this.setState({me:t})})}componentWillUnmount(){Fv.instance.off("update",this.onVoiceStoreUpdate),K.A.unregister(this.dispatcherRef),Iu.A.instance.stopTrackingElementDimensions(`MessageComposer${this.instanceId}`),Iu.A.instance.removeListener(`MessageComposer${this.instanceId}`,this.onResize),window.removeEventListener("beforeunload",this.saveWysiwygEditorState),this.saveWysiwygEditorState(),this.voiceRecording=void 0}updateRecordingState(){const e=Fv.getVoiceRecordingId(this.props.room,this.props.relation);this.voiceRecording=Fv.instance.getActiveRecording(e),this.voiceRecording?this.voiceRecording.hasRecording&&!this.voiceRecording.isRecording&&this.setState({haveRecording:!0}):this.setState({haveRecording:!1})}get showStickersButton(){return this.state.showStickersButton&&!(0,Bl.F)(this.props.room)}getMenuPosition(){if(this.ref.current){const e=this.state.isWysiwygLabEnabled&&this.state.isRichTextEnabled,t=this.ref.current.getBoundingClientRect(),n=e?36:0,i=new DOMRect(t.x,t.y+n,t.width,t.height-n);return(0,tr.qv)(i)}}render(){var e;let t=!1;this.state.isWysiwygLabEnabled||(this.props.e2eStatus?this.props.e2eStatus!==ot.z.Normal&&(t=s.createElement("div",{className:"mx_MessageComposer_e2eIconWrapper"},s.createElement(st.A,{key:"e2eIcon",status:this.props.e2eStatus,className:"mx_MessageComposer_e2eIcon",size:12}))):t=s.createElement("div",{className:"mx_MessageComposer_e2eIconWrapper"},s.createElement(Ys.m,{label:(0,c._t)("composer|room_unencrypted")},s.createElement(jp.A,{"aria-label":(0,c._t)("composer|room_unencrypted"),width:"12px",height:"12px",color:"var(--cpd-color-icon-info-primary)",className:"mx_E2EIcon mx_MessageComposer_e2eIcon"}))));const n=[],i=this.getMenuPosition(),o=this.context.canSendMessages&&!this.context.tombstone;let a;if(o){a=this.state.isWysiwygLabEnabled&&i?s.createElement(v_.W1,{key:"controls_input",disabled:this.state.haveRecording,onChange:this.onWysiwygChange,onSend:this.sendMessage,isRichTextEnabled:this.state.isRichTextEnabled,initialContent:this.state.initialComposerContent,e2eStatus:this.props.e2eStatus,menuPosition:i,placeholder:this.renderPlaceholderText(),eventRelation:this.props.relation}):s.createElement(e_,{ref:this.messageComposerInput,key:"controls_input",room:this.props.room,placeholder:this.renderPlaceholderText(),relation:this.props.relation,replyToEvent:this.props.replyToEvent,onChange:this.onChange,disabled:this.state.haveRecording,toggleStickerPickerOpen:this.toggleStickerPickerOpen,urlPreviewVm:this.props.urlPreviewVm});const e=Boolean(this.state.recordingTimeLeftSeconds),t=this.state.recordingTimeLeftSeconds?Math.round(this.state.recordingTimeLeftSeconds):0;n.push(s.createElement(Ys.m,{open:e,description:(0,Bt.U)(t),placement:"bottom"},s.createElement(Bv,{key:"controls_voice_record",ref:this.voiceRecordingButton,room:this.props.room,relation:this.props.relation,replyToEvent:this.props.replyToEvent})))}else if(this.context.tombstone){const e=this.context.tombstone.getContent().replacement_room,t=e?s.createElement("a",{href:(0,Ls.B4)(_.J.safeGet(),e),className:"mx_MessageComposer_roomReplaced_link",onClick:this.onTombstoneClick},(0,c._t)("composer|room_upgraded_link")):"";n.push(s.createElement("div",{className:"mx_MessageComposer_replaced_wrapper",key:"room_replaced"},s.createElement("div",{className:"mx_MessageComposer_replaced_valign"},s.createElement("img",{"aria-hidden":!0,alt:"",className:"mx_MessageComposer_roomReplaced_icon",src:"img/room_replaced.4ac105f.svg"}),s.createElement("span",{className:"mx_MessageComposer_roomReplaced_header"},(0,c._t)("composer|room_upgraded_notice")),s.createElement("br",null),t)))}else n.push(s.createElement("div",{key:"controls_error",className:"mx_MessageComposer_noperm_error"},(0,c._t)("composer|no_perms_notice")));const l=(null===(e=this.props.relation)||void 0===e?void 0:e.rel_type)===r.RNJ.name?this.props.relation.event_id:null;n.push(s.createElement(fv,{room:this.props.room,threadId:l,isStickerPickerOpen:this.state.isStickerPickerOpen,setStickerPickerOpen:this.setStickerPickerOpen,menuPosition:i,key:"stickers"}));const d=o&&(!this.state.isComposerEmpty||this.state.haveRecording),m=un()({mx_MessageComposer:!0,"mx_MessageComposer--compact":this.props.compact,mx_MessageComposer_e2eStatus:t,mx_MessageComposer_wysiwyg:this.state.isWysiwygLabEnabled});return s.createElement("div",{className:m,ref:this.ref,role:"region","aria-label":(0,c._t)("a11y|message_composer")},s.createElement("div",{className:"mx_MessageComposer_wrapper"},s.createElement(__,{urlPreviewVm:this.props.urlPreviewVm}),s.createElement(wv,{room:this.props.room,key:this.props.room.roomId}),s.createElement(yv,{replyToEvent:this.props.replyToEvent,permalinkCreator:this.props.permalinkCreator}),s.createElement("div",{className:"mx_MessageComposer_row"},t,a,s.createElement("div",{className:"mx_MessageComposer_actions"},n,o&&s.createElement(g_,{addEmoji:this.addEmoji,haveRecording:this.state.haveRecording,isMenuOpen:this.state.isMenuOpen,isStickerPickerOpen:this.state.isStickerPickerOpen,menuPosition:i,relation:this.props.relation,onRecordStartEndClick:this.onRecordStartEndClick,setStickerPickerOpen:this.setStickerPickerOpen,showLocationButton:!window.electron&&S.A.getValue(as.f.LocationSharing),showPollsButton:this.state.showPollsButton,showStickersButton:this.showStickersButton,isRichTextEnabled:this.state.isRichTextEnabled,onComposerModeClick:this.onRichTextToggle,toggleButtonMenu:this.toggleButtonMenu}),d&&s.createElement(b_,{key:"controls_send",onClick:this.sendMessage,title:this.state.haveRecording?(0,c._t)("composer|send_button_voice_message"):void 0})))))}}(0,i.A)(A_,"contextType",Qo.Ay),(0,i.A)(A_,"defaultProps",{compact:!1});const C_=(0,je.dt)(A_);function x_(e){const{showUrlPreview:t}=(0,aa.ME)("showUrlPreview"),n=(0,je.nH)(),i=(0,es.ti)("feature_msc4095_url_preview_bundle"),o=(0,Xe.s2q)(()=>{var e,s;return new E_({client:n,visible:t,showTooltips:null===(e=null===(s=l.A.get())||void 0===s?void 0:s.needsUrlTooltips())||void 0===e||e,urlPreviewBundle:i})});return(0,s.useEffect)(()=>{o.updateUrlPreviewVisible(t)},[o,t]),s.createElement(C_,(0,xn.A)({},e,{urlPreviewVm:o}))}class k_{constructor(e){(0,i.A)(this,"serializedParts",null),(0,i.A)(this,"caret",null),this.event=e}setEditorState(e,t){this.caret=e,this.serializedParts=t}hasEditorState(){return!!this.serializedParts}getSerializedParts(){return this.serializedParts}getCaret(){return this.caret}getEvent(){return this.event}}var R_=n("./src/components/views/elements/ProgressBar.tsx"),I_=n("./src/utils/FileUtils.ts");class T_ extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"unmounted",!1),(0,i.A)(this,"onAction",e=>{this.unmounted||function(e){return[$.r.UploadStarted,$.r.UploadProgress,$.r.UploadFailed,$.r.UploadFinished,$.r.UploadCanceled].includes(e.action)}(e)&&this.setState(this.calculateState())}),(0,i.A)(this,"onCancelClick",e=>{e.preventDefault(),xp.Ay.sharedInstance().cancelUpload(this.state.currentUpload)}),this.state=this.calculateState()}componentDidMount(){this.unmounted=!1,this.dispatcherRef=K.A.register(this.onAction)}componentWillUnmount(){this.unmounted=!0,K.A.unregister(this.dispatcherRef)}getUploadsInRoom(){return xp.Ay.sharedInstance().getCurrentUploads(this.props.relation).filter(e=>e.roomId===this.props.room.roomId)}calculateState(){const[e,...t]=this.getUploadsInRoom();return{currentUpload:e,currentFile:null==e?void 0:e.fileName,currentLoaded:null==e?void 0:e.loaded,currentTotal:null==e?void 0:e.total,countFiles:t.length+1}}render(){if(!this.state.currentFile)return null;let e;e=this.state.countFiles>1?(0,c._t)("room|upload|uploading_multiple_file",{filename:this.state.currentFile,count:this.state.countFiles-1}):(0,c._t)("room|upload|uploading_single_file",{filename:this.state.currentFile});const t=(0,I_.Ov)(this.state.currentTotal);return s.createElement("div",{className:"mx_UploadBar"},s.createElement(wi.A,null),s.createElement("div",{className:"mx_UploadBar_filename"},e," (",t,")"),s.createElement(Ve.A,{onClick:this.onCancelClick,className:"mx_UploadBar_cancel"},s.createElement(ti.A,null)),s.createElement(R_.A,{value:this.state.currentLoaded,max:this.state.currentTotal}))}}const P_=["mxEvent","permalinkCreator","onMenuToggle"],N_=e=>{var t;let{mxEvent:n,permalinkCreator:i,onMenuToggle:o}=e,r=(0,v.A)(e,P_);const a=(0,s.useContext)(Ro.A),[l,d,m,u]=(0,tr.EF)(),p=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),K.A.dispatch({action:$.r.ViewRoom,event_id:n.getId(),highlighted:!0,room_id:n.getRoomId(),metricsTrigger:void 0}),u()},[n,u]),h=(0,s.useCallback)(async e=>{if(i){null==e||e.preventDefault(),null==e||e.stopPropagation();const t=i.forEvent(n.getId());await(0,ir.nC)(t),u()}},[n,u,i]);(0,s.useEffect)(()=>{null==o||o(l)},[l,o]);const g=null===(t=a.client)||void 0===t?void 0:t.getRoom(n.getRoomId()),_=!!g&&!a.widgetLayoutStore.hasMaximisedWidget(g);return s.createElement(s.Fragment,null,s.createElement(tr.oW,(0,xn.A)({},r,{className:"mx_BaseCard_header_title_button--option",onClick:m,title:(0,c._t)("right_panel|thread_list|context_menu_label"),isExpanded:l,ref:d}),s.createElement(uc.A,null)),l&&s.createElement(yu.Ay,(0,xn.A)({onFinished:u,className:"mx_RoomTile_contextMenu",compact:!0,rightAligned:!0},{left:(f=d.current.getBoundingClientRect()).left+window.scrollX+f.width,top:f.bottom+window.scrollY,chevronFace:tr.t4.None}),s.createElement(yu.tx,null,_&&s.createElement(yu.R$,{onClick:e=>p(e),label:(0,c._t)("timeline|mab|view_in_room"),icon:s.createElement(kc.A,null)}),i&&s.createElement(yu.R$,{onClick:e=>h(e),label:(0,c._t)("timeline|mab|copy_link_thread"),icon:s.createElement(Op.A,null)}))));var f};const D_=({parent:e})=>{const[t,n]=(0,s.useState)({dragging:!1,counter:0}),i=(0,Qv.ug)(),{mayDragAndDropFile:o}=(0,Xe.ifm)(i);return(0,s.useEffect)(()=>{if(!o||!e||e.ondrop)return;const t=e=>{e.stopPropagation(),e.preventDefault(),e.dataTransfer&&n(t=>({counter:t.counter+1,dragging:!(!e.dataTransfer.types.includes("Files")&&!e.dataTransfer.types.includes("application/x-moz-file"))||t.dragging}))},s=e=>{e.stopPropagation(),e.preventDefault(),n(e=>({counter:e.counter-1,dragging:!(e.counter<=1)&&e.dragging}))},r=e=>{e.stopPropagation(),e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="none",(e.dataTransfer.types.includes("Files")||e.dataTransfer.types.includes("application/x-moz-file"))&&(e.dataTransfer.dropEffect="copy"))},a=e=>{e.stopPropagation(),e.preventDefault(),e.dataTransfer&&(i.initiateViaDataTransfer(e.dataTransfer),n(e=>({dragging:!1,counter:e.counter-1})))};return null==e||e.addEventListener("drop",a),null==e||e.addEventListener("dragover",r),null==e||e.addEventListener("dragenter",t),null==e||e.addEventListener("dragleave",s),()=>{null==e||e.removeEventListener("drop",a),null==e||e.removeEventListener("dragover",r),null==e||e.removeEventListener("dragenter",t),null==e||e.removeEventListener("dragleave",s)}},[e,o,i]),o&&t.dragging?s.createElement("div",{className:"mx_FileDropTarget"},s.createElement("img",{src:"img/upload-big.ade34b1.svg",className:"mx_FileDropTarget_image",alt:""}),(0,c._t)("room|drop_file_prompt")):null};function M_(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function O_(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?M_(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M_(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class F_ extends s.Component{constructor(e){var t;super(e),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"layoutWatcherRef",void 0),(0,i.A)(this,"timelinePanel",(0,s.createRef)()),(0,i.A)(this,"card",(0,s.createRef)()),(0,i.A)(this,"eventId",void 0),(0,i.A)(this,"onAction",e=>{switch(e.phase==Wu.n.ThreadView&&e.event&&this.setupThread(e.event),e.action){case $.r.ComposerInsert:{const t=e;if(t.composerType)break;if(t.timelineRenderingType!==Qo.Ae.Thread)break;K.A.dispatch(O_(O_({},t),{},{timelineRenderingType:Qo.Ae.Thread,composerType:this.state.editState?qv.D.Edit:qv.D.Send}));break}case $.r.EditEvent:if(e.timelineRenderingType!==Qo.Ae.Thread)return;if(e.event&&!e.event.getThread())return;this.setState({editState:e.event?new k_(e.event):void 0},()=>{var t;e.event&&(null===(t=this.timelinePanel.current)||void 0===t||t.scrollToEventIfNeeded(e.event.getId()))});break;case"reply_to_event":e.context===Qo.Ae.Thread&&this.setState({replyToEvent:e.event})}}),(0,i.A)(this,"setupThread",e=>{const t=e.getId();let n=this.props.room.getThread(t);if(!n){const i=[];null===e.status&&i.push(e),n=this.props.room.createThread(t,e,i,!0)}this.updateThread(n)}),(0,i.A)(this,"onNewThread",e=>{e.id===this.props.mxEvent.getId()&&this.setupThread(this.props.mxEvent)}),(0,i.A)(this,"updateThreadRelation",()=>{this.setState({lastReply:this.threadLastReply})}),(0,i.A)(this,"updateThread",e=>{this.state.thread!==e&&(this.setupThreadListeners(e,this.state.thread),e&&this.setState({thread:e,lastReply:this.threadLastReply},async()=>this.postThreadUpdate(e)))}),(0,i.A)(this,"resetJumpToEvent",e=>{var t,n;this.props.initialEvent&&this.props.initialEventScrollIntoView&&e===(null===(t=this.props.initialEvent)||void 0===t?void 0:t.getId())&&K.A.dispatch({action:$.r.ViewRoom,room_id:this.props.room.roomId,event_id:null===(n=this.props.initialEvent)||void 0===n?void 0:n.getId(),highlighted:this.props.isInitialEventHighlighted,scroll_into_view:!1,replyingToEvent:this.state.replyToEvent,metricsTrigger:void 0})}),(0,i.A)(this,"onMeasurement",e=>{this.setState({narrow:e})}),(0,i.A)(this,"onKeyDown",e=>{let t=!1;if((0,dc.zM)().getRoomAction(e)===mc.bY.UploadFile)K.A.dispatch({action:"upload_file",context:Qo.Ae.Thread},!0),t=!0;t&&(e.stopPropagation(),e.preventDefault())}),(0,i.A)(this,"renderThreadViewHeader",()=>s.createElement("div",{className:"mx_BaseCard_header_title"},s.createElement(In.A,{size:"4",className:"mx_BaseCard_header_title_heading"},(0,c._t)("common|thread")),s.createElement(N_,{mxEvent:this.props.mxEvent,permalinkCreator:this.props.permalinkCreator}))),this.setEventId(this.props.mxEvent);const n=null!==(t=this.props.room.getThread(this.eventId))&&void 0!==t?t:void 0;this.state={layout:S.A.getValue("layout"),narrow:!1,thread:n,lastReply:null==n?void 0:n.lastReply(e=>e.isRelation(r.RNJ.name)&&!e.status)}}componentDidMount(){this.setupThreadListeners(this.state.thread),this.layoutWatcherRef=S.A.watchSetting("layout",null,(...[,,,e])=>this.setState({layout:e})),this.state.thread&&this.postThreadUpdate(this.state.thread),this.setupThread(this.props.mxEvent),this.dispatcherRef=K.A.register(this.onAction),this.props.room.on(r.juu.New,this.onNewThread)}componentWillUnmount(){var e;K.A.unregister(this.dispatcherRef);const t=this.props.mxEvent.getRoomId();S.A.unwatchSetting(this.layoutWatcherRef);const n=this.context.roomViewStore.getRoomId()!==t;this.props.initialEvent&&!n&&K.A.dispatch({action:$.r.ViewRoom,room_id:this.props.room.roomId,metricsTrigger:void 0}),K.A.dispatch({action:$.r.ViewThread,thread_id:null}),null===(e=this.state.thread)||void 0===e||e.off(r.juu.NewReply,this.updateThreadRelation),this.props.room.off(r.u99.LocalEchoUpdated,this.updateThreadRelation),this.props.room.removeListener(r.juu.New,this.onNewThread)}componentDidUpdate(e){e.mxEvent!==this.props.mxEvent&&(this.setEventId(this.props.mxEvent),this.setupThread(this.props.mxEvent)),e.room!==this.props.room&&Ip.A.instance.setCard({phase:Wu.n.RoomSummary})}setEventId(e){if(!e.getId())throw new Error("Got thread event without id");this.eventId=e.getId()}get threadLastReply(){var e,t;return null!==(e=null===(t=this.state.thread)||void 0===t?void 0:t.lastReply(e=>e.isRelation(r.RNJ.name)&&!e.status))&&void 0!==e?e:void 0}async postThreadUpdate(e){var t,n;K.A.dispatch({action:$.r.ViewThread,thread_id:e.id}),e.emit(r.juu.ViewThread),this.updateThreadRelation(),null===(t=this.timelinePanel.current)||void 0===t||t.refreshTimeline(null===(n=this.props.initialEvent)||void 0===n?void 0:n.getId())}setupThreadListeners(e,t){var n;t&&(null===(n=this.state.thread)||void 0===n||n.off(r.juu.NewReply,this.updateThreadRelation),this.props.room.off(r.u99.LocalEchoUpdated,this.updateThreadRelation));e&&(e.on(r.juu.NewReply,this.updateThreadRelation),this.props.room.on(r.u99.LocalEchoUpdated,this.updateThreadRelation))}get threadRelation(){var e,t,n,i;const s={rel_type:r.RNJ.name,event_id:null===(e=this.state.thread)||void 0===e?void 0:e.id,is_falling_back:!0},o=null!==(t=null===(n=this.state.lastReply)||void 0===n?void 0:n.getId())&&void 0!==t?t:null===(i=this.state.thread)||void 0===i?void 0:i.id;return o&&(s["m.in_reply_to"]={event_id:o}),s}render(){var e,t,n,i;const r=this.props.isInitialEventHighlighted?null===(e=this.props.initialEvent)||void 0===e?void 0:e.getId():void 0,a=this.threadRelation;let l;if(this.state.thread){var c;this.props.initialEvent&&this.props.initialEvent.getRoomId()!==this.state.thread.roomId&&o.vF.warn("ThreadView attempting to render TimelinePanel with mismatched initialEvent",this.state.thread.roomId,this.props.initialEvent.getRoomId(),this.props.initialEvent.getId());const e=this.state.layout===Do.P.Bubble?Do.P.Bubble:Do.P.Group;l=s.createElement(s.Fragment,null,s.createElement(D_,{parent:this.card.current}),s.createElement(dv,{layout:e},s.createElement(sv,{key:this.state.thread.id,ref:this.timelinePanel,showReadReceipts:this.context.showReadReceipts,manageReadReceipts:!0,manageReadMarkers:!0,sendReadReceiptOnLoad:!0,timelineSet:this.state.thread.timelineSet,showUrlPreview:this.context.showUrlPreview,layout:e,hideThreadedMessages:!1,hidden:!1,showReactions:!0,className:"mx_RoomView_messagePanel",permalinkCreator:this.props.permalinkCreator,membersLoaded:!0,editState:this.state.editState,eventId:null===(c=this.props.initialEvent)||void 0===c?void 0:c.getId(),highlightedEventId:r,eventScrollIntoView:this.props.initialEventScrollIntoView,onEventScrolledIntoView:this.resetJumpToEvent})))}else l=s.createElement("div",{className:"mx_RoomView_messagePanelSpinner"},s.createElement(Be.A,null));return s.createElement(aa.yw,(0,xn.A)({},this.context,{timelineRenderingType:Qo.Ae.Thread,threadId:null===(t=this.state.thread)||void 0===t?void 0:t.id,liveTimeline:null===(n=this.state)||void 0===n||null===(n=n.thread)||void 0===n||null===(n=n.timelineSet)||void 0===n?void 0:n.getLiveTimeline(),narrow:this.state.narrow}),s.createElement(Qv.tz,{threadRelation:this.threadRelation},s.createElement(Hp.A,{className:un()("mx_ThreadView mx_ThreadPanel",{mx_ThreadView_narrow:this.state.narrow}),onClose:this.props.onClose,withoutScrollContainer:!0,header:this.renderThreadViewHeader(),ref:this.card,onKeyDown:this.onKeyDown,onBack:e=>{Gi.A.trackInteraction("WebThreadViewBackButton",e)}},s.createElement(rv,{breakpoint:400,sensor:this.card,onMeasurement:this.onMeasurement}),s.createElement("div",{className:"mx_ThreadView_timelinePanelWrapper"},l),xp.Ay.sharedInstance().getCurrentUploads(a).length>0&&s.createElement(T_,{room:this.props.room,relation:a}),(null===(i=this.state.thread)||void 0===i?void 0:i.timelineSet)&&s.createElement(x_,{room:this.props.room,resizeNotifier:this.props.resizeNotifier,relation:a,replyToEvent:this.state.replyToEvent,permalinkCreator:this.props.permalinkCreator,e2eStatus:this.props.e2eStatus,compact:!0}))))}}var L_,U_;function V_(){return V_=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},V_.apply(null,arguments)}(0,i.A)(F_,"contextType",Qo.Ay);var B_=function(e,t){return s.createElement("svg",V_({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 16 16",role:"presentation","aria-hidden":!0,ref:t},e),L_||(L_=s.createElement("path",{stroke:"#656D77",strokeLinecap:"round",strokeWidth:1.5,d:"M1.75 2h12.5M1.75 6h12.5M1.75 10h6.5"})),U_||(U_=s.createElement("path",{stroke:"#656D77",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"m6.172 13 2.121 2.121 5.657-5.657"})))},j_=(0,s.forwardRef)(B_);var H_=n("./src/accessibility/context_menu/ContextMenuButton.tsx");let z_=function(e){return e[e.My=0]="My",e[e.All=1]="All",e}({});const W_=({label:e,description:t,onClick:n,isSelected:i})=>s.createElement(tr.sH,{active:i,className:"mx_ThreadPanel_Header_FilterOptionItem",onClick:n},i?s.createElement(Je.A,null):null,s.createElement("span",null,e),s.createElement("span",null,t)),J_=({filterOption:e,setFilterOption:t})=>{const n=(0,je.nH)(),i=(0,aa.ME)("room"),[r,a,l,d]=(0,tr.EF)(),m=[{label:(0,c._t)("threads|all_threads"),description:(0,c._t)("threads|all_threads_description"),key:z_.All},{label:(0,c._t)("threads|my_threads"),description:(0,c._t)("threads|my_threads_description"),key:z_.My}],u=m.find(t=>t.key===e),p=m.map(e=>s.createElement(W_,{key:e.key,label:e.label,description:e.description,onClick:()=>{t(e.key),d()},isSelected:e===u})),h=r?s.createElement(tr.Ay,{top:108,right:33,onFinished:d,chevronFace:tr.t4.Top,wrapperClassName:"mx_BaseCard_header_title"},p):null,g=s.useCallback(e=>{Gi.A.trackInteraction("WebThreadsMarkAllReadButton",e),i.room?(0,Ra.G9)(i.room,n).catch(e=>{o.vF.error("Failed to mark all threads read",e)}):o.vF.error("No room in context to mark all threads read")},[i.room,n]);return s.createElement("div",{className:"mx_ThreadPanelHeader"},s.createElement(Ys.m,{label:(0,c._t)("threads|mark_all_read")},s.createElement(Tu.K,{onClick:g,size:"28px"},s.createElement(j_,{height:20,width:20}))),s.createElement("div",{className:"mx_ThreadPanel_vertical_separator"}),s.createElement(H_.V,{className:"mx_ThreadPanel_dropdown",ref:a,isExpanded:r,onClick:e=>{l(),Gi.A.trackInteraction("WebRightPanelThreadPanelFilterDropdown",e)}},`${(0,c._t)("threads|show_thread_filter")} ${null==u?void 0:u.label}`,s.createElement(uu.A,null)),h)},G_=({roomId:e,onClose:t,permalinkCreator:n})=>{var i,o,a;const l=(0,s.useContext)(je.Ay),d=(0,s.useContext)(Qo.Ay),m=(0,s.useRef)(null),u=(0,s.useRef)(null),p=(0,s.useRef)(null),[h,g]=(0,s.useState)(z_.All),[v,_]=(0,s.useState)(null),[f,y]=(0,s.useState)(!1),E=h===z_.My?null==v?void 0:v.threadsTimelineSets[1]:null==v?void 0:v.threadsTimelineSets[0],w=Boolean(null==v||null===(i=v.threadsTimelineSets)||void 0===i||null===(i=i[0])||void 0===i||null===(i=i.getLiveTimeline())||void 0===i||null===(i=i.getEvents())||void 0===i?void 0:i.length);return(0,s.useEffect)(()=>{const t=l.getRoom(e);null==t||t.createThreadsTimelineSets().then(()=>t.fetchRoomThreads()).then(()=>{g(z_.All),_(t)})},[l,e]),(0,s.useEffect)(()=>{var e;E&&!r.jVh.hasServerSideSupport&&(null===(e=m.current)||void 0===e||e.refreshTimeline())},[E,m]),s.createElement(aa.yw,(0,xn.A)({},d,{timelineRenderingType:Qo.Ae.ThreadsList,showHiddenEvents:!0,narrow:f}),s.createElement(Hp.A,{header:(0,c._t)("common|threads"),id:"thread-panel",className:"mx_ThreadPanel",ariaLabelledBy:"thread-panel-tab",role:"tabpanel",onClose:t,withoutScrollContainer:!0,ref:u,closeButtonRef:p},w&&s.createElement(J_,{filterOption:h,setFilterOption:g}),s.createElement(rv,{sensor:u,onMeasurement:y}),E?s.createElement(sv,{key:h+":"+(null!==(o=null===(a=E.getFilter())||void 0===a?void 0:a.filterId)&&void 0!==o?o:e),ref:m,showReadReceipts:!1,manageReadReceipts:!1,manageReadMarkers:!1,sendReadReceiptOnLoad:!1,timelineSet:E,showUrlPreview:!1,empty:s.createElement(av,{Icon:ra.A,title:(0,c._t)("threads|empty_title"),description:(0,c._t)("threads|empty_description",{replyInThread:(0,c._t)("action|reply_in_thread")})}),alwaysShowTimestamps:!0,layout:Do.P.Group,hideThreadedMessages:!1,hidden:!1,showReactions:!1,className:"mx_RoomView_messagePanel",membersLoaded:!0,permalinkCreator:n,disableGrouping:!0}):s.createElement("div",{className:"mx_AutoHideScrollbar"},s.createElement(Be.A,null))))};class K_ extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"card",s.createRef()),(0,i.A)(this,"onMeasurement",e=>{this.setState({narrow:e})}),this.state={narrow:!1}}render(){const e=s.createElement(av,{Icon:fn.A,title:(0,c._t)("notif_panel|empty_heading"),description:(0,c._t)("notif_panel|empty_description")});let t;const n=_.J.safeGet().getNotifTimelineSet();return n?t=s.createElement(sv,{manageReadReceipts:!1,manageReadMarkers:!1,timelineSet:n,showUrlPreview:!1,empty:e,alwaysShowTimestamps:!0,layout:Do.P.Group}):(o.vF.error("No notifTimelineSet available!"),t=s.createElement(Be.A,null)),s.createElement(aa.yw,(0,xn.A)({},this.context,{timelineRenderingType:Qo.Ae.Notification,narrow:this.state.narrow}),s.createElement(Hp.A,{header:(0,c._t)("notifications|enable_prompt_toast_title"),className:"mx_ThreadPanel",onClose:this.props.onClose,withoutScrollContainer:!0},s.createElement(rv,{sensor:this.card,onMeasurement:this.onMeasurement}),t))}}(0,i.A)(K_,"contextType",Qo.Ay);var q_=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/unpin.js"),$_=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/forward.js"),Y_=n("./src/components/views/messages/MessageEvent.tsx"),Q_=n("./src/events/forward/getForwardableEvent.ts"),X_=(n("./src/events/location/getShareableLocationEvent.ts"),n("./src/components/views/dialogs/ConfirmRedactDialog.tsx"));function Z_({event:e,room:t,permalinkCreator:n}){var i,o;const r=e.getSender();if(!r)throw new Error("Pinned event unexpectedly has no sender");const a=Boolean(e.threadRootId),l=!e.isThreadRoot&&a,d=(0,s.useId)();return s.createElement("div",{className:"mx_PinnedEventTile",role:"listitem"},s.createElement("div",null,s.createElement(bo.A,{className:"mx_PinnedEventTile_senderAvatar",member:e.sender,size:"32px",fallbackUserId:r})),s.createElement("div",{className:"mx_PinnedEventTile_wrapper"},s.createElement("div",{className:"mx_PinnedEventTile_top"},s.createElement(Ys.m,{label:(null===(i=e.sender)||void 0===i?void 0:i.name)||r},s.createElement("span",{className:un()("mx_PinnedEventTile_sender",(0,C.yJ)(r))},(null===(o=e.sender)||void 0===o?void 0:o.name)||r)),s.createElement(ef,{event:e,room:t,permalinkCreator:n,contentId:d})),s.createElement(Y_.A,{id:d,mxEvent:e,maxImageHeight:150,permalinkCreator:n,replacingEventId:e.replacingEventId()}),l&&s.createElement("div",{className:"mx_PinnedEventTile_thread"},s.createElement(ra.A,null),(0,c._t)("right_panel|pinned_messages|reply_thread",{},{link:n=>s.createElement("button",{type:"button",onClick:()=>{if(!e.threadRootId)return;const n=t.findEventById(e.threadRootId);n&&K.A.dispatch({action:$.r.ShowThread,rootEvent:n,push:!0})}},n)}))))}function ef({event:e,room:t,permalinkCreator:n,contentId:i}){var o;const[a,l]=(0,s.useState)(!1),d=(0,je.nH)(),m=(0,s.useCallback)(()=>{Gi.A.trackInteraction("PinnedMessageListViewTimeline"),K.A.dispatch({action:$.r.ViewRoom,event_id:e.getId(),highlighted:!0,room_id:e.getRoomId(),metricsTrigger:void 0})},[e]),u=(0,zs.U)(t,()=>fr.A.canUnpin(d,e)),p=(0,s.useCallback)(async()=>{await fr.A.pinOrUnpinEvent(d,e),Gi.A.trackPinUnpinMessage("Unpin","MessagePinningList")},[e,d]),h=(0,Ho.qe)(e)&&(0,Q_.e)(e,d),g=(0,s.useCallback)(()=>{h&&K.A.dispatch({action:$.r.OpenForwardDialog,event:h,permalinkCreator:n})},[h,n]),v=(null===(o=t.getLiveTimeline().getState(r.qss.FORWARDS))||void 0===o?void 0:o.maySendRedactionForEvent(e,d.getSafeUserId()))&&e.getType()!==r.Bx4.RoomServerAcl&&e.getType()!==r.Bx4.RoomEncryption,_=(0,s.useCallback)(()=>(0,X_.Q)({mxEvent:e}),[e]);return s.createElement(bi.W,{open:a,onOpenChange:l,showTitle:!1,title:(0,c._t)("right_panel|pinned_messages|menu"),side:"right",align:"start",trigger:s.createElement(Tu.K,{size:"24px","aria-label":(0,c._t)("right_panel|pinned_messages|menu"),"aria-describedby":i},s.createElement(uc.A,null))},s.createElement(Ai.D,{Icon:kc.A,label:(0,c._t)("right_panel|pinned_messages|view"),onSelect:m}),u&&s.createElement(Ai.D,{Icon:q_.A,label:(0,c._t)("action|unpin"),onSelect:p}),h&&s.createElement(Ai.D,{Icon:$_.A,label:(0,c._t)("action|forward"),onSelect:g}),v&&s.createElement(s.Fragment,null,s.createElement(Fn.w,null),s.createElement(Ai.D,{kind:"critical",Icon:Si.A,label:(0,c._t)("action|delete"),onSelect:_})))}function tf({matrixClient:e,roomId:t,onFinished:n}){return s.createElement(ke.A,{hasCancel:!0,title:(0,c._t)("right_panel|pinned_messages|unpin_all|title"),titleClass:"mx_UnpinAllDialog_title",className:"mx_UnpinAllDialog",onFinished:n,fixedWidth:!1},s.createElement(Pu.E,{as:"span"},(0,c._t)("right_panel|pinned_messages|unpin_all|content")),s.createElement("div",{className:"mx_UnpinAllDialog_buttons"},s.createElement(xe.$,{destructive:!0,onClick:async()=>{try{await fr.A.unpinAllEvents(e,t),Gi.A.trackPinUnpinMessage("Unpin","UnpinAll")}catch(e){o.vF.error("Failed to unpin all events:",e)}n()}},(0,c._t)("action|continue")),s.createElement(xe.$,{kind:"tertiary",onClick:n},(0,c._t)("action|cancel"))))}function nf({room:e,onClose:t,permalinkCreator:n}){const i=(0,je.nH)(),o=(0,s.useContext)(Qo.Ay),a=rg(e),l=(e=>{const[t,n]=(0,s.useState)(new Set),i=(0,s.useCallback)(t=>{t&&t.getType()!==ig.M||n(ag(e))},[e]);return(0,mo.YK)(e,r.u99.AccountData,i),(0,s.useEffect)(()=>(n(ag(e)),()=>{n(new Set)}),[e]),t})(e),d=cg(e,a);let m;return(0,s.useEffect)(()=>{if(!i||i.isGuest())return;a.filter(e=>!l.has(e)).length>0&&i.setRoomAccountData(e.roomId,ig.M,{event_ids:a})},[i,e.roomId,a,l]),m=a.length?null!=d&&d.length?s.createElement(sf,{events:d,room:e,permalinkCreator:n}):s.createElement(Be.A,null):s.createElement(av,{Icon:Bp.A,title:(0,c._t)("right_panel|pinned_messages|empty_title"),description:(0,c._t)("right_panel|pinned_messages|empty_description",{pinAction:(0,c._t)("action|pin")})}),s.createElement(Hp.A,{header:(0,c._t)("right_panel|pinned_messages|header",{count:a.length}),className:"mx_PinnedMessagesCard",onClose:t},s.createElement(aa.yw,(0,xn.A)({},o,{timelineRenderingType:Qo.Ae.Pinned}),m))}function sf({events:e,room:t,permalinkCreator:n}){const i=(0,je.nH)(),o=(0,zs.U)(t,()=>fr.A.userHasPinOrUnpinPermission(i,t)),r=(0,s.useCallback)(async()=>{X.Ay.createDialog(tf,{roomId:t.roomId,matrixClient:i})},[t,i]);return s.createElement(s.Fragment,null,s.createElement("div",{className:un()("mx_PinnedMessagesCard_wrapper",{mx_PinnedMessagesCard_wrapper_unpin_all:o}),role:"list"},e.map((i,o)=>s.createElement(s.Fragment,null,s.createElement(Z_,{key:i.getId(),event:i,permalinkCreator:n,room:t}),e.length-1!==o&&s.createElement(Fn.w,{key:`separator-${i.getId()}`,className:"mx_PinnedMessagesCard_Separator"})))),o&&s.createElement("div",{className:"mx_PinnedMessagesCard_unpin"},s.createElement(xe.$,{kind:"tertiary",onClick:r},(0,c._t)("right_panel|pinned_messages|unpin_all|button"))))}const of=e=>{const t=un()({mx_JumpToBottomButton:!0,mx_JumpToBottomButton_highlight:e.highlight});let n;return e.numUnreadMessages&&(n=s.createElement("div",{className:"mx_JumpToBottomButton_badge"},e.numUnreadMessages)),s.createElement("div",{className:t},s.createElement(Ve.A,{className:"mx_JumpToBottomButton_scrollDown",title:(0,c._t)("room|jump_to_bottom_button"),onClick:e.onScrollToBottomClick},s.createElement(uu.A,null)),n)};class rf extends s.Component{constructor(e){super(e),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"layoutWatcherRef",void 0),(0,i.A)(this,"timelinePanel",s.createRef()),(0,i.A)(this,"card",s.createRef()),(0,i.A)(this,"readReceiptsSettingWatcher",void 0),(0,i.A)(this,"onRoomViewStoreUpdate",async e=>{const t={initialEventId:this.context.roomViewStore.getInitialEventId(),isInitialEventHighlighted:this.context.roomViewStore.isInitialEventHighlighted(),replyToEvent:this.context.roomViewStore.getQuotingEvent()};this.setState(t)}),(0,i.A)(this,"onAction",e=>{if(e.action===$.r.EditEvent)this.setState({editState:e.event?new k_(e.event):void 0},()=>{var t;e.event&&(null===(t=this.timelinePanel.current)||void 0===t||t.scrollToEventIfNeeded(e.event.getId()))})}),(0,i.A)(this,"onScroll",()=>{const e=this.timelinePanel.current;e&&(e.isAtEndOfLiveTimeline()?this.setState({atEndOfLiveTimeline:!0}):this.setState({atEndOfLiveTimeline:!1}),this.state.initialEventId&&this.state.isInitialEventHighlighted&&K.A.dispatch({action:$.r.ViewRoom,room_id:this.props.room.roomId,event_id:this.state.initialEventId,highlighted:!1,replyingToEvent:this.state.replyToEvent,metricsTrigger:void 0}))}),(0,i.A)(this,"onMeasurement",e=>{this.setState({narrow:e})}),(0,i.A)(this,"jumpToLiveTimeline",()=>{var e;this.state.initialEventId&&this.state.isInitialEventHighlighted?K.A.dispatch({action:$.r.ViewRoom,room_id:this.props.room.roomId}):(null===(e=this.timelinePanel.current)||void 0===e||e.jumpToLiveTimeline(),K.A.fire($.r.FocusSendMessageComposer))}),this.state={showReadReceipts:S.A.getValue("showReadReceipts",e.room.roomId),layout:S.A.getValue("layout"),atEndOfLiveTimeline:!0,narrow:!1}}componentDidMount(){this.context.roomViewStore.addListener("update",this.onRoomViewStoreUpdate),this.dispatcherRef=K.A.register(this.onAction),this.readReceiptsSettingWatcher=S.A.watchSetting("showReadReceipts",null,(...[,,,e])=>this.setState({showReadReceipts:e})),this.layoutWatcherRef=S.A.watchSetting("layout",null,(...[,,,e])=>this.setState({layout:e}))}componentWillUnmount(){this.context.roomViewStore.removeListener("update",this.onRoomViewStoreUpdate),S.A.unwatchSetting(this.readReceiptsSettingWatcher),S.A.unwatchSetting(this.layoutWatcherRef),K.A.unregister(this.dispatcherRef)}render(){var e,t;const n=this.state.isInitialEventHighlighted?this.state.initialEventId:void 0;let i;this.state.atEndOfLiveTimeline||(i=s.createElement(of,{highlight:this.props.room.getUnreadNotificationCount(r.X5$.Highlight)>0,onScrollToBottomClick:this.jumpToLiveTimeline}));const o=xp.Ay.sharedInstance().getCurrentUploads(this.props.composerRelation).length>0,a=this.props.room.getMyMembership()===$n.O.Join,l=this.state.layout===Do.P.Bubble?Do.P.Bubble:Do.P.Group;return s.createElement(aa.yw,(0,xn.A)({},this.context,{timelineRenderingType:null!==(e=this.props.timelineRenderingType)&&void 0!==e?e:this.context.timelineRenderingType,liveTimeline:null===(t=this.props.timelineSet)||void 0===t?void 0:t.getLiveTimeline(),narrow:this.state.narrow}),s.createElement(Hp.A,{className:this.props.classNames,onClose:this.props.onClose,withoutScrollContainer:!0,header:(0,c._t)("right_panel|video_room_chat|title"),ref:this.card},s.createElement(Qv.tz,null,s.createElement(rv,{sensor:this.card,onMeasurement:this.onMeasurement}),s.createElement("div",{className:"mx_TimelineCard_timeline"},i,s.createElement(dv,{layout:l},s.createElement(sv,{ref:this.timelinePanel,showReadReceipts:this.state.showReadReceipts,manageReadReceipts:!0,manageReadMarkers:!1,sendReadReceiptOnLoad:!0,timelineSet:this.props.timelineSet,showUrlPreview:this.context.showUrlPreview,layout:l,hideThreadedMessages:!1,hidden:!1,showReactions:!0,className:"mx_RoomView_messagePanel",permalinkCreator:this.props.permalinkCreator,membersLoaded:!0,editState:this.state.editState,eventId:this.state.initialEventId,highlightedEventId:n,onScroll:this.onScroll}))),o&&s.createElement(T_,{room:this.props.room,relation:this.props.composerRelation}),a&&s.createElement(x_,{room:this.props.room,relation:this.props.composerRelation,resizeNotifier:this.props.resizeNotifier,replyToEvent:this.state.replyToEvent,permalinkCreator:this.props.permalinkCreator,e2eStatus:this.props.e2eStatus,compact:!0}))))}}(0,i.A)(rf,"contextType",Qo.Ay);var af=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/pin-solid.js");const lf=({app:e,room:t})=>{const n=(0,s.useContext)(Ro.A),i=fg.A.getWidgetName(e),[o,r]=(0,s.useState)();(0,s.useEffect)(()=>{r(fg.A.canUserModifyWidgets(t.client,t.roomId))},[t.client,t.roomId]);const a=n.widgetLayoutStore.isInContainer(t,e,"top"),l=a?()=>{n.widgetLayoutStore.moveToContainer(t,e,"right")}:()=>{n.widgetLayoutStore.moveToContainer(t,e,"top")},[d,m,u,p]=(0,tr.EF)(),h=!a&&!n.widgetLayoutStore.canAddToContainer(t,"top");let g;g=h?(0,c._t)("right_panel|pinned_messages|limits",{count:3}):a?(0,c._t)("action|unpin"):(0,c._t)("action|pin");const v=n.widgetLayoutStore.isInContainer(t,e,"center");let _="";a?_=(0,c._t)("widget|unpin_to_view_right_panel"):v&&(_=(0,c._t)("widget|close_to_view_right_panel"));const f=un()("mx_BaseCard_Button mx_ExtensionsCard_Button",{mx_ExtensionsCard_Button_pinned:a});return s.createElement("div",{className:f},s.createElement(Ve.A,{className:"mx_ExtensionsCard_icon_app",onClick:()=>{n.rightPanelStore.pushCard({phase:Wu.n.Widget,state:{widgetId:e.id}})},title:a||v?_:void 0,disabled:a||v},s.createElement(Og,{app:e,size:"24px"}),s.createElement(Pu.E,{size:"md",weight:"medium",className:"mx_lineClamp"},i)),o&&s.createElement(Jg,{app:e,onFinished:p,menuDisplayed:d,trigger:s.createElement(Ve.A,{ref:m,className:"mx_ExtensionsCard_app_options",onClick:u,title:(0,c._t)("common|options")},s.createElement(uc.A,null))}),s.createElement(Ve.A,{className:"mx_ExtensionsCard_app_pinToggle",onClick:l,title:g,disabled:h},s.createElement(af.A,null)))},cf=({room:e,onClose:t})=>{const n=(0,s.useContext)(Ro.A),i=(0,fg.X)(e),o=(0,s.useMemo)(()=>i.filter(e=>void 0!==e.eventId),[i]);let r;if(o.length<1)r=s.createElement(av,{Icon:Up.A,title:(0,c._t)("right_panel|extensions_empty_title"),description:(0,c._t)("right_panel|extensions_empty_description",{addIntegrations:(0,c._t)("right_panel|add_integrations")})});else{let t=null;n.widgetLayoutStore.canCopyLayoutToRoom(e)&&(t=s.createElement(Tp.N,{onClick:()=>n.widgetLayoutStore.copyLayoutToRoom(e)},(0,c._t)("widget|set_room_layout"))),r=s.createElement(s.Fragment,null,s.createElement(Fn.w,null),o.map(t=>s.createElement(lf,{key:t.id,app:t,room:e})),t)}return s.createElement(Hp.A,{header:(0,c._t)("right_panel|extensions_button"),className:"mx_ExtensionsCard",onClose:t},(0,em.g)(as.C.AddIntegrations)&&s.createElement(xe.$,{size:"md",onClick:()=>{const t=ae.J.sharedInstance();var n;t.hasManager()?null===(n=t.getPrimaryManager())||void 0===n||n.open(e):t.openNoManagerDialog()},kind:"secondary",Icon:du.A},(0,c._t)("right_panel|add_integrations")),r)};var df=n("./src/hooks/useRoomMembers.ts");function mf(e){var t,n;const i=null!==(t=Fo.A.getDisplayUserIdentifier(e.userId,{roomId:e.roomId}))&&void 0!==t?t:e.userId,s=e.getMxcAvatarUrl(),o=null!==(n=s&&(0,Ci.l)(s).getThumbnailOfSourceHttp(96,96,"crop"))&&void 0!==n?n:void 0,r=e.user;let a;return r&&(a=r.presence||void 0),{member:{roomId:e.roomId,userId:e.userId,displayUserId:i,name:e.name,rawDisplayName:e.rawDisplayName,disambiguate:e.disambiguate,avatarThumbnailUrl:o,powerLevel:e.powerLevel,lastModifiedTime:e.getLastModifiedTime(),presenceState:a,isInvite:e.membership===$n.O.Invite}}}const uf="SEPARATOR";function pf(e){const t=(0,je.nH)(),n=(0,s.useMemo)(()=>t.getRoom(e),[e,t]);if(!n)throw new Error(`Room with id ${e} does not exist!`);const i=(0,s.useContext)(Ro.A),[o,a]=(0,s.useState)(new Map),[l,c]=(0,s.useState)(!0),[d,m]=(0,s.useState)(0),u=(0,df.Ah)(n,{includeInvited:!0}),[p,h]=(0,s.useState)(0),g=(0,s.useMemo)(()=>(0,Gn.A)(async t=>{const{joined:s,invited:o}=await i.memberListStore.loadMemberList(e,t),r=function(e,t){return e.currentState.getStateEvents("m.room.third_party_invite").filter(function(n){var i;return!!(0,Vd.Qo)(n)&&(!(t&&(null===(i=n.getContent().display_name)||void 0===i||!i.includes(t)))&&!e.currentState.getInviteForThreePidToken(n.getStateKey()))}).map(e=>({threePidInvite:{event:e}}))}(n,t),l=new Map;for(const e of s){const t=mf(e);l.set(e.userId,t)}s.length>0&&(o.length>0||r.length>0)&&l.set(uf,uf);for(const e of o){const t=mf(e);l.set(e.userId,t)}for(const e of r){const t=e.threePidInvite.event.getContent().display_name;l.set(t,e)}a(l),h(u+r.length),t||m(l.size)},500,{leading:!0,trailing:!0}),[i.memberListStore,e,n,u]),v=(0,s.useMemo)(()=>i.memberListStore.isPresenceEnabled(),[i.memberListStore]),_=(0,s.useCallback)(()=>!!n&&Jp(n),[n]),[f,y]=(0,s.useState)(_()),E=(0,s.useCallback)(()=>(null==n?void 0:n.getMyMembership())===$n.O.Join&&(0,em.g)(as.C.InviteUsers),[n]),[w,S]=(0,s.useState)(E());return(0,mo.YK)(t,r.fZ1.Events,t=>{if(t.getRoomId()===e&&t.getType()===r.Bx4.RoomThirdPartyInvite){g();const e=_();y(e)}}),(0,mo.YK)(t,r.fZ1.Update,t=>{t.roomId===e&&g()}),(0,mo.YK)(t,r.o5X.Name,(t,n)=>{n.roomId===e&&g()}),(0,mo.YK)(t,r.AUM.Room,t=>{t.roomId===e&&g()}),(0,mo.YK)(t,r.u99.MyMembership,(t,n,i)=>{if(t.roomId===e&&n===$n.O.Join&&i!==$n.O.Join){g();const e=E();S(e)}}),(0,mo.YK)(t,r.UI7.Presence,(e,t)=>{o.has(t.userId)&&g()}),(0,mo.YK)(t,r.UI7.CurrentlyActive,(e,t)=>{o.has(t.userId)&&g()}),(0,s.useEffect)(()=>{(async()=>{await g(),c(!1)})()},[g]),{members:Array.from(o.values()),memberCount:p,search:g,shouldShowInvite:w,isPresenceEnabled:v,isLoading:l,onInviteButtonClick:e=>{Gi.A.trackInteraction("WebRightPanelMemberListInviteButton",e),e.preventDefault(),dg(n)},shouldShowSearch:d>=20,canInvite:f}}let hf=function(e){return e.Creator="creator",e.Admin="admin",e.Moderator="moderator",e}({});const gf={[hf.Creator]:(0,c.AO)("power_level|creator"),[hf.Admin]:(0,c.AO)("power_level|admin"),[hf.Moderator]:(0,c.AO)("power_level|moderator")};var vf=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/verified.js");const _f=({status:e})=>{const t=st.g[e],n=t?(0,c._t)(t):"",i=function(e){switch(e){case ot.z.Normal:return;case ot.z.Verified:return s.createElement(vf.A,{height:"16px",width:"16px",className:"mx_E2EIconView_verified"});case ot.z.Warning:return s.createElement(we.A,{height:"16px",width:"16px",className:"mx_E2EIconView_warning"})}}(e);return i?s.createElement(Ys.m,{label:n},s.createElement("div",{className:"mx_E2EIconView"},i)):null};var ff=n("./src/components/views/rooms/MemberList/tiles/common/PresenceIconView.tsx");function yf(e){let t;e.userLabel&&(t=s.createElement("div",{className:"mx_MemberTileView_userLabel"},e.userLabel));const n=(0,s.useRef)(null);return(0,s.useEffect)(()=>{var t;e.focused&&(null===(t=n.current)||void 0===t||t.focus({preventScroll:!0,focusVisible:!0}))},[e.focused]),s.createElement("div",null,s.createElement(Ve.A,{ref:n,className:"mx_MemberTileView",onClick:e.onClick,onFocus:e.onFocus,"aria-label":null==e?void 0:e.ariaLabel,tabIndex:e.tabIndex,role:"option","aria-posinset":e.memberIndex+1,"aria-setsize":e.memberCount},s.createElement("div",{"aria-hidden":!0,className:"mx_MemberTileView_left"},s.createElement("div",{className:"mx_MemberTileView_avatar"},e.avatarJsx,s.createElement("div",{className:"mx_MemberTileView_presence"},e.presenceJsx)),s.createElement("div",{className:"mx_MemberTileView_name"},e.nameJsx)),s.createElement("div",{"aria-hidden":!0,className:"mx_MemberTileView_right"},t,e.iconJsx)))}var Ef=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/email-solid.js"),wf=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/user-add-solid.js");function Sf({isThreePid:e}){const t=e?Ef.A:wf.A;return s.createElement(Xe.son,{align:"center",className:"mx_InvitedIconView"},s.createElement(t,{height:"16px",width:"16px"}))}function bf(e){const t=function(e){const[t,n]=(0,s.useState)();(0,s.useEffect)(()=>{const t=_.J.safeGet(),i=async()=>{var i;const{userId:s}=e.member,o=s===t.getUserId(),r=await(null===(i=t.getCrypto())||void 0===i?void 0:i.getUserVerificationStatus(s));if(null==r||!r.isCrossSigningVerified())return void n(null!=r&&r.wasCrossSigningVerified()?ot.z.Warning:ot.z.Normal);const a=await(0,Ct.a)(t,s),l=await(0,Me.rm)(a,async e=>{var n;const i=await(null===(n=t.getCrypto())||void 0===n?void 0:n.getDeviceVerificationStatus(s,e));return!i||(o?!i.crossSigningVerified:!i.isVerified())});n(l?ot.z.Warning:ot.z.Verified)},s=n=>{if(n.getType()!==r.Bx4.RoomEncryption)return;const{roomId:o}=e.member;n.getRoomId()===o&&(t.removeListener(r.fZ1.Events,s),i())},o=(t,n)=>{t===e.member.userId&&i()},{roomId:a}=e.member;return a&&(t.isRoomEncrypted(a)?(t.on(Ee.cr.UserTrustStatusChanged,o),i()):t.on(r.fZ1.Events,s)),()=>{t&&(t.removeListener(r.fZ1.Events,s),t.removeListener(Ee.cr.UserTrustStatusChanged,o))}},[e.member]);const i=e.member,o=e.member.name,a=new Map([[1/0,hf.Creator],[100,hf.Admin],[50,hf.Moderator]]);let l,d=e.member.powerLevel;for(const[t]of a)if(e.member.powerLevel>=t){d=t;break}const m=a.get(d);return m&&(l=(0,c._t)(gf[m])),e.member.isInvite&&(l=(0,c._t)("member_list|invited_label")),{member:i,name:o,onClick:()=>{K.A.dispatch({action:$.r.ViewUser,member:e.member,push:!0})},e2eStatus:t,showPresence:e.showPresence,userLabel:l}}(e),n=t.member,i=s.createElement(ki.A,{size:"32px",name:n.name,idName:n.userId,title:n.displayUserId,url:n.avatarThumbnailUrl,altText:(0,c._t)("common|user_avatar")}),o=t.name,a=(0,Vo.n)(n.userId),l=(0,Xe.s2q)(()=>new Lo({fallbackName:o,member:n,withTooltip:!0,userStatus:a}));(0,s.useEffect)(()=>{l.setMember(o,n)},[l,n,o]),(0,s.useEffect)(()=>{l.setUserStatus(a)},[l,a]);const d=s.createElement(Xe.kvw,{vm:l,className:"mx_DisambiguatedProfile"}),m=n.presenceState;let u,p;return t.showPresence&&m&&(u=s.createElement(ff.A,{presenceState:m})),t.e2eStatus&&(p=s.createElement(_f,{status:t.e2eStatus})),n.isInvite&&(p=s.createElement(Sf,{isThreePid:!1})),s.createElement(yf,{onClick:t.onClick,onFocus:t=>e.onFocus(e.item,t),avatarJsx:i,presenceJsx:u,nameJsx:d,userLabel:t.userLabel,ariaLabel:o,iconJsx:p,focused:e.focused,tabIndex:e.tabIndex,memberIndex:e.index-(n.isInvite?1:0),memberCount:e.memberCount})}function Af(e){const t=function(e){const t=e.threePidInvite;return{name:t.event.getContent().display_name,onClick:()=>{K.A.dispatch({action:$.r.View3pidInvite,event:t.event})},userLabel:(0,c._t)("member_list|invited_label")}}(e),n=s.createElement(ki.A,{name:t.name,size:"32px","aria-hidden":"true"}),i=s.createElement(Sf,{isThreePid:!0}),o=t.name;return s.createElement(yf,{nameJsx:o,avatarJsx:n,onClick:t.onClick,memberIndex:e.memberIndex,memberCount:e.memberCount,ariaLabel:o,userLabel:t.userLabel,iconJsx:i,focused:e.focused,tabIndex:e.tabIndex,onFocus:t=>e.onFocus(e.item,t)})}const Cf=({canInvite:e,children:t})=>{const n=e?(0,c._t)("action|invite"):(0,c._t)("member_list|invite_button_no_perms_tooltip");return s.createElement(Ys.m,{description:n},t)},xf=({vm:e})=>{const t=e.shouldShowInvite,n=e.shouldShowSearch,i=!e.canInvite;return t?n?s.createElement(Cf,{canInvite:e.canInvite},s.createElement(xe.$,{className:"mx_MemberListHeaderView_invite_small",kind:"secondary",onClick:e.onInviteButtonClick,size:"md",iconOnly:!0,Icon:vu.A,disabled:i,"aria-label":(0,c._t)("action|invite"),type:"button"})):s.createElement(Cf,{canInvite:e.canInvite},s.createElement(xe.$,{kind:"secondary",size:"md",Icon:vu.A,className:"mx_MemberListHeaderView_invite_large",disabled:!e.canInvite,onClick:e.onInviteButtonClick,type:"button"},(0,c._t)("action|invite"))):null};const kf=e=>{const t=e.vm;let n;return n=t.shouldShowSearch?s.createElement(Xe.son,{justify:"center",className:"mx_MemberListHeaderView_container"},s.createElement(Np.v,{className:"mx_MemberListHeaderView_search mx_no_textinput",name:"searchMembers",placeholder:(0,c._t)("member_list|filter_placeholder"),onChange:e=>t.search(e.target.value)}),s.createElement(xf,{vm:t})):!t.shouldShowSearch&&t.shouldShowInvite?s.createElement(Xe.son,{justify:"center",className:"mx_MemberListHeaderView_container"},s.createElement(xf,{vm:t})):null,s.createElement(Xe.son,{className:"mx_MemberListHeaderView",as:"header",align:"center",justify:"space-between",direction:"column"},!t.isLoading&&n,s.createElement(Pu.E,{as:"div",size:"sm",weight:"semibold",className:"mx_MemberListHeaderView_label"},function(e){return e.isLoading?s.createElement(Xe.son,{align:"center",gap:"8px"},s.createElement(We.Z,null)," ",(0,c._t)("common|loading")):0===e.memberCount?(0,c._t)("member_list|no_matches"):(0,c._t)("member_list|count",{count:e.memberCount})}(t)))},Rf=e=>{const t=pf(e.roomId),{isPresenceEnabled:n,memberCount:i}=t,o=(0,s.useCallback)(e=>e===uf?"separator":e.member?`member-${e.member.userId}`:`threePidInvite-${e.threePidInvite.event.getContent().public_key}`,[]),r=(0,s.useCallback)((e,t,r,a)=>{const l=o(t)===r.tabIndexKey,c=l&&r.focused;return t===uf?s.createElement("hr",{className:"mx_MemberListView_separator"}):t.member?s.createElement(bf,{item:t,member:t.member,showPresence:n,focused:c,tabIndex:l?0:-1,index:e,memberCount:i,onFocus:a}):s.createElement(Af,{item:t,threePidInvite:t.threePidInvite,focused:c,tabIndex:l?0:-1,memberIndex:e-1,memberCount:i,onFocus:a})},[n,o,i]),a=(0,s.useCallback)(e=>e!==uf,[]);return s.createElement(Hp.A,{id:"memberlist-panel",className:"mx_MemberListView",ariaLabelledBy:"memberlist-panel-tab",role:"tabpanel",header:(0,c._t)("common|people"),onClose:e.onClose},s.createElement(Xe.son,{align:"stretch",direction:"column",className:"mx_MemberListView_container"},s.createElement(Ln.lV.Root,{onSubmit:e=>e.preventDefault()},s.createElement(kf,{vm:t})),s.createElement(Xe.Zh9,{items:t.members,getItemComponent:r,getItemKey:o,isItemFocusable:a,role:"listbox","aria-label":(0,c._t)("member_list|list_title"),fixedItemHeight:56,increaseViewportBy:{bottom:840,top:840}})))};function If(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}class Tf extends s.Component{constructor(e){super(e),(0,i.A)(this,"delayedUpdate",(0,Gn.A)(()=>{this.forceUpdate()},500,{leading:!0,trailing:!0})),(0,i.A)(this,"onRoomStateMember",(e,t,n)=>{var i;this.props.room&&n.roomId===this.props.room.roomId&&(this.state.phase===Wu.n.MemberList||this.state.phase===Wu.n.MemberInfo&&n.userId===(null===(i=this.state.cardState)||void 0===i||null===(i=i.member)||void 0===i?void 0:i.userId))&&this.delayedUpdate()}),(0,i.A)(this,"onRightPanelStoreUpdate",()=>{this.setState(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?If(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):If(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},Tf.getDerivedStateFromProps(this.props)))}),(0,i.A)(this,"onClose",()=>{var e,t;if(null!==(e=this.props.overwriteCard)&&void 0!==e&&null!==(e=e.state)&&void 0!==e&&e.member)K.A.dispatch({action:$.r.ViewHomePage});else if(this.state.phase===Wu.n.EncryptionPanel&&null!==(t=this.state.cardState)&&void 0!==t&&null!==(t=t.verificationRequest)&&void 0!==t&&t.pending)this.state.cardState.verificationRequest.cancel();else{var n,i;Ip.A.instance.togglePanel(null!==(n=null===(i=this.props.room)||void 0===i?void 0:i.roomId)&&void 0!==n?n:null)}}),this.state=Tf.getDerivedStateFromProps(e)}componentDidMount(){this.context.on(r.fZ1.Members,this.onRoomStateMember),Ip.A.instance.on("update",this.onRightPanelStoreUpdate)}componentWillUnmount(){var e;null===(e=this.context)||void 0===e||e.removeListener(r.fZ1.Members,this.onRoomStateMember),Ip.A.instance.off("update",this.onRightPanelStoreUpdate)}static getDerivedStateFromProps(e){var t,n,i;let s;return e.room&&(s=Ip.A.instance.currentCardForRoom(e.room.roomId)),{cardState:null===(t=s)||void 0===t?void 0:t.state,phase:null!==(n=null===(i=s)||void 0===i?void 0:i.phase)&&void 0!==n?n:void 0}}render(){var e,t,n,i,o;let a=s.createElement("div",null);const l=null===(e=this.props.room)||void 0===e?void 0:e.roomId,c=null!==(t=null===(n=this.props.overwriteCard)||void 0===n?void 0:n.phase)&&void 0!==t?t:this.state.phase,d=null!==(i=null===(o=this.props.overwriteCard)||void 0===o?void 0:o.state)&&void 0!==i?i:this.state.cardState;switch(c){case Wu.n.MemberList:l&&(a=s.createElement(Rf,{roomId:l,onClose:this.onClose}));break;case Wu.n.MemberInfo:case Wu.n.EncryptionPanel:if(null!=d&&d.member){var m;const e=d.member instanceof r.YxN?d.member:void 0;a=s.createElement(Yg.Ay,{user:d.member,room:null!==(m=this.context.getRoom(null==e?void 0:e.roomId))&&void 0!==m?m:this.props.room,key:null!=l?l:d.member.userId,onClose:this.onClose,phase:c,verificationRequest:d.verificationRequest,verificationRequestPromise:d.verificationRequestPromise})}break;case Wu.n.ThreePidMemberInfo:null!=d&&d.memberInfoEvent&&(a=s.createElement(Qg,{event:d.memberInfoEvent,key:l,onClose:this.onClose}));break;case Wu.n.NotificationPanel:a=s.createElement(K_,{onClose:this.onClose});break;case Wu.n.PinnedMessages:this.props.room&&(a=s.createElement(nf,{room:this.props.room,onClose:this.onClose,permalinkCreator:this.props.permalinkCreator}));break;case Wu.n.Timeline:this.props.room&&(a=s.createElement(rf,{classNames:"mx_ThreadPanel mx_TimelineCard",room:this.props.room,timelineSet:this.props.room.getUnfilteredTimelineSet(),resizeNotifier:this.props.resizeNotifier,onClose:this.onClose,permalinkCreator:this.props.permalinkCreator,e2eStatus:this.props.e2eStatus}));break;case Wu.n.FilePanel:l&&(a=s.createElement(uv,{roomId:l,onClose:this.onClose}));break;case Wu.n.ThreadView:this.props.room&&null!=d&&d.threadHeadEvent&&(a=s.createElement(F_,{room:this.props.room,resizeNotifier:this.props.resizeNotifier,onClose:this.onClose,mxEvent:d.threadHeadEvent,initialEvent:d.initialEvent,isInitialEventHighlighted:d.isInitialEventHighlighted,initialEventScrollIntoView:d.initialEventScrollIntoView,permalinkCreator:this.props.permalinkCreator,e2eStatus:this.props.e2eStatus}));break;case Wu.n.ThreadPanel:this.props.room&&(a=s.createElement(G_,{roomId:this.props.room.roomId,resizeNotifier:this.props.resizeNotifier,onClose:this.onClose,permalinkCreator:this.props.permalinkCreator}));break;case Wu.n.RoomSummary:this.props.room&&(a=s.createElement(_g,{room:this.props.room,permalinkCreator:this.props.permalinkCreator,onSearchChange:this.props.onSearchChange,onSearchCancel:this.props.onSearchCancel,searchTerm:this.props.searchTerm,focusRoomSearch:null==d?void 0:d.focusRoomSearch}));break;case Wu.n.Extensions:this.props.room&&(a=s.createElement(cf,{room:this.props.room,onClose:this.onClose}));break;case Wu.n.Widget:this.props.room&&null!=d&&d.widgetId&&(a=s.createElement($g,{room:this.props.room,widgetId:d.widgetId,onClose:this.onClose}))}return s.createElement("aside",{className:"mx_RightPanel",id:"mx_RightPanel"},a)}}(0,i.A)(Tf,"contextType",je.Ay);class Pf{constructor(){(0,i.A)(this,"scrollStateMap",new Map)}getScrollState(e){return this.scrollStateMap.get(e)}setScrollState(e,t){null===t?this.scrollStateMap.delete(e):this.scrollStateMap.set(e,t)}}void 0===window.mxRoomScrollStateStore&&(window.mxRoomScrollStateStore=new Pf);const Nf=window.mxRoomScrollStateStore;var Df=n("./src/stores/WidgetEchoStore.ts"),Mf=n("../../node_modules/.pnpm/@matrix-org+react-sdk-module-api@2.5.0_patch_hash=016146c9cc96e6363609d2b2ac0896ccef567_88e9e4948198afef3a26d5a493f07dc1/node_modules/@matrix-org/react-sdk-module-api/lib/lifecycles/RoomViewLifecycle.js"),Of=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/ask-to-join.js");class Ff extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"onViewClick",()=>{this.setState({hidden:!1})}),this.state={hidden:!0}}render(){const e=un()({mx_InviteReason:!0,mx_InviteReason_hidden:this.state.hidden});return s.createElement("div",{className:e},s.createElement("div",{className:"mx_InviteReason_reason"},this.props.htmlReason?(0,Us.bk)(this.props.htmlReason):this.props.reason),s.createElement(Ve.A,{kind:"link_inline",className:"mx_InviteReason_view",onClick:this.onViewClick},s.createElement(kc.A,null),(0,c._t)("common|view_message")))}}function Lf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function Uf(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Lf(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Lf(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var Vf=function(e){return e.NotLoggedIn="NotLoggedIn",e.Joining="Joining",e.Loading="Loading",e.Rejecting="Rejecting",e.Kicked="Kicked",e.Banned="Banned",e.OtherThreePIDError="OtherThreePIDError",e.InvitedEmailNotFoundInAccount="InvitedEmailNotFoundInAccount",e.InvitedEmailNoIdentityServer="InvitedEmailNoIdentityServer",e.InvitedEmailMismatch="InvitedEmailMismatch",e.Invite="Invite",e.ViewingRoom="ViewingRoom",e.RoomNotFound="RoomNotFound",e.OtherError="OtherError",e.PromptAskToJoin="PromptAskToJoin",e.Knocked="Knocked",e.RequestDenied="requestDenied",e}(Vf||{});class Bf extends s.Component{constructor(e){super(e),(0,i.A)(this,"onLoginClick",()=>{K.A.dispatch({action:"start_login",screenAfterLogin:this.makeScreenAfterLogin()})}),(0,i.A)(this,"onRegisterClick",()=>{K.A.dispatch({action:"start_registration",screenAfterLogin:this.makeScreenAfterLogin()})}),(0,i.A)(this,"onChangeReason",e=>{this.setState({reason:e.target.value})}),this.state={busy:!1}}componentDidMount(){this.checkInvitedEmail()}componentDidUpdate(e,t){this.props.invitedEmail===e.invitedEmail&&this.props.inviterName===e.inviterName||this.checkInvitedEmail()}async checkInvitedEmail(){if(this.props.inviterName&&this.props.invitedEmail){this.setState({busy:!0});try{var e;const t=await _.J.safeGet().getThreePids();if(this.setState({accountEmails:t.threepids.filter(e=>"email"===e.medium).map(e=>e.address)}),!_.J.safeGet().getIdentityServerUrl())return void this.setState({busy:!1});const n=new A.A,i=await n.getAccessToken(),s=await _.J.safeGet().lookupThreePid("email",this.props.invitedEmail,i);this.setState({invitedEmailMxid:null!==(e=s.mxid)&&void 0!==e?e:null})}catch(e){this.setState({threePidFetchError:e})}this.setState({busy:!1})}}getMessageCase(){if(_.J.safeGet().isGuest())return Vf.NotLoggedIn;const e=this.getMyMember();if(e){var t;const n=null===(t=e.events.member)||void 0===t?void 0:t.getPrevContent().membership;if(e.isKicked())return n===$n.O.Knock?Vf.RequestDenied:this.props.promptAskToJoin?Vf.PromptAskToJoin:Vf.Kicked;if(e.membership===$n.O.Ban)return Vf.Banned}if(this.props.joining)return Vf.Joining;if(this.props.rejecting)return Vf.Rejecting;if(this.props.loading||this.state.busy)return Vf.Loading;if(this.props.knocked)return Vf.Knocked;if(this.props.canAskToJoinAndMembershipIsLeave||this.props.promptAskToJoin)return Vf.PromptAskToJoin;if(this.props.inviterName){if(void 0!==this.props.invitedEmail){if(this.state.threePidFetchError)return Vf.OtherThreePIDError;if(this.state.accountEmails&&!this.state.accountEmails.includes(this.props.invitedEmail))return Vf.InvitedEmailNotFoundInAccount;if(!_.J.safeGet().getIdentityServerUrl())return Vf.InvitedEmailNoIdentityServer;if(this.state.invitedEmailMxid!=_.J.safeGet().getUserId())return Vf.InvitedEmailMismatch}return Vf.Invite}return this.props.error?"M_NOT_FOUND"==this.props.error.errcode?Vf.RoomNotFound:Vf.OtherError:Vf.ViewingRoom}getKickOrBanInfo(){var e,t,n,i;const s=this.getMyMember();if(!s)return{};const o=null===(e=s.events.member)||void 0===e?void 0:e.getSender(),r=o?null===(t=this.props.room)||void 0===t?void 0:t.currentState.getMember(o):void 0;return{memberName:null!==(n=null==r?void 0:r.name)&&void 0!==n?n:o,reason:null===(i=s.events.member)||void 0===i?void 0:i.getContent().reason}}joinRule(){var e,t;return null!==(e=null===(t=this.props.room)||void 0===t||null===(t=t.currentState.getStateEvents(r.Bx4.RoomJoinRules,""))||void 0===t?void 0:t.getContent().join_rule)&&void 0!==e?e:null}getMyMember(){var e,t;return null!==(e=null===(t=this.props.room)||void 0===t?void 0:t.getMember(_.J.safeGet().getSafeUserId()))&&void 0!==e?e:null}getInviteMember(){var e;const{room:t}=this.props;if(!t)return null;const n=_.J.safeGet().getSafeUserId(),i=t.currentState.getMember(n);if(!i)return null;const s=null===(e=i.events.member)||void 0===e?void 0:e.getSender();return s?t.currentState.getMember(s):null}isDMInvite(){var e;const t=this.getMyMember();if(!t)return!1;const n=null===(e=t.events.member)||void 0===e?void 0:e.getContent();return(null==n?void 0:n.membership)===$n.O.Invite&&n.is_direct}makeScreenAfterLogin(){var e,t,n,i,s,o;return{screen:"room",params:{email:this.props.invitedEmail,signurl:this.props.signUrl,room_name:null!==(e=null===(t=this.props.oobData)||void 0===t?void 0:t.name)&&void 0!==e?e:null,room_avatar_url:null!==(n=null===(i=this.props.oobData)||void 0===i?void 0:i.avatarUrl)&&void 0!==n?n:null,inviter_name:null!==(s=null===(o=this.props.oobData)||void 0===o?void 0:o.inviterName)&&void 0!==s?s:null}}}render(){var e,t,n,i,o,a;const l=d.A.get().brand,m=null!==(e=null!==(t=null===(n=this.props.room)||void 0===n?void 0:n.name)&&void 0!==t?t:this.props.roomAlias)&&void 0!==e?e:"",u=null!==(i=null===(o=this.props.room)||void 0===o?void 0:o.isSpaceRoom())&&void 0!==i?i:(null===(a=this.props.oobData)||void 0===a?void 0:a.roomType)===r.CJY.Space;let p,h,g,v,y,E,w,b,A,C,x=!1;const k=this.getMessageCase();switch(k){case Vf.Joining:var R;p=null!==(R=this.props.oobData)&&void 0!==R&&R.roomType||u?u?(0,c._t)("room|joining_space"):(0,c._t)("room|joining_room"):(0,c._t)("room|joining"),x=!0;break;case Vf.Loading:p=(0,c._t)("common|loading"),x=!0;break;case Vf.Rejecting:p=(0,c._t)("room|rejecting"),x=!0;break;case Vf.NotLoggedIn:{const e={canJoin:!1};this.props.roomId&&f.r.instance.invoke(Mf.J.PreviewRoomNotLoggedIn,e,this.props.roomId),e.canJoin?(p=(0,c._t)("room|join_title"),y=(0,c._t)("action|join"),v=()=>{f.r.instance.invoke(Mf.J.JoinFromRoomPreview,this.props.roomId)}):(p=(0,c._t)("room|join_title_account"),S.A.getValue(as.f.Registration)&&(y=(0,c._t)("room|join_button_account"),v=this.onRegisterClick),w=(0,c._t)("action|sign_in"),E=this.onLoginClick),this.props.previewLoading&&(C=s.createElement("div",null,s.createElement(Be.A,{size:20}),(0,c._t)("room|loading_preview")));break}case Vf.Kicked:{const{memberName:e,reason:t}=this.getKickOrBanInfo();p=m?(0,c._t)("room|kicked_from_room_by",{memberName:e,roomName:m}):(0,c._t)("room|kicked_by",{memberName:e}),h=t?(0,c._t)("room|kick_reason",{reason:t}):void 0,y=u?(0,c._t)("room|forget_space"):(0,c._t)("room|forget_room"),v=this.props.onForgetClick,this.joinRule()!==r.dxp.Invite&&(w=y,E=v,y=(0,c._t)("room|rejoin_button"),v=this.props.onJoinClick);break}case Vf.RequestDenied:p=(0,c._t)("room|knock_denied_title"),h=(0,c._t)("room|knock_denied_subtitle"),y=u?(0,c._t)("room|forget_space"):(0,c._t)("room|forget_room"),v=this.props.onForgetClick;break;case Vf.Banned:{const{memberName:e,reason:t}=this.getKickOrBanInfo();p=m?(0,c._t)("room|banned_from_room_by",{memberName:e,roomName:m}):(0,c._t)("room|banned_by",{memberName:e}),h=t?(0,c._t)("room|kick_reason",{reason:t}):void 0,y=u?(0,c._t)("room|forget_space"):(0,c._t)("room|forget_room"),v=this.props.onForgetClick;break}case Vf.OtherThreePIDError:{var I;p=m?(0,c._t)("room|3pid_invite_error_title_room",{roomName:m}):(0,c._t)("room|3pid_invite_error_title");const e=this.joinRule(),t=(0,c._t)("room|3pid_invite_error_description",{errcode:(null===(I=this.state.threePidFetchError)||void 0===I?void 0:I.errcode)||(0,c._t)("error|unknown_error_code")});switch(e){case"invite":h=[(0,c._t)("room|3pid_invite_error_invite_subtitle"),t],y=(0,c._t)("room|3pid_invite_error_invite_action"),v=this.props.onJoinClick;break;case"public":h=(0,c._t)("room|3pid_invite_error_public_subtitle"),y=(0,c._t)("room|join_the_discussion"),v=this.props.onJoinClick;break;default:h=t,y=(0,c._t)("room|3pid_invite_error_invite_action"),v=this.props.onJoinClick}break}case Vf.InvitedEmailNotFoundInAccount:p=m?(0,c._t)("room|3pid_invite_email_not_found_account_room",{roomName:m,email:this.props.invitedEmail}):(0,c._t)("room|3pid_invite_email_not_found_account",{email:this.props.invitedEmail}),h=(0,c._t)("room|link_email_to_receive_3pid_invite",{brand:l}),y=(0,c._t)("room|join_the_discussion"),v=this.props.onJoinClick;break;case Vf.InvitedEmailNoIdentityServer:p=m?(0,c._t)("room|invite_sent_to_email_room",{roomName:m,email:this.props.invitedEmail}):(0,c._t)("room|invite_sent_to_email",{email:this.props.invitedEmail}),h=(0,c._t)("room|3pid_invite_no_is_subtitle",{brand:l}),y=(0,c._t)("room|join_the_discussion"),v=this.props.onJoinClick;break;case Vf.InvitedEmailMismatch:p=m?(0,c._t)("room|invite_sent_to_email_room",{roomName:m,email:this.props.invitedEmail}):(0,c._t)("room|invite_sent_to_email",{email:this.props.invitedEmail}),h=(0,c._t)("room|invite_email_mismatch_suggestion",{brand:l}),y=(0,c._t)("room|join_the_discussion"),v=this.props.onJoinClick;break;case Vf.Invite:{var T,P,N;const e=this.isDMInvite(),t=s.createElement(ms.A,{room:this.props.room,oobData:this.props.oobData}),n=this.getInviteMember(),i=s.createElement("span",{className:"mx_RoomPreviewBar_inviter"},null!==(T=null==n?void 0:n.rawDisplayName)&&void 0!==T?T:this.props.inviterName),o=s.createElement(s.Fragment,null,e?(0,c._t)("room|dm_invite_subtitle",{},{userName:i}):(0,c._t)("room|invite_subtitle",{},{userName:i}),n&&s.createElement(s.Fragment,null,s.createElement("br",null),s.createElement("span",{className:"mx_RoomPreviewBar_inviter_mxid"},n.userId)));var D;if(e)p=(0,c._t)("room|dm_invite_title",{user:null!==(D=null==n?void 0:n.name)&&void 0!==D?D:this.props.inviterName}),y=(0,c._t)("room|dm_invite_action");else p=(0,c._t)("room|invite_title",{roomName:m}),y=(0,c._t)("action|accept");h=[t,o];const r=_.J.safeGet().getSafeUserId(),a=null===(P=this.props.room)||void 0===P?void 0:P.currentState.getMember(r),l=null==a||null===(N=a.events.member)||void 0===N?void 0:N.getContent();null!=l&&l.reason&&(g=s.createElement(Ff,{reason:l.reason,htmlReason:l["io.element.html_reason"]})),v=this.props.onJoinClick,w=(0,c._t)("action|decline"),E=this.props.onDeclineClick,A=(0,c._t)("action|decline_and_block"),b=this.props.onDeclineAndBlockClick;break}case Vf.ViewingRoom:p=this.props.canPreview?(0,c._t)("room|peek_join_prompt",{roomName:m}):m?(0,c._t)("room|no_peek_join_prompt",{roomName:m}):(0,c._t)("room|no_peek_no_name_join_prompt"),y=(0,c._t)("room|join_the_discussion"),v=this.props.onJoinClick;break;case Vf.RoomNotFound:p=m?(0,c._t)("room|not_found_title_name",{roomName:m}):(0,c._t)("room|not_found_title"),h=(0,c._t)("room|not_found_subtitle");break;case Vf.OtherError:var M;p=m?(0,c._t)("room|inaccessible_name",{roomName:m}):(0,c._t)("room|inaccessible"),h=[(0,c._t)("room|inaccessible_subtitle_1"),(0,c._t)("room|inaccessible_subtitle_2",{errcode:String(null===(M=this.props.error)||void 0===M?void 0:M.errcode)},{issueLink:e=>s.createElement("a",{href:d.A.get().feedback.new_issue_url,target:"_blank",rel:"noreferrer noopener"},e)})];break;case Vf.PromptAskToJoin:var O;p=m?(0,c._t)("room|knock_prompt_name",{roomName:m}):(0,c._t)("room|knock_prompt");h=[s.createElement(ms.A,{room:this.props.room,oobData:this.props.oobData}),(0,c._t)("room|knock_subtitle")],g=s.createElement(yi.A,{autoFocus:!0,className:"mx_RoomPreviewBar_fullWidth",element:"textarea",onChange:this.onChangeReason,placeholder:(0,c._t)("room|knock_message_field_placeholder"),type:"text",value:null!==(O=this.state.reason)&&void 0!==O?O:""}),v=()=>this.props.onSubmitAskToJoin&&this.props.onSubmitAskToJoin(this.state.reason),y=(0,c._t)("room|knock_send_action");break;case Vf.Knocked:p=(0,c._t)("room|knock_sent"),h=[s.createElement(s.Fragment,null,s.createElement(Of.A,{className:"mx_Icon mx_Icon_16 mx_RoomPreviewBar_icon"}),(0,c._t)("room|knock_sent_subtitle"))],E=this.props.onCancelAskToJoin,w=(0,c._t)("room|knock_cancel_action")}let F,L,U,V,B;h&&(Array.isArray(h)||(h=[h]),F=h.map((e,t)=>s.createElement("p",{key:`subTitle${t}`},e))),L=x?s.createElement("h3",{className:"mx_RoomPreviewBar_spinnerTitle"},s.createElement(Be.A,null),p):s.createElement("h3",null,p),v&&(U=s.createElement(Ve.A,{kind:"primary",onClick:v},y)),E&&(V=s.createElement(Ve.A,{kind:"secondary",onClick:E},w)),b&&(B=s.createElement(xe.$,{destructive:!0,kind:"tertiary",onClick:b},A));const j=this.props.canPreview,H=un()("mx_RoomPreviewBar",`mx_RoomPreviewBar_${k}`,{mx_RoomPreviewBar_panel:j,mx_RoomPreviewBar_dialog:!j}),z=j?s.createElement(s.Fragment,null,B,V,U):s.createElement(s.Fragment,null,U,V,B);return s.createElement("div",{role:"complementary",className:H},s.createElement("div",{className:"mx_RoomPreviewBar_message"},L,F),g,s.createElement("div",{className:un()("mx_RoomPreviewBar_actions",{mx_RoomPreviewBar_fullWidth:k===Vf.PromptAskToJoin})},z),s.createElement("div",{className:"mx_RoomPreviewBar_footer"},C))}}(0,i.A)(Bf,"defaultProps",{onJoinClick(){}});const jf=e=>{const t=yl.r.instance.customComponents.roomPreviewBarRenderer;var n,i,o,r;return t?t(Uf(Uf({},e),{},{roomId:null!==(n=null===(i=e.room)||void 0===i?void 0:i.roomId)&&void 0!==n?n:e.roomId,roomAlias:null!==(o=null===(r=e.room)||void 0===r?void 0:r.getCanonicalAlias())&&void 0!==o?o:e.roomAlias}),e=>s.createElement(Bf,e)):s.createElement(Bf,e)};var Hf=n("../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/sortBy.js"),zf=n("./src/components/views/elements/FacePile.tsx");const Wf=["room","onlyKnownUsers","numShown"],Jf=5,Gf=e=>{var t;return!(null===(t=Q.A.shared().getDMRoomsForUserId(e.userId))||void 0===t||!t.length)},Kf=e=>{let{room:t,onlyKnownUsers:n=!0,numShown:i=Jf}=e,o=(0,v.A)(e,Wf);const r=(0,s.useContext)(je.Ay),a=t.getMyMembership()===$n.O.Join;let l=(0,df.ib)(t);const d=l.length,m=[e=>e.getMxcAvatarUrl()?0:1];n?l=l.filter(Gf):m.unshift(e=>Gf(e)?0:1);const u=(0,Hf.A)(l.filter(e=>e.userId!==r.getUserId()),m).slice(0,i);if(u.length<1)return null;const p=u.map(e=>e.name).reverse().join(", ");return s.createElement(zf.A,(0,xn.A)({members:u,size:"28px",overflow:l.length>i,tooltipLabel:o.onClick?(0,c._t)("room|face_pile_tooltip_label",{count:d}):(0,c._t)("common|n_members",{count:d}),tooltipShortcut:a?(0,c._t)("room|face_pile_tooltip_shortcut_joined",{commaSeparatedMembers:p}):(0,c._t)("room|face_pile_tooltip_shortcut",{commaSeparatedMembers:p})},o),n&&s.createElement("span",{className:"mx_FacePile_summary"},(0,c._t)("room|face_pile_summary",{count:l.length})))},qf=({room:e})=>{const t=(0,s.useContext)(Ro.A),n=(0,De.e)(async()=>{if(e.getMyMembership()!==$n.O.Invite)return null;try{return await e.client.getRoomSummary(e.roomId)}catch{return null}},[e]),i=(0,zs.U)(e,e=>e.getJoinRule()),o=(0,df.nH)(e),a=(0,df.Ah)(e);let l,d,m;if((0,Wp.j)(e)?(l=s.createElement(om.A,null),d=(0,c._t)("common|video_room")):i===r.dxp.Public?(l=s.createElement(sm.A,null),d=e.isSpaceRoom()?(0,c._t)("common|public_space"):(0,c._t)("common|public_room")):(l=s.createElement(Ce.A,null),d=e.isSpaceRoom()?(0,c._t)("common|private_space"):(0,c._t)("common|private_room")),o===$n.O.Invite&&n)m=s.createElement("span",{className:"mx_RoomInfoLine_members"},(0,c._t)("common|n_members",{count:n.num_joined_members}));else if(a&&void 0!==n){const e=()=>t.rightPanelStore.setCard({phase:Wu.n.MemberList});m=s.createElement(Ve.A,{kind:"link",className:"mx_RoomInfoLine_members",onClick:e},(0,c._t)("common|n_members",{count:a}))}return s.createElement("div",{className:"mx_RoomInfoLine"},l,d,m)},$f=({room:e,onJoinButtonClicked:t,onRejectButtonClicked:n})=>{const i=(0,s.useContext)(je.Ay),o=(0,Wp.j)(e),a=(0,df.nH)(e);(0,Dc.F)(K.A,t=>{t.action===$.r.JoinRoomError&&t.roomId===e.roomId&&d(!1)});const[l,d]=(0,s.useState)(!1),m=(0,zs.U)(e,e=>e.getJoinRule()),u=(0,wm.Cs)(a)===wm._T.Leave&&m!==r.dxp.Public,p=Tc(e),h=()=>K.A.dispatch({action:$.r.ViewUserSettings,initialTabId:ct.v.Labs});let g,v,_=null;if(a===$n.O.Join)g=s.createElement(Ve.A,{kind:"danger_outline",onClick:()=>{K.A.dispatch({action:"leave_room",room_id:e.roomId})}},(0,c._t)("action|leave"));else if(a===$n.O.Invite){var f;const o=null===(f=e.getMember(i.getUserId()))||void 0===f||null===(f=f.events.member)||void 0===f?void 0:f.getSender();if(o){const t=e.getMember(o);_=s.createElement("div",{className:"mx_RoomPreviewCard_inviter"},s.createElement(bo.A,{member:t,fallbackUserId:o,size:"32px"}),s.createElement("div",null,s.createElement("div",{className:"mx_RoomPreviewCard_inviter_name"},(0,c._t)("room|invites_you_text",{},{inviter:()=>s.createElement("strong",null,(null==t?void 0:t.name)||o)})),t?s.createElement("div",{className:"mx_RoomPreviewCard_inviter_mxid"},o):null))}g=s.createElement(s.Fragment,null,s.createElement(Ve.A,{kind:"primary_outline",onClick:()=>{d(!0),n()}},(0,c._t)("action|decline")),s.createElement(Ve.A,{kind:"primary",onClick:()=>{d(!0),t()}},(0,c._t)("action|accept")))}else g=s.createElement(Ve.A,{kind:"primary",onClick:()=>{t(),i.isGuest()||d(!0)},disabled:u},(0,c._t)("action|join"));return l&&(g=s.createElement($s.A,null)),v=o?s.createElement(s.Fragment,null,s.createElement(ms.A,{room:e,size:"50px",viewAvatarOnClick:!0}),s.createElement("div",{className:"mx_RoomPreviewCard_video"},s.createElement(om.A,null)),s.createElement(Eu.s,{onClick:h,tooltipTitle:(0,c._t)("labs|video_rooms_beta")})):e.isSpaceRoom()?s.createElement(ms.A,{room:e,size:"80px",viewAvatarOnClick:!0}):s.createElement(ms.A,{room:e,size:"50px",viewAvatarOnClick:!0}),s.createElement("div",{className:"mx_RoomPreviewCard"},_,s.createElement("div",{className:"mx_RoomPreviewCard_avatar"},v),s.createElement("h1",{className:"mx_RoomPreviewCard_name"},p),s.createElement(qf,{room:e}),s.createElement(gg,{room:e,className:"mx_RoomPreviewCard_topic"}),"public"===e.getJoinRule()&&s.createElement(Kf,{room:e}),u?s.createElement("div",{className:"mx_RoomPreviewCard_notice"},s.createElement(us.A,null),(0,c._t)("room|join_failed_needs_invite",{roomName:e.name})):null,s.createElement("div",{className:"mx_RoomPreviewCard_joinButtons"},g))};class Yf extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"onStateEvents",e=>{if(!this.props.room||e.getRoomId()!==this.props.room.roomId)return;if("m.room.tombstone"!==e.getType())return;const t=this.props.room.currentState.getStateEvents("m.room.tombstone","");this.setState({upgraded:t&&t.getContent().replacement_room})}),(0,i.A)(this,"onUpgradeClick",()=>{X.Ay.createDialog(An,{room:this.props.room})});const t=this.props.room.currentState.getStateEvents("m.room.tombstone","");this.state={upgraded:null==t?void 0:t.getContent().replacement_room}}componentDidMount(){this.context.on(r.fZ1.Events,this.onStateEvents)}componentWillUnmount(){this.context.removeListener(r.fZ1.Events,this.onStateEvents)}render(){let e=s.createElement("div",null,s.createElement("div",{className:"mx_RoomUpgradeWarningBar_body"},s.createElement("p",null,(0,c._t)("room|upgrade_warning_bar")),s.createElement("p",null,(0,c._t)("room_settings|advanced|room_upgrade_warning",{},{b:e=>s.createElement("strong",null,e),i:e=>s.createElement("i",null,e)}))),s.createElement("p",{className:"mx_RoomUpgradeWarningBar_upgradelink"},s.createElement(Ve.A,{onClick:this.onUpgradeClick},(0,c._t)("room_settings|advanced|room_upgrade_button"))));return this.state.upgraded&&(e=s.createElement("div",{className:"mx_RoomUpgradeWarningBar_body"},s.createElement("p",null,(0,c._t)("room|upgrade_warning_bar_upgraded")))),s.createElement("div",{className:"mx_RoomUpgradeWarningBar"},s.createElement("div",{className:"mx_RoomUpgradeWarningBar_wrapped"},s.createElement("div",{className:"mx_RoomUpgradeWarningBar_header"},(0,c._t)("room|upgrade_warning_bar_unstable",{},{roomVersion:()=>s.createElement("code",null,this.props.room.getVersion()),i:e=>s.createElement("i",null,e)})),e,s.createElement("div",{className:"mx_RoomUpgradeWarningBar_small"},(0,c._t)("room|upgrade_warning_bar_admins"))))}}(0,i.A)(Yf,"contextType",je.Ay);var Qf=function(e){return e.CloseScalar="close_scalar",e.GetWidgets="get_widgets",e.SetWidget="set_widget",e.JoinRulesState="join_rules_state",e.SetPlumbingState="set_plumbing_state",e.GetMembershipCount="get_membership_count",e.GetRoomEncryptionState="get_room_enc_state",e.CanSendEvent="can_send_event",e.MembershipState="membership_state",e.invite="invite",e.Kick="kick",e.BotOptions="bot_options",e.SetBotOptions="set_bot_options",e.SetBotPower="set_bot_power",e.GetOpenIdToken="get_open_id_token",e.SendEvent="send_event",e.ReadEvents="read_events",e}(Qf||{});function Xf(e,t){const n=(0,ui.ZV)(e.data);n.response=t,e.source.postMessage(n,e.origin)}function Zf(e,t,n){o.vF.error("Action:"+e.data.action+" failed with message: "+t);const i=(0,ui.ZV)(e.data);i.response={error:{message:t}},n&&(i.response.error._error=n),e.source.postMessage(i,e.origin)}function ey(e,t){const n=_.J.safeGet(),i=e.data.widget_id;let s=e.data.type;const o=e.data.url,r=e.data.name,a=e.data.data,l=e.data.avatar_url,d=e.data.userWidget;if(i&&void 0!==o){if(null!==o){if(void 0!==r&&"string"!=typeof r)return void Zf(e,(0,c._t)("scalar|error_create"),new Error("Optional field 'name' must be a string."));if(void 0!==a&&!(a instanceof Object))return void Zf(e,(0,c._t)("scalar|error_create"),new Error("Optional field 'data' must be an Object."));if(void 0!==l&&"string"!=typeof l)return void Zf(e,(0,c._t)("scalar|error_create"),new Error("Optional field 'avatar_url' must be a string."));if("string"!=typeof s)return void Zf(e,(0,c._t)("scalar|error_create"),new Error("Field 'type' must be a string."));if("string"!=typeof o)return void Zf(e,(0,c._t)("scalar|error_create"),new Error("Field 'url' must be a string or null."))}if(s=Pg.x.fromString(s),d)fg.A.setUserWidget(n,i,s,o,r,a).then(()=>{Xf(e,{success:!0}),K.A.dispatch({action:"user_widget_updated"})}).catch(t=>{Zf(e,(0,c._t)("scalar|error_create"),t)});else{if(!t)return void Zf(e,(0,c._t)("scalar|error_missing_room_id"));fg.A.setRoomWidget(n,t,i,s,o,r,a,l).then(()=>{Xf(e,{success:!0})},t=>{Zf(e,(0,c._t)("scalar|error_send_request"),t)})}}else Zf(e,(0,c._t)("scalar|error_create"),new Error("Missing required widget fields."))}function ty(e,t){const n=_.J.get();if(!n)return void Zf(e,(0,c._t)("widget|error_need_to_be_logged_in"));let i=[];if(t){const s=n.getRoom(t);if(!s)return void Zf(e,(0,c._t)("scalar|error_room_unknown"));i=fg.A.getRoomWidgets(s).map(e=>e.event)}const s=fg.A.getUserWidgetsArray(n);i=i.concat(s),Xf(e,i)}function ny(e,t,n,i){const s=_.J.get();if(!s)return void Zf(e,(0,c._t)("widget|error_need_to_be_logged_in"));const o=s.getRoom(t);if(!o)return void Zf(e,(0,c._t)("scalar|error_room_unknown"));const r=o.currentState.getStateEvents(n,i);Xf(e,r?r.getContent():null)}const iy=function(e){let t,n;e.origin||(e.origin=e.originalEvent.origin);try{var i;sy||(sy=null===(i=ae.J.sharedInstance().getPrimaryManager())||void 0===i?void 0:i.uiUrl),t=new URL(sy)}catch{return}try{n=new URL(e.origin)}catch{return}if(t.origin!==n.origin||!e.data.action||e.data.api)return;if(e.data.action===Qf.CloseScalar)return K.A.dispatch({action:Qf.CloseScalar}),void Xf(e,null);const s=e.data.room_id,r=e.data.user_id;if(!s)return e.data.action===Qf.GetWidgets?void ty(e,null):e.data.action===Qf.SetWidget?void ey(e,null):e.data.action===Qf.GetOpenIdToken?void async function(e){try{Xf(e,await _.J.safeGet().getOpenIdToken())}catch(t){o.vF.warn("Unable to fetch openId token.",t),Zf(e,"Unable to fetch openId token.")}}(e):void Zf(e,(0,c._t)("scalar|error_missing_room_id_request"));if(s===gs._.instance.roomViewStore.getRoomId())if(e.data.action!==Qf.GetWidgets)if(e.data.action!==Qf.SetWidget)if(e.data.action!==Qf.JoinRulesState)if(e.data.action!==Qf.SetPlumbingState)if(e.data.action!==Qf.GetMembershipCount)if(e.data.action!==Qf.GetRoomEncryptionState)if(e.data.action!==Qf.CanSendEvent)if(e.data.action!==Qf.SendEvent)if(e.data.action!==Qf.ReadEvents)if(r)switch(e.data.action){case Qf.MembershipState:!function(e,t,n){o.vF.log(`membership_state of ${n} in room ${t} requested.`),ny(e,t,"m.room.member",n)}(e,s,r);break;case Qf.invite:!function(e,t,n){o.vF.log(`Received request to invite ${n} into room ${t}`);const i=_.J.get();if(!i)return void Zf(e,(0,c._t)("widget|error_need_to_be_logged_in"));const s=i.getRoom(t);if(s){const t=s.getMember(n);if(t&&[$n.O.Join,$n.O.Invite].includes(t.membership))return void Xf(e,{success:!0})}i.invite(t,n).then(function(){Xf(e,{success:!0})},function(t){Zf(e,(0,c._t)("widget|error_need_invite_permission"),t)})}(e,s,r);break;case Qf.Kick:!function(e,t,n){o.vF.log(`Received request to kick ${n} from room ${t}`);const i=_.J.get();if(!i)return void Zf(e,(0,c._t)("widget|error_need_to_be_logged_in"));const s=i.getRoom(t);if(s){const t=s.getMember(n);if(!t||(0,wm.Cs)(t.membership)===wm._T.Leave)return void Xf(e,{success:!0})}const r=e.data.reason;i.kick(t,n,r).then(()=>{Xf(e,{success:!0})}).catch(t=>{Zf(e,(0,c._t)("widget|error_need_kick_permission"),t)})}(e,s,r);break;case Qf.BotOptions:!function(e,t,n){o.vF.log(`bot_options of ${n} in room ${t} requested.`),ny(e,t,"m.room.bot.options","_"+n)}(e,s,r);break;case Qf.SetBotOptions:!function(e,t,n){o.vF.log(`Received request to set options for bot ${n} in room ${t}`);const i=_.J.get();i?i.sendStateEvent(t,"m.room.bot.options",e.data.content,"_"+n).then(()=>{Xf(e,{success:!0})},t=>{Zf(e,t.message?t.message:(0,c._t)("scalar|error_send_request"),t)}):Zf(e,(0,c._t)("widget|error_need_to_be_logged_in"))}(e,s,r);break;case Qf.SetBotPower:!async function(e,t,n,i,s){if(!(Number.isInteger(i)&&i>=0))return void Zf(e,(0,c._t)("scalar|error_power_level_invalid"));o.vF.log(`Received request to set power level to ${i} for bot ${n} in room ${t}.`);const r=_.J.get();if(r)try{const o=await r.getStateEvent(t,"m.room.power_levels","");var a,l,d;if(!0===s)if((null!==(a=null!==(l=null===(d=o.users)||void 0===d?void 0:d[n])&&void 0!==l?l:o.users_default)&&void 0!==a?a:0)>=i)return Xf(e,{success:!0});return await r.setPowerLevel(t,n,i),Xf(e,{success:!0})}catch(t){var m;const n=t instanceof Error?t:void 0;Zf(e,null!==(m=null==n?void 0:n.message)&&void 0!==m?m:(0,c._t)("scalar|error_send_request"),n)}else Zf(e,(0,c._t)("widget|error_need_to_be_logged_in"))}(e,s,r,e.data.level,e.data.ignoreIfGreater);break;default:o.vF.warn("Unhandled postMessage event with action '"+e.data.action+"'")}else Zf(e,(0,c._t)("scalar|error_missing_user_id_request"));else!async function(e,t){const n=e.data.type,i=e.data.state_key,s=e.data.limit;if("string"!=typeof n)return void Zf(e,(0,c._t)("scalar|failed_read_event"),new Error("Invalid 'type' in request"));if(!["m.room.power_levels","m.room.encryption","m.room.member","m.room.name","m.widgets","im.vector.modular.widgets","io.element.integrations.installations"].includes(n))return void Zf(e,(0,c._t)("scalar|failed_read_event"),new Error("Disallowed 'type' in request"));let o;if(void 0!==s){if("number"!=typeof s||s<0)return void Zf(e,(0,c._t)("scalar|failed_read_event"),new Error("Invalid 'limit' in request"));o=Math.min(s,Number.MAX_SAFE_INTEGER)}else o=Number.MAX_SAFE_INTEGER;const r=_.J.get();if(!r)return void Zf(e,(0,c._t)("widget|error_need_to_be_logged_in"));const a=r.getRoom(t);if(a){if(void 0!==i){if("string"!=typeof i&&!0!==i)return void Zf(e,(0,c._t)("scalar|failed_read_event"),new Error("Invalid 'state_key' in request"));const t=!0===i?void 0:i;let s=[];return s=s.concat(a.currentState.getStateEvents(n,t)||[]),s=s.slice(0,o),void Xf(e,{events:s.map(e=>e.getEffectiveEvent())})}Zf(e,(0,c._t)("scalar|failed_read_event"),new Error("Reading message events is not implemented"))}else Zf(e,(0,c._t)("scalar|error_room_unknown"))}(e,s);else!async function(e,t){const n=e.data.type,i=e.data.state_key,s=e.data.content;if("string"!=typeof n)return void Zf(e,(0,c._t)("scalar|failed_send_event"),new Error("Invalid 'type' in request"));if(!["m.widgets","im.vector.modular.widgets","io.element.integrations.installations"].includes(n))return void Zf(e,(0,c._t)("scalar|failed_send_event"),new Error("Disallowed 'type' in request"));if(!s||"object"!=typeof s)return void Zf(e,(0,c._t)("scalar|failed_send_event"),new Error("Invalid 'content' in request"));const o=_.J.get();if(!o)return void Zf(e,(0,c._t)("widget|error_need_to_be_logged_in"));if(o.getRoom(t))if(void 0!==i)try{Xf(e,{room_id:t,event_id:(await o.sendStateEvent(t,n,s,i)).event_id})}catch(t){return void Zf(e,(0,c._t)("scalar|failed_send_event"),t)}else Zf(e,(0,c._t)("scalar|failed_send_event"),new Error("Sending message events is not implemented"));else Zf(e,(0,c._t)("scalar|error_room_unknown"))}(e,s);else!function(e,t){const n=""+e.data.event_type,i=Boolean(e.data.is_state),s=_.J.get();if(!s)return void Zf(e,(0,c._t)("widget|error_need_to_be_logged_in"));const o=s.getRoom(t);if(!o)return void Zf(e,(0,c._t)("scalar|error_room_unknown"));if(o.getMyMembership()!==$n.O.Join)return void Zf(e,(0,c._t)("scalar|error_membership"));const r=s.credentials.userId;let a;a=i?o.currentState.maySendStateEvent(n,r):o.currentState.maySendEvent(n,r),a?Xf(e,!0):Zf(e,(0,c._t)("scalar|error_permission"))}(e,s);else!async function(e,t){var n;const i=_.J.get();if(!i)return void Zf(e,(0,c._t)("widget|error_need_to_be_logged_in"));if(!i.getRoom(t))return void Zf(e,(0,c._t)("scalar|error_room_unknown"));Xf(e,Boolean(await(null===(n=i.getCrypto())||void 0===n?void 0:n.isEncryptionEnabledInRoom(t))))}(e,s);else!function(e,t){const n=_.J.get();if(!n)return void Zf(e,(0,c._t)("widget|error_need_to_be_logged_in"));const i=n.getRoom(t);if(!i)return void Zf(e,(0,c._t)("scalar|error_room_unknown"));Xf(e,i.getJoinedMemberCount())}(e,s);else!function(e,t,n){if("string"!=typeof n)throw new Error("Plumbing state status should be a string");o.vF.log(`Received request to set plumbing state to status "${n}" in room ${t}`);const i=_.J.get();i?i.sendStateEvent(t,"m.room.plumbing",{status:n}).then(()=>{Xf(e,{success:!0})},t=>{Zf(e,t.message?t.message:(0,c._t)("scalar|error_send_request"),t)}):Zf(e,(0,c._t)("widget|error_need_to_be_logged_in"))}(e,s,e.data.status);else!function(e,t){o.vF.log(`join_rules of ${t} requested.`),ny(e,t,"m.room.join_rules","")}(e,s);else ey(e,s);else ty(e,s);else Zf(e,(0,c._t)("scalar|error_room_not_visible",{roomId:s}))};let sy,oy=0;const ry=({vertical:e,reverse:t,id:n,passRef:i})=>{const o=["mx_ResizeHandle"];return e?o.push("mx_ResizeHandle--vertical"):o.push("mx_ResizeHandle--horizontal"),t&&o.push("mx_ResizeHandle_reverse"),s.createElement("div",{ref:i,className:o.join(" "),"data-id":n},s.createElement("div",null))};class ay{constructor(e,t,n){(0,i.A)(this,"classNames",void 0),(0,i.A)(this,"onMouseDown",e=>{var t,n,i;if(0!==e.button)return;const s=e.target&&e.target.closest(`.${this.classNames.handle}`),o=null==this||null===(t=this.config)||void 0===t?void 0:t.handler;if(!s||!o&&s.parentElement!==this.container||o&&s!==o)return;var r;(e.preventDefault(),this.classNames.resizing)&&(null===(r=this.container)||void 0===r||null===(r=r.classList)||void 0===r||r.add(this.classNames.resizing));null===(n=this.config)||void 0===n||null===(i=n.onResizeStart)||void 0===i||i.call(n);const{sizer:a,distributor:l}=this.createSizerAndDistributor(s);l.start();const c=e=>{const t=a.offsetFromEvent(e);l.resizeFromContainerOffset(t)},d=document.body,m=()=>{var e,t,n;this.classNames.resizing&&(null===(n=this.container)||void 0===n||null===(n=n.classList)||void 0===n||n.remove(this.classNames.resizing));l.finish(),null===(e=this.config)||void 0===e||null===(t=e.onResizeStop)||void 0===t||t.call(e),d.removeEventListener("mouseup",m,!1),document.removeEventListener("mouseleave",m,!1),d.removeEventListener("mousemove",c,!1)};d.addEventListener("mouseup",m,!1),document.addEventListener("mouseleave",m,!1),d.addEventListener("mousemove",c,!1)}),(0,i.A)(this,"onResize",(0,Gn.A)(()=>{const e=this.getDistributors();e.forEach(e=>e.start()),e.forEach(e=>e.finish())},100,{trailing:!0,leading:!0})),(0,i.A)(this,"getDistributors",()=>this.getResizeHandles().map(e=>{const{distributor:t}=this.createSizerAndDistributor(e);return t})),this.container=e,this.distributorCtor=t,this.config=n,this.classNames={handle:"resizer-handle",reverse:"resizer-reverse",vertical:"resizer-vertical",resizing:"resizer-resizing"}}setClassNames(e){this.classNames=e}attach(){var e,t;const n=null!==(e=null==this||null===(t=this.config)||void 0===t||null===(t=t.handler)||void 0===t?void 0:t.parentElement)&&void 0!==e?e:this.container;null==n||n.addEventListener("mousedown",this.onMouseDown,!1),window.addEventListener("resize",this.onResize)}detach(){var e,t;const n=null!==(e=null==this||null===(t=this.config)||void 0===t||null===(t=t.handler)||void 0===t?void 0:t.parentElement)&&void 0!==e?e:this.container;null==n||n.removeEventListener("mousedown",this.onMouseDown,!1),window.removeEventListener("resize",this.onResize)}forHandleAt(e){const t=this.getResizeHandles()[e];if(t){const{distributor:e}=this.createSizerAndDistributor(t);return e}}forHandleWithId(e){const t=this.getResizeHandles().find(t=>t.getAttribute("data-id")===e);if(t){const{distributor:e}=this.createSizerAndDistributor(t);return e}}isReverseResizeHandle(e){return e.classList.contains(this.classNames.reverse)}isResizeHandle(e){return e.classList.contains(this.classNames.handle)}createSizerAndDistributor(e){var t;const n=e.classList.contains(this.classNames.vertical),i=this.isReverseResizeHandle(e),s=this.distributorCtor,o=null!==(t=this.config)&&void 0!==t&&t.handler?this.container:void 0,r=s.createSizer(this.container,n,i),a=s.createItem(e,this,r,null!=o?o:void 0);return{sizer:r,distributor:new s(a)}}getResizeHandles(){var e,t;return null!=this&&null!==(e=this.config)&&void 0!==e&&e.handler?[this.config.handler]:null!==(t=this.container)&&void 0!==t&&t.children?Array.from(this.container.querySelectorAll(`.${this.classNames.handle}`)):[]}}class ly{constructor(e,t,n){this.container=e,this.vertical=t,this.reverse=n}getItemOffset(e){const t=(this.vertical?e.offsetTop:e.offsetLeft)-this.getOffset();return this.reverse?this.getTotalSize()-(t+this.getItemSize(e)):t}getItemSize(e){return this.vertical?e.offsetHeight:e.offsetWidth}getTotalSize(){return this.vertical?this.container.offsetHeight:this.container.offsetWidth}getOffset(){return this.vertical?this.container.offsetTop:this.container.offsetLeft}getPageOffset(){let e=this.container,t=0;for(;e;){t+=this.vertical?e.offsetTop:e.offsetLeft,e=e.offsetParent}return t}getDesiredItemSize(e){return this.vertical?e.style.height:e.style.width}setItemSize(e,t){this.vertical?e.style.height=t:e.style.width=t}clearItemSize(e){this.vertical?e.style.removeProperty("height"):e.style.removeProperty("width")}start(e){}finish(e){}offsetFromEvent(e){const t=this.vertical?e.pageY:e.pageX;return this.reverse?this.getPageOffset()+this.getTotalSize()-t:t-this.getPageOffset()}}class cy{constructor(e,t,n,s){(0,i.A)(this,"domNode",void 0),(0,i.A)(this,"id",void 0),(0,i.A)(this,"reverse",void 0),this.resizer=t,this.sizer=n,this.container=s,this.reverse=t.isReverseResizeHandle(e),this.domNode=s||(this.reverse?e.nextElementSibling:e.previousElementSibling),this.id=e.getAttribute("data-id")}copyWith(e,t,n,i){return new(0,this.constructor)(e,t,n,i)}advance(e){let t=this.reverse?this.domNode.previousElementSibling:this.domNode.nextElementSibling;const n=e!==this.reverse;do{var i,s;if(n)t=null===(i=t)||void 0===i?void 0:i.nextElementSibling;else t=null===(s=t)||void 0===s?void 0:s.previousElementSibling}while(t&&!this.resizer.isResizeHandle(t));if(t){const e=this.copyWith(t,this.resizer,this.sizer);return e.reverse=this.reverse,e}}next(){return this.advance(!0)}previous(){return this.advance(!1)}size(){return this.sizer.getItemSize(this.domNode)}offset(){return this.sizer.getItemOffset(this.domNode)}start(){this.sizer.start(this.domNode)}finish(){this.sizer.finish(this.domNode)}getSize(){return this.sizer.getDesiredItemSize(this.domNode)}setRawSize(e){this.sizer.setItemSize(this.domNode,e)}setSize(e){var t,n;this.setRawSize(`${Math.round(e)}px`),null===(t=this.resizer.config)||void 0===t||null===(n=t.onResized)||void 0===n||n.call(t,e,this.id,this.domNode)}clearSize(){var e,t;this.sizer.clearItemSize(this.domNode),null===(e=this.resizer.config)||void 0===e||null===(t=e.onResized)||void 0===t||t.call(e,null,this.id,this.domNode)}first(){var e;if(null===(e=this.domNode.parentElement)||void 0===e||!e.children)return;const t=Array.from(this.domNode.parentElement.children).find(e=>this.resizer.isResizeHandle(e));return t?this.copyWith(t,this.resizer,this.sizer):void 0}last(){var e;if(null===(e=this.domNode.parentElement)||void 0===e||!e.children)return;const t=Array.from(this.domNode.parentElement.children).reverse().find(e=>this.resizer.isResizeHandle(e));return t?this.copyWith(t,this.resizer,this.sizer):void 0}}class dy{static createSizer(e,t,n){return new ly(e,t,n)}constructor(e){(0,i.A)(this,"beforeOffset",void 0),this.item=e,this.beforeOffset=e.offset()}get size(){return this.item.getSize()}set size(e){this.item.setRawSize(e)}resize(e){this.item.setSize(e)}resizeFromContainerOffset(e){this.resize(e-this.beforeOffset)}start(){this.item.start()}finish(){this.item.finish()}}class my extends dy{static createItem(e,t,n){return new cy(e,t,n)}}class uy extends ly{start(e){this.vertical?e.style.minHeight="":e.style.minWidth=""}finish(e){const t=e.offsetParent;if(t)if(this.vertical){const n=(e.offsetHeight/t.offsetHeight*100).toFixed(2)+"%";e.style.minHeight=n,e.style.height=n}else{const n=(e.offsetWidth/t.offsetWidth*100).toFixed(2)+"%";e.style.minWidth=n,e.style.width=n}}}class py extends my{static createSizer(e,t,n){return new uy(e,t,n)}}class hy extends s.Component{constructor(e,t){super(e,t),(0,i.A)(this,"unmounted",!1),(0,i.A)(this,"resizeContainer",void 0),(0,i.A)(this,"resizer",void 0),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"onIsResizing",e=>{this.setState({resizingVertical:e}),e||this.relaxResizer()}),(0,i.A)(this,"collectResizer",e=>{this.resizeContainer&&this.resizer.detach(),e&&(this.resizer.container=e,this.resizer.attach()),this.resizeContainer=e,this.loadResizerPreferences()}),(0,i.A)(this,"getAppsHash",e=>e.map(e=>e.id).join("~")),(0,i.A)(this,"relaxResizer",()=>{const e=this.resizer.getDistributors();e.forEach(e=>e.start()),e.forEach(e=>e.finish())}),(0,i.A)(this,"loadResizerPreferences",()=>{const e=this.context.widgetLayoutStore.getResizerDistributions(this.props.room,"top");if(this.state.apps&&this.topApps().length-1===e.length)e.forEach((e,t)=>{const n=this.resizer.forHandleAt(t);n&&(n.size=e,n.finish())});else if(this.state.apps){const e=this.resizer.getDistributors();e.forEach(e=>e.item.clearSize()),e.forEach(e=>e.start()),e.forEach(e=>e.finish())}}),(0,i.A)(this,"onAction",e=>{const t=this.props.room.roomId+"_hide_widget_drawer";if("appsDrawer"===e.action)e.show?localStorage.setItem(t,"false"):localStorage.setItem(t,"true")}),(0,i.A)(this,"getApps",()=>({top:this.context.widgetLayoutStore.getContainerWidgets(this.props.room,"top"),center:this.context.widgetLayoutStore.getContainerWidgets(this.props.room,"center")})),(0,i.A)(this,"topApps",()=>this.state.apps.top),(0,i.A)(this,"centerApps",()=>this.state.apps.center),(0,i.A)(this,"updateApps",()=>{this.unmounted||this.setState({apps:this.getApps()})}),this.state={apps:this.getApps(),resizingVertical:!1,resizingHorizontal:!1,resizing:!1},this.resizer=this.createResizer()}componentDidMount(){this.unmounted=!1,this.context.resizeNotifier.on("isResizing",this.onIsResizing),0===oy&&window.addEventListener("message",iy,!1),oy+=1,this.context.widgetLayoutStore.on(zg.a.emissionForRoom(this.props.room),this.updateApps),this.dispatcherRef=K.A.register(this.onAction)}componentWillUnmount(){this.unmounted=!0,function(){if(oy-=1,0===oy&&window.removeEventListener("message",iy),oy<0){const e=new Error("ScalarMessaging: mismatched startListening / stopListening detected. Negative count");o.vF.error(e)}}(),this.context.widgetLayoutStore.off(zg.a.emissionForRoom(this.props.room),this.updateApps),K.A.unregister(this.dispatcherRef),this.resizeContainer&&this.resizer.detach(),this.context.resizeNotifier.off("isResizing",this.onIsResizing)}createResizer(){const e=new ay(null,py,{onResizeStart:()=>{var e;null===(e=this.resizeContainer)||void 0===e||e.classList.add("mx_AppsDrawer--resizing"),this.setState({resizingHorizontal:!0})},onResizeStop:()=>{var e;null===(e=this.resizeContainer)||void 0===e||e.classList.remove("mx_AppsDrawer--resizing"),this.context.widgetLayoutStore.setResizerDistributions(this.props.room,"top",this.topApps().slice(1).map((e,t)=>this.resizer.forHandleAt(t).size)),this.setState({resizingHorizontal:!1})}});return e.setClassNames({handle:"mx_ResizeHandle",vertical:"mx_ResizeHandle--vertical",reverse:"mx_ResizeHandle_reverse"}),e}componentDidUpdate(e,t){e.userId!==this.props.userId||e.room!==this.props.room?this.updateApps():this.getAppsHash(this.topApps())!==this.getAppsHash(t.apps.top)&&this.loadResizerPreferences()}isResizing(){return this.state.resizingVertical||this.state.resizingHorizontal}render(){if(!this.props.showApps)return s.createElement("div",null);const e=this.centerApps().length>0,t=(e?this.centerApps():this.topApps()).map((e,t,n)=>s.createElement(qg,{key:e.id,app:e,fullWidth:n.length<2,room:this.props.room,userId:this.props.userId,creatorUserId:e.creatorUserId,widgetPageTitle:fg.A.getWidgetDataTitle(e),waitForIframeLoad:e.waitForIframeLoad,pointerEvents:this.isResizing()?"none":void 0}));if(0===t.length)return s.createElement("div",null);let n;0===t.length&&Df.A.roomHasPendingWidgets(this.props.room.roomId,fg.A.getRoomWidgets(this.props.room))&&(n=s.createElement(Be.A,null));const i=un()({mx_AppsDrawer:!0,"mx_AppsDrawer--maximised":e,"mx_AppsDrawer--resizing":this.state.resizing,"mx_AppsDrawer--2apps":2===t.length,"mx_AppsDrawer--3apps":3===t.length}),o=s.createElement("div",{className:"mx_AppsContainer",ref:this.collectResizer},t.map((e,n)=>n<1?e:s.createElement(s.Fragment,{key:e.key},s.createElement(ry,{reverse:n>t.length/2}),e)));let r;return r=e?o:s.createElement(gy,{room:this.props.room,minHeight:100,maxHeight:this.props.maxHeight-50,className:"mx_AppsDrawer_resizer",handleWrapperClass:"mx_AppsDrawer_resizer_container",handleClass:"mx_AppsDrawer_resizer_container_handle",resizeNotifier:this.context.resizeNotifier},o),s.createElement("div",{role:this.props.role,className:i},r,n)}}(0,i.A)(hy,"defaultProps",{showApps:!0}),(0,i.A)(hy,"contextType",Ro.A);const gy=({room:e,minHeight:t,maxHeight:n,className:i,handleWrapperClass:o,handleClass:r,resizeNotifier:a,children:l})=>{const c=(0,s.useContext)(Ro.A);let m=c.widgetLayoutStore.getContainerHeight(e,"top");var u;(t||(t=100),n||(n=Iu.A.instance.windowHeight/4*3),m)?(m=(0,Xe.qE8)(m,0,100),m=(0,Xe.yj8)(m/100,t,n)):m=null!==(u=d.A.get().default_widget_container_height)&&void 0!==u?u:280;return s.createElement(kp.c,{size:{height:Math.min(m,n),width:void 0},minHeight:t,maxHeight:n,onResizeStart:()=>{a.startResizing()},onResize:()=>{a.notifyTimelineHeightChanged()},onResizeStop:(i,s,o,r)=>{let l=m+r.height;l=100*(0,Xe.s5D)(l,t,n),c.widgetLayoutStore.setContainerHeight(e,"top",l),a.stopResizing()},className:i,handleWrapperClass:o,handleClasses:{bottom:r},enable:{bottom:!0}},l)};var vy=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/webrtc/callEventTypes.ts"),_y=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/mic-off-solid.js"),fy=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/mic-on-solid.js");class yy extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"element",void 0),(0,i.A)(this,"setElementRef",e=>{var t;e?(this.element=e,e.addEventListener("resize",this.onResize)):null===(t=this.element)||void 0===t||t.removeEventListener("resize",this.onResize)}),(0,i.A)(this,"onNewStream",()=>{this.setState({audioMuted:this.props.feed.isAudioMuted(),videoMuted:this.props.feed.isVideoMuted()}),this.playMedia()}),(0,i.A)(this,"onMuteStateChanged",()=>{this.setState({audioMuted:this.props.feed.isAudioMuted(),videoMuted:this.props.feed.isVideoMuted()})}),(0,i.A)(this,"onResize",e=>{this.props.onResize&&!this.props.feed.isLocal()&&this.props.onResize(e)}),this.state={audioMuted:this.props.feed.isAudioMuted(),videoMuted:this.props.feed.isVideoMuted()}}componentDidMount(){this.updateFeed(null,this.props.feed),this.playMedia()}componentWillUnmount(){this.updateFeed(this.props.feed,null)}componentDidUpdate(e,t){this.updateFeed(e.feed,this.props.feed),t.videoMuted===this.state.videoMuted&&e.feed.stream===this.props.feed.stream||this.playMedia()}static getDerivedStateFromProps(e){return{audioMuted:e.feed.isAudioMuted(),videoMuted:e.feed.isVideoMuted()}}updateFeed(e,t){e!==t&&(e&&(this.props.feed.removeListener(wp.B.NewStream,this.onNewStream),this.props.feed.removeListener(wp.B.MuteStateChanged,this.onMuteStateChanged),this.props.feed.purpose===vy.h.Usermedia&&this.props.feed.measureVolumeActivity(!1),this.stopMedia()),t&&(this.props.feed.addListener(wp.B.NewStream,this.onNewStream),this.props.feed.addListener(wp.B.MuteStateChanged,this.onMuteStateChanged),this.props.feed.purpose===vy.h.Usermedia&&this.props.feed.measureVolumeActivity(!0),this.playMedia()))}async playMedia(){const e=this.element;if(e){e.muted=!0,e.srcObject=this.props.feed.stream,e.autoplay=!0;try{await e.play()}catch(e){o.vF.info(`Failed to play media element with feed for userId ${this.props.feed.userId} with purpose ${this.props.feed.purpose}`,e)}}}stopMedia(){const e=this.element;e&&(e.pause(),e.removeAttribute("src"))}render(){const{pipMode:e,primary:t,secondary:n,feed:i}=this.props,o=un()("mx_VideoFeed",{mx_VideoFeed_primary:t,mx_VideoFeed_secondary:n,mx_VideoFeed_voice:this.state.videoMuted});let r,a;if(i.purpose===vy.h.Screenshare||e||(r=s.createElement("div",{className:"mx_VideoFeed_mic"},this.state.audioMuted?s.createElement(_y.A,null):s.createElement(fy.A,null))),this.state.videoMuted){var l,c;const n=this.context.legacyCallHandler.roomIdForCall(this.props.call),i=null!==(l=n?null===(c=this.context.client)||void 0===c?void 0:c.getRoom(n):void 0)&&void 0!==l?l:void 0;let o;e&&t?o="76px":e&&!t?o="16px":!e&&t&&(o="160px"),a=s.createElement(ms.A,{room:i,size:o})}else{const e=un()("mx_VideoFeed_video",{mx_VideoFeed_video_mirror:this.props.feed.isLocal()&&this.props.feed.purpose===vy.h.Usermedia&&S.A.getValue("VideoView.flipVideoHorizontally")});a=s.createElement("video",{className:e,ref:this.setElementRef})}return s.createElement("div",{className:o},r,a)}}(0,i.A)(yy,"contextType",Ro.A);class Ey extends s.Component{render(){const e=this.props.feeds.map(e=>s.createElement(yy,{key:e.stream.id,feed:e,call:this.props.call,primary:!1,pipMode:this.props.pipMode})),t=un()("mx_LegacyCallViewSidebar",{mx_LegacyCallViewSidebar_pipMode:this.props.pipMode});return s.createElement("div",{className:t},e)}}var wy=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/voice-call-solid.js");const Sy=({onExpand:e,onPin:t,onMaximize:n})=>s.createElement("div",{className:"mx_LegacyCallViewHeader_controls"},n&&s.createElement(Ve.A,{className:"mx_LegacyCallViewHeader_button",onClick:n,title:(0,c._t)("voip|maximise")},s.createElement(Sg.A,null)),t&&s.createElement(Ve.A,{className:"mx_LegacyCallViewHeader_button",onClick:t,title:(0,c._t)("action|pin")},s.createElement(af.A,null)),e&&s.createElement(Ve.A,{className:"mx_LegacyCallViewHeader_button",onClick:e,title:(0,c._t)("voip|expand")},s.createElement(mt.A,null))),by=({callRoom:e})=>s.createElement("span",{className:"mx_LegacyCallViewHeader_secondaryCallInfo"},s.createElement(ms.A,{room:e,size:"16px"}),s.createElement("span",{className:"mx_LegacyCallView_secondaryCall_roomName"},(0,c._t)("voip|on_hold",{name:e.name}))),Ay=({pipMode:e=!1,callRooms:t,onPipMouseDown:n,onExpand:i,onPin:o,onMaximize:r})=>{const[a,l]=t,d=a.name;return e?s.createElement("div",{className:"mx_LegacyCallViewHeader mx_LegacyCallViewHeader_pip",onMouseDown:n},s.createElement(ms.A,{room:a,size:"32px"}),s.createElement("div",{className:"mx_LegacyCallViewHeader_callInfo"},s.createElement("div",{className:"mx_LegacyCallViewHeader_roomName"},d),l&&s.createElement(by,{callRoom:l})),s.createElement(Sy,{onExpand:i,onPin:o,onMaximize:r})):s.createElement("div",{className:"mx_LegacyCallViewHeader"},s.createElement("div",{className:"mx_LegacyCallViewHeader_icon"},s.createElement(wy.A,null)),s.createElement("span",{className:"mx_LegacyCallViewHeader_text"},(0,c._t)("action|call")),s.createElement(Sy,{onMaximize:r}))};var Cy=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/chevron-up.js"),xy=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/dial-pad.js"),ky=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/video-call-off-solid.js"),Ry=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/share-screen-solid.js"),Iy=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/list-view.js"),Ty=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/spotlight-view.js"),Py=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/end-call.js");class Ny extends s.Component{constructor(...e){super(...e),(0,i.A)(this,"onHoldClick",()=>{this.props.call.setRemoteOnHold(!0),this.props.onFinished()}),(0,i.A)(this,"onUnholdClick",()=>{this.context.legacyCallHandler.setActiveCallRoomId(this.props.call.roomId),this.props.onFinished()}),(0,i.A)(this,"onTransferClick",()=>{this.context.legacyCallHandler.showTransferDialog(this.props.call),this.props.onFinished()})}render(){const e=this.props.call.isRemoteOnHold()?(0,c._t)("action|resume"):(0,c._t)("action|hold"),t=this.props.call.isRemoteOnHold()?this.onUnholdClick:this.onHoldClick;let n;return this.props.call.opponentCanBeTransferred()&&(n=s.createElement(tr.Dr,{className:"mx_LegacyCallContextMenu_item",onClick:this.onTransferClick},(0,c._t)("action|transfer"))),s.createElement(tr.Ay,this.props,s.createElement(tr.Dr,{className:"mx_LegacyCallContextMenu_item",onClick:t},e),n)}}(0,i.A)(Ny,"contextType",Ro.A);var Dy=n("./src/components/views/voip/DialPad.tsx");class My extends s.Component{constructor(e){super(e),(0,i.A)(this,"numberEntryFieldRef",(0,s.createRef)()),(0,i.A)(this,"onDigitPress",(e,t)=>{var n;(this.props.call.sendDtmfDigit(e),this.setState({value:this.state.value+e}),"click"===t.type)&&(null===(n=this.numberEntryFieldRef.current)||void 0===n||n.focus())}),(0,i.A)(this,"onCancelClick",()=>{this.props.onFinished()}),(0,i.A)(this,"onKeyDown",e=>{"Backspace"!==e.code&&"Delete"!==e.code||e.preventDefault()}),(0,i.A)(this,"onChange",e=>{this.setState({value:e.target.value})}),this.state={value:""}}render(){return s.createElement(tr.Ay,this.props,s.createElement("div",{className:"mx_DialPadContextMenuWrapper"},s.createElement("div",null,s.createElement(Ve.A,{className:"mx_DialPadContextMenu_cancel",onClick:this.onCancelClick},s.createElement(ti.A,null))),s.createElement("div",{className:"mx_DialPadContextMenu_header"},s.createElement(yi.A,{ref:this.numberEntryFieldRef,className:"mx_DialPadContextMenu_dialled",value:this.state.value,autoFocus:!0,onKeyDown:this.onKeyDown,onChange:this.onChange})),s.createElement("div",{className:"mx_DialPadContextMenu_dialPad"},s.createElement(Dy.Ay,{onDigitPress:this.onDigitPress,hasDial:!1}))))}}const Oy=["deviceKinds"],Fy={[Yd.cm.AudioInput]:(0,c.AO)("voip|input_devices"),[Yd.cm.AudioOutput]:(0,c.AO)("voip|output_devices"),[Yd.cm.VideoInput]:(0,c.AO)("common|cameras")},Ly=({label:e,selected:t,onClick:n})=>s.createElement(yu.h6,{label:e,active:t,onClick:n}),Uy=({deviceKind:e})=>{const[t,n]=(0,s.useState)([]),[i,o]=(0,s.useState)(Yd.Ay.getDevice(e));(0,s.useEffect)(()=>{(async()=>{var t,i;n(null!==(t=null===(i=await Yd.Ay.getDevices())||void 0===i?void 0:i[e])&&void 0!==t?t:[])})()},[e]);return s.createElement(yu.tx,{label:(0,c._t)(Fy[e])},t.map(({label:t,deviceId:n})=>s.createElement(Ly,{key:n,label:t,selected:i===n,onClick:()=>(t=>{Yd.Ay.instance.setDevice(t,e),o(t)})(n)})))},Vy=e=>{let{deviceKinds:t}=e,n=(0,v.A)(e,Oy);return s.createElement(yu.Ay,(0,xn.A)({compact:!0,className:"mx_DeviceContextMenu"},n),t.map(e=>s.createElement(Uy,{key:e,deviceKind:e})))},By=["children","state","className","onLabel","onIcon","offLabel","offIcon","forceHide","onHover","ref"],jy=["state","deviceKinds"],Hy=e=>{let{children:t,state:n,className:i,onLabel:o,onIcon:r,offLabel:a,offIcon:l,forceHide:c,onHover:d,ref:m}=e,u=(0,v.A)(e,By);const p=un()("mx_LegacyCallViewButtons_button",i,{mx_LegacyCallViewButtons_button_on:n,mx_LegacyCallViewButtons_button_off:!n}),h=c?void 0:n?o:a;return s.createElement(Ve.A,(0,xn.A)({ref:m,className:p,title:h,placement:"top",onTooltipOpenChange:d},u),n?r:l,t)},zy=e=>{let{state:t,deviceKinds:n}=e,i=(0,v.A)(e,jy);const[o,r,a,l]=(0,tr.EF)(),[c,d]=(0,s.useState)(!1);return s.createElement(Hy,(0,xn.A)({ref:r,forceHide:o||c,state:t},i),s.createElement(Hy,{className:"mx_LegacyCallViewButtons_button mx_LegacyCallViewButtons_dropdownButton",onClick:e=>{e.stopPropagation(),a()},onIcon:s.createElement(Cy.A,null),offIcon:s.createElement(uu.A,null),onHover:e=>d(e),state:t}),o&&r.current&&s.createElement(Vy,(0,xn.A)({},(0,tr.Gi)(r.current.getBoundingClientRect()),{onFinished:l,deviceKinds:n})))};class Wy extends s.Component{constructor(e){super(e),(0,i.A)(this,"dialpadButton",(0,s.createRef)()),(0,i.A)(this,"contextMenuButton",(0,s.createRef)()),(0,i.A)(this,"controlsHideTimer",null),(0,i.A)(this,"onControlsHideTimer",()=>{this.state.hoveringControls||this.state.showDialpad||this.state.showMoreMenu||(this.controlsHideTimer=null,this.setState({visible:!1}))}),(0,i.A)(this,"onMouseEnter",()=>{this.setState({hoveringControls:!0})}),(0,i.A)(this,"onMouseLeave",()=>{this.setState({hoveringControls:!1})}),(0,i.A)(this,"onDialpadClick",()=>{this.state.showDialpad?this.setState({showDialpad:!1}):(this.setState({showDialpad:!0}),this.showControls())}),(0,i.A)(this,"onMoreClick",()=>{this.setState({showMoreMenu:!0}),this.showControls()}),(0,i.A)(this,"closeDialpad",()=>{this.setState({showDialpad:!1})}),(0,i.A)(this,"closeContextMenu",()=>{this.setState({showMoreMenu:!1})}),this.state={showDialpad:!1,hoveringControls:!1,showMoreMenu:!1,visible:!0}}componentDidMount(){this.showControls()}showControls(){this.state.showMoreMenu||this.state.showDialpad||(this.state.visible||this.setState({visible:!0}),null!==this.controlsHideTimer&&clearTimeout(this.controlsHideTimer),this.controlsHideTimer=window.setTimeout(this.onControlsHideTimer,2e3))}render(){const e=un()("mx_LegacyCallViewButtons",{mx_LegacyCallViewButtons_hidden:!this.state.visible});let t,n;return this.state.showDialpad&&this.dialpadButton.current&&(t=s.createElement(My,(0,xn.A)({},(0,tr.t$)(this.dialpadButton.current.getBoundingClientRect(),tr.t4.None,8),{mountAsChild:!this.props.pipMode,onFinished:this.closeDialpad,call:this.props.call}))),this.state.showMoreMenu&&this.contextMenuButton.current&&(n=s.createElement(Ny,(0,xn.A)({},(0,tr.t$)(this.contextMenuButton.current.getBoundingClientRect(),tr.t4.None,8),{mountAsChild:!this.props.pipMode,onFinished:this.closeContextMenu,call:this.props.call}))),s.createElement("div",{className:e,onMouseEnter:this.onMouseEnter,onMouseLeave:this.onMouseLeave},t,n,this.props.buttonsVisibility.dialpad&&s.createElement(tr.oW,{className:"mx_LegacyCallViewButtons_button",ref:this.dialpadButton,onClick:this.onDialpadClick,isExpanded:this.state.showDialpad,title:(0,c._t)("voip|dialpad"),placement:"top"},s.createElement(xy.A,null)),s.createElement(zy,{state:!this.props.buttonsState.micMuted,className:"mx_LegacyCallViewButtons_button_mic",onLabel:(0,c._t)("voip|disable_microphone"),onIcon:s.createElement(fy.A,null),offLabel:(0,c._t)("voip|enable_microphone"),offIcon:s.createElement(_y.A,null),onClick:this.props.handlers.onMicMuteClick,deviceKinds:[Yd.cm.AudioInput,Yd.cm.AudioOutput]}),this.props.buttonsVisibility.vidMute&&s.createElement(zy,{state:!this.props.buttonsState.vidMuted,className:"mx_LegacyCallViewButtons_button_vid",onLabel:(0,c._t)("voip|disable_camera"),onIcon:s.createElement(om.A,null),offLabel:(0,c._t)("voip|enable_camera"),offIcon:s.createElement(ky.A,null),onClick:this.props.handlers.onVidMuteClick,deviceKinds:[Yd.cm.VideoInput]}),this.props.buttonsVisibility.screensharing&&s.createElement(Hy,{state:this.props.buttonsState.screensharing,className:"mx_LegacyCallViewButtons_button_screensharing",onLabel:(0,c._t)("voip|stop_screenshare"),onIcon:s.createElement(Ry.A,null),offLabel:(0,c._t)("voip|start_screenshare"),offIcon:s.createElement(Ry.A,null),onClick:this.props.handlers.onScreenshareClick}),this.props.buttonsVisibility.sidebar&&s.createElement(Hy,{state:this.props.buttonsState.sidebarShown,className:"mx_LegacyCallViewButtons_button_sidebar",onLabel:(0,c._t)("voip|hide_sidebar_button"),onIcon:s.createElement(Iy.A,null),offLabel:(0,c._t)("voip|show_sidebar_button"),offIcon:s.createElement(Ty.A,null),onClick:this.props.handlers.onToggleSidebarClick}),this.props.buttonsVisibility.contextMenu&&s.createElement(tr.oW,{className:"mx_LegacyCallViewButtons_button",onClick:this.onMoreClick,ref:this.contextMenuButton,isExpanded:this.state.showMoreMenu,title:(0,c._t)("voip|more_button"),placement:"top"},s.createElement(uc.A,null)),s.createElement(Ve.A,{className:"mx_LegacyCallViewButtons_button mx_LegacyCallViewButtons_button_hangup",onClick:this.props.handlers.onHangupClick,title:(0,c._t)("voip|hangup"),placement:"top"},s.createElement(Py.A,null)))}}function Jy(){return document.fullscreenElement}function Gy(){document.exitFullscreen()}class Ky extends s.Component{constructor(e){super(e),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"contentWrapperRef",(0,s.createRef)()),(0,i.A)(this,"buttonsRef",(0,s.createRef)()),(0,i.A)(this,"onAction",e=>{if("video_fullscreen"===e.action){if(!this.contentWrapperRef.current)return;e.fullscreen?this.contentWrapperRef.current.requestFullscreen():Jy()&&Gy()}}),(0,i.A)(this,"onCallState",e=>{this.setState({callState:e})}),(0,i.A)(this,"onFeedsChanged",e=>{const{primary:t,secondary:n,sidebar:i}=Ky.getOrderedFeeds(e);this.setState({primaryFeed:t,secondaryFeed:n,sidebarFeeds:i,micMuted:this.props.call.isMicrophoneMuted(),vidMuted:this.props.call.isLocalVideoMuted()})}),(0,i.A)(this,"onCallLocalHoldUnhold",()=>{this.setState({isLocalOnHold:this.props.call.isLocalOnHold()})}),(0,i.A)(this,"onCallRemoteHoldUnhold",()=>{this.setState({isRemoteOnHold:this.props.call.isRemoteOnHold(),isLocalOnHold:this.props.call.isLocalOnHold()})}),(0,i.A)(this,"onMouseMove",()=>{var e;null===(e=this.buttonsRef.current)||void 0===e||e.showControls()}),(0,i.A)(this,"onMaximizeClick",()=>{K.A.dispatch({action:"video_fullscreen",fullscreen:!0})}),(0,i.A)(this,"onMicMuteClick",async()=>{const e=!this.state.micMuted;this.setState({micMuted:await this.props.call.setMicrophoneMuted(e)})}),(0,i.A)(this,"onVidMuteClick",async()=>{const e=!this.state.vidMuted;this.setState({vidMuted:await this.props.call.setLocalVideoMuted(e)})}),(0,i.A)(this,"onScreenshareClick",async()=>{var e,t;let n;n=this.state.screensharing?await this.props.call.setScreensharingEnabled(!1):await this.props.call.setScreensharingEnabled(!0),null===(e=(t=this.props).setSidebarShown)||void 0===e||e.call(t,!0),this.setState({screensharing:n})}),(0,i.A)(this,"onNativeKeyDown",e=>{var t,n;let i=!1;switch((0,dc.zM)().getCallAction(e)){case mc.bY.ToggleMicInCall:this.onMicMuteClick(),null===(t=this.buttonsRef.current)||void 0===t||t.showControls(),i=!0;break;case mc.bY.ToggleWebcamInCall:this.onVidMuteClick(),null===(n=this.buttonsRef.current)||void 0===n||n.showControls(),i=!0}i&&(e.stopPropagation(),e.preventDefault())}),(0,i.A)(this,"onCallResumeClick",()=>{const e=this.context.legacyCallHandler.roomIdForCall(this.props.call);e&&this.context.legacyCallHandler.setActiveCallRoomId(e)}),(0,i.A)(this,"onTransferClick",()=>{const e=this.context.legacyCallHandler.getTransfereeForCallId(this.props.call.callId);e&&this.props.call.transferToCall(e)}),(0,i.A)(this,"onHangupClick",()=>{const e=this.context.legacyCallHandler.roomIdForCall(this.props.call);e&&this.context.legacyCallHandler.hangupOrReject(e)}),(0,i.A)(this,"onToggleSidebar",()=>{var e,t;null===(e=(t=this.props).setSidebarShown)||void 0===e||e.call(t,!this.props.sidebarShown)});const{primary:t,secondary:n,sidebar:o}=Ky.getOrderedFeeds(this.props.call.getFeeds());this.state={isLocalOnHold:this.props.call.isLocalOnHold(),isRemoteOnHold:this.props.call.isRemoteOnHold(),micMuted:this.props.call.isMicrophoneMuted(),vidMuted:this.props.call.isLocalVideoMuted(),screensharing:this.props.call.isScreensharing(),callState:this.props.call.state,primaryFeed:t,secondaryFeed:n,sidebarFeeds:o}}componentDidMount(){this.updateCallListeners(null,this.props.call),this.dispatcherRef=K.A.register(this.onAction),document.addEventListener("keydown",this.onNativeKeyDown)}componentWillUnmount(){Jy()&&Gy(),document.removeEventListener("keydown",this.onNativeKeyDown),this.updateCallListeners(this.props.call,null),K.A.unregister(this.dispatcherRef)}static getDerivedStateFromProps(e){const{primary:t,secondary:n,sidebar:i}=Ky.getOrderedFeeds(e.call.getFeeds());return{primaryFeed:t,secondaryFeed:n,sidebarFeeds:i}}componentDidUpdate(e){this.props.call!==e.call&&(this.setState({isLocalOnHold:this.props.call.isLocalOnHold(),isRemoteOnHold:this.props.call.isRemoteOnHold(),micMuted:this.props.call.isMicrophoneMuted(),vidMuted:this.props.call.isLocalVideoMuted(),callState:this.props.call.state}),this.updateCallListeners(null,this.props.call))}updateCallListeners(e,t){e!==t&&(e&&(e.removeListener(Kl.$E.State,this.onCallState),e.removeListener(Kl.$E.LocalHoldUnhold,this.onCallLocalHoldUnhold),e.removeListener(Kl.$E.RemoteHoldUnhold,this.onCallRemoteHoldUnhold),e.removeListener(Kl.$E.FeedsChanged,this.onFeedsChanged)),t&&(t.on(Kl.$E.State,this.onCallState),t.on(Kl.$E.LocalHoldUnhold,this.onCallLocalHoldUnhold),t.on(Kl.$E.RemoteHoldUnhold,this.onCallRemoteHoldUnhold),t.on(Kl.$E.FeedsChanged,this.onFeedsChanged)))}static getOrderedFeeds(e){if(e.length<=2)return{primary:e.find(e=>!e.isLocal()),secondary:e.find(e=>e.isLocal()),sidebar:[]};let t;const n=e.filter(e=>e.purpose===vy.h.Screenshare);t=n.find(e=>!e.isLocal())||n[0],t||(t=e.find(e=>!e.isLocal()));const i=[...e];return t&&i.splice(i.indexOf(t),1),i.sort((e,t)=>e.isLocal()&&!t.isLocal()?-1:!e.isLocal()&&t.isLocal()?1:0),{primary:t,sidebar:i}}renderCallControls(){const{call:e,pipMode:t,sidebarShown:n}=this.props,{callState:i,micMuted:o,vidMuted:r,screensharing:a,secondaryFeed:l,sidebarFeeds:c}=this.state,d=e.opponentSupportsSDPStreamMetadata()||e.hasLocalUserMediaVideoTrack,m=(e.opponentSupportsSDPStreamMetadata()||e.hasLocalUserMediaVideoTrack)&&e.state===Kl.iP.Connected,u=!t&&(l&&!l.isVideoMuted()||c.length>0),p=i===Kl.iP.Connected,h=i===Kl.iP.Connected&&e.opponentSupportsDTMF();return s.createElement(Wy,{ref:this.buttonsRef,call:e,pipMode:t,handlers:{onToggleSidebarClick:this.onToggleSidebar,onScreenshareClick:this.onScreenshareClick,onHangupClick:this.onHangupClick,onMicMuteClick:this.onMicMuteClick,onVidMuteClick:this.onVidMuteClick},buttonsState:{micMuted:o,vidMuted:r,sidebarShown:n,screensharing:a},buttonsVisibility:{vidMute:d,screensharing:m,sidebar:u,contextMenu:p,dialpad:h}})}renderToast(){var e;const{call:t,sidebarShown:n}=this.props;if(!t.getFeeds().some(e=>e.purpose===vy.h.Screenshare))return null;const i=t.isScreensharing(),{primaryFeed:o}=this.state,r=null==o||null===(e=o.getMember())||void 0===e?void 0:e.name;if(!r)return null;let a=i?(0,c._t)("voip|you_are_presenting"):(0,c._t)("voip|user_is_presenting",{sharerName:r});return n||(a+=" • "+(t.isLocalVideoMuted()?(0,c._t)("voip|camera_disabled"):(0,c._t)("voip|camera_enabled"))),s.createElement("div",{className:"mx_LegacyCallView_toast"},a)}renderContent(){var e,t;const{pipMode:n,call:i,onResize:o,sidebarShown:r}=this.props,{isLocalOnHold:a,isRemoteOnHold:l,primaryFeed:d,secondaryFeed:m,sidebarFeeds:u}=this.state,p=this.context.legacyCallHandler.roomIdForCall(i),h=null!==(e=p?null===(t=this.context.client)||void 0===t?void 0:t.getRoom(p):void 0)&&void 0!==e?e:void 0,g=n?"76px":"160px",v=this.context.legacyCallHandler.getTransfereeForCallId(i.callId),_=a||l;let f;if(r&&m&&!m.isVideoMuted()&&(f=s.createElement(yy,{feed:m,call:i,pipMode:n,onResize:o,secondary:!0})),v||_){const e=un()("mx_LegacyCallView_content",{mx_LegacyCallView_content_hold:_}),t=(0,Mo._V)(i.getOpponentMember(),1024,1024,"crop");let n;if(v){var y,E;const e=this.context.legacyCallHandler.roomIdForCall(i),t=e?null===(y=this.context.client)||void 0===y?void 0:y.getRoom(e):null,o=t?t.name:(0,c._t)("voip|unknown_person"),r=this.context.legacyCallHandler.roomIdForCall(v),a=r?null===(E=this.context.client)||void 0===E?void 0:E.getRoom(r):null,l=a?a.name:(0,c._t)("voip|unknown_person");n=s.createElement("div",{className:"mx_LegacyCallView_status"},(0,c._t)("voip|consulting",{transferTarget:o,transferee:l},{a:e=>s.createElement(Ve.A,{kind:"link_inline",onClick:this.onTransferClick},e)}))}else{let e;if(l)e=(0,c._t)(this.context.legacyCallHandler.hasAnyUnheldCall()?(0,c.AO)("voip|call_held_switch"):(0,c.AO)("voip|call_held_resume"),{},{a:e=>s.createElement(Ve.A,{kind:"link_inline",onClick:this.onCallResumeClick},e)});else if(a){var w;e=(0,c._t)("voip|call_held",{peerName:null===(w=i.getOpponentMember())||void 0===w?void 0:w.name})}n=s.createElement("div",{className:"mx_LegacyCallView_status"},e)}return s.createElement("div",{className:e,onMouseMove:this.onMouseMove},s.createElement("div",{className:"mx_LegacyCallView_holdBackground",style:{backgroundImage:"url("+t+")"}}),n)}return i.noIncomingFeeds()?s.createElement("div",{className:"mx_LegacyCallView_content",onMouseMove:this.onMouseMove},s.createElement("div",{className:"mx_LegacyCallView_avatarsContainer"},s.createElement("div",{className:"mx_LegacyCallView_avatarContainer",style:{width:g,height:g}},s.createElement(ms.A,{room:h,size:g}))),s.createElement("div",{className:"mx_LegacyCallView_status"},(0,c._t)("voip|connecting")),f):n?s.createElement("div",{className:"mx_LegacyCallView_content",onMouseMove:this.onMouseMove},s.createElement(yy,{feed:d,call:i,pipMode:n,onResize:o,primary:!0})):m?s.createElement("div",{className:"mx_LegacyCallView_content",onMouseMove:this.onMouseMove},s.createElement(yy,{feed:d,call:i,pipMode:n,onResize:o,primary:!0}),f):s.createElement("div",{className:"mx_LegacyCallView_content",onMouseMove:this.onMouseMove},s.createElement(yy,{feed:d,call:i,pipMode:n,onResize:o,primary:!0}),r&&s.createElement(Ey,{feeds:u,call:i,pipMode:Boolean(n)}))}render(){var e,t;const{call:n,secondaryCall:i,pipMode:o,showApps:r,onMouseDownOnHeader:a,sidebarShown:l}=this.props,{sidebarFeeds:c}=this.state,d=this.context.legacyCallHandler.roomIdForCall(n),m=this.context.legacyCallHandler.roomIdForCall(i),u=d?null===(e=this.context.client)||void 0===e?void 0:e.getRoom(d):null;if(!u)return null;const p=m?null===(t=this.context.client)||void 0===t?void 0:t.getRoom(m):null,h=un()({mx_LegacyCallView:!0,mx_LegacyCallView_pip:o,mx_LegacyCallView_large:!o,mx_LegacyCallView_sidebar:l&&0!==c.length&&!o,mx_LegacyCallView_belowWidget:r});return s.createElement("div",{className:h},s.createElement(Ay,{onPipMouseDown:a,pipMode:o,callRooms:[u,null!=p?p:null],onMaximize:this.onMaximizeClick}),s.createElement("div",{className:"mx_LegacyCallView_content_wrapper",ref:this.contentWrapperRef},this.renderToast(),this.renderContent(),this.renderCallControls()))}}(0,i.A)(Ky,"contextType",Ro.A);class qy extends s.Component{constructor(e,t){super(e,t),(0,i.A)(this,"updateCall",()=>{const e=this.getCall();e!==this.state.call&&this.setState({call:e});const t=!!e&&this.context.legacyCallHandler.isCallSidebarShown(e.callId);t!==this.state.sidebarShown&&this.setState({sidebarShown:t})}),(0,i.A)(this,"onResizeStart",()=>{this.context.resizeNotifier.startResizing()}),(0,i.A)(this,"onResize",()=>{this.context.resizeNotifier.notifyTimelineHeightChanged()}),(0,i.A)(this,"onResizeStop",()=>{this.context.resizeNotifier.stopResizing()}),(0,i.A)(this,"setSidebarShown",e=>{this.state.call&&this.context.legacyCallHandler.setCallSidebarShown(this.state.call.callId,e)});const n=this.getCall();this.state={call:n,sidebarShown:!!n&&t.legacyCallHandler.isCallSidebarShown(n.callId)}}componentDidMount(){this.context.legacyCallHandler.addListener(tm.uv.CallState,this.updateCall),this.context.legacyCallHandler.addListener(tm.uv.CallChangeRoom,this.updateCall),this.context.legacyCallHandler.addListener(tm.uv.ShownSidebarsChanged,this.updateCall)}componentWillUnmount(){this.context.legacyCallHandler.removeListener(tm.uv.CallState,this.updateCall),this.context.legacyCallHandler.removeListener(tm.uv.CallChangeRoom,this.updateCall),this.context.legacyCallHandler.removeListener(tm.uv.ShownSidebarsChanged,this.updateCall)}getCall(){const e=this.context.legacyCallHandler.getCallForRoom(this.props.roomId);return e&&[Kl.iP.Ended,Kl.iP.Ringing].includes(e.state)?null:e}render(){return this.state.call?s.createElement("div",{className:"mx_LegacyCallViewForRoom"},s.createElement(kp.c,{minHeight:380,maxHeight:"80vh",enable:{top:!1,right:!1,bottom:!0,left:!1,topRight:!1,bottomRight:!1,bottomLeft:!1,topLeft:!1},onResizeStart:this.onResizeStart,onResize:this.onResize,onResizeStop:this.onResizeStop,className:"mx_LegacyCallViewForRoom_ResizeWrapper",handleClasses:{bottom:"mx_LegacyCallViewForRoom_ResizeHandle"}},s.createElement(Ky,{call:this.state.call,pipMode:!1,showApps:this.props.showApps,sidebarShown:this.state.sidebarShown,setSidebarShown:this.setSidebarShown}))):null}}(0,i.A)(qy,"contextType",Ro.A);class $y extends s.Component{shouldComponentUpdate(e){return(0,ui.No)(this.props,e)}render(){const e=s.createElement(qy,{roomId:this.props.room.roomId,showApps:this.props.showApps});let t;return S.A.getValue(as.f.Widgets)&&(t=s.createElement(hy,{room:this.props.room,userId:this.props.userId,showApps:this.props.showApps})),s.createElement(Xe.qme,{role:"region",className:"mx_AutoHideScrollbar mx_AuxPanel"},this.props.children,t,e)}}(0,i.A)($y,"defaultProps",{showApps:!0});var Yy=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/notifications-solid.js"),Qy=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/history.js"),Xy=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/user-profile-solid.js"),Zy=n("./src/hooks/room/useRoomCall.tsx");var eE=n("./src/components/views/rooms/RoomHeader/toggle/useToggled.tsx");function tE({Icon:e,phase:t}){const n=(0,eE.K)(t),i=un()({mx_RoomHeader_toggled:n});return s.createElement(e,{className:i})}const nE=({room:e})=>{const t=(0,s.useContext)(Ro.A),n=t.roomNotificationStateStore.getRoomState(e),i=(0,mo.dF)(n,Cr.ce.Update,()=>null==n?void 0:n.level),o=!!i&&[dr.S.Activity,dr.S.Notification,dr.S.Highlight].includes(i);return s.createElement(Ys.m,{label:(0,c._t)("right_panel|video_room_chat|title")},s.createElement(Tu.K,{"aria-label":(0,c._t)("right_panel|video_room_chat|title"),onClick:e=>{e.stopPropagation(),t.rightPanelStore.showOrHidePhase(Wu.n.Timeline)},indicator:o?"default":void 0},s.createElement(tE,{Icon:Zu.A,phase:Wu.n.Timeline})))},iE=({room:e})=>{const[t,n]=(0,s.useState)(!1),i=(0,mo.DY)(e,r.fZ1.Update,(0,s.useCallback)(()=>e.getMembersWithMembership($n.O.Knock),[e])),o=i.length;if(e.getJoinRule()!==r.dxp.Knock||0===o)return null;const a=e.client,l=a.getUserId()||"",d=e.canInvite(l),m=e.getMember(l),u=e.getLiveTimeline().getState(r.qss.FORWARDS),p=!(!m||!u)&&u.hasSufficientPowerLevelFor("kick",m.powerLevel);if(!d&&!p)return null;const h=e=>{X.Ay.createDialog(sn.A,{title:e.name,description:e.message})},g=()=>K.A.dispatch({action:"open_room_settings",room_id:e.roomId,initial_tab_id:ws.e.People});let v=s.createElement(Ve.A,{className:"mx_RoomKnocksBar_action",kind:"primary",onClick:g,title:(0,c._t)("action|view")},(0,c._t)("action|view")),_=(0,C.ki)(i.map(e=>e.name),3,!0),f=null;var y;1===o&&(v=s.createElement(s.Fragment,null,s.createElement(Ve.A,{className:"mx_RoomKnocksBar_action",disabled:!p||t,kind:"icon_primary_outline",onClick:()=>(t=>{n(!0),a.kick(e.roomId,t).catch(h).finally(()=>n(!1))})(i[0].userId),title:(0,c._t)("action|deny")},s.createElement(ti.A,{width:18,height:18})),s.createElement(Ve.A,{className:"mx_RoomKnocksBar_action",disabled:!d||t,kind:"icon_primary",onClick:()=>(t=>{n(!0),a.invite(e.roomId,t).catch(h).finally(()=>n(!1))})(i[0].userId),title:(0,c._t)("action|approve")},s.createElement(Je.A,{width:18,height:18}))),_=`${i[0].name} (${i[0].userId})`,f=(null===(y=i[0].events.member)||void 0===y?void 0:y.getContent().reason)&&s.createElement(Ve.A,{className:"mx_RoomKnocksBar_link",element:"a",kind:"link_inline",onClick:g},(0,c._t)("action|view_message")));return s.createElement("div",{className:"mx_RoomKnocksBar"},i.slice(0,2).map(e=>s.createElement(bo.A,{className:"mx_RoomKnocksBar_avatar",key:e.userId,member:e,size:"32px"})),s.createElement("div",{className:"mx_RoomKnocksBar_content"},s.createElement(In.A,{size:"4"},(0,c._t)("room|header|n_people_asking_to_join",{count:o})),s.createElement("p",{className:"mx_RoomKnocksBar_paragraph"},_,f)),v)},sE=({room:e})=>{const{canInviteGuests:t,guestSpaUrl:n,isRoomJoinable:i,canInvite:a}=(e=>{const t=(0,s.useMemo)(()=>d.A.get("element_call").guest_spa_url,[]),{joinRule:n,canInvite:i,canChangeJoinRule:o}=(0,zs.U)(e,t=>({joinRule:e.getJoinRule(),canInvite:e.canInvite(e.myUserId),canChangeJoinRule:t.maySendStateEvent(r.Bx4.RoomJoinRules,e.myUserId)})),a=(0,s.useMemo)(()=>n===r.dxp.Public||n===r.dxp.Knock&&i,[i,n]);return{canInviteGuests:(0,s.useMemo)(()=>(o||a)&&void 0!==t,[o,a,t]),guestSpaUrl:t,isRoomJoinable:()=>{const t=e.getJoinRule();return t===r.dxp.Public||t===r.dxp.Knock&&e.canInvite(e.myUserId)},canInvite:i}})(e),l=(0,s.useCallback)(()=>{if(!i())throw new Error("Cannot create link for room that users can not join without invite.");if(!n)throw new Error("No guest SPA url for external links provided.");const t=new URL(n);t.pathname="/room/",t.searchParams.set("roomId",e.roomId),e.hasEncryptionStateEvent()&&t.searchParams.set("perParticipantE2EE","true");for(const n of(0,Ls.Ex)(e))t.searchParams.set("viaServers",n);return t.hash="/"+e.name+t.search,t.search="",o.vF.info("Generated element call external url:",t),t},[n,i,e]),m=(0,s.useCallback)(()=>{try{const e=l();X.Ay.createDialog(tg.G,{target:e,customTitle:(0,c._t)("share|share_call"),subtitle:(0,c._t)("share|share_call_subtitle")})}catch(e){o.vF.error("Could not generate call link.",e)}},[l]),u=(0,s.useCallback)(()=>{i()?m():X.Ay.createDialog(oE,{room:e,canInvite:a}).finished.then(()=>{i()&&m()})},[i,m,e,a]);return s.createElement(s.Fragment,null,t&&s.createElement(Ys.m,{label:(0,c._t)("voip|get_call_link")},s.createElement(Tu.K,{onClick:u},s.createElement(Op.A,null))))},oE=({onFinished:e,room:t,canInvite:n})=>{const i=S.A.getValue("feature_ask_to_join"),[a,l]=s.useState(void 0),d=(0,s.useCallback)(async n=>{void 0===a&&(l(n),await t.client.sendStateEvent(t.roomId,r.Bx4.RoomJoinRules,{join_rule:n},""),setTimeout(()=>e(),1e3))},[a,e,t.client,t.roomId]);return s.createElement(ke.A,{title:(0,c._t)("update_room_access_modal|title"),onFinished:e,className:"mx_JoinRuleDialog"},s.createElement("p",null,(0,c._t)("update_room_access_modal|description",{},{b:e=>s.createElement("strong",null,e)})),s.createElement("p",null,(0,c._t)("update_room_access_modal|revert_access_description",{},{b:e=>s.createElement("strong",null,e)})),s.createElement(xs,{recommendedOption:r.dxp.Knock,room:t,disabledOptions:new Set([r.dxp.Invite,r.dxp.Private,r.dxp.Restricted]),hiddenOptions:new Set([r.dxp.Restricted].concat(i&&n?[]:[r.dxp.Knock])),beforeChange:async e=>(await d(e).catch(()=>!1),!0),closeSettingsFn:()=>{},onError:e=>o.vF.error("Could not generate change access level:",e)}),s.createElement("p",null,(0,c._t)("update_room_access_modal|dont_change_description")),s.createElement("div",{className:"mx_JoinRuleDialogButtons"},s.createElement(xe.$,{kind:"tertiary",className:"mx_Dialog_nonDialogButton",onClick:()=>{void 0===a&&e()}},(0,c._t)("update_room_access_modal|no_change"))))};var rE=n("./src/contexts/CurrentRightPanelPhaseContext.tsx");function aE({room:e,legacyAdditionalButtons:t,extraButtons:n}){const i=(0,s.useContext)(Ro.A),o=(0,df.ib)(e,2500),a=(0,df.Ah)(e,{throttleWait:2500,includeInvited:!0}),{voiceCallDisabledReason:l,voiceCallClick:d,videoCallDisabledReason:m,videoCallClick:u,toggleCallMaximized:p,isViewingCall:h,isConnectedToCall:g,activeCallSessionType:v,callOptions:_,showVoiceCallButton:f,showVideoCallButton:y}=(0,Zy.TO)(e),E=(e=>{const[t,n]=(0,s.useState)(dr.S.None),i=(0,s.useCallback)(()=>{switch(null==e?void 0:e.threadsAggregateNotificationType){case r.X5$.Highlight:return void n(dr.S.Highlight);case r.X5$.Total:return void n(dr.S.Notification)}(0,Ju.Nb)(e)?n(dr.S.Activity):n(dr.S.None)},[e]);return(0,mo.ml)(e,r.u99.UnreadNotifications,i),(0,mo.ml)(e,r.u99.Receipt,i),(0,mo.ml)(e,r.u99.Timeline,i),(0,mo.ml)(e,r.u99.Redaction,i),(0,mo.ml)(e,r.u99.LocalEchoUpdated,i),(0,mo.ml)(e,r.u99.MyMembership,i),(0,mo.ml)(e,r.juu.New,i),(0,mo.ml)(e,r.juu.Update,i),(0,s.useEffect)(()=>{i()},[i]),t})(e),w=(()=>{const[e,t]=(0,s.useState)(Em.n.instance.globalState);return(0,mo.ml)(Em.n.instance,Em.N,e=>{t(e)}),e})(),S=!!(0,dm.rT)(e),b=(0,es.ny)("feature_notifications"),A=(0,s.useCallback)(e=>u(e,_[0]),[_,u]),x=(0,s.useCallback)(e=>d(e,_[0]),[_,d]),k=s.createElement(Ys.m,{label:h?(0,c._t)("voip|minimise_call"):(0,c._t)("voip|maximise_call")},s.createElement(Tu.K,{onClick:p},s.createElement(om.A,null))),R=s.createElement(Ys.m,{label:null!=m?m:v===Kl.JG.Voice?(0,c._t)("voip|voice_call"):(0,c._t)("voip|video_call")},s.createElement(xe.$,{size:"md",onClick:v===Kl.JG.Video?A:x,Icon:v===Kl.JG.Voice?wy.A:om.A,className:"mx_RoomHeader_join_button",disabled:!!m,color:"primary","aria-label":null!=m?m:v===Kl.JG.Voice?(0,c._t)("room|header|join_voice_call"):(0,c._t)("room|header|join_video_call"),"data-testId":"join-call-button"},(0,c._t)("action|join"))),I=s.createElement(Ys.m,{label:null!=m?m:(0,c._t)("voip|video_call")},s.createElement(om.A,null)),T=s.createElement(Ys.m,{label:null!=m?m:(0,c._t)("voip|voice_call")},s.createElement(wy.A,null)),[P,N]=(0,s.useState)(!1),D=(0,s.useCallback)(e=>{m||N(e)},[m]),[M,O]=(0,s.useState)(!1),F=(0,s.useCallback)(e=>{l||O(e)},[l]),L=s.createElement(s.Fragment,null,_.length>1?s.createElement(bi.W,{open:P,onOpenChange:D,title:(0,c._t)("voip|video_call_using"),trigger:s.createElement(Tu.K,{disabled:!!m,"aria-label":null!=m?m:(0,c._t)("voip|video_call")},I),side:"left",align:"start"},_.map(e=>{const{label:t,children:n}=(0,Zy.CH)(e);return s.createElement(Ai.D,{key:e,label:t,"aria-label":t,children:n,className:"mx_RoomHeader_videoCallOption",onClick:t=>{N(!1),u(t,e)},Icon:om.A,onSelect:()=>{}})})):s.createElement(Tu.K,{disabled:!!m,"aria-label":null!=m?m:(0,c._t)("voip|video_call"),onClick:A},I)),U=s.createElement(s.Fragment,null,_.length>1?s.createElement(bi.W,{open:M,onOpenChange:F,title:(0,c._t)("voip|voice_call_using"),trigger:s.createElement(Tu.K,{disabled:!!l,"aria-label":null!=l?l:(0,c._t)("voip|voice_call")},T),side:"left",align:"start"},_.map(e=>{const{label:t,children:n}=(0,Zy.CH)(e);return s.createElement(Ai.D,{key:e,label:t,"aria-label":t,children:n,className:"mx_RoomHeader_videoCallOption",onClick:t=>{O(!1),d(t,e)},Icon:wy.A,onSelect:()=>{}})})):s.createElement(Tu.K,{disabled:!!l,"aria-label":null!=l?l:(0,c._t)("voip|voice_call"),onClick:x},T)),V=s.createElement(Ys.m,{label:(0,c._t)("voip|close_lobby")},s.createElement(Tu.K,{onClick:p},s.createElement(ti.A,null)));let B=L,j=U;g?(B=k,j=void 0):h&&(B=V,j=void 0),y||(B=void 0),f||(j=void 0);const H=(0,aa.ME)("mainSplitContentType"),z=(0,Wp.j)(e),W=z||H.mainSplitContentType===Qo.DZ.MaximisedWidget||H.mainSplitContentType===Qo.DZ.Call;return s.createElement(s.Fragment,null,n,null==t?void 0:t.map(e=>{const t=e.label();return s.createElement(Ys.m,{label:t,key:e.id},s.createElement(Tu.K,{"aria-label":t,onClick:t=>{t.stopPropagation(),e.onClick()}},"function"==typeof e.icon?e.icon():e.icon))}),h&&s.createElement(sE,{room:e}),!v||g||h?s.createElement(s.Fragment,null,!z&&B,!z&&j):R,W&&s.createElement(nE,{room:e}),s.createElement(Ys.m,{label:(0,c._t)("common|threads")},s.createElement(Tu.K,{indicator:(0,Ra.W7)(E),onClick:e=>{e.stopPropagation(),i.rightPanelStore.showOrHidePhase(Wu.n.ThreadPanel),Gi.A.trackInteraction("WebRoomHeaderButtonsThreadsButton",e)},"aria-label":(0,c._t)("common|threads")},s.createElement(tE,{Icon:ju.A,phase:Wu.n.ThreadPanel}))),b&&s.createElement(Ys.m,{label:(0,c._t)("notifications|enable_prompt_toast_title")},s.createElement(Tu.K,{indicator:(0,Ra.W7)(w.level),onClick:e=>{e.stopPropagation(),i.rightPanelStore.showOrHidePhase(Wu.n.NotificationPanel)},"aria-label":(0,c._t)("notifications|enable_prompt_toast_title")},s.createElement(tE,{Icon:Yy.A,phase:Wu.n.NotificationPanel}))),s.createElement(Ys.m,{label:(0,c._t)("right_panel|room_summary_card|title")},s.createElement(Tu.K,{onClick:e=>{e.stopPropagation(),i.rightPanelStore.showOrHidePhase(Wu.n.RoomSummary)},"aria-label":(0,c._t)("right_panel|room_summary_card|title")},s.createElement(tE,{Icon:us.A,phase:Wu.n.RoomSummary}))),!S&&s.createElement(Pu.E,{as:"div",size:"sm",weight:"medium"},s.createElement(zf.A,{className:"mx_RoomHeader_members",members:o.slice(0,3),size:"20px",overflow:!1,viewUserOnClick:!1,tooltipLabel:(0,c._t)("room|header_face_pile_tooltip"),onClick:e=>{i.rightPanelStore.showOrHidePhase(Wu.n.MemberList),e.stopPropagation()},"aria-label":(0,c._t)("common|n_members",{count:a})},(0,C.B4)(a))))}function lE({room:e,extraButtons:t,legacyAdditionalButtons:n,oobData:i}){const o=(0,s.useContext)(Ro.A),a=Tc(e),l=(0,zs.U)(e,e=>e.getJoinRule()),d=(0,zs.U)(e,e=>e.getHistoryVisibility()),m=(0,dm.rT)(e),u=!!m,p=(0,Vo.n)(null==m?void 0:m.userId),h=(0,zp.g)(o.client,e),g=function(e,t){const[n,i]=(0,s.useState)(null),o=(0,s.useMemo)(()=>(0,Gn.A)(()=>{e.getCrypto()&&(0,ot.G)(e,t).then(e=>{i(e)})},250,{leading:!0,trailing:!0}),[e,t]);return(0,s.useEffect)(o,[o]),(0,mo.YK)(t,r.fZ1.Members,o),(0,mo.YK)(e,Ee.cr.UserTrustStatusChanged,o),(0,mo.YK)(e,Ee.cr.DevicesUpdated,o),n}(o.client,e),v=(0,es.ny)("feature_ask_to_join");return s.createElement(rE.L,{roomId:e.roomId},s.createElement(Xe.son,{as:"header",align:"center",gap:"var(--cpd-space-3x)",className:"mx_RoomHeader light-panel"},s.createElement(dm.Ay,{room:e},s.createElement(ms.A,{room:e,size:"40px",oobData:i,onClick:e instanceof Ni.N?void 0:()=>{K.A.dispatch({action:"open_room_settings",initial_tab_id:ws.e.General})},tabIndex:-1,"aria-label":(0,c._t)("room|header_avatar_open_settings_label")})),s.createElement("button",{"aria-label":(0,c._t)("right_panel|room_summary_card|title"),tabIndex:0,onClick:e instanceof Ni.N?void 0:()=>o.rightPanelStore.showOrHidePhase(Wu.n.RoomSummary),className:"mx_RoomHeader_infoWrapper"},s.createElement(Xe.azJ,{flex:"1",className:"mx_RoomHeader_info"},s.createElement(Pu.E,{as:"div",size:"lg",weight:"semibold",dir:"auto",role:"heading","aria-level":1,className:"mx_RoomHeader_heading"},s.createElement("span",{className:"mx_RoomHeader_truncated mx_lineClamp"},a),u&&p&&s.createElement(Xe.r3i,{status:p,className:"mx_RoomHeader_userStatus"}),!u&&l===r.dxp.Public&&s.createElement(Ys.m,{label:(0,c._t)("common|public_room"),placement:"right"},s.createElement(sm.A,{width:"16px",height:"16px",className:"mx_RoomHeader_icon",color:"var(--cpd-color-icon-info-primary)","aria-label":(0,c._t)("common|public_room")})),u&&g===ot.z.Verified&&s.createElement(Ys.m,{label:(0,c._t)("common|verified"),placement:"right"},s.createElement(vf.A,{width:"16px",height:"16px",className:"mx_RoomHeader_icon mx_Verified","aria-label":(0,c._t)("common|verified")})),u&&g===ot.z.Warning&&s.createElement(Ys.m,{label:(0,c._t)("room|header_untrusted_label"),placement:"right"},s.createElement(we.A,{width:"16px",height:"16px",className:"mx_RoomHeader_icon mx_Untrusted","aria-label":(0,c._t)("room|header_untrusted_label")})),h&&function(e){return e===r.JvM.Shared?s.createElement(Ys.m,{label:(0,c._t)("room|header|shared_history_tooltip"),placement:"right"},s.createElement(Qy.A,{width:"16px",height:"16px",className:"mx_RoomHeader_icon",color:"var(--cpd-color-icon-info-primary)","aria-label":(0,c._t)("room|header|shared_history_tooltip")})):e===r.JvM.WorldReadable?s.createElement(Ys.m,{label:(0,c._t)("room|header|world_readable_history_tooltip"),placement:"right"},s.createElement(Xy.A,{width:"16px",height:"16px",className:"mx_RoomHeader_icon",color:"var(--cpd-color-icon-info-primary)","aria-label":(0,c._t)("room|header|world_readable_history_tooltip")})):null}(d)))),e instanceof Ni.N==!1&&s.createElement(aE,{room:e,legacyAdditionalButtons:n,extraButtons:t})),v&&s.createElement(iE,{room:e}))}const cE=({roomWidth:e})=>{const t=(0,s.useRef)(null),n=(0,s.useRef)(new Map);return(0,s.useEffect)(()=>{const e=()=>{var e;t.current&&(null===(e=t.current)||void 0===e?void 0:e.height)!==Iu.A.instance.windowHeight&&(t.current.height=Iu.A.instance.windowHeight)},i=K.A.register(e=>{const i="effects.",s=function(e){if(!e)return!1;const t=Date.now(),n=e.getTs();return t-n>1728e5}(e.event);if(t.current&&e.action.startsWith(i)&&!s){(async e=>{if(!e)return null;let t=n.current.get(e)||null;if(null===t){const i=Jv.y.find(t=>t.command===e);try{t=await i.getRenderer(),n.current.set(e,t)}catch(e){o.vF.warn("Unable to run effect module.",e)}}return t})(e.action.slice(8)).then(e=>null==e?void 0:e.start(t.current))}}),s=t.current;s&&(s.height=Iu.A.instance.windowHeight),Iu.A.instance.on(Iu.x.Resize,e);const r=n.current;return()=>{K.A.unregister(i),Iu.A.instance.off(Iu.x.Resize,e);for(const e in r){const t=r.get(e);t&&t.isRunning&&t.stop()}}},[]),s.createElement("canvas",{ref:t,width:e,style:{display:"block",zIndex:999999,pointerEvents:"none",position:"fixed",top:0,right:0},"aria-hidden":!0})};var dE=n("./src/hooks/useCall.ts");const mE=({room:e,resizing:t,call:n,role:i,onClose:o})=>{var r,a;const l=(0,s.useContext)(Ro.A);(0,mo.YK)(n,Pm.$E.Close,o),(0,s.useEffect)(()=>{n.clean()},[n]);const c=(0,s.useCallback)(async()=>{const e=[...Am.e.instance.connectedCalls].filter(e=>l.roomViewStore.getRoomId()!==e.roomId);await Promise.all(e.map(async e=>await e.disconnect()))},[l.roomViewStore]);return s.createElement("div",{className:"mx_CallView",role:i},s.createElement(qg,{app:n.widget,room:e,userId:null!==(r=null===(a=l.client)||void 0===a?void 0:a.credentials.userId)&&void 0!==r?r:void 0,creatorUserId:n.widget.creatorUserId,waitForIframeLoad:n.widget.waitForIframeLoad,showMenubar:!1,pointerEvents:t?"none":void 0,stickyPromise:c}))},uE=({room:e,resizing:t,role:n,onClose:i})=>{const o=(0,dE.Gc)(e.roomId);return o&&s.createElement(mE,{room:e,resizing:t,call:o,role:n,onClose:i})};var pE=n("./src/toasts/DesktopNotificationsToast.ts"),hE=n("./src/email.ts");const gE=(e,t)=>{const[n,i]=(0,s.useState)(()=>Array.isArray(t)?t:new Array(e).fill(t));return[n,(e,t)=>i(n=>{const i=[...n];return i[e]=t,i})]};var vE=n("./src/components/views/spaces/SpacePublicShare.tsx"),_E=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/room-hierarchy.ts"),fE=n("./src/components/views/elements/InfoTooltip.tsx"),yE=n("./src/components/views/elements/TextWithTooltip.tsx"),EE=n("./src/stores/spaces/SpaceStore.ts");function wE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function SE(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?wE(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):wE(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const bE=({room:e,suggested:t,selected:n,hasPermissions:i,onToggleClick:o,onViewRoomClick:a,onJoinRoomClick:l,numChildRooms:d,children:m})=>{var u,p;const h=(0,s.useContext)(je.Ay),g=(0,mo.DY)(h,r.AUM.Room,()=>{const t=null==h?void 0:h.getRoom(e.room_id);return(null==t?void 0:t.getMyMembership())===$n.O.Join?t:void 0}),v=(0,mo.DY)(g,r.u99.Name,e=>null==e?void 0:e.name),_=v||e.name||e.canonical_alias||(null===(u=e.aliases)||void 0===u?void 0:u[0])||(e.room_type===r.CJY.Space?(0,c._t)("common|unnamed_space"):(0,c._t)("common|unnamed_room")),[f,y]=Vc(!0),[E,w,S,b]=(0,Pr.A9)(),[A,C]=(0,s.useState)(!1),x=(0,s.useId)(),k=e=>{e.preventDefault(),e.stopPropagation(),a()},R=async t=>{C(!0),t.preventDefault(),t.stopPropagation();try{await l(),await(0,bn.R)(h,e.room_id)}finally{C(!1)}};let I,T,P;I=A?s.createElement(Ve.A,{disabled:!0,onClick:R,kind:"primary_outline",onFocus:E,tabIndex:w?0:-1,title:(0,c._t)("space|joining_space")},s.createElement(Be.A,{size:24})):g||e.join_rule===r.dxp.Knock?s.createElement(Ve.A,{onClick:k,kind:"primary_outline",onFocus:E,tabIndex:w?0:-1},(0,c._t)("action|view")):s.createElement(Ve.A,{onClick:R,kind:"primary",onFocus:E,tabIndex:w?0:-1},(0,c._t)("action|join")),o&&(T=i?s.createElement(hs.A,{role:"presentation","aria-labelledby":x,checked:!!n,tabIndex:-1,onChange:e=>{e.stopPropagation(),o()}}):s.createElement(yE.A,{tooltip:(0,c._t)("space|user_lacks_permission"),onClick:e=>{e.stopPropagation()}},s.createElement(hs.A,{role:"presentation","aria-labelledby":x,disabled:!0,tabIndex:-1}))),P=g?s.createElement(ms.A,{room:g,size:"20px"}):s.createElement(ki.A,{name:_,idName:e.room_id,url:e.avatar_url?(0,Ci.l)(e.avatar_url).getSquareThumbnailHttp(20):null,size:"20px"});let N,D,M,O,F=(0,c._t)("common|n_members",{count:null!==(p=e.num_joined_members)&&void 0!==p?p:0});if(void 0!==d&&(F+=" · "+(0,c._t)("common|n_rooms",{count:d})),g){const e=Fc(g);N=(0,Us.sH)(null==e?void 0:e.text,null==e?void 0:e.html)}else N=e.topic;N&&(D=s.createElement(Xe.fap,{onLinkClick:e=>e.stopPropagation()}," · ",N)),g&&(M=s.createElement("div",{className:"mx_SpaceHierarchy_roomTile_joined"},s.createElement(Je.A,null),(0,c._t)("common|joined"))),!t||g&&!i||(O=s.createElement(fE.A,{tooltip:(0,c._t)("space|suggested_tooltip")},(0,c._t)("space|suggested")));const L=s.createElement(s.Fragment,null,s.createElement("div",{className:"mx_SpaceHierarchy_roomTile_item"},s.createElement("div",{className:"mx_SpaceHierarchy_roomTile_avatar"},P),s.createElement("div",{className:"mx_SpaceHierarchy_roomTile_name"},s.createElement("span",{id:x},_),M,O),s.createElement("div",{className:"mx_SpaceHierarchy_roomTile_info"},F,D)),s.createElement("div",{className:"mx_SpaceHierarchy_actions"},I,T));let U,V,B;if(m){if(U=s.createElement("div",{className:un()("mx_SpaceHierarchy_subspace_toggle",{mx_SpaceHierarchy_subspace_toggle_shown:f}),onClick:e=>{e.stopPropagation(),y()}},s.createElement(uu.A,null)),f){const e=e=>{var t;if((0,dc.zM)().getAccessibilityAction(e)===mc.bY.ArrowLeft)e.preventDefault(),e.stopPropagation(),null===(t=b.current)||void 0===t||t.focus()};V=s.createElement("ul",{className:"mx_SpaceHierarchy_subspace_children",onKeyDown:e,role:"group"},m)}B=e=>{let t=!1;switch((0,dc.zM)().getAccessibilityAction(e)){case mc.bY.ArrowLeft:f&&(t=!0,y());break;case mc.bY.ArrowRight:if(t=!0,f){var n,i;const e=null===(n=b.current)||void 0===n?void 0:n.nextElementSibling;null==e||null===(i=e.querySelector(".mx_SpaceHierarchy_roomTile"))||void 0===i||i.focus()}else y()}t&&(e.preventDefault(),e.stopPropagation())}}const j=i&&o;return s.createElement("li",{className:"mx_SpaceHierarchy_roomTileWrapper",role:"treeitem","aria-selected":n,"aria-labelledby":x,"aria-expanded":m?f:void 0},s.createElement(Ve.A,{className:un()("mx_SpaceHierarchy_roomTile",{mx_SpaceHierarchy_subspace:e.room_type===r.CJY.Space,mx_SpaceHierarchy_joining:A}),onClick:j?o:k,onKeyDown:B,ref:S,onFocus:E,tabIndex:w?0:-1},L,U),V)},AE=(e,t,n,i)=>{var s,o;const r=t.roomMap.get(n);if(e.isGuest()&&!(null!=r&&r.world_readable||null!=r&&r.guest_can_join))return void K.A.dispatch({action:"require_registration"});const a=(0,Bd.iW)(null!==(s=null==r?void 0:r.canonical_alias)&&void 0!==s?s:"",null!==(o=null==r?void 0:r.aliases)&&void 0!==o?o:[])||void 0;K.A.dispatch({action:$.r.ViewRoom,should_peek:!0,room_alias:a,room_id:n,via_servers:Array.from(t.viaMap.get(n)||[]),oob_data:{avatarUrl:null==r?void 0:r.avatar_url,name:(null==r?void 0:r.name)||a||(0,c._t)("common|unnamed_room"),roomType:i},metricsTrigger:"RoomDirectory"})},CE=async(e,t,n,i)=>{if(e.isGuest())K.A.dispatch({action:"require_registration"});else{try{await e.joinRoom(i,{viaServers:Array.from(n.viaMap.get(i)||[])})}catch(e){throw e instanceof r.upv?t.showJoinRoomError(e,i):(o.vF.warn("Got a non-MatrixError while joining room",e),t.showJoinRoomError(new r.upv({error:(0,c._t)("error|unknown")}),i)),e}K.A.dispatch({action:$.r.JoinRoomReady,roomId:i,metricsTrigger:"SpaceHierarchy"})}},xE=({root:e,roomSet:t,hierarchy:n,parents:i,selectedMap:o,onViewRoomClick:a,onJoinRoomClick:l,onToggleClick:c})=>{const d=(0,s.useContext)(je.Ay),m=d.getRoom(e.room_id),u=null==m?void 0:m.currentState.maySendStateEvent(r.Bx4.SpaceChild,d.getSafeUserId()),p=(0,Me.Bo)((0,Hf.A)(e.children_state,e=>(0,EE.t)(e.content.order,e.origin_server_ts,e.state_key)).map(e=>{const i=n.roomMap.get(e.state_key);return i&&t.has(i)?((e,t,n)=>{const i=e.getRoomUpgradeHistory(t.room_id,!0,S.A.getValue("feature_dynamic_room_predecessors"));let s=null;for(let e=i.length-1;e>=0;--e)if(n.roomMap.get(i[e].roomId)){s=i[e];break}var o,a,l,c,d;return s?SE(SE({},t),{},{room_id:s.roomId,room_type:s.getType(),name:s.name,topic:null===(o=s.currentState.getStateEvents(r.Bx4.RoomTopic,""))||void 0===o?void 0:o.getContent().topic,avatar_url:null!==(a=s.getMxcAvatarUrl())&&void 0!==a?a:void 0,canonical_alias:null!==(l=s.getCanonicalAlias())&&void 0!==l?l:void 0,aliases:s.getAltAliases(),world_readable:(null===(c=s.currentState.getStateEvents(r.Bx4.RoomHistoryVisibility,""))||void 0===c?void 0:c.getContent().history_visibility)===r.JvM.WorldReadable,guest_can_join:(null===(d=s.currentState.getStateEvents(r.Bx4.RoomGuestAccess,""))||void 0===d?void 0:d.getContent().guest_access)===r.rFk.CanJoin,num_joined_members:s.getJoinedMemberCount()}):t})(d,i,n):null})),h=new Set(i).add(e.room_id);return s.createElement(s.Fragment,null,(0,Br.A)(p,"room_id").map(i=>{var d,m;return i.room_type!==r.CJY.Space?s.createElement(bE,{key:i.room_id,room:i,suggested:n.isSuggested(e.room_id,i.room_id),selected:null==o||null===(d=o.get(e.room_id))||void 0===d?void 0:d.has(i.room_id),onViewRoomClick:()=>a(i.room_id,i.room_type),onJoinRoomClick:()=>l(i.room_id,h),hasPermissions:u,onToggleClick:c?()=>c(e.room_id,i.room_id):void 0}):h.has(i.room_id)?null:s.createElement(bE,{key:i.room_id,room:i,numChildRooms:i.children_state.filter(e=>{const i=n.roomMap.get(e.state_key);return i&&t.has(i)&&!i.room_type}).length,suggested:n.isSuggested(e.room_id,i.room_id),selected:null==o||null===(m=o.get(e.room_id))||void 0===m?void 0:m.has(i.room_id),onViewRoomClick:()=>a(i.room_id,r.CJY.Space),onJoinRoomClick:()=>l(i.room_id,h),hasPermissions:u,onToggleClick:c?()=>c(e.room_id,i.room_id):void 0},s.createElement(xE,{root:i,roomSet:t,hierarchy:n,parents:h,selectedMap:o,onViewRoomClick:a,onJoinRoomClick:l,onToggleClick:c}))}))},kE=({hierarchy:e,selected:t,setSelected:n,setError:i})=>{const o=(0,s.useContext)(je.Ay),[a,l]=(0,s.useState)(!1),[d,m]=(0,s.useState)(!1),u=Array.from(t.keys()).flatMap(e=>[...t.get(e).values()].map(t=>[e,t])),p=u.every(([t,n])=>e.isSuggested(t,n)),h=!u.length||a||d;let g=(0,c._t)("common|saving");d||(g=p?(0,c._t)("space|unmark_suggested"):(0,c._t)("space|mark_suggested"));const v=u.length?void 0:(0,c._t)("space|select_room_below");return s.createElement(s.Fragment,null,s.createElement(Ve.A,{onClick:async()=>{l(!0);try{const t=o.getSafeUserId();for(const[n,i]of u){await o.sendStateEvent(n,r.Bx4.SpaceChild,{},i);const s=o.getRoom(i),a=null==s?void 0:s.currentState.getStateEvents(r.Bx4.SpaceParent,n);null!=s&&s.currentState.maySendStateEvent(r.Bx4.SpaceParent,t)&&Array.isArray(null==a?void 0:a.getContent().via)&&await o.sendStateEvent(i,r.Bx4.SpaceParent,{},n),e.removeRelation(n,i)}}catch{i((0,c._t)("space|failed_remove_rooms"))}l(!1),n(new Map)},kind:"danger_outline",disabled:h,"aria-label":a?(0,c._t)("redact|ongoing"):(0,c._t)("action|remove"),title:v,placement:"top"},a?(0,c._t)("redact|ongoing"):(0,c._t)("action|remove")),s.createElement(Ve.A,{onClick:async()=>{m(!0);try{for(const[n,i]of u){var t;const s=!p,a=null===(t=e.getRelation(n,i))||void 0===t?void 0:t.content;if(!a||a.suggested===s)continue;const l=SE(SE({},a),{},{suggested:!p});await o.sendStateEvent(n,r.Bx4.SpaceChild,l,i),a.suggested=l.suggested}}catch{i("Failed to update some suggestions. Try again later")}m(!1),n(new Map)},kind:"primary_outline",disabled:h,"aria-label":g,title:v,placement:"top"},g))},RE=({space:e,initialText:t="",showRoom:n,additionalButtons:i})=>{const o=(0,s.useContext)(je.Ay),a=(0,s.useContext)(Qo.Ay),[l,d]=(0,s.useState)(t),[m,u]=(0,s.useState)(new Map),{loading:p,rooms:h,hierarchy:g,loadMore:v,error:_}=(e=>{const[t,n]=(0,s.useState)([]),[i,o]=(0,s.useState)(),[r,a]=(0,s.useState)(),l=(0,s.useCallback)(()=>{a(void 0);const t=new _E.B(e,20);t.load().then(()=>{var i;e===t.root&&n(null!==(i=t.rooms)&&void 0!==i?i:[])},a),o(t)},[e]);(0,s.useEffect)(l,[l]),(0,Dc.F)(K.A,e=>{e.action===$.r.UpdateSpaceHierarchy&&(n([]),l())});const c=(0,s.useCallback)(async e=>{var t;!i||i.loading||!i.canLoadMore||i.noSupport||r||(await i.load(e).catch(a),n(null!==(t=i.rooms)&&void 0!==t?t:[]))},[r,i]);return(null==i?void 0:i.root)!==e?{loading:!0,loadMore:c}:{loading:i.loading,rooms:t,hierarchy:i,loadMore:c,error:r}})(e),f=(0,s.useMemo)(()=>{if(null==h||!h.length||!g)return new Set;const e=l.toLowerCase().trim();if(!e)return new Set(h);const t=h.filter(t=>{var n,i;return(null===(n=t.name)||void 0===n?void 0:n.toLowerCase().includes(e))||(null===(i=t.topic)||void 0===i?void 0:i.toLowerCase().includes(e))}),n=new Set,i=t.map(e=>e.room_id);for(;i.length;){var s;const e=i.pop();n.add(e),null===(s=g.backRefs.get(e))||void 0===s||s.forEach(e=>{n.has(e)||i.push(e)})}return new Set(h.filter(e=>n.has(e.room_id)))},[h,g,l]),[y,E]=(0,s.useState)("");let w=y;!y&&_&&(w=(0,c._t)("space|failed_load_rooms"));const S=(e=>{const t=t=>{t[0].isIntersecting&&e()},n=(0,s.useRef)(void 0);return e=>{n.current?n.current.disconnect():e&&(n.current=new IntersectionObserver(t,{root:e.parentElement,rootMargin:"0px 0px 600px 0px"})),n.current&&e&&n.current.observe(e)}})(v);if(!p&&g.noSupport)return s.createElement("p",null,(0,c._t)("space|incompatible_server_hierarchy"));const b=(e,t)=>{if(E(""),!m.has(e))return void u(new Map(m.set(e,new Set([t]))));const n=m.get(e);n.has(t)?(n.delete(t),u(new Map(m.set(e,new Set(n))))):u(new Map(m.set(e,new Set([...n,t]))))};return s.createElement(Pr.Se,{onKeyDown:(e,t)=>{var n;(0,dc.zM)().getAccessibilityAction(e)===mc.bY.ArrowDown&&e.currentTarget.classList.contains("mx_SpaceHierarchy_search")&&(null===(n=t.nodes[0])||void 0===n||n.focus())},handleHomeEnd:!0,handleUpDown:!0},({onKeyDownHandler:v})=>{let _;if(g&&(!p||null!=h&&h.length)){const t=(null==e?void 0:e.getMyMembership())===$n.O.Join&&e.currentState.maySendStateEvent(r.Bx4.SpaceChild,o.getSafeUserId()),d=g.roomMap.get(e.roomId);let p,h;f.size&&d?p=s.createElement(xE,{root:d,roomSet:f,hierarchy:g,parents:new Set,selectedMap:m,onToggleClick:t?b:void 0,onViewRoomClick:(e,t)=>n(o,g,e,t),onJoinRoomClick:async(e,t)=>{for(const e of t){var n;(null===(n=o.getRoom(e))||void 0===n?void 0:n.getMyMembership())!==$n.O.Join&&await CE(o,a.roomViewStore,g,e)}await CE(o,a.roomViewStore,g,e)}}):g.canLoadMore||(p=s.createElement("div",{className:"mx_SpaceHierarchy_noResults"},s.createElement("h3",null,(0,c._t)("common|no_results_found")),s.createElement("div",null,(0,c._t)("space|no_search_result_hint")))),g.canLoadMore&&(h=s.createElement("div",{ref:S},s.createElement(Be.A,null))),_=s.createElement(s.Fragment,null,s.createElement("div",{className:"mx_SpaceHierarchy_listHeader"},s.createElement("h4",{className:"mx_SpaceHierarchy_listHeader_header"},l.trim()?(0,c._t)("space|title_when_query_available"):(0,c._t)("space|title_when_query_unavailable")),s.createElement("div",{className:"mx_SpaceHierarchy_listHeader_buttons"},i,t&&s.createElement(kE,{hierarchy:g,selected:m,setSelected:u,setError:E}))),w&&s.createElement("div",{className:"mx_SpaceHierarchy_error"},w),s.createElement("ul",{className:"mx_SpaceHierarchy_list",onKeyDown:v,role:"tree","aria-label":(0,c._t)("common|space")},p),h)}else _=s.createElement(Be.A,null);return s.createElement(s.Fragment,null,s.createElement(ps.A,{className:"mx_SpaceHierarchy_search mx_textinput_icon mx_textinput_search",placeholder:(0,c._t)("space|search_placeholder"),onSearch:d,autoFocus:!0,initialValue:t,onKeyDown:v}),_)})};var IE=n("./src/components/structures/SpacePillButton.tsx"),TE=n("./src/utils/MultiInviter.ts"),PE=function(e){return e[e.Landing=0]="Landing",e[e.PublicCreateRooms=1]="PublicCreateRooms",e[e.PublicShare=2]="PublicShare",e[e.PrivateScope=3]="PrivateScope",e[e.PrivateInvite=4]="PrivateInvite",e[e.PrivateCreateRooms=5]="PrivateCreateRooms",e[e.PrivateExistingRooms=6]="PrivateExistingRooms",e}(PE||{});const NE=({space:e})=>{const[t,n,i,o]=(0,tr.EF)(),a=(0,em.g)(as.C.CreateRooms),l=(0,em.g)(as.C.CreateSpaces),d=(0,es.ny)("feature_video_rooms"),m=(0,es.ny)("feature_element_call_video_rooms");let u=null;if(t){const t=n.current.getBoundingClientRect();u=s.createElement(yu.Ay,{left:t.left+window.scrollX+0,top:t.bottom+window.scrollY+8,chevronFace:tr.t4.None,onFinished:o,className:"mx_RoomTile_contextMenu",compact:!0},s.createElement(yu.tx,{first:!0},a&&s.createElement(s.Fragment,null,s.createElement(yu.R$,{label:(0,c._t)("action|new_room"),icon:s.createElement(du.A,null),onClick:async t=>{t.preventDefault(),t.stopPropagation(),o(),Gi.A.trackInteraction("WebSpaceHomeCreateRoomButton",t),await(0,Gc.PT)(e)&&K.A.fire($.r.UpdateSpaceHierarchy)}}),d&&s.createElement(yu.R$,{label:(0,c._t)("action|new_video_room"),icon:s.createElement(om.A,null),onClick:async t=>{t.preventDefault(),t.stopPropagation(),o(),await(0,Gc.PT)(e,m?r.CJY.UnstableCall:r.CJY.ElementVideo)&&K.A.fire($.r.UpdateSpaceHierarchy)}},s.createElement(Eu.s,null))),s.createElement(yu.R$,{label:(0,c._t)("action|add_existing_room"),icon:s.createElement(cu.A,null),onClick:t=>{t.preventDefault(),t.stopPropagation(),o(),(0,Gc.yV)(e)}}),l&&s.createElement(yu.R$,{label:(0,c._t)("room_list|add_space_label"),icon:s.createElement(du.A,null),onClick:t=>{t.preventDefault(),t.stopPropagation(),o(),(0,Gc.Sl)(e)}},s.createElement(Eu.s,null))))}return s.createElement(s.Fragment,null,s.createElement(tr.VJ,{kind:"primary",ref:n,onClick:i,isExpanded:t,label:(0,c._t)("action|add")},(0,c._t)("action|add")),u)},DE=({space:e})=>{const t=(0,s.useContext)(Ro.A),n=(0,df.nH)(e),i=t.client.getSafeUserId(),o=Tc(e),a=(0,s.useCallback)(()=>{var n;return t.rightPanelStore.isOpenForRoom(e.roomId)&&(null===(n=t.rightPanelStore.currentCardForRoom(e.roomId))||void 0===n?void 0:n.phase)===Wu.n.MemberList},[e.roomId,t.rightPanelStore]),l=(0,mo.dF)(t.rightPanelStore,"update",a);let d;(0,Gc.MI)(e)&&(0,em.g)(as.C.InviteUsers)&&(d=s.createElement(Ve.A,{kind:"primary",className:"mx_SpaceRoomView_landing_inviteButton",onClick:()=>{(0,Gc.Lo)(e)}},s.createElement(vu.A,null),(0,c._t)("action|invite")));let m,u;n===$n.O.Join&&e.currentState.maySendStateEvent(r.Bx4.SpaceChild,i)&&(m=s.createElement(NE,{space:e})),(0,Gc.Kv)(e)&&(u=s.createElement(Ve.A,{className:"mx_SpaceRoomView_landing_settingsButton",onClick:()=>{(0,Gc.hL)(e)},title:(0,c._t)("common|settings"),placement:"bottom"},s.createElement(Se.A,null)));return s.createElement("div",{className:"mx_SpaceRoomView_landing"},s.createElement("div",{className:"mx_SpaceRoomView_landing_header"},s.createElement(ms.A,{room:e,size:"80px",viewAvatarOnClick:!0,type:"square"})),s.createElement("div",{className:"mx_SpaceRoomView_landing_name"},(0,c._t)("space|landing_welcome",{},{name:()=>s.createElement("h1",null,o)})),s.createElement("div",{className:"mx_SpaceRoomView_landing_infoBar"},s.createElement(qf,{room:e}),s.createElement("div",{className:"mx_SpaceRoomView_landing_infoBar_interactive"},s.createElement(Kf,{room:e,onlyKnownUsers:!1,numShown:7,onClick:l?void 0:()=>{t.rightPanelStore.setCard({phase:Wu.n.MemberList})}}),d,u)),s.createElement(gg,{room:e,className:"mx_SpaceRoomView_landing_topic"}),s.createElement(RE,{space:e,showRoom:AE,additionalButtons:m}))},ME=({space:e,title:t,description:n,onFinished:i})=>{const[a,l]=(0,s.useState)(!1),[d,m]=(0,s.useState)(""),u=[(0,c._t)("common|general"),(0,c._t)("common|random"),(0,c._t)("common|support")],[p,h]=gE(3,[(0,c._t)("common|general"),(0,c._t)("common|random"),""]),g=new Array(3).fill(0).map((e,t)=>{const n="roomName"+t;return s.createElement(yi.A,{key:n,name:n,type:"text",label:(0,c._t)("common|room_name"),placeholder:u[t],value:p[t],onChange:e=>h(t,e.target.value),autoFocus:2===t,disabled:a,autoComplete:"off"})}),v=async t=>{if(t.preventDefault(),!a){m(""),l(!0);try{var n;const t=e.getJoinRule()===r.dxp.Public,s=p.map(e=>e.trim()).filter(Boolean),o=await Promise.all(s.map(n=>(0,cs.Ay)(e.client,{createOpts:{preset:t?r.ka2.PublicChat:r.ka2.PrivateChat},name:n,spinner:!1,encryption:!1,andView:!1,inlineErrors:!0,parentSpace:e,joinRule:t?void 0:r.dxp.Restricted,suggested:!0})));i(null!==(n=o[0])&&void 0!==n?n:void 0)}catch(e){o.vF.error("Failed to create initial space rooms",e),m((0,c._t)("create_space|failed_create_initial_rooms"))}l(!1)}};let _=e=>{e.preventDefault(),i()},f=(0,c._t)("create_space|skip_action");return p.some(e=>e.trim())&&(_=v,f=a?(0,c._t)("create_space|creating_rooms"):(0,c._t)("action|continue")),s.createElement("div",null,s.createElement("h1",null,t),s.createElement("div",{className:"mx_SpaceRoomView_description"},n),d&&s.createElement("div",{className:"mx_SpaceRoomView_errorText"},d),s.createElement("form",{onSubmit:_,id:"mx_SpaceSetupFirstRooms"},g),s.createElement("div",{className:"mx_SpaceRoomView_buttons"},s.createElement(Ve.A,{kind:"primary",disabled:a,onClick:_,element:"input",type:"submit",form:"mx_SpaceSetupFirstRooms",value:f})))},OE=({space:e,onFinished:t})=>s.createElement("div",null,s.createElement("h1",null,(0,c._t)("create_space|add_existing_rooms_heading")),s.createElement("div",{className:"mx_SpaceRoomView_description"},(0,c._t)("create_space|add_existing_rooms_description")),s.createElement(Jc.sS,{space:e,emptySelectionButton:s.createElement(Ve.A,{kind:"primary",onClick:t},(0,c._t)("create_space|skip_action")),filterPlaceholder:(0,c._t)("space|room_filter_placeholder"),onFinished:t,roomsRenderer:Jc.FM,dmsRenderer:Jc.nZ})),FE=({justCreatedOpts:e,space:t,onFinished:n,firstRoomId:i})=>s.createElement("div",{className:"mx_SpaceRoomView_publicShare"},s.createElement("h1",null,(0,c._t)("create_space|share_heading",{name:(null==e?void 0:e.name)||t.name})),s.createElement("div",{className:"mx_SpaceRoomView_description"},(0,c._t)("create_space|share_description")),s.createElement(vE.A,{space:t}),s.createElement("div",{className:"mx_SpaceRoomView_buttons"},s.createElement(Ve.A,{kind:"primary",onClick:n},i?(0,c._t)("create_space|done_action_first_room"):(0,c._t)("create_space|done_action")))),LE=({space:e,justCreatedOpts:t,onFinished:n})=>s.createElement("div",{className:"mx_SpaceRoomView_privateScope"},s.createElement("h1",null,(0,c._t)("create_space|private_personal_heading")),s.createElement("div",{className:"mx_SpaceRoomView_description"},(0,c._t)("create_space|private_personal_description",{name:(null==t?void 0:t.name)||e.name})),s.createElement(IE.A,{icon:s.createElement(Xy.A,null),title:(0,c._t)("create_space|personal_space"),description:(0,c._t)("create_space|personal_space_description"),onClick:()=>{n(!1)}}),s.createElement(IE.A,{icon:s.createElement(hn.A,null),title:(0,c._t)("create_space|private_space"),description:(0,c._t)("create_space|private_space_description"),onClick:()=>{n(!0)}})),UE=(0,Yp.A)({rules:[{key:"email",test:({value:e})=>!e||hE.X(e),invalid:()=>(0,c._t)("auth|email_field_label_invalid")}]}),VE=({space:e,onFinished:t})=>{const[n,i]=(0,s.useState)(!1),[r,a]=(0,s.useState)(""),l=[(0,s.useRef)(null),(0,s.useRef)(null),(0,s.useRef)(null)],[d,m]=gE(3,""),u=new Array(3).fill(0).map((e,t)=>{const i="emailAddress"+t;return s.createElement(yi.A,{key:i,name:i,type:"text",label:(0,c._t)("common|email_address"),placeholder:(0,c._t)("auth|email_field_label"),value:d[t],onChange:e=>m(t,e.target.value),ref:l[t],onValidate:UE,autoFocus:0===t,disabled:n})}),p=async s=>{if(s.preventDefault(),n)return;a("");for(const e of l){var r;if(!1===await(null===(r=e.current)||void 0===r?void 0:r.validate({allowEmpty:!0})))return e.current.focus(),void e.current.validate({allowEmpty:!0,focused:!0})}i(!0);const m=d.map(e=>e.trim()).filter(Boolean);try{const n=new TE.Ay(e.client,e.roomId),i=await n.invite(m),s=Object.keys(i).filter(e=>"error"===i[e]);s.length>0?(o.vF.log("Failed to invite users to space:",i),a((0,c._t)("create_space|failed_invite_users",{csvUsers:s.join(", ")}))):t()}catch(e){o.vF.error("Failed to invite users to space: ",e),a((0,c._t)("invite|error_invite"))}i(!1)};let h=e=>{e.preventDefault(),t()},g=(0,c._t)("create_space|skip_action");return d.some(e=>e.trim())&&(h=p,g=n?(0,c._t)("create_space|inviting_users"):(0,c._t)("action|continue")),s.createElement("div",{className:"mx_SpaceRoomView_inviteTeammates"},s.createElement("h1",null,(0,c._t)("create_space|invite_teammates_heading")),s.createElement("div",{className:"mx_SpaceRoomView_description"},(0,c._t)("create_space|invite_teammates_description")),r&&s.createElement("div",{className:"mx_SpaceRoomView_errorText"},r),s.createElement("form",{onSubmit:h,id:"mx_SpaceSetupPrivateInvite"},u),s.createElement("div",{className:"mx_SpaceRoomView_inviteTeammates_buttons"},s.createElement(Ve.A,{onClick:()=>(0,Vd._7)(e.roomId)},s.createElement(vu.A,null),(0,c._t)("create_space|invite_teammates_by_username"))),s.createElement("div",{className:"mx_SpaceRoomView_buttons"},s.createElement(Ve.A,{kind:"primary",disabled:n,onClick:h,element:"input",type:"submit",form:"mx_SpaceSetupPrivateInvite",value:g})))};class BE extends s.PureComponent{constructor(e,t){var n,s;super(e,t),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"onMyMembership",(e,t)=>{e.roomId===this.props.space.roomId&&this.setState({myMembership:t})}),(0,i.A)(this,"onRightPanelStoreUpdate",()=>{this.setState({showRightPanel:this.context.rightPanelStore.isOpenForRoom(this.props.space.roomId)})}),(0,i.A)(this,"onAction",e=>{e.action!==$.r.ViewRoom||e.room_id!==this.props.space.roomId||this.setState({phase:PE.Landing})}),(0,i.A)(this,"goToFirstRoom",async()=>{this.state.firstRoomId?K.A.dispatch({action:$.r.ViewRoom,room_id:this.state.firstRoomId,metricsTrigger:void 0}):this.setState({phase:PE.Landing})});let o=PE.Landing;const a=null===(n=this.props.space.currentState.getStateEvents(r.Bx4.RoomCreate,""))||void 0===n?void 0:n.getSender();var l;this.props.justCreatedOpts&&(null===(s=this.context.client)||void 0===s?void 0:s.getSafeUserId())===a&&(o=(null===(l=this.props.justCreatedOpts.createOpts)||void 0===l?void 0:l.preset)===r.ka2.PublicChat?PE.PublicCreateRooms:PE.PrivateScope);this.state={phase:o,showRightPanel:this.context.rightPanelStore.isOpenForRoom(this.props.space.roomId),myMembership:this.props.space.getMyMembership()}}componentDidMount(){var e;this.dispatcherRef=K.A.register(this.onAction),this.context.rightPanelStore.on("update",this.onRightPanelStoreUpdate),null===(e=this.context.client)||void 0===e||e.on(r.u99.MyMembership,this.onMyMembership)}componentWillUnmount(){var e;K.A.unregister(this.dispatcherRef),this.context.rightPanelStore.off("update",this.onRightPanelStoreUpdate),null===(e=this.context.client)||void 0===e||e.off(r.u99.MyMembership,this.onMyMembership)}renderBody(){var e;switch(this.state.phase){case PE.Landing:return this.state.myMembership===$n.O.Join?s.createElement(DE,{space:this.props.space}):s.createElement($f,{room:this.props.space,onJoinButtonClicked:this.props.onJoinButtonClicked,onRejectButtonClicked:this.props.onRejectButtonClicked});case PE.PublicCreateRooms:return s.createElement(ME,{space:this.props.space,title:(0,c._t)("create_space|setup_rooms_community_heading",{spaceName:(null===(e=this.props.justCreatedOpts)||void 0===e?void 0:e.name)||this.props.space.name}),description:s.createElement(s.Fragment,null,(0,c._t)("create_space|setup_rooms_community_description"),s.createElement("br",null),(0,c._t)("create_space|setup_rooms_description")),onFinished:e=>this.setState({phase:PE.PublicShare,firstRoomId:e})});case PE.PublicShare:return s.createElement(FE,{justCreatedOpts:this.props.justCreatedOpts,space:this.props.space,onFinished:this.goToFirstRoom,firstRoomId:this.state.firstRoomId});case PE.PrivateScope:return s.createElement(LE,{space:this.props.space,justCreatedOpts:this.props.justCreatedOpts,onFinished:e=>{this.setState({phase:e?PE.PrivateCreateRooms:PE.PrivateExistingRooms})}});case PE.PrivateInvite:return s.createElement(VE,{space:this.props.space,onFinished:()=>this.setState({phase:PE.Landing})});case PE.PrivateCreateRooms:return s.createElement(ME,{space:this.props.space,title:(0,c._t)("create_space|setup_rooms_private_heading"),description:s.createElement(s.Fragment,null,(0,c._t)("create_space|setup_rooms_private_description"),s.createElement("br",null),(0,c._t)("create_space|setup_rooms_description")),onFinished:e=>this.setState({phase:PE.PrivateInvite,firstRoomId:e})});case PE.PrivateExistingRooms:return s.createElement(OE,{space:this.props.space,onFinished:()=>this.setState({phase:PE.Landing})})}}render(){const e=this.state.showRightPanel&&this.state.phase===PE.Landing?s.createElement(Tf,{room:this.props.space,resizeNotifier:this.props.resizeNotifier,permalinkCreator:this.props.permalinkCreator}):void 0;return s.createElement("main",{className:"mx_SpaceRoomView"},s.createElement(So,null,s.createElement(Rp,{panel:e,analyticsRoomType:"space"},this.renderBody())))}}(0,i.A)(BE,"contextType",Ro.A);class jE extends s.PureComponent{render(){return s.createElement("div",{className:"mx_TopUnreadMessagesBar"},s.createElement(Ve.A,{className:"mx_TopUnreadMessagesBar_scrollUp",title:(0,c._t)("room|jump_read_marker"),onClick:this.props.onScrollUpClick},s.createElement(Cy.A,null)),s.createElement(Ve.A,{className:"mx_TopUnreadMessagesBar_markAsRead",title:(0,c._t)("notifications|mark_all_read"),onClick:this.props.onCloseClick},s.createElement(ti.A,null)))}}var HE=n("./src/utils/direct-messages.ts");const zE=({text:e})=>s.createElement("div",{className:"mx_LargeLoader"},s.createElement(Be.A,{size:45}),s.createElement("div",{className:"mx_LargeLoader_text"},e));function WE({roomId:e,ts:t}){const n=(0,s.useContext)(Ro.A),i=(0,Xe.s2q)(()=>new kh.Q({roomId:e,ts:t,roomViewStore:n.roomViewStore}));return s.createElement(Xe.p2V,{vm:i,className:"mx_TimelineSeparator"})}class JE extends s.Component{constructor(e){super(e),(0,i.A)(this,"callEventGroupers",new Map),this.buildLegacyCallEventGroupers(this.props.timeline)}buildLegacyCallEventGroupers(e){this.callEventGroupers=(0,ev.fN)(this.callEventGroupers,e)}render(){const e=this.props.timeline,t=e[this.props.ourEventsIndexes[0]],n=t.getId(),i=t.getTs(),o=t.getRoomId(),r=[s.createElement(WE,{key:`${o}-${i}-search`,roomId:o,ts:i})],a=S.A.getValue("layout"),l=S.A.getValue("showTwelveHourTimestamps"),c=S.A.getValue("alwaysShowTimestamps"),d=_.J.safeGet();for(let t=0;t<e.length;t++){var m;const i=e[t];let o;const h=!this.props.ourEventsIndexes.includes(t);if(h||(o=this.props.searchHighlights),(0,zo.bN)(i,d,null===(m=this.context)||void 0===m?void 0:m.showHiddenEvents)){var u;const m=e[t-1],g=m&&!(0,Bt.fq)(m.getDate()||void 0,i.getDate()||void 0)&&jh(m,i,d,null===(u=this.context)||void 0===u?void 0:u.showHiddenEvents,Qo.Ae.Search);let v=!0;const _=e[t+1];if(_){var p;v=(0,Bt.fq)(i.getDate()||void 0,_.getDate()||void 0)||i.getSender()!==_.getSender()||!jh(i,_,d,null===(p=this.context)||void 0===p?void 0:p.showHiddenEvents,Qo.Ae.Search)}r.push(s.createElement(ec,{key:`${n}+${t}`,mxEvent:i,layout:a,contextual:h,highlights:o,permalinkCreator:this.props.permalinkCreator,highlightLink:this.props.resultLink,isTwelveHour:l,alwaysShowTimestamps:c,lastInSection:v,continuation:g,callEventGrouper:this.callEventGroupers.get(i.getContent().call_id)}))}}return s.createElement("li",{"data-scroll-tokens":n},s.createElement("ol",null,r))}}(0,i.A)(JE,"contextType",Qo.Ay);var GE=n("./src/Typeguards.ts");async function KE(e,t,n,i){const s={limit:10};void 0!==n&&(s.rooms=[n]);const o={search_categories:{room_events:{search_term:t,filter:s,order_by:r.g6e.Recent,event_context:{before_limit:1,after_limit:1,include_profile:!0}}}};return{response:await e.search({body:o},i),query:o}}async function qE(e,t,n,i){const s=await KE(e,t,n,i),o={abortSignal:i,_query:s.query,results:[],highlights:[]};return e.processRoomEventsSearch(o,s.response)}function $E(e,t){const n=e.result,i=t.result;return n.origin_server_ts>i.origin_server_ts?-1:n.origin_server_ts<i.origin_server_ts?1:0}async function YE(e,t,n=!0){const i=y.A.get(),s={search_term:e,before_limit:1,after_limit:1,limit:10,order_by_recency:!0,room_id:void 0};void 0!==t&&(s.room_id=t);const o=await i.search(s);if(!o)throw new Error("Local search failed");if(o.results)for(const e of o.results){const t=e.result;if(null===(null==t?void 0:t.state_key)&&delete t.state_key,e.context){for(const t of e.context.events_before||[]){const e=t;null===(null==e?void 0:e.state_key)&&delete e.state_key}for(const t of e.context.events_after||[]){const e=t;null===(null==e?void 0:e.state_key)&&delete e.state_key}}}s.next_batch=o.next_batch;return{response:o,query:s}}function QE(e,t){try{const n=e[e.length-1].result,i=t[t.length-1].result;return n.origin_server_ts<=i.origin_server_ts?-1:1}catch{return 0}}function XE(e,t,n,i){const s=n.concat(i).sort($E);t.results=s.slice(0,10),e.cachedEvents=s.slice(10)}function ZE(e,t,n){var i;const s=function(e,t,n){var i;const s={},o=null!==(i=e.cachedEvents)&&void 0!==i?i:[];let r=e.oldestEventFrom;var a,l,c,d;if(s.highlights=e.highlights,t&&n&&n.results)QE(null!==(a=t.results)&&void 0!==a?a:[],n.results)<0&&(r="local"),XE(e,s,null!==(l=t.results)&&void 0!==l?l:[],n.results),s.highlights=(null!==(c=t.highlights)&&void 0!==c?c:[]).concat(null!==(d=n.highlights)&&void 0!==d?d:[]);else if(t){var m,u;QE(null!==(m=t.results)&&void 0!==m?m:[],o)<0&&(r="local"),XE(e,s,null!==(u=t.results)&&void 0!==u?u:[],o)}else n&&n.results?(QE(n.results,o)<0&&(r="server"),XE(e,s,n.results,o)):(s.results=o,e.cachedEvents=[]);return e.oldestEventFrom=r,s}(e,t,n);if(e.count)s.count=e.count;else{var o,r;const e=null!==(o=null==t?void 0:t.count)&&void 0!==o?o:0,i=null!==(r=null==n?void 0:n.count)&&void 0!==r?r:0;s.count=e+i}return t&&(0,GE.E)(e.seshatQuery)&&(e.seshatQuery.next_batch=t.next_batch),n&&(e.serverSideNextBatch=n.next_batch),null!==(i=e.seshatQuery)&&void 0!==i&&i.next_batch?s.next_batch=e.seshatQuery.next_batch:e.serverSideNextBatch&&(s.next_batch=e.serverSideNextBatch),!s.next_batch&&(0,GE.E)(e.cachedEvents)&&e.cachedEvents.length>0&&(s.next_batch="cached"),s}function ew(e=[]){for(const t of e){const e=t.context.getTimeline();for(const t of e){const e=t.event;e.curve25519Key&&(t.makeEncrypted(r.Bx4.RoomMessageEncrypted,{algorithm:e.algorithm},e.curve25519Key,e.ed25519Key),t.forwardingCurve25519KeyChain=e.forwardingCurve25519KeyChain,delete e.curve25519Key,delete e.ed25519Key,delete e.algorithm,delete e.forwardingCurve25519KeyChain)}}}async function tw(e,t,n,i){let s;var o;void 0!==n?s=await(null===(o=e.getCrypto())||void 0===o?void 0:o.isEncryptionEnabledInRoom(n))?async function(e,t,n){const i={results:[],highlights:[]};if(""===t)return i;const s=await YE(t,n);i.seshatQuery=s.query;const o={search_categories:{room_events:s.response}},r=e.processRoomEventsSearch(i,o);return ew(r.results),r}(e,t,n):qE(e,t,n,i):s=async function(e,t,n){const i=KE(e,t,void 0,n),s=YE(t);await Promise.all([i,s]);const o=await s,r=await i,a=r.query,l=r.response,c=o.query,d=o.response,m={seshatQuery:c,_query:a,serverSideNextBatch:l.search_categories.room_events.next_batch,cachedEvents:[],oldestEventFrom:"server",results:[],highlights:[]},u={search_categories:{room_events:ZE(m,d,l.search_categories.room_events)}},p=e.processRoomEventsSearch(m,u);return ew(p.results),p}(e,t,i);return s}function nw(e,t){const n=t.seshatQuery,i=t._query;if(n){if(i){const n=async function(e,t){var n;const i=y.A.get(),s=t.seshatQuery,o=t.oldestEventFrom;let r,a;if(null==s||!s.next_batch||t.serverSideNextBatch&&"server"!==o||(r=await i.search(s)),t.serverSideNextBatch&&("local"===o||null==s||!s.next_batch)){const n={body:t._query,next_batch:t.serverSideNextBatch};a=await e.search(n)}const l={search_categories:{room_events:ZE(t,r,null===(n=a)||void 0===n?void 0:n.search_categories.room_events)}},c=t.results?t.results.length:0,d=e.processRoomEventsSearch(t,l),m=d.results.length-c;return ew(d.results.slice(Math.max(d.results.length-m,0))),t.pendingRequest=void 0,d}(e,t);return t.pendingRequest=n,n}{const n=async function(e,t){var n,i;const s=y.A.get();if(!t.seshatQuery)throw new Error("localSearchProcess must be called first");const o=await s.search(t.seshatQuery);if(!o)throw new Error("Local search pagination failed");t.seshatQuery.next_batch=o.next_batch;const r=null!==(n=null===(i=o.results)||void 0===i?void 0:i.length)&&void 0!==n?n:0,a={search_categories:{room_events:o}},l=e.processRoomEventsSearch(t,a);return ew(l.results.slice(Math.max(l.results.length-r,0))),t.pendingRequest=void 0,l}(e,t);return t.pendingRequest=n,n}}return e.backPaginateRoomEventsSearch(t)}let iw=function(e){return e.Room="Room",e.All="All",e}({});function sw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}const ow=({term:e,scope:t,promise:n,className:a,onUpdate:l,inProgress:d,ref:m})=>{const u=(0,s.useContext)(je.Ay),p=(0,aa.ME)("showHiddenEvents"),[h,g]=(0,s.useState)(null),[v,_]=(0,s.useState)(null),f=(0,s.useRef)(!1),E=(0,s.useMemo)(()=>new Map,[]),w=(0,s.useRef)(null);(0,s.useEffect)(()=>()=>{E.forEach(e=>e.stop()),E.clear()},[E]);const S=(0,s.useCallback)(t=>(l(!0,null,null),t.then(async t=>{if(f.current)return o.vF.error("Discarding stale search results"),!1;let n=t.highlights;n.includes(e)||(n=n.concat(e)),n=n.sort(function(e,t){return t.length-e.length});for(const e of t.results)for(const t of e.context.getTimeline()){if(!t.getServerAggregatedRelation(r.RNJ.name)||t.getThread())continue;const e=u.getRoom(t.getRoomId()),n=null==e?void 0:e.findThreadForEvent(t);n?t.setThread(n):null==e||e.createThread(t.getId(),t,[],!0)}return g(n),_(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?sw(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sw(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},t)),l(!1,t,null),!1},e=>f.current?(o.vF.error("Discarding stale search results"),!1):(o.vF.error("Search failed",e),l(!1,null,e),!1))),[u,e,l]);if((0,s.useEffect)(()=>(f.current=!1,S(n),()=>{f.current=!0}),[]),null===v)return s.createElement("div",{className:"mx_RoomView_messagePanel mx_RoomView_messagePanelSearchSpinner"},s.createElement(ei.A,null));const b=[];var A;(d&&b.push(s.createElement("li",{key:"search-spinner"},s.createElement(Be.A,null))),v.next_batch)||(null!=v&&null!==(A=v.results)&&void 0!==A&&A.length?b.push(s.createElement("li",{key:"search-top-marker"},s.createElement("h2",{className:"mx_RoomView_topMarker"},(0,c._t)("no_more_results")))):b.push(s.createElement("li",{key:"search-top-marker"},s.createElement("h2",{className:"mx_RoomView_topMarker"},(0,c._t)("common|no_results")))));let C,x=[],k=[];for(let e=((null==v||null===(R=v.results)||void 0===R?void 0:R.length)||0)-1;e>=0;e--){var R;const n=v.results[e],i=n.context.getEvent(),r=i.getRoomId(),a=u.getRoom(r);if(!a){o.vF.log("Hiding search result from an unknown room",r);continue}if(!(0,zo.bN)(i,u,p.showHiddenEvents))continue;t===iw.All&&r!==C&&(b.push(s.createElement("li",{key:i.getId()+"-room"},s.createElement("h2",null,(0,c._t)("common|room"),": ",a.name))),C=r);const l="#/room/"+r+"/"+i.getId(),d=n.context.getTimeline(),m=e>0?v.results[e-1].context.getTimeline():[];if(e>0&&d[d.length-1].getId()==m[0].getId()){if(0==x.length){for(let e=0==x.length?0:1;e<n.context.getTimeline().length;e++)x.push(d[e]);k.push(n.context.getOurEventIndex())}for(let e=1;e<m.length;e++)x.push(m[e]);k.push(k[k.length-1]+v.results[e-1].context.getOurEventIndex()+1);continue}0==x.length&&(x=n.context.getTimeline(),k=[],k.push(n.context.getOurEventIndex()));let g=E.get(r);g||(g=new Ls.pE(a),g.start(),E.set(r,g)),b.push(s.createElement(JE,{key:i.getId(),timeline:x,ourEventsIndexes:k,searchHighlights:null!=h?h:[],resultLink:l,permalinkCreator:g})),k=[],x=[]}return s.createElement(hh.A,{ref:e=>{"function"==typeof m?m(e):m&&(m.current=e),w.current=e},className:"mx_RoomView_searchResultsPanel "+a,onFillRequest:async e=>{if(!e)return!1;if(!v.next_batch)return!1;const t=function(e,t){const n=y.A.get();return t.pendingRequest?t.pendingRequest:null===n?e.backPaginateRoomEventsSearch(t):nw(e,t)}(u,v);return S(t)}},s.createElement("li",{className:"mx_RoomView_scrollheader"}),b)},rw=({roomView:e,resizeNotifier:t,inviteEvent:n})=>{const i=(0,aa.ME)("room"),o=d.A.get().brand;return s.createElement("div",{className:"mx_RoomView mx_RoomView--local"},s.createElement(So,null,s.createElement(lE,{room:i.room}),s.createElement("main",{className:"mx_RoomView_body",ref:e},s.createElement("div",{className:"mx_RoomView_timeline"},s.createElement(hh.A,{className:"mx_RoomView_messagePanel"},s.createElement(Xe.pc8,{icon:s.createElement(Ce.A,null),className:"mx_EventTileBubble mx_cryptoEvent",title:(0,c._t)("room|waiting_for_join_title",{brand:o}),subtitle:(0,c._t)("room|waiting_for_join_subtitle",{brand:o})}),s.createElement(Oh,null),s.createElement(Ql,{mxEvent:n}))))))},aw=({searchInfo:e,isRoomEncrypted:t,onSearchScopeChange:n,onCancelClick:i})=>{var o;const r=null!==(o=null==e?void 0:e.scope)&&void 0!==o?o:iw.Room;return s.createElement(s.Fragment,null,s.createElement(Gi.Z,{screenName:"RoomSearch"}),s.createElement("div",{className:"mx_RoomSearchAuxPanel"},s.createElement("div",{className:"mx_RoomSearchAuxPanel_summary"},s.createElement(ei.A,{width:"24px",height:"24px"}),s.createElement("div",{className:"mx_RoomSearchAuxPanel_summary_text"},void 0!==(null==e?void 0:e.count)?(0,c._t)("room|search|summary",{count:e.count},{query:()=>s.createElement("strong",null,e.term)}):void 0!==(null==e?void 0:e.error)?null==e?void 0:e.error.message:s.createElement($s.A,null),s.createElement(Zg,{kind:Xg.Search,isRoomEncrypted:t,showLogo:!1}))),s.createElement("div",{className:"mx_RoomSearchAuxPanel_buttons"},s.createElement(Tp.N,{onClick:()=>n(r===iw.Room?iw.All:iw.Room),kind:"primary"},r===iw.All?(0,c._t)("room|search|this_room_button"):(0,c._t)("room|search|all_rooms_button")),s.createElement(Tu.K,{onClick:i,destructive:!0,tooltip:(0,c._t)("action|cancel"),"aria-label":(0,c._t)("action|cancel")},s.createElement(ti.A,{width:"20px",height:"20px"})))))},lw=["mxEvent"];function cw({room:e,permalinkCreator:t}){const n=rg(e),i=cg(e,n),o=i.length,r=1===o,[a,l]=(0,s.useState)(o-1);(0,s.useEffect)(()=>{l(()=>o-1)},[o]);const d=a===o-1,m=i[a];!function(e){const t=(0,s.useContext)(Ro.A).resizeNotifier,n=(0,s.useRef)(null);(0,s.useEffect)(()=>{(n.current&&!e||!n.current&&e)&&t.notifyTimelineHeightChanged(),n.current=e},[e,t])}(m);const u=(0,s.useId)();if(!m)return null;const p=m.isRedacted()||m.isDecryptionFailure();return s.createElement("div",{role:"region",className:"mx_PinnedMessageBanner","data-single-message":r,"aria-label":(0,c._t)("room|pinned_message_banner|description")},s.createElement("button",{"aria-label":d?(0,c._t)("room|pinned_message_banner|go_to_newest_message"):(0,c._t)("room|pinned_message_banner|go_to_next_message"),"aria-describedby":u,type:"button",className:"mx_PinnedMessageBanner_main",onClick:()=>{Gi.A.trackInteraction("PinnedMessageBannerClick"),K.A.dispatch({action:$.r.ViewRoom,event_id:m.getId(),highlighted:!0,room_id:e.roomId,metricsTrigger:void 0}),l(e=>-1===--e?o-1:e)}},s.createElement("div",{className:"mx_PinnedMessageBanner_content",id:u},s.createElement(mw,{count:o,currentIndex:a}),s.createElement(af.A,{width:"20px",height:"20px",className:"mx_PinnedMessageBanner_PinIcon"}),!r&&s.createElement("div",{className:"mx_PinnedMessageBanner_title"},(0,c._t)("room|pinned_message_banner|title",{index:a+1,length:o},{bold:e=>s.createElement("span",{className:"mx_PinnedMessageBanner_title_counter"},e)})),s.createElement(dw,{mxEvent:m,className:"mx_PinnedMessageBanner_message"}),p&&s.createElement("div",{className:"mx_PinnedMessageBanner_redactedMessage"},s.createElement(Y_.A,{mxEvent:m,maxImageHeight:20,permalinkCreator:t,replacingEventId:m.replacingEventId()})))),!r&&s.createElement(pw,{room:e}))}function dw(e){let{mxEvent:t}=e,n=(0,v.A)(e,lw);const i=(0,s.useContext)(je.Ay),o=(0,Xe.s2q)(()=>new ul({cli:i,mxEvent:t}));return(0,s.useEffect)(()=>{o.setEvent(t)},[t,o]),(0,s.useEffect)(()=>{o.setClient(i)},[i,o]),s.createElement(Xe.IVz,(0,xn.A)({},n,{vm:o}))}function mw({count:e,currentIndex:t}){const n=Math.min(e,3),i=t%n,o=Math.ceil(e/n),r=t>=3*(o-1),a=n-(o*n-e);return s.createElement("div",{className:"mx_PinnedMessageBanner_Indicators"},Array.from({length:n}).map((e,t)=>s.createElement(uw,{key:t,active:t===i,hidden:r&&a<=t})))}function uw({active:e,hidden:t}){return s.createElement("div",{className:un()("mx_PinnedMessageBanner_Indicator",{"mx_PinnedMessageBanner_Indicator--active":e,"mx_PinnedMessageBanner_Indicator--hidden":t})})}function pw({room:e}){const t=(0,s.useContext)(Ro.A),n=(0,s.useCallback)(e=>t.rightPanelStore.isOpenForRoom(e)?t.rightPanelStore.currentCard.phase:null,[t.rightPanelStore]),[i,o]=(0,s.useState)(n(e.roomId));(0,mo.ml)(t.rightPanelStore,"update",()=>o(n(e.roomId)));const r=i===Wu.n.PinnedMessages;return s.createElement(xe.$,{className:"mx_PinnedMessageBanner_actions",kind:"tertiary",onClick:()=>{r?Gi.A.trackInteraction("PinnedMessageBannerCloseListButton"):Gi.A.trackInteraction("PinnedMessageBannerViewAllButton"),t.rightPanelStore.showOrHidePhase(Wu.n.PinnedMessages)}},r?(0,c._t)("room|pinned_message_banner|button_close_list"):(0,c._t)("room|pinned_message_banner|button_view_all"))}const hw=({onFinished:e,roomName:t})=>{const[n,i]=(0,s.useState)(!1),[o,r]=(0,s.useState)(!1),a=(0,s.useCallback)(e=>i(e.target.checked),[i]),l=(0,s.useCallback)(e=>r(e.target.checked),[r]),[d,m]=(0,s.useState)(""),u=(0,s.useCallback)(e=>m(e.target.value),[m]),p=(0,s.useCallback)(()=>e(!1,!1,!1),[e]),h=(0,s.useCallback)(()=>e(!0,o,!!n&&d),[e,o,n,d]);return s.createElement(ke.A,{className:"mx_DeclineAndBlockInviteDialog",onFinished:p,title:(0,c._t)("decline_invitation_dialog|title"),contentId:"mx_Dialog_content"},s.createElement(Ki.b,null,s.createElement("p",null,(0,c._t)("decline_invitation_dialog|confirm",{roomName:t})),s.createElement(Vi.I,{name:"ignore-user",label:(0,c._t)("report_content|ignore_user"),onChange:l,helpMessage:(0,c._t)("decline_invitation_dialog|ignore_user_help"),checked:o}),s.createElement(Vi.I,{name:"report-room",label:(0,c._t)("action|report_room"),onChange:a,helpMessage:(0,c._t)("decline_invitation_dialog|report_room_description"),checked:n}),s.createElement(qi.D,{name:"report-reason","aria-disabled":!n},s.createElement($i.J,{htmlFor:"mx_DeclineAndBlockInviteDialog_reason"},(0,c._t)("room_settings|permissions|ban_reason")),s.createElement("textarea",{id:"mx_DeclineAndBlockInviteDialog_reason",className:"mx_RoomReportTextArea",placeholder:(0,c._t)("decline_invitation_dialog|reason_description"),rows:5,onChange:u,value:n?d:"",disabled:!n})),s.createElement(an.A,{primaryButton:(0,c._t)("action|decline_invite"),primaryButtonClass:"danger",cancelButton:(0,c._t)("action|cancel"),onPrimaryButtonClick:h,onCancel:p})))};var gw;class vw extends Xe.oY8{constructor(e){const t=_.J.safeGet();super(e,vw.computeSnapshot(e.room,t,!1,!1)),(0,i.A)(this,"client",void 0),(0,i.A)(this,"onClientSync",()=>{this.setSnapshot()}),(0,i.A)(this,"onRoomLocalEchoUpdated",()=>{this.setSnapshot()}),(0,i.A)(this,"isResending",!1),(0,i.A)(this,"hasClickedTermsAndConditions",!1),(0,i.A)(this,"onTermsAndConditionsClicked",()=>{this.hasClickedTermsAndConditions=!0,this.setSnapshot()}),(0,i.A)(this,"onDeleteAllClick",()=>{vl.A.cancelUnsentEvents(this.props.room),K.A.fire($.r.FocusSendMessageComposer),this.setSnapshot()}),(0,i.A)(this,"onResendAllClick",async()=>{this.isResending=!0,this.setSnapshot();try{await vl.A.resendUnsentEvents(this.props.room),K.A.fire($.r.FocusSendMessageComposer)}finally{this.isResending=!1,this.setSnapshot()}}),(0,i.A)(this,"onRetryRoomCreationClick",()=>{if(this.props.room instanceof Ni.N==!1)throw Error("Tried to recreate local room, but room was not local.");this.props.room.state=Ni.c.NEW,K.A.dispatch({action:"local_room_event",roomId:this.props.room.roomId})}),this.client=t,this.disposables.trackListener(t,r.AUM.Sync,this.onClientSync),this.disposables.trackListener(e.room,r.u99.LocalEchoUpdated,this.onRoomLocalEchoUpdated)}setSnapshot(){this.snapshot.set(vw.computeSnapshot(this.props.room,this.client,this.isResending,this.hasClickedTermsAndConditions)),this.hasClickedTermsAndConditions&&!this.snapshot.current.state&&(this.hasClickedTermsAndConditions=!1)}}gw=vw,(0,i.A)(vw,"determineStateForUnreadMessages",(e,t)=>{const n=e.getPendingEvents().filter(e=>e.status===r.fbu.NOT_SENT);if(0===n.length)return{state:null};if(t)return{state:Xe.c2C.UnsentMessages,isResending:!1};let i=null;for(const e of n){var s,o;if("M_CONSENT_NOT_GIVEN"===(null===(s=e.error)||void 0===s?void 0:s.errcode))return{state:Xe.c2C.NeedsConsent,consentUri:e.error.data.consent_uri};"M_RESOURCE_LIMIT_EXCEEDED"===(null===(o=e.error)||void 0===o?void 0:o.errcode)&&(i=e.error)}var a;return i?{state:Xe.c2C.ResourceLimited,resourceLimit:null!==(a=i.data.limit_type)&&void 0!==a?a:"",adminContactHref:i.data.admin_contact}:{state:Xe.c2C.UnsentMessages,isResending:!1}}),(0,i.A)(vw,"computeSnapshot",(e,t,n,i)=>{const s=e.isError;if(void 0!==s)return{state:s?Xe.c2C.LocalRoomFailed:null};if(n)return{state:Xe.c2C.UnsentMessages,isResending:n};if(t.getSyncState()===r.Lmg.Error){var o;const e=t.getSyncStateData();return"M_RESOURCE_LIMIT_EXCEEDED"===(null==e||null===(o=e.error)||void 0===o?void 0:o.name)?{state:null}:{state:Xe.c2C.ConnectionLost}}return gw.determineStateForUnreadMessages(e,i)});var _w=n("./src/viewmodels/room/timeline/event-tile/EncryptionEventViewModel.ts");const fw=["upgradeRecommendation"],yw=["upgradeRecommendation"];function Ew(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function ww(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ew(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ew(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const Sw="sandbox"in document.createElement("iframe");function bw(e){const t=(0,aa.ME)("room").room,n=e.localRoom.currentState.getStateEvents(r.Bx4.RoomEncryption)[0];let i;n&&(i=s.createElement(xw,{mxEvent:n}));let o=null,a=null;return t.isError?o=s.createElement(Cw,{room:t}):a=s.createElement(x_,{e2eStatus:e.e2eStatus,room:e.localRoom,resizeNotifier:e.resizeNotifier,permalinkCreator:e.permalinkCreator}),s.createElement("div",{className:"mx_RoomView mx_RoomView--local"},s.createElement(So,null,s.createElement(lE,{room:t}),s.createElement(Qv.tz,null,s.createElement("main",{className:"mx_RoomView_body",ref:e.roomView,"aria-label":(0,c._t)("room|room_content")},s.createElement(D_,{parent:e.roomView.current}),s.createElement("div",{className:"mx_RoomView_timeline"},s.createElement(hh.A,{className:"mx_RoomView_messagePanel"},i,s.createElement(Oh,null))),o,a))))}function Aw(e){const t=(0,c._t)("room|creating_room_text",{names:e.names});return s.createElement("div",{className:"mx_RoomView mx_RoomView--local"},s.createElement(So,null,s.createElement(lE,{room:e.localRoom}),s.createElement("div",{className:"mx_RoomView_body"},s.createElement(zE,{text:t}))))}function Cw(e){const t=(0,Xe.s2q)(()=>new vw(e));return(0,s.useEffect)(()=>{if("onVisible"in e){var n;if(null!==t.getSnapshot().state)e.onVisible();else null===(n=e.onHidden)||void 0===n||n.call(e);t.subscribe(()=>{var n,i;null!==t.getSnapshot().state?null===(n=e.onVisible)||void 0===n||n.call(e):null===(i=e.onHidden)||void 0===i||i.call(e)})}},[t,e]),s.createElement(Xe.MDZ,{vm:t})}function xw({mxEvent:e}){const t=(0,je.nH)(),n=(0,Xe.s2q)(()=>new _w.C({mxEvent:e,cli:t}));return s.createElement(Xe.b5C,{vm:n,className:"mx_EventTileBubble mx_cryptoEvent"})}class kw extends s.Component{constructor(e,t){var n;if(super(e,t),(0,i.A)(this,"askToJoinEnabled",void 0),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"settingWatchers",[]),(0,i.A)(this,"unmounted",!1),(0,i.A)(this,"permalinkCreators",{}),(0,i.A)(this,"inviter",void 0),(0,i.A)(this,"roomView",(0,s.createRef)()),(0,i.A)(this,"searchResultsPanel",(0,s.createRef)()),(0,i.A)(this,"messagePanel",null),(0,i.A)(this,"roomViewBody",(0,s.createRef)()),(0,i.A)(this,"roomViewStore",void 0),(0,i.A)(this,"onIsResizing",e=>{this.setState({resizing:e})}),(0,i.A)(this,"onWidgetStoreUpdate",()=>{this.state.room&&(this.checkWidgets(this.state.room),this.doMaybeRemoveOwnJitsiWidget())}),(0,i.A)(this,"onWidgetEchoStoreUpdate",()=>{this.state.room&&this.checkWidgets(this.state.room)}),(0,i.A)(this,"onWidgetLayoutChange",()=>{this.state.room&&(K.A.dispatch({action:"appsDrawer",show:!0}),this.context.widgetLayoutStore.hasMaximisedWidget(this.state.room)&&this.context.rightPanelStore.setCard({phase:Wu.n.Timeline}),this.checkWidgets(this.state.room))}),(0,i.A)(this,"checkWidgets",e=>{this.setState({hasPinnedWidgets:this.context.widgetLayoutStore.hasPinnedWidgets(e),mainSplitContentType:this.getMainSplitContentType(e),showApps:this.shouldShowApps(e)})}),(0,i.A)(this,"getMainSplitContentType",e=>this.roomViewStore.isViewingCall()||(0,Wp.j)(e)?Qo.DZ.Call:this.context.widgetLayoutStore.hasMaximisedWidget(e)?Qo.DZ.MaximisedWidget:Qo.DZ.Timeline),(0,i.A)(this,"onRoomViewStoreUpdate",async e=>{var t,n,i,s,r,a,l,c;if(this.unmounted)return;const d=null!==(t=this.roomViewStore.getRoomLoadError())&&void 0!==t?t:void 0;if(!e&&!d&&this.state.roomId!==this.roomViewStore.getRoomId())return;const m=this.roomViewStore,u=null!==(n=m.getRoomId())&&void 0!==n?n:null,p=null!==(i=m.getRoomAlias())&&void 0!==i?i:void 0,h=m.isRoomLoading(),g=m.isJoining(),v=null!==(s=m.getQuotingEvent())&&void 0!==s?s:void 0,_=this.state.matrixClientIsReady&&m.shouldPeek(),f=m.getWasContextSwitch(),y=m.promptAskToJoin(),E=m.getViewRoomOpts(),w=null!==(r=null===(a=this.context.client)||void 0===a?void 0:a.getRoom(null!=u?u:void 0))&&void 0!==r?r:void 0,b={roomId:null!=u?u:void 0,roomAlias:p,roomLoading:h,roomLoadError:d,joining:g,replyToEvent:v,shouldPeek:_,showReadReceipts:S.A.getValue("showReadReceipts",u),showRedactions:S.A.getValue("showRedactions",u),showJoinLeaves:S.A.getValue("showJoinLeaves",u),showAvatarChanges:S.A.getValue("showAvatarChanges",u),showDisplaynameChanges:S.A.getValue("showDisplaynameChanges",u),wasContextSwitch:f,mainSplitContentType:w?this.getMainSplitContentType(w):void 0,initialEventId:void 0,showRightPanel:!!u&&this.context.rightPanelStore.isOpenForRoom(u),promptAskToJoin:y,viewRoomOpts:E};var A;b.mainSplitContentType===Qo.DZ.Timeline&&this.context.rightPanelStore.isOpen&&this.context.rightPanelStore.currentCard.phase===Wu.n.Timeline&&this.context.rightPanelStore.roomPhaseHistory.some(e=>e.phase===Wu.n.Timeline)&&(this.context.rightPanelStore.setCard({phase:Wu.n.RoomSummary}),this.context.rightPanelStore.togglePanel(null!==(A=this.state.roomId)&&void 0!==A?A:null),b.showRightPanel=!1);const C=null!==(l=this.roomViewStore.getInitialEventId())&&void 0!==l?l:this.state.initialEventId;if(C){var x,k;let e=null==w?void 0:w.findEventById(C);var R;if(!e&&this.context.client&&u)e=null!==(R=await(0,Ho.$I)(this.context.client,u,C))&&void 0!==R?R:void 0;b.initialEventPixelOffset=void 0;const t=null===(x=e)||void 0===x?void 0:x.getThread();null==t||!t.rootEvent||null!==(k=e)&&void 0!==k&&k.isThreadRoot?(b.initialEventId=C,b.isInitialEventHighlighted=this.roomViewStore.isInitialEventHighlighted(),b.initialEventScrollIntoView=this.roomViewStore.initialEventScrollIntoView()):K.A.dispatch({action:$.r.ShowThread,rootEvent:t.rootEvent,initialEvent:e,highlighted:this.roomViewStore.isInitialEventHighlighted(),scroll_into_view:this.roomViewStore.initialEventScrollIntoView()})}var I,T;(this.settingWatchers=this.settingWatchers.concat([S.A.watchSetting("showReadReceipts",u,(...[,,,e])=>this.setState({showReadReceipts:e})),S.A.watchSetting("showRedactions",u,(...[,,,e])=>this.setState({showRedactions:e})),S.A.watchSetting("showJoinLeaves",u,(...[,,,e])=>this.setState({showJoinLeaves:e})),S.A.watchSetting("showAvatarChanges",u,(...[,,,e])=>this.setState({showAvatarChanges:e})),S.A.watchSetting("showDisplaynameChanges",u,(...[,,,e])=>this.setState({showDisplaynameChanges:e}))]),e||!this.state.shouldPeek||b.shouldPeek)||(null===(I=this.context.client)||void 0===I||I.stopPeeking());if(o.vF.log("RVS update:",b.roomId,b.roomAlias,"loading?",b.roomLoading,"joining?",b.joining,"initial?",e,"shouldPeek?",b.shouldPeek),e&&(b.room=this.context.client.getRoom(b.roomId)||void 0,b.isRoomEncrypted=null,b.room&&(b.showApps=this.shouldShowApps(b.room),this.onRoomLoaded(b.room))),void 0===this.state.roomId&&void 0!==b.roomId&&!b.initialEventId&&b.roomId){const e=Nf.getScrollState(b.roomId);e&&(b.initialEventId=e.focussedEvent,b.initialEventPixelOffset=e.pixelOffset)}this.state.timelineRenderingType===Qo.Ae.Search&&this.state.initialEventId!==b.initialEventId&&(b.timelineRenderingType=Qo.Ae.Room,null===(T=this.state.search)||void 0===T||null===(T=T.abortController)||void 0===T||T.abort(),b.search=void 0);w&&this.getMainSplitContentType(w)!==Qo.DZ.Timeline&&b.initialEventId!==this.state.initialEventId&&this.context.rightPanelStore.setCard({phase:Wu.n.Timeline},!0,w.roomId),this.setState(b),e&&this.setupRoom(b.room,b.roomId,!!b.joining,!!b.shouldPeek);const P=await this.getIsRoomEncrypted(b.roomId);this.setState(ww({isRoomEncrypted:P},P&&b.roomId&&{e2eStatus:null!==(c=kw.e2eStatusCache.get(b.roomId))&&void 0!==c?c:ot.z.Warning}))}),(0,i.A)(this,"onCallClose",()=>{K.A.dispatch({action:$.r.ViewRoom,room_id:this.state.roomId,view_call:!1,metricsTrigger:void 0},!0)}),(0,i.A)(this,"getRoomId",()=>{var e,t;return null!==(e=null===(t=this.state.room)||void 0===t?void 0:t.roomId)&&void 0!==e?e:this.state.roomId}),(0,i.A)(this,"onRightPanelStoreUpdate",()=>{const{roomId:e}=this.state;this.setState({showRightPanel:!!e&&this.context.rightPanelStore.isOpenForRoom(e)})}),(0,i.A)(this,"onPageUnload",e=>xp.Ay.sharedInstance().getCurrentUploads().length>0?e.returnValue=(0,c._t)("quit_warning|file_upload_in_progress"):this.getCallForRoom()&&"ended"!==this.state.callState?e.returnValue=(0,c._t)("quit_warning|call_in_progress"):void 0),(0,i.A)(this,"onReactKeyDown",e=>{var t;let n=!1;switch((0,dc.zM)().getRoomAction(e)){case mc.bY.DismissReadMarker:null===(t=this.messagePanel)||void 0===t||t.forgetReadMarker(),this.jumpToLiveTimeline(),n=!0;break;case mc.bY.JumpToOldestUnread:this.jumpToReadMarker(),n=!0;break;case mc.bY.UploadFile:K.A.dispatch({action:"upload_file",context:Qo.Ae.Room},!0),n=!0}n&&(e.stopPropagation(),e.preventDefault())}),(0,i.A)(this,"onCallState",e=>{if(!e)return;const t=this.getCallForRoom();this.setState({callState:null==t?void 0:t.state})}),(0,i.A)(this,"onAction",async e=>{var t;if(this.context.client)switch(e.action){case"message_sent":this.checkDesktopNotifications();break;case"post_sticker_message":this.injectSticker(e.data.content.url,e.data.content.info,e.data.description||e.data.name,e.data.threadId);break;case"picture_snapshot":{const t=this.getRoomId();(0,GE.E)(t)&&xp.Ay.sharedInstance().sendContentListToRoom([e.file],t,void 0,this.state.replyToEvent,this.context.client);break}case"notifier_enabled":case $.r.UploadStarted:case $.r.UploadFinished:case $.r.UploadCanceled:this.forceUpdate();break;case"appsDrawer":this.setState({showApps:e.show});break;case"reply_to_event":!this.unmounted&&this.state.search&&(null===(t=e.event)||void 0===t?void 0:t.getRoomId())===this.state.roomId&&e.context===Qo.Ae.Search&&this.onCancelSearchClick();break;case"MatrixActions.sync":if(!this.state.matrixClientIsReady){var n;const e=Boolean(null===(n=this.context.client)||void 0===n?void 0:n.isInitialSyncComplete());this.setState({matrixClientIsReady:e},()=>{e&&this.onRoomViewStoreUpdate(!0)})}break;case"local_room_event":this.onLocalRoomEvent(e.roomId);break;case $.r.EditEvent:{var i;if(e.timelineRenderingType!==this.state.timelineRenderingType)return;const t=null===(i=e.event)||void 0===i?void 0:i.getRoomId();if(e.event&&t!==this.state.roomId){if(t&&this.roomViewStore.isRoomDisplayedInModule(t))return;return void K.A.dispatch({action:$.r.ViewRoom,room_id:e.event.getRoomId(),metricsTrigger:void 0,deferred_action:e})}const n=e.event?new k_(e.event):void 0;this.setState({editState:n,search:void 0},()=>{var t;e.event&&(null===(t=this.messagePanel)||void 0===t||t.scrollToEventIfNeeded(e.event.getId()))});break}case $.r.ComposerInsert:{const t=e;if(t.composerType)break;let n=t.timelineRenderingType;if(t.timelineRenderingType===Qo.Ae.Thread)break;this.state.timelineRenderingType===Qo.Ae.Search&&t.timelineRenderingType===Qo.Ae.Search&&(await this.onCancelSearchClick(),n=Qo.Ae.Room),K.A.dispatch(ww(ww({},t),{},{timelineRenderingType:n,composerType:this.state.editState?qv.D.Edit:qv.D.Send}));break}case $.r.FocusAComposer:K.A.dispatch(ww(ww({},e),{},{action:this.state.editState?$.r.FocusEditMessageComposer:$.r.FocusSendMessageComposer}));break;case"scroll_to_bottom":var s;if(e.timelineRenderingType===Qo.Ae.Room)null===(s=this.messagePanel)||void 0===s||s.jumpToLiveTimeline();break;case $.r.ViewUser:e.member?e.push?this.context.rightPanelStore.pushCard({phase:Wu.n.MemberInfo,state:{member:e.member}}):this.context.rightPanelStore.setCards([{phase:Wu.n.RoomSummary},{phase:Wu.n.MemberList},{phase:Wu.n.MemberInfo,state:{member:e.member}}]):this.context.rightPanelStore.showOrHidePhase(Wu.n.MemberList);break;case $.r.View3pidInvite:((e,t)=>{e.event?t.pushCard({phase:Wu.n.ThreePidMemberInfo,state:{memberInfoEvent:e.event}}):t.showOrHidePhase(Wu.n.MemberList)})(e,this.context.rightPanelStore);break;case $.r.FocusMessageSearch:e.initialText&&this.onSearch(e.initialText)}}),(0,i.A)(this,"onRoomTimeline",(e,t,n,i,s)=>{var o;this.unmounted||t&&t.roomId===(null===(o=this.state.room)||void 0===o?void 0:o.roomId)&&s.timeline.getTimelineSet()===t.getUnfilteredTimelineSet()&&("org.matrix.room.preview_urls"===e.getType()&&this.updatePreviewUrlVisibility(),"m.room.encryption"===e.getType()&&(this.updateE2EStatus(t),this.updatePreviewUrlVisibility()),!n&&null!=s&&s.liveEvent&&(this.state.joining||(e.isBeingDecrypted()||e.isDecryptionFailure()||this.handleEffects(e),this.context.client&&e.getSender()!==this.context.client.getSafeUserId()&&(!this.state.search&&this.state.atEndOfLiveTimeline||(0,qa.A)(e,this.state)||this.setState(e=>({numUnreadMessages:e.numUnreadMessages+1}))))))}),(0,i.A)(this,"onEventDecrypted",e=>{this.state.room&&this.state.matrixClientIsReady&&e.getRoomId()===this.state.room.roomId&&(e.isDecryptionFailure()||this.handleEffects(e))}),(0,i.A)(this,"handleEffects",e=>{if(!this.state.room)return;this.context.roomNotificationStateStore.getRoomState(this.state.room).isUnread&&Jv.y.forEach(t=>{((0,Wv._)(e.getContent(),t.emojis)||e.getContent().msgtype===t.msgType)&&(e.isRelation(r.RNJ.name)||K.A.dispatch({action:`effects.${t.command}`,event:e}))})}),(0,i.A)(this,"onRoomName",e=>{this.state.room&&e.roomId==this.state.room.roomId&&this.forceUpdate()}),(0,i.A)(this,"onKeyBackupStatus",()=>{this.forceUpdate()}),(0,i.A)(this,"canResetTimeline",()=>!this.messagePanel||this.messagePanel.canResetTimeline()),(0,i.A)(this,"onRoomLoaded",e=>{this.unmounted||(this.inviter=this.getInviterFromRoom(e),this.context.widgetLayoutStore.on(zg.a.emissionForRoom(e),this.onWidgetLayoutChange),this.calculatePeekRules(e),this.loadMembersIfJoined(e),this.calculateRecommendedVersion(e),this.updatePermissions(e),this.checkWidgets(e),this.updateRoomEncrypted(e),this.getMainSplitContentType(e)!==Qo.DZ.Timeline&&this.context.roomNotificationStateStore.getRoomState(e).isUnread&&this.context.rightPanelStore.setCard({phase:Wu.n.Timeline},!0,e.roomId),this.setState({tombstone:this.getRoomTombstone(e),liveTimeline:e.getLiveTimeline()}),K.A.dispatch({action:$.r.RoomLoaded}))}),(0,i.A)(this,"onRoomTimelineReset",e=>{var t;e&&e.roomId===(null===(t=this.state.room)||void 0===t?void 0:t.roomId)&&e.getLiveTimeline()!==this.state.liveTimeline&&(o.vF.log(`Live timeline of ${e.roomId} was reset`),this.setState({liveTimeline:e.getLiveTimeline()}))}),(0,i.A)(this,"onRoom",e=>{e&&e.roomId===this.state.roomId&&(this.state.room&&this.context.widgetLayoutStore.off(zg.a.emissionForRoom(this.state.room),this.onWidgetLayoutChange),this.setState({room:e},()=>{this.onRoomLoaded(e)}))}),(0,i.A)(this,"onUserVerificationChanged",e=>{const t=this.state.room;t&&t.currentState.getMember(e)&&this.updateE2EStatus(t)}),(0,i.A)(this,"onCrossSigningKeysChanged",()=>{const e=this.state.room;e&&this.updateE2EStatus(e)}),(0,i.A)(this,"onUrlPreviewsEnabledChange",()=>{this.updatePreviewUrlVisibility()}),(0,i.A)(this,"onRoomStateEvents",async(e,t)=>{if(this.state.room&&this.state.room.roomId===t.roomId&&this.context.client)switch(e.getType()){case r.Bx4.RoomTombstone:this.setState({tombstone:this.getRoomTombstone()});break;case r.Bx4.RoomEncryption:await this.updateRoomEncrypted();break;default:this.updatePermissions(this.state.room)}}),(0,i.A)(this,"onRoomStateUpdate",e=>{var t;e.roomId===(null===(t=this.state.room)||void 0===t?void 0:t.roomId)&&this.updateRoomMembers()}),(0,i.A)(this,"onMyMembership",e=>{e.roomId===this.state.roomId&&(this.forceUpdate(),this.loadMembersIfJoined(e),this.updatePermissions(e))}),(0,i.A)(this,"updateRoomMembers",(0,Gn.A)(()=>{this.state.room&&(this.updateDMState(),this.updateE2EStatus(this.state.room))},500,{leading:!0,trailing:!0})),(0,i.A)(this,"onJoinButtonClicked",()=>{var e;null!==(e=this.context.client)&&void 0!==e&&e.isGuest()?(K.A.dispatch({action:$.r.DoAfterSyncPrepared,deferred_action:{action:$.r.ViewRoom,room_id:this.getRoomId(),metricsTrigger:void 0}}),K.A.dispatch({action:"require_registration"})):Promise.resolve().then(()=>{var e;const t=null===(e=this.props.threepidInvite)||void 0===e?void 0:e.signUrl,n=this.getRoomId();var i;(0,GE.E)(n)&&K.A.dispatch({action:$.r.JoinRoom,roomId:n,opts:{inviteSignUrl:t},metricsTrigger:(null===(i=this.state.room)||void 0===i?void 0:i.getMyMembership())===$n.O.Invite?"Invite":"RoomPreview",canAskToJoin:this.state.canAskToJoin});return Promise.resolve()})}),(0,i.A)(this,"onMessageListScroll",()=>{var e;null!==(e=this.messagePanel)&&void 0!==e&&e.isAtEndOfLiveTimeline()?this.setState({numUnreadMessages:0,atEndOfLiveTimeline:!0}):this.setState({atEndOfLiveTimeline:!1}),this.updateTopUnreadMessagesBar()}),(0,i.A)(this,"resetJumpToEvent",e=>{this.state.initialEventId&&this.state.initialEventScrollIntoView&&this.state.initialEventId===e&&K.A.dispatch({action:$.r.ViewRoom,room_id:this.getRoomId(),event_id:this.state.initialEventId,highlighted:this.state.isInitialEventHighlighted,scroll_into_view:!1,replyingToEvent:this.state.replyToEvent,metricsTrigger:void 0})}),(0,i.A)(this,"onSearch",(e,t=iw.Room)=>{const n=t===iw.Room?this.getRoomId():void 0,i=new AbortController,s=function(e,t,n,i){return null===y.A.get()?qE(e,t,n,i):tw(e,t,n,i)}(this.context.client,e,n,i.signal);this.setState({timelineRenderingType:Qo.Ae.Search,search:{searchId:(new Date).getTime(),roomId:n,term:e,scope:t,promise:s,abortController:i}})}),(0,i.A)(this,"onSearchScopeChange",e=>{var t,n;this.onSearch(null!==(t=null===(n=this.state.search)||void 0===n?void 0:n.term)&&void 0!==t?t:"",e)}),(0,i.A)(this,"onSearchUpdate",(e,t,n)=>{this.setState({search:ww(ww({},this.state.search),{},{count:null==t?void 0:t.count,error:null!=n?n:void 0,inProgress:e})})}),(0,i.A)(this,"onForgetClick",()=>{K.A.dispatch({action:"forget_room",room_id:this.getRoomId()})}),(0,i.A)(this,"onDeclineAndBlockButtonClicked",async()=>{if(!this.state.room||!this.context.client)return;const[e,t,n]=await X.Ay.createDialog(hw,{roomName:this.state.room.name}).finished;if(!e)return;this.setState({rejecting:!0});const i=[];if(t){const e=async()=>{const e=this.context.client.getSafeUserId();if(!this.inviter||this.inviter===e)throw new Rw("Cannot determine which user to ignore since the member event has changed.");const t=this.context.client.getIgnoredUsers();t.push(this.inviter),await this.context.client.setIgnoredUsers(t)};i.push(e())}!1!==n&&i.push(this.context.client.reportRoom(this.state.room.roomId,n)),i.push(this.context.client.leave(this.state.room.roomId));try{await Promise.all(i),K.A.dispatch({action:$.r.ViewHomePage}),this.setState({rejecting:!1})}catch(e){o.vF.error(`Failed to reject invite: ${e}`);let t="";t=e instanceof Rw?(0,c._t)("room|failed_determine_user"):e instanceof Error?e.message:JSON.stringify(e),X.Ay.createDialog(sn.A,{title:(0,c._t)("room|failed_reject_invite"),description:t}),this.setState({rejecting:!1})}}),(0,i.A)(this,"onDeclineButtonClicked",async()=>{if(this.state.room&&this.context.client)try{this.setState({rejecting:!0}),await this.context.client.leave(this.state.room.roomId),K.A.dispatch({action:$.r.ViewHomePage}),this.setState({rejecting:!1})}catch(e){o.vF.error(`Failed to reject invite: ${e}`);const t=e instanceof Error?e.message:JSON.stringify(e);X.Ay.createDialog(sn.A,{title:(0,c._t)("room|failed_reject_invite"),description:t}),this.setState({rejecting:!1})}}),(0,i.A)(this,"onRejectThreepidInviteButtonClicked",()=>{K.A.fire($.r.ViewRoomDirectory)}),(0,i.A)(this,"onSearchChange",(0,Ap.A)(e=>{this.onSearch(e)},300)),(0,i.A)(this,"onCancelSearchClick",()=>new Promise(e=>{this.setState({timelineRenderingType:Qo.Ae.Room,search:void 0},e)})),(0,i.A)(this,"jumpToLiveTimeline",()=>{var e;this.state.initialEventId&&this.state.isInitialEventHighlighted?K.A.dispatch({action:$.r.ViewRoom,room_id:this.getRoomId(),metricsTrigger:void 0}):(null===(e=this.messagePanel)||void 0===e||e.jumpToLiveTimeline(),K.A.fire($.r.FocusSendMessageComposer))}),(0,i.A)(this,"jumpToReadMarker",()=>{var e;null===(e=this.messagePanel)||void 0===e||e.jumpToReadMarker()}),(0,i.A)(this,"forgetReadMarker",e=>{var t;e.stopPropagation(),null===(t=this.messagePanel)||void 0===t||t.forgetReadMarker()}),(0,i.A)(this,"updateTopUnreadMessagesBar",()=>{if(!this.messagePanel)return;const e=this.messagePanel.canJumpToReadMarker();this.state.showTopUnreadMessagesBar!=e&&this.setState({showTopUnreadMessagesBar:e})}),(0,i.A)(this,"onStatusBarVisible",()=>{this.unmounted||this.state.statusBarVisible||this.setState({statusBarVisible:!0})}),(0,i.A)(this,"onStatusBarHidden",()=>{!this.unmounted&&this.state.statusBarVisible&&this.setState({statusBarVisible:!1})}),(0,i.A)(this,"handleScrollKey",e=>{var t;let n;this.searchResultsPanel.current?n=this.searchResultsPanel.current:this.messagePanel&&(n=this.messagePanel),null===(t=n)||void 0===t||t.handleScrollKey(e)}),(0,i.A)(this,"gatherTimelinePanelRef",e=>{this.messagePanel=e}),(0,i.A)(this,"onHiddenHighlightsClick",()=>{const e=this.getOldRoom();e&&K.A.dispatch({action:$.r.ViewRoom,room_id:e.roomId,metricsTrigger:"Predecessor"})}),(0,i.A)(this,"onMeasurement",e=>{this.setState({narrow:e})}),(0,i.A)(this,"onSubmitAskToJoin",e=>{const t=this.getRoomId();(0,GE.E)(t)&&K.A.dispatch({action:$.r.SubmitAskToJoin,roomId:t,opts:{reason:e}})}),(0,i.A)(this,"onCancelAskToJoin",()=>{const e=this.getRoomId();(0,GE.E)(e)&&K.A.dispatch({action:$.r.CancelAskToJoin,roomId:e})}),(0,i.A)(this,"onFocus",()=>{var e,t;this.props.enableReadReceiptsAndMarkersOnActivity||(null===(e=this.messagePanel)||void 0===e||e.sendReadReceipts(),null===(t=this.messagePanel)||void 0===t||t.updateReadMarker())}),this.askToJoinEnabled=S.A.getValue("feature_ask_to_join"),!t.client)throw new Error("Unable to create RoomView without MatrixClient");e.roomId?this.roomViewStore=this.context.multiRoomViewStore.getRoomViewStoreForRoom(e.roomId):this.roomViewStore=t.roomViewStore;const a=t.client.hasLazyLoadMembersEnabled();this.state={roomId:void 0,roomLoading:!0,peekLoading:!1,shouldPeek:!0,membersLoaded:!a,numUnreadMessages:0,callState:void 0,canPeek:!1,canSelfRedact:!1,showApps:!1,isPeeking:!1,showRightPanel:!1,joining:!1,showTopUnreadMessagesBar:!1,statusBarVisible:!1,canReact:!1,canSendMessages:!1,resizing:!1,layout:S.A.getValue("layout"),lowBandwidth:S.A.getValue("lowBandwidth"),alwaysShowTimestamps:S.A.getValue("alwaysShowTimestamps"),showTwelveHourTimestamps:S.A.getValue("showTwelveHourTimestamps"),userTimezone:Cp.dB(),readMarkerInViewThresholdMs:S.A.getValue("readMarkerInViewThresholdMs"),readMarkerOutOfViewThresholdMs:S.A.getValue("readMarkerOutOfViewThresholdMs"),showHiddenEvents:S.A.getValue("showHiddenEventsInTimeline"),showReadReceipts:!0,showRedactions:!0,showJoinLeaves:!0,showAvatarChanges:!0,showDisplaynameChanges:!0,showUrlPreview:!1,matrixClientIsReady:null===(n=t.client)||void 0===n?void 0:n.isInitialSyncComplete(),mainSplitContentType:Qo.DZ.Timeline,timelineRenderingType:Qo.Ae.Room,liveTimeline:void 0,narrow:!1,msc3946ProcessDynamicPredecessor:S.A.getValue("feature_dynamic_room_predecessors"),canAskToJoin:this.askToJoinEnabled,promptAskToJoin:!1,viewRoomOpts:{buttons:[]},isRoomEncrypted:null}}doMaybeRemoveOwnJitsiWidget(){if(!this.state.roomId||!this.state.room||!this.context.client)return;const e=this.context.widgetStore.getApps(this.state.roomId).filter(e=>e.eventId&&Pg.x.JITSI.matches(e.type));if(e.length<2)return;const t=this.context.client.getSafeUserId(),n=e.find(e=>e.creatorUserId===t);if(!n)return;const i=this.state.room.findEventById(n.eventId);if(!i)return;const s=i.getTs();if(!s)return;const o=e.reduce((e,t)=>{var i;if(t.eventId===n.eventId)return e;const s=(null===(i=this.state.room.findEventById(t.eventId))||void 0===i?void 0:i.getTs())||0;return Math.max(e,s)},0);o&&s>o&&s-o<3e4&&fg.A.setRoomWidget(this.context.client,this.state.roomId,n.id)}getPermalinkCreatorForRoom(){const{room:e,roomId:t}=this.state;if(void 0===e){if((0,GE.E)(t)){const e=new Ls.pE(null,t);return this.permalinkCreators[t]=e,e}throw new Error("Cannot get a permalink creator without a roomId")}return this.permalinkCreators[e.roomId]||(this.permalinkCreators[e.roomId]=new Ls.pE(e),this.state.room&&e.roomId===this.state.room.roomId?this.permalinkCreators[e.roomId].start():this.permalinkCreators[e.roomId].load()),this.permalinkCreators[e.roomId]}stopAllPermalinkCreators(){if(this.permalinkCreators)for(const e of Object.keys(this.permalinkCreators))this.permalinkCreators[e].stop()}setupRoom(e,t,n,i){var s;if(!n&&t)if(!e&&i)o.vF.info(`Attempting to peek into room ${t}`),this.setState({peekLoading:!0,isPeeking:!0}),null===(s=this.context.client)||void 0===s||s.peekInRoom(t).then(e=>{this.unmounted||(this.setState({room:e,peekLoading:!1,canAskToJoin:this.askToJoinEnabled&&e.getJoinRule()===r.dxp.Knock}),this.onRoomLoaded(e))}).catch(e=>{if(!this.unmounted){if(this.setState({isPeeking:!1}),"M_GUEST_ACCESS_FORBIDDEN"!==e.errcode&&"M_FORBIDDEN"!==e.errcode)throw e;this.setState({peekLoading:!1})}});else if(e){var a;null===(a=this.context.client)||void 0===a||a.stopPeeking(),this.setState({isPeeking:!1,canAskToJoin:this.askToJoinEnabled&&e.getJoinRule()===r.dxp.Knock})}}shouldShowApps(e){if(!Sw||!e)return!1;if(this.props.hideWidgets)return!1;const t=e.roomId+"_hide_widget_drawer",n=localStorage.getItem(t),i=!n||"false"===n,s=this.context.widgetLayoutStore.getContainerWidgets(e,"top");return i&&s.length>0}componentDidMount(){this.unmounted=!1,this.dispatcherRef=K.A.register(this.onAction),this.context.client&&(this.context.client.on(r.AUM.Room,this.onRoom),this.context.client.on(r.u99.Timeline,this.onRoomTimeline),this.context.client.on(r.u99.TimelineReset,this.onRoomTimelineReset),this.context.client.on(r.u99.Name,this.onRoomName),this.context.client.on(r.fZ1.Events,this.onRoomStateEvents),this.context.client.on(r.fZ1.Update,this.onRoomStateUpdate),this.context.client.on(r.u99.MyMembership,this.onMyMembership),this.context.client.on(Ee.cr.KeyBackupStatus,this.onKeyBackupStatus),this.context.client.on(Ee.cr.UserTrustStatusChanged,this.onUserVerificationChanged),this.context.client.on(Ee.cr.KeysChanged,this.onCrossSigningKeysChanged),this.context.client.on(r.OQv.Decrypted,this.onEventDecrypted)),this.roomViewStore.on("update",this.onRoomViewStoreUpdate),this.context.rightPanelStore.on("update",this.onRightPanelStoreUpdate),Df.A.on("update",this.onWidgetEchoStoreUpdate),this.context.widgetStore.on("update",this.onWidgetStoreUpdate),this.context.resizeNotifier.on("isResizing",this.onIsResizing),this.settingWatchers=[S.A.watchSetting("layout",null,(...[,,,e])=>this.setState({layout:e})),S.A.watchSetting("lowBandwidth",null,(...[,,,e])=>this.setState({lowBandwidth:e})),S.A.watchSetting("alwaysShowTimestamps",null,(...[,,,e])=>this.setState({alwaysShowTimestamps:e})),S.A.watchSetting("showTwelveHourTimestamps",null,(...[,,,e])=>this.setState({showTwelveHourTimestamps:e})),S.A.watchSetting(Cp.cd,null,(...[,,,e])=>this.setState({userTimezone:e})),S.A.watchSetting("readMarkerInViewThresholdMs",null,(...[,,,e])=>this.setState({readMarkerInViewThresholdMs:e})),S.A.watchSetting("readMarkerOutOfViewThresholdMs",null,(...[,,,e])=>this.setState({readMarkerOutOfViewThresholdMs:e})),S.A.watchSetting("showHiddenEventsInTimeline",null,(...[,,,e])=>this.setState({showHiddenEvents:e})),S.A.watchSetting("urlPreviewsEnabled",null,this.onUrlPreviewsEnabledChange),S.A.watchSetting("urlPreviewsEnabled_e2ee",null,this.onUrlPreviewsEnabledChange),S.A.watchSetting("feature_dynamic_room_predecessors",null,(...[,,,e])=>this.setState({msc3946ProcessDynamicPredecessor:e}))],this.onRoomViewStoreUpdate(!0);const e=this.getCallForRoom(),t=null==e?void 0:e.state;this.setState({callState:t}),this.context.legacyCallHandler.on(tm.uv.CallState,this.onCallState),window.addEventListener("beforeunload",this.onPageUnload)}shouldComponentUpdate(e,t){const n=(0,ui.No)(this.props,e),i=this.state,{upgradeRecommendation:s}=i,o=(0,v.A)(i,fw),{upgradeRecommendation:r}=t,a=(0,v.A)(t,yw),l=(null==r?void 0:r.needsUpgrade)!==(null==s?void 0:s.needsUpgrade)||(0,ui.No)(o,a);return n||l}componentDidUpdate(){this.messagePanel&&void 0===this.state.atEndOfLiveTimeline&&this.setState({atEndOfLiveTimeline:this.messagePanel.isAtEndOfLiveTimeline()})}componentWillUnmount(){var e,t;(this.unmounted=!0,this.context.legacyCallHandler.removeListener(tm.uv.CallState,this.onCallState),this.state.roomId&&Nf.setScrollState(this.state.roomId,this.getScrollState()),this.state.shouldPeek)&&(null===(e=this.context.client)||void 0===e||e.stopPeeking());this.stopAllPermalinkCreators(),K.A.unregister(this.dispatcherRef),this.context.client&&(this.context.client.removeListener(r.AUM.Room,this.onRoom),this.context.client.removeListener(r.u99.Timeline,this.onRoomTimeline),this.context.client.removeListener(r.u99.TimelineReset,this.onRoomTimelineReset),this.context.client.removeListener(r.u99.Name,this.onRoomName),this.context.client.removeListener(r.fZ1.Events,this.onRoomStateEvents),this.context.client.removeListener(r.u99.MyMembership,this.onMyMembership),this.context.client.removeListener(r.fZ1.Update,this.onRoomStateUpdate),this.context.client.removeListener(Ee.cr.KeyBackupStatus,this.onKeyBackupStatus),this.context.client.removeListener(Ee.cr.UserTrustStatusChanged,this.onUserVerificationChanged),this.context.client.removeListener(Ee.cr.KeysChanged,this.onCrossSigningKeysChanged),this.context.client.removeListener(r.OQv.Decrypted,this.onEventDecrypted)),window.removeEventListener("beforeunload",this.onPageUnload),this.roomViewStore.off("update",this.onRoomViewStoreUpdate),this.context.rightPanelStore.off("update",this.onRightPanelStoreUpdate),Df.A.removeListener("update",this.onWidgetEchoStoreUpdate),this.context.widgetStore.removeListener("update",this.onWidgetStoreUpdate),this.context.resizeNotifier.off("isResizing",this.onIsResizing),this.state.room&&this.context.widgetLayoutStore.off(zg.a.emissionForRoom(this.state.room),this.onWidgetLayoutChange),this.context.legacyCallHandler.off(tm.uv.CallState,this.onCallState),this.updateRoomMembers.cancel();for(const e of this.settingWatchers)S.A.unwatchSetting(e);this.viewsLocalRoom&&this.state.room&&(null===(t=this.context.client)||void 0===t||t.store.removeRoom(this.state.room.roomId));this.props.roomId&&this.context.multiRoomViewStore.removeRoomViewStore(this.props.roomId)}onLocalRoomEvent(e){this.context.client&&this.state.room&&e===this.state.room.roomId&&(0,HE.Cp)(this.context.client,this.state.room)}getRoomTombstone(e=this.state.room){var t;return null!==(t=null==e?void 0:e.currentState.getStateEvents(r.Bx4.RoomTombstone,""))&&void 0!==t?t:void 0}async getIsRoomEncrypted(e=this.state.roomId){var t,n;if(!e)return!1;const i=null===(t=this.context.client)||void 0===t?void 0:t.getRoom(e),s=null===(n=this.context.client)||void 0===n?void 0:n.getCrypto();return!(!i||!s)&&(0,zp.Y)(i,s)}async calculateRecommendedVersion(e){const t=await e.getRecommendedVersion();this.unmounted||this.setState({upgradeRecommendation:t})}async loadMembersIfJoined(e){var t;if(null!==(t=this.context.client)&&void 0!==t&&t.hasLazyLoadMembersEnabled()&&e&&e.getMyMembership()===$n.O.Join)try{await e.loadMembersIfNeeded(),this.unmounted||this.setState({membersLoaded:!0})}catch(t){const n=`Fetching room members for ${e.roomId} failed. Room members will appear incomplete.`;o.vF.error(n),o.vF.error(t)}}calculatePeekRules(e){const t=e.currentState.getStateEvents(r.Bx4.RoomHistoryVisibility,"");this.setState({canPeek:(null==t?void 0:t.getContent().history_visibility)===r.JvM.WorldReadable})}updatePreviewUrlVisibility(){this.setState(({isRoomEncrypted:e})=>({showUrlPreview:this.getPreviewUrlVisibility(e)}))}getPreviewUrlVisibility(e){return S.A.getValue(e?"urlPreviewsEnabled_e2ee":"urlPreviewsEnabled")}async updateE2EStatus(e){if(!this.context.client||!this.state.isRoomEncrypted)return;const t=await this.cacheAndGetE2EStatus(e,this.context.client);this.unmounted||this.setState({e2eStatus:t})}async cacheAndGetE2EStatus(e,t){let n=kw.e2eStatusCache.get(e.roomId);return n&&this.setState({e2eStatus:n}),n=await(0,ot.G)(t,e),kw.e2eStatusCache.set(e.roomId,n),n}async updateRoomEncrypted(e=this.state.room){if(!e||!this.context.client)return;const t=await this.getIsRoomEncrypted(e.roomId),n=t?await this.cacheAndGetE2EStatus(e,this.context.client):null;this.setState(ww({isRoomEncrypted:t,showUrlPreview:this.getPreviewUrlVisibility(t)},n&&{e2eStatus:n}))}updatePermissions(e){if(e&&this.context.client){const t=this.context.client.getSafeUserId(),n=e.getMyMembership()===$n.O.Join&&e.currentState.maySendEvent(r.Bx4.Reaction,t),i=e.maySendMessage(),s=e.currentState.maySendEvent(r.Bx4.RoomRedaction,t);this.setState({canReact:n,canSendMessages:i,canSelfRedact:s})}}checkDesktopNotifications(){if(!this.state.room)return;this.state.room.getJoinedMemberCount()+this.state.room.getInvitedMemberCount()>1&&this.context.notifier.shouldShowPrompt()&&(0,pE.P)(this.context.notifier,!0)}updateDMState(){const e=this.state.room;if((null==e?void 0:e.getMyMembership())!=$n.O.Join)return;const t=null==e?void 0:e.getDMInviter();t&&Bd.FZ(e.client,e.roomId,t)}injectSticker(e,t,n,i){const s=this.getRoomId();this.context.client&&s&&(this.context.client.isGuest()?K.A.dispatch({action:"require_registration"}):xp.Ay.sharedInstance().sendStickerContentToRoom(e,s,i,t,n,this.context.client).then(void 0,e=>{e.name}))}getInviterFromRoom(e){var t;const n=null===(t=this.context.client)||void 0===t?void 0:t.getSafeUserId();if(!n)return;const i=e.getMember(n),s=null==i?void 0:i.events.member,o=null==s?void 0:s.getSender();return(null==s?void 0:s.getContent().membership)===$n.O.Invite?o:void 0}getScrollState(){const e=this.messagePanel;if(!e)return null;if(this.state.atEndOfLiveTimeline)return null;const t=e.getScrollState();return!t||t.stuckAtBottom?null:{focussedEvent:t.trackedScrollToken,pixelOffset:t.pixelOffset}}getCallForRoom(){return this.state.room?this.context.legacyCallHandler.getCallForRoom(this.state.room.roomId):null}getOldRoom(){var e,t;const{roomId:n}=(null===(e=this.state.room)||void 0===e?void 0:e.findPredecessor(this.state.msc3946ProcessDynamicPredecessor))||{};return(null===(t=this.context.client)||void 0===t?void 0:t.getRoom(n))||null}getHiddenHighlightCount(){const e=this.getOldRoom();return e?e.getUnreadNotificationCount(r.X5$.Highlight):0}get messagePanelClassNames(){return un()("mx_RoomView_messagePanel",{mx_IRCLayout:this.state.layout===Do.P.IRC})}get viewsLocalRoom(){return(0,Bl.F)(this.state.room)}get permalinkCreator(){return this.getPermalinkCreatorForRoom()}renderLocalRoomCreateLoader(e){var t;if(!this.state.room||null===(t=this.context)||void 0===t||!t.client)return null;const n=this.state.room.getDefaultRoomName(this.context.client.getSafeUserId());return s.createElement(aa.yw,(0,xn.A)({},this.state,{roomViewStore:this.roomViewStore}),s.createElement(Aw,{localRoom:e,names:n}))}renderLocalRoomView(e){return s.createElement(aa.yw,(0,xn.A)({},this.state,{roomViewStore:this.roomViewStore}),s.createElement(bw,{e2eStatus:this.state.e2eStatus,localRoom:e,resizeNotifier:this.context.resizeNotifier,permalinkCreator:this.permalinkCreator,roomView:this.roomView}))}renderWaitingForThirdPartyRoomView(e){return s.createElement(aa.yw,(0,xn.A)({},this.state,{roomViewStore:this.roomViewStore}),s.createElement(rw,{resizeNotifier:this.context.resizeNotifier,roomView:this.roomView,inviteEvent:e}))}render(){var e,t,n;if(!this.context.client)return null;const{isRoomEncrypted:i}=this.state,o=null===i;if(this.state.room instanceof Ni.N)return this.state.room.state===Ni.c.CREATING?this.renderLocalRoomCreateLoader(this.state.room):this.renderLocalRoomView(this.state.room);if(this.state.room){const{shouldEncrypt:e,inviteEvent:t}=Mh(this.state.room);if(e)return this.renderWaitingForThirdPartyRoomView(t)}if(!this.state.room){const e=!this.state.matrixClientIsReady||this.state.roomLoading||this.state.peekLoading;if(e){const t=!this.state.matrixClientIsReady||!this.state.roomId||this.state.peekLoading;return s.createElement("div",{className:"mx_RoomView"},s.createElement(So,null,s.createElement(jf,{canPreview:!1,previewLoading:t&&!this.state.roomLoadError,error:this.state.roomLoadError,loading:e,joining:this.state.joining,oobData:this.props.oobData,roomId:this.state.roomId})))}{var a,l;let e;this.props.oobData&&(e=this.props.oobData.inviterName);const t=null===(a=this.props.threepidInvite)||void 0===a?void 0:a.toEmail,n=this.state.roomAlias;return s.createElement("div",{className:"mx_RoomView"},s.createElement(So,null,s.createElement(jf,{onJoinClick:this.onJoinButtonClicked,onForgetClick:this.onForgetClick,onDeclineClick:this.onRejectThreepidInviteButtonClicked,canPreview:!1,error:this.state.roomLoadError,roomAlias:n,joining:this.state.joining,inviterName:e,invitedEmail:t,oobData:this.props.oobData,signUrl:null===(l=this.props.threepidInvite)||void 0===l?void 0:l.signUrl,roomId:this.state.roomId,promptAskToJoin:this.state.promptAskToJoin,onSubmitAskToJoin:this.onSubmitAskToJoin,onCancelAskToJoin:this.onCancelAskToJoin})))}}const d=this.state.room.getMyMembership();if((0,Wp.j)(this.state.room)&&d!==$n.O.Join)return s.createElement(So,null,s.createElement("div",{className:"mx_MainSplit"},s.createElement($f,{room:this.state.room,onJoinButtonClicked:this.onJoinButtonClicked,onRejectButtonClicked:this.onDeclineButtonClicked})),";");if(d===$n.O.Invite&&!this.state.room.isSpaceRoom()){if(this.state.joining||this.state.rejecting)return s.createElement(So,null,s.createElement(jf,{canPreview:!1,error:this.state.roomLoadError,joining:this.state.joining,rejecting:this.state.rejecting,roomId:this.state.roomId}));{const e=this.context.client.getSafeUserId(),t=this.state.room.getMember(e),n=t?t.events.member:null;let i=(0,c._t)("room|inviter_unknown");var m,u;if(n)i=null!==(m=null===(u=n.sender)||void 0===u?void 0:u.name)&&void 0!==m?m:n.getSender();return s.createElement("div",{className:"mx_RoomView"},s.createElement(So,null,s.createElement(jf,{onJoinClick:this.onJoinButtonClicked,onForgetClick:this.onForgetClick,onDeclineClick:this.onDeclineButtonClicked,onDeclineAndBlockClick:this.onDeclineAndBlockButtonClicked,inviterName:i,canPreview:!1,joining:this.state.joining,room:this.state.room,roomId:this.state.roomId})))}}if(this.state.canAskToJoin&&[$n.O.Knock,$n.O.Leave].includes(d))return s.createElement("div",{className:"mx_RoomView"},s.createElement(So,null,s.createElement(jf,{onJoinClick:this.onJoinButtonClicked,room:this.state.room,canAskToJoinAndMembershipIsLeave:d===$n.O.Leave,promptAskToJoin:this.state.promptAskToJoin,knocked:d===$n.O.Knock,onSubmitAskToJoin:this.onSubmitAskToJoin,onCancelAskToJoin:this.onCancelAskToJoin,onForgetClick:this.onForgetClick})));let p,h=null;{const e=this.getCallForRoom();e&&"ended"!==this.state.callState&&"ringing"!==this.state.callState&&(h=e)}let g=!0;xp.Ay.sharedInstance().getCurrentUploads().length>0?p=s.createElement(T_,{room:this.state.room}):this.state.search||(g=this.state.statusBarVisible,p=s.createElement(Cw,{room:this.state.room,onVisible:this.onStatusBarVisible,onHidden:this.onStatusBarHidden}));const v=un()("mx_RoomView_statusArea",{mx_RoomView_statusArea_expanded:g}),_=p&&s.createElement("div",{role:"region",className:v,"aria-label":(0,c._t)("a11y|room_status_bar")},s.createElement("div",{className:"mx_RoomView_statusAreaBox"},s.createElement("div",{className:"mx_RoomView_statusAreaBox_line"}),p)),f=this.state.upgradeRecommendation,y=f&&f.needsUpgrade&&this.state.room.userMayUpgradeRoom(this.context.client.getSafeUserId()),E=this.getHiddenHighlightCount();let w,b;if(this.state.timelineRenderingType===Qo.Ae.Search)o||(w=s.createElement(aw,{searchInfo:this.state.search,onCancelClick:this.onCancelSearchClick,onSearchScopeChange:this.onSearchScopeChange,isRoomEncrypted:i}));else if(y)w=s.createElement(Yf,{room:this.state.room});else if(d!==$n.O.Join){var A,C;let e;this.props.oobData&&(e=this.props.oobData.inviterName);const t=null===(A=this.props.threepidInvite)||void 0===A?void 0:A.toEmail;if(b=s.createElement(jf,{onJoinClick:this.onJoinButtonClicked,onForgetClick:this.onForgetClick,onDeclineClick:this.onRejectThreepidInviteButtonClicked,joining:this.state.joining,inviterName:e,invitedEmail:t,oobData:this.props.oobData,canPreview:this.state.canPeek,room:this.state.room,roomId:this.state.roomId}),!(this.state.canPeek||null!==(C=this.state.room)&&void 0!==C&&C.isSpaceRoom()))return s.createElement("div",{className:"mx_RoomView"},b)}else E>0&&(w=s.createElement(Ve.A,{element:"div",className:"mx_RoomView_auxPanel_hiddenHighlights",onClick:this.onHiddenHighlightsClick},(0,c._t)("room|unread_notifications_predecessor",{count:E})));if(null!==(e=this.state.room)&&void 0!==e&&e.isSpaceRoom()&&!this.props.forceTimeline)return s.createElement(BE,{space:this.state.room,justCreatedOpts:this.props.justCreatedOpts,resizeNotifier:this.context.resizeNotifier,permalinkCreator:this.permalinkCreator,onJoinButtonClicked:this.onJoinButtonClicked,onRejectButtonClicked:this.props.threepidInvite?this.onRejectThreepidInviteButtonClicked:this.onDeclineButtonClicked});const x=s.createElement($y,{room:this.state.room,userId:this.context.client.getSafeUserId(),showApps:this.state.showApps},w),k=!this.props.hidePinnedMessageBanner&&s.createElement(cw,{room:this.state.room,permalinkCreator:this.permalinkCreator});let R;let I;!this.props.hideComposer&&!o&&d===$n.O.Join&&!this.state.search&&(R=s.createElement(x_,{room:this.state.room,e2eStatus:this.state.e2eStatus,resizeNotifier:this.context.resizeNotifier,replyToEvent:this.state.replyToEvent,permalinkCreator:this.permalinkCreator}));let T,P,N,D,M=!1;this.state.search&&(I=s.createElement(ow,{key:this.state.search.searchId,ref:this.searchResultsPanel,term:this.state.search.term,scope:this.state.search.scope,promise:this.state.search.promise,inProgress:!!this.state.search.inProgress,className:this.messagePanelClassNames,onUpdate:this.onSearchUpdate}),M=!0),this.state.isInitialEventHighlighted&&(T=this.state.initialEventId),o||(P=s.createElement(dv,{layout:this.state.layout},s.createElement(sv,{ref:this.gatherTimelinePanelRef,timelineSet:this.state.room.getUnfilteredTimelineSet(),showReadReceipts:this.state.showReadReceipts,manageReadReceipts:!this.state.isPeeking,sendReadReceiptOnLoad:!this.state.wasContextSwitch&&this.props.enableReadReceiptsAndMarkersOnActivity,manageReadMarkers:!this.state.isPeeking,hidden:M,highlightedEventId:T,eventId:this.state.initialEventId,eventScrollIntoView:this.state.initialEventScrollIntoView,eventPixelOffset:this.state.initialEventPixelOffset,onScroll:this.onMessageListScroll,onEventScrolledIntoView:this.resetJumpToEvent,onReadMarkerUpdated:this.updateTopUnreadMessagesBar,showUrlPreview:this.state.showUrlPreview,className:this.messagePanelClassNames,membersLoaded:this.state.membersLoaded,permalinkCreator:this.permalinkCreator,showReactions:!0,layout:this.state.layout,editState:this.state.editState,enableReadReceiptsAndMarkersOnActivity:this.props.enableReadReceiptsAndMarkersOnActivity}))),this.state.showTopUnreadMessagesBar&&!this.state.search&&(N=s.createElement(jE,{onScrollUpClick:this.jumpToReadMarker,onCloseClick:this.forgetReadMarker})),!1!==this.state.atEndOfLiveTimeline||this.state.search||(D=s.createElement(of,{highlight:this.state.room.getUnreadNotificationCount(r.X5$.Highlight)>0,numUnreadMessages:this.state.numUnreadMessages,onScrollToBottomClick:this.jumpToLiveTimeline}));const O=!this.props.hideRightPanel&&!o&&this.state.room&&this.state.showRightPanel?s.createElement(Tf,{room:this.state.room,resizeNotifier:this.context.resizeNotifier,permalinkCreator:this.permalinkCreator,e2eStatus:this.state.e2eStatus,onSearchChange:this.onSearchChange,onSearchCancel:this.onCancelSearchClick,searchTerm:null!==(t=null===(n=this.state.search)||void 0===n?void 0:n.term)&&void 0!==t?t:""}):void 0,F=un()("mx_RoomView_timeline",{mx_RoomView_timeline_rr_enabled:this.state.showReadReceipts});let{mainSplitContentType:L}=this.state;this.state.search&&(L=Qo.DZ.Timeline);const U=un()("mx_RoomView",{mx_RoomView_inCall:Boolean(h),mx_RoomView_immersive:L!==Qo.DZ.Timeline}),V=S.A.getValue("showChatEffects");let B,j;switch(L){case Qo.DZ.Timeline:j="mx_MainSplit_timeline",B=s.createElement(Qv.tz,null,s.createElement(rv,{sensor:this.roomViewBody,onMeasurement:this.onMeasurement}),x,k,s.createElement("main",{className:F},s.createElement(D_,{parent:this.roomView.current}),N,D,P,I),_,b,R);break;case Qo.DZ.MaximisedWidget:j="mx_MainSplit_maximisedWidget",B=s.createElement(s.Fragment,null,s.createElement(hy,{room:this.state.room,userId:this.context.client.getSafeUserId(),showApps:!0,role:"main"}),b);break;case Qo.DZ.Call:j="mx_MainSplit_call",B=s.createElement(s.Fragment,null,s.createElement(uE,{room:this.state.room,resizing:this.state.resizing,role:"main",onClose:this.onCallClose}),b)}const H=un()("mx_RoomView_body",j);let z,W,J="other_room";this.state.mainSplitContentType!==Qo.DZ.Timeline&&(z="wide",W=420,J=this.state.mainSplitContentType===Qo.DZ.Call?"video_room":"maximised_widget");const G=[];for(const e of yl.r.instance.extras.roomHeaderButtonsCallbacks){const t=e(this.state.room.roomId);t&&G.push(t)}return s.createElement(aa.yw,(0,xn.A)({},this.state,{roomViewStore:this.roomViewStore}),s.createElement("div",{className:U,ref:this.roomView,onKeyDown:this.onReactKeyDown,onFocus:this.onFocus,tabIndex:-1},V&&this.roomView.current&&s.createElement(cE,{roomWidth:this.roomView.current.offsetWidth}),s.createElement(So,null,s.createElement(Rp,{panel:O,sizeKey:z,defaultSize:W,analyticsRoomType:J},s.createElement("div",{className:H,ref:this.roomViewBody,"data-layout":this.state.layout},!this.props.hideHeader&&s.createElement(lE,{room:this.state.room,legacyAdditionalButtons:this.state.viewRoomOpts.buttons,extraButtons:s.createElement(s.Fragment,null,G)}),B)))))}}(0,i.A)(kw,"e2eStatusCache",new Map),(0,i.A)(kw,"contextType",Ro.A),(0,i.A)(kw,"defaultProps",{enableReadReceiptsAndMarkersOnActivity:!0});class Rw extends Error{constructor(...e){super(...e),(0,i.A)(this,"name","CannotDetermineUserError")}}class Iw extends s.Component{constructor(e){super(e),(0,i.A)(this,"onToastStoreUpdate",()=>{this.setState({toasts:re.A.sharedInstance().getToasts()})}),this.state={toasts:re.A.sharedInstance().getToasts()}}componentDidMount(){re.A.sharedInstance().on("update",this.onToastStoreUpdate),this.onToastStoreUpdate()}componentWillUnmount(){re.A.sharedInstance().removeListener("update",this.onToastStoreUpdate)}render(){const e=this.state.toasts.length,t=e>1;let n,i;if(0!==e){const e=this.state.toasts[0],{title:o,icon:r,key:a,component:l,className:d,bodyClassName:m,onCloseButtonClicked:u,props:p}=e,h=un()("mx_Toast_body",m),g=un()("mx_Toast_toast",d,{mx_Toast_hasIcon:!!r}),v=Object.assign({},p,{key:a,toastKey:a}),_=s.createElement(l,v);let f;o&&(f=s.createElement(s.Fragment,null,s.createElement("div",{className:"mx_Toast_title"},s.createElement(Pu.E,{size:"lg",weight:"semibold",as:"h2"},o)),u&&s.createElement(Tu.K,{className:"mx_Toast_closebutton",size:"28px",onClick:u,tooltip:(0,c._t)("action|close"),kind:"secondary"},s.createElement(ti.A,null)))),n=s.createElement("div",{className:g},r,f,s.createElement("div",{className:h},_)),i=un()("mx_ToastContainer",{mx_ToastContainer_stacked:t})}return n?s.createElement("div",{className:i,role:"alert"},n):null}}var Tw=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/explore.js"),Pw=n("./src/Linkify.ts");function Nw(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function Dw(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Nw(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Nw(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}class Mw extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"unmounted",!1),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"onAction",e=>{e.action===$.r.ClientStarted&&this.forceUpdate()}),this.state={page:""}}translate(e){return Ud()((0,c._t)(e))}async fetchEmbed(){let e;try{e=await fetch(this.props.url,{method:"GET"})}catch(e){if(this.unmounted)return;return o.vF.warn(`Error loading page: ${e}`),void this.setState({page:(0,c._t)("cant_load_page")})}if(this.unmounted)return;if(!e.ok)return o.vF.warn(`Error loading page: ${e.status}`),void this.setState({page:(0,c._t)("cant_load_page")});let t=(await e.text()).replace(/_t\((?:['"]|(?:&#(?:34|27);))([\s\S]*?)(?:['"]|(?:&#(?:34|27);))\)/gm,(e,t)=>this.translate(t));this.props.replaceMap&&Object.keys(this.props.replaceMap).forEach(e=>{t=t.split(e).join(this.props.replaceMap[e])}),this.setState({page:t})}componentDidMount(){this.unmounted=!1,this.props.url&&(this.fetchEmbed(),this.dispatcherRef=K.A.register(this.onAction))}componentWillUnmount(){this.unmounted=!0,K.A.unregister(this.dispatcherRef)}render(){const e=this.context||_.J.get(),t=!e||e.isGuest(),n=this.props.className,i=un()(n,{mx_AutoHideScrollbar:this.props.scrollbar,[`${n}_guest`]:t,[`${n}_loggedIn`]:!!e}),o=(0,Us.bk)(this.state.page,`${n}_body`,Dw(Dw({},Pw.h4),{},{transformTags:(0,ui.hn)(Pw.Gx,["img","*"])}));return this.props.scrollbar?s.createElement(Xe.qme,{className:i},o):s.createElement("div",{className:i},o)}}(0,i.A)(Mw,"contextType",je.Ay);const Ow=e=>{Gi.A.trackInteraction("WebHomeCreateChatButton",e),K.A.dispatch({action:$.r.CreateChat})},Fw=e=>{Gi.A.trackInteraction("WebHomeExploreRoomsButton",e),K.A.fire($.r.ViewRoomDirectory)},Lw=e=>{Gi.A.trackInteraction("WebHomeCreateRoomButton",e),K.A.dispatch({action:$.r.CreateRoom})},Uw=e=>{var t;return{displayName:dp.V.instance.displayName||e,avatarUrl:null!==(t=dp.V.instance.getHttpAvatarUrl(parseInt("52px",10)))&&void 0!==t?t:void 0}},Vw=()=>{const e=(0,s.useContext)(je.Ay),t=e.getUserId(),[n,i]=(0,s.useState)(Uw(t));return(0,mo.ml)(dp.V.instance,"update",()=>{i(Uw(t))}),s.createElement("div",null,s.createElement(Nh,{hasAvatar:!!n.avatarUrl,hasAvatarLabel:(0,c._t)("onboarding|has_avatar_label"),noAvatarLabel:(0,c._t)("onboarding|no_avatar_label"),setAvatarUrl:t=>e.setAvatarUrl(t),isUserAvatar:!0,onClick:e=>Gi.A.trackInteraction("WebHomeMiniAvatarUploadButton",e)},s.createElement(ki.A,{idName:t,name:n.displayName,url:n.avatarUrl,size:"52px"})),s.createElement("h1",null,(0,c._3)("onboarding|welcome_user",{name:n.displayName})),s.createElement("h2",null,(0,c._3)("onboarding|welcome_detail")))},Bw=({justRegistered:e=!1})=>{const t=(0,je.nH)(),n=d.A.get(),i=rp(n,t);if(i)return s.createElement(Mw,{className:"mx_HomePage",url:i,scrollbar:!0});let o;if(e||!dp.V.instance.getHttpAvatarUrl(parseInt("52px",10)))o=s.createElement(Vw,null);else{var r;const e=d.A.getObject("branding"),t=null!==(r=null==e?void 0:e.get("auth_header_logo_url"))&&void 0!==r?r:"themes/element/img/logos/element-logo.svg";o=s.createElement(s.Fragment,null,s.createElement("img",{src:t,alt:n.brand}),s.createElement("h1",null,(0,c._3)("onboarding|intro_welcome",{appName:n.brand})),s.createElement("h2",null,(0,c._3)("onboarding|intro_byline")))}return s.createElement(Xe.qme,{className:"mx_AutoHideScrollbar mx_HomePage mx_HomePage_default",as:"main"},s.createElement("div",{className:"mx_HomePage_default_wrapper"},o,s.createElement("div",{className:"mx_HomePage_default_buttons"},s.createElement(Ve.A,{onClick:Ow,className:"mx_HomePage_button_sendDm"},s.createElement(Zu.A,null),(0,c._3)("onboarding|send_dm")),s.createElement(Ve.A,{onClick:Fw,className:"mx_HomePage_button_explore"},s.createElement(Tw.A,null),(0,c._3)("onboarding|explore_rooms")),s.createElement(Ve.A,{onClick:Lw,className:"mx_HomePage_button_createGroup"},s.createElement(hn.A,null),(0,c._3)("onboarding|create_room")))))};class jw extends s.Component{constructor(e){super(e),this.state={loading:!0}}componentDidMount(){this.props.userId&&this.loadProfileInfo()}componentDidUpdate(e){e.userId!==this.props.userId&&this.props.userId&&this.loadProfileInfo()}async loadProfileInfo(){let e;this.setState({loading:!0});try{e=await this.context.getProfileInfo(this.props.userId)}catch(e){return X.Ay.createDialog(sn.A,{title:(0,c._t)("error_dialog|error_loading_user_profile"),description:e instanceof Error?e.message:(0,c._t)("invite|failed_generic")}),void this.setState({loading:!1})}const t=new r.klx({type:"m.room.member",content:e}),n=new r.YxN("",this.props.userId);n.setMembershipEvent(t),this.setState({member:n,loading:!1})}render(){if(this.state.loading)return s.createElement(Be.A,null);if(this.state.member){const e=s.createElement(Tf,{overwriteCard:{phase:Wu.n.MemberInfo,state:{member:this.state.member}},resizeNotifier:this.props.resizeNotifier});return s.createElement(Rp,{panel:e,defaultSize:420,analyticsRoomType:"user_profile"},s.createElement(Bw,null))}return s.createElement("div",null)}}(0,i.A)(jw,"contextType",je.Ay);var Hw=n("./src/stores/OwnBeaconStore.ts"),zw=n("./res/img/location/live-location.svg");const Ww=({isMinimized:e})=>{const t=(0,mo.dF)(Hw.g.instance,Hw.q.MonitoringLivePosition,()=>Hw.g.instance.isMonitoringLiveLocation),n=(0,mo.dF)(Hw.g.instance,Hw.q.LocationPublishError,()=>Hw.g.instance.getLiveBeaconIdsWithLocationPublishError()),i=(0,mo.dF)(Hw.g.instance,Hw.q.BeaconUpdateError,()=>Hw.g.instance.getLiveBeaconIds().filter(e=>Hw.g.instance.beaconUpdateErrors.has(e))),o=(0,mo.dF)(Hw.g.instance,Hw.q.LivenessChange,()=>Hw.g.instance.getLiveBeaconIds()),r=!!n.length,a=!!i.length;if(((e,t)=>{(0,s.useEffect)(()=>{const n=()=>{"visible"===document.visibilityState&&e.forEach(e=>{var n;return null===(n=t.get(e))||void 0===n?void 0:n.monitorLiveness()})};return e.length&&document.addEventListener("visibilitychange",n),()=>{document.removeEventListener("visibilitychange",n)}},[e,t])})(o,Hw.g.instance.beacons),!t)return null;const l=((e,t,n)=>{var i,s;const o=null!==(i=null!==(s=null==t?void 0:t[0])&&void 0!==s?s:null==n?void 0:n[0])&&void 0!==i?i:null==e?void 0:e[0];if(!o)return;return Hw.g.instance.getBeaconById(o)})(o,i,n),d=l?e=>{K.A.dispatch({action:$.r.ViewRoom,room_id:l.roomId,metricsTrigger:void 0,event_id:l.beaconInfoId,scroll_into_view:!0,highlighted:!0})}:null,m=((e,t)=>e?(0,c._t)("location_sharing|error_stopping_live_location"):t?(0,c._t)("location_sharing|error_sharing_live_location"):(0,c._t)("location_sharing|live_location_active"))(a,r);return s.createElement(Ve.A,{className:un()("mx_LeftPanelLiveShareWarning",{mx_LeftPanelLiveShareWarning__minimized:e,mx_LeftPanelLiveShareWarning__error:r||a}),title:e?m:void 0,onClick:d},e?s.createElement(zw.I,{height:10}):m)};var Jw=n("../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/clamp.js");function Gw(e,t,n){return(1-(n=(0,Jw.A)(n,0,1)))*e+n*t}const Kw=80,qw=87,$w=84,Yw=16;class Qw extends s.Component{constructor(...e){super(...e),(0,i.A)(this,"callViewWrapper",(0,s.createRef)()),(0,i.A)(this,"initX",0),(0,i.A)(this,"initY",0),(0,i.A)(this,"desiredTranslationX",Iu.A.instance.windowWidth-Yw-336),(0,i.A)(this,"desiredTranslationY",Kw),(0,i.A)(this,"translationX",this.desiredTranslationX),(0,i.A)(this,"translationY",this.desiredTranslationY),(0,i.A)(this,"mouseHeld",!1),(0,i.A)(this,"scheduledUpdate",new kv.L(()=>this.animationCallback(),()=>requestAnimationFrame(()=>this.scheduledUpdate.trigger()))),(0,i.A)(this,"startingPositionX",0),(0,i.A)(this,"startingPositionY",0),(0,i.A)(this,"_moving",!1),(0,i.A)(this,"animationCallback",()=>{var e,t;if(!this.moving&&Math.abs(this.translationX-this.desiredTranslationX)<=1&&Math.abs(this.translationY-this.desiredTranslationY)<=1)this.translationX=this.desiredTranslationX,this.translationY=this.desiredTranslationY,this.setStyle();else{const e=this.moving?.2:.1;this.translationX=Gw(this.translationX,this.desiredTranslationX,e),this.translationY=Gw(this.translationY,this.desiredTranslationY,e),this.setStyle(),this.scheduledUpdate.mark()}null===(e=(t=this.props).onMove)||void 0===e||e.call(t)}),(0,i.A)(this,"setStyle",()=>{this.callViewWrapper.current&&(this.callViewWrapper.current.style.transform=`translateX(${this.translationX}px) translateY(${this.translationY}px)`)}),(0,i.A)(this,"onResize",()=>{this.snap(!1)}),(0,i.A)(this,"snap",(e=!1)=>{var t,n;const i=this.desiredTranslationX,s=this.desiredTranslationY,o=Iu.A.instance.windowWidth-((null===(t=this.callViewWrapper.current)||void 0===t?void 0:t.clientWidth)||336),r=Iu.A.instance.windowHeight-((null===(n=this.callViewWrapper.current)||void 0===n?void 0:n.clientHeight)||232);i>=o/2&&s>=r/2?(this.desiredTranslationX=o-Yw,this.desiredTranslationY=r-qw):i>=o/2&&s<=r/2?(this.desiredTranslationX=o-Yw,this.desiredTranslationY=Kw):i<=o/2&&s>=r/2?(this.desiredTranslationX=$w,this.desiredTranslationY=r-qw):(this.desiredTranslationX=$w,this.desiredTranslationY=Kw),e||(this.translationX=this.desiredTranslationX,this.translationY=this.desiredTranslationY),this.scheduledUpdate.mark()}),(0,i.A)(this,"onStartMoving",e=>{this.mouseHeld=!0,this.startingPositionX=e.clientX,this.startingPositionY=e.clientY}),(0,i.A)(this,"onMoving",e=>{this.mouseHeld&&(Math.abs(this.startingPositionX-e.clientX)<5&&Math.abs(this.startingPositionY-e.clientY)<5||(e.preventDefault(),e.stopPropagation(),this.moving||(this.moving=!0,this.initX=e.pageX-this.desiredTranslationX,this.initY=e.pageY-this.desiredTranslationY,this.scheduledUpdate.mark()),this.setTranslation(e.pageX-this.initX,e.pageY-this.initY)))}),(0,i.A)(this,"onEndMoving",e=>{this.mouseHeld&&(this.mouseHeld=!1,setTimeout(()=>this.moving=!1),this.snap(!0))}),(0,i.A)(this,"onClickCapture",e=>{this.moving&&(e.preventDefault(),e.stopPropagation())})}get moving(){return this._moving}set moving(e){this._moving=e}componentDidMount(){document.addEventListener("mousemove",this.onMoving),document.addEventListener("mouseup",this.onEndMoving),Iu.A.instance.on(Iu.x.Resize,this.onResize),this.snap()}componentWillUnmount(){document.removeEventListener("mousemove",this.onMoving),document.removeEventListener("mouseup",this.onEndMoving),Iu.A.instance.off(Iu.x.Resize,this.onResize)}componentDidUpdate(e){e.children!==this.props.children&&this.snap(!0)}setTranslation(e,t){var n,i;const s=(null===(n=this.callViewWrapper.current)||void 0===n?void 0:n.clientWidth)||336,o=(null===(i=this.callViewWrapper.current)||void 0===i?void 0:i.clientHeight)||232;e+s>=Iu.A.instance.windowWidth?this.desiredTranslationX=Iu.A.instance.windowWidth-s:this.desiredTranslationX=e<=0?0:e,t+o>=Iu.A.instance.windowHeight?this.desiredTranslationY=Iu.A.instance.windowHeight-o:this.desiredTranslationY=t<=0?0:t}render(){const e={transform:`translateX(${this.translationX}px) translateY(${this.translationY}px)`},t=this.props.children.map(e=>e({onStartMoving:this.onStartMoving,onResize:this.onResize}));return s.createElement("aside",{className:"mx_PictureInPictureDragger",style:e,ref:this.callViewWrapper,onClickCapture:this.onClickCapture,onDoubleClick:this.props.onDoubleClick},t)}}class Xw extends s.Component{constructor(e,t){super(e,t),(0,i.A)(this,"room",void 0),this.room=t.getRoom(this.props.persistentRoomId)}render(){const e=Dg.Ay.instance.get(this.props.persistentWidgetId,this.props.persistentRoomId);return e?s.createElement(qg,{key:e.id,app:e,fullWidth:!0,room:this.room,userId:this.context.getSafeUserId(),creatorUserId:e.creatorUserId,widgetPageTitle:fg.A.getWidgetDataTitle(e),waitForIframeLoad:e.waitForIframeLoad,miniMode:!0,showMenubar:!1,pointerEvents:this.props.pointerEvents,movePersistedElement:this.props.movePersistedElement,overlay:this.props.children}):null}}(0,i.A)(Xw,"contextType",je.Ay);class Zw extends Xe.oY8{constructor(e){var t;super(e,{widgetId:e.widgetId,roomName:e.room.name,roomId:e.room.roomId}),(0,i.A)(this,"widget",void 0),(0,i.A)(this,"call",void 0),(0,i.A)(this,"viewingRoom",void 0),(0,i.A)(this,"onStartMoving",void 0),(0,i.A)(this,"persistentAppComponent",e=>s.createElement(Xw,{persistentWidgetId:e.persistentWidgetId,persistentRoomId:e.persistentRoomId,movePersistedElement:this.props.movePersistedElement})),(0,i.A)(this,"onRoomName",()=>{this.snapshot.merge({roomName:this.props.room.name})}),(0,i.A)(this,"onCallChange",(...e)=>{const[t,n]=e;n===this.props.room.roomId&&(this.call=(null==t?void 0:t.widget.id)===this.props.widgetId?t:null)}),this.widget=Dg.Ay.instance.getApps(e.room.roomId).find(e=>e.id===this.props.widgetId),this.call=null!==(t=Am.e.instance.getCall(e.room.roomId))&&void 0!==t?t:null,this.onStartMoving=e.onStartMoving,this.disposables.trackListener(e.room,r.u99.Name,this.onRoomName),this.disposables.trackListener(Am.e.instance,Am.s.Call,this.onCallChange)}setViewingRoom(e){this.viewingRoom=e}onBackClick(e){e.preventDefault(),e.stopPropagation(),null!==this.call?K.A.dispatch({action:$.r.ViewRoom,room_id:this.props.room.roomId,view_call:!0,metricsTrigger:"WebFloatingCallWindow"}):this.viewingRoom?zg.a.instance.moveToContainer(this.props.room,this.widget,"center"):K.A.dispatch({action:$.r.ViewRoom,room_id:this.props.room.roomId,metricsTrigger:"WebFloatingCallWindow"})}}const eS=[Kl.iP.Connected,Kl.iP.InviteSent,Kl.iP.Connecting,Kl.iP.CreateAnswer,Kl.iP.CreateOffer,Kl.iP.WaitLocalMedia];class tS extends s.Component{constructor(e,t){super(e,t),(0,i.A)(this,"onMove",()=>{var e,t;return null===(e=(t=this.props.movePersistedElement).current)||void 0===e?void 0:e.call(t)}),(0,i.A)(this,"onRoomViewStoreUpdate",()=>{var e,t;const n=this.context.roomViewStore.getRoomId(),i=this.state.viewedRoomId;if(n===i)return;const s=null===(e=this.context.client)||void 0===e?void 0:e.getRoom(i);s&&this.context.widgetLayoutStore.off(zg.a.emissionForRoom(s),this.updateCalls);const o=null===(t=this.context.client)||void 0===t?void 0:t.getRoom(n||void 0);if(o&&this.context.widgetLayoutStore.on(zg.a.emissionForRoom(o),this.updateCalls),!n)return;const[r,a]=this.getPrimarySecondaryCallsForPip(n);this.setState({viewedRoomId:n,primaryCall:r,secondaryCall:a[0]}),this.updateShowWidgetInPip()}),(0,i.A)(this,"onWidgetPersistence",()=>{this.updateShowWidgetInPip()}),(0,i.A)(this,"onWidgetDockChanges",()=>{this.updateShowWidgetInPip()}),(0,i.A)(this,"updateCalls",()=>{if(!this.state.viewedRoomId)return;const[e,t]=this.getPrimarySecondaryCallsForPip(this.state.viewedRoomId);this.setState({primaryCall:e,secondaryCall:t[0]}),this.updateShowWidgetInPip()}),(0,i.A)(this,"onCallRemoteHold",()=>{if(!this.state.viewedRoomId)return;const[e,t]=this.getPrimarySecondaryCallsForPip(this.state.viewedRoomId);this.setState({primaryCall:e,secondaryCall:t[0]})}),(0,i.A)(this,"onDoubleClick",()=>{var e;const t=null===(e=this.state.primaryCall)||void 0===e?void 0:e.roomId;var n;(null!=t?t:this.state.persistentRoomId)&&K.A.dispatch({action:$.r.ViewRoom,room_id:null!==(n=null!=t?t:this.state.persistentRoomId)&&void 0!==n?n:void 0,metricsTrigger:"WebFloatingCallWindow"})});const n=this.context.roomViewStore.getRoomId(),[s,o]=this.getPrimarySecondaryCallsForPip(n);this.state={viewedRoomId:n||void 0,primaryCall:s||null,secondaryCall:o[0],persistentWidgetId:Z.A.instance.getPersistentWidgetId(),persistentRoomId:Z.A.instance.getPersistentRoomId(),showWidgetInPip:!1}}componentDidMount(){var e,t;this.context.legacyCallHandler.addListener(tm.uv.CallChangeRoom,this.updateCalls),this.context.legacyCallHandler.addListener(tm.uv.CallState,this.updateCalls),this.context.roomViewStore.addListener("update",this.onRoomViewStoreUpdate),null===(e=this.context.client)||void 0===e||e.on(Kl.$E.RemoteHoldUnhold,this.onCallRemoteHold);const n=null===(t=this.context.client)||void 0===t?void 0:t.getRoom(this.state.viewedRoomId);n&&this.context.widgetLayoutStore.on(zg.a.emissionForRoom(n),this.updateCalls),Z.A.instance.on(Z.y.Persistence,this.onWidgetPersistence),Z.A.instance.on(Z.y.Dock,this.onWidgetDockChanges),Z.A.instance.on(Z.y.Undock,this.onWidgetDockChanges)}componentWillUnmount(){var e,t;this.context.legacyCallHandler.removeListener(tm.uv.CallChangeRoom,this.updateCalls),this.context.legacyCallHandler.removeListener(tm.uv.CallState,this.updateCalls),null===(e=this.context.client)||void 0===e||e.removeListener(Kl.$E.RemoteHoldUnhold,this.onCallRemoteHold),this.context.roomViewStore.removeListener("update",this.onRoomViewStoreUpdate);const n=null===(t=this.context.client)||void 0===t?void 0:t.getRoom(this.state.viewedRoomId);n&&this.context.widgetLayoutStore.off(zg.a.emissionForRoom(n),this.updateCalls),Z.A.instance.off(Z.y.Persistence,this.onWidgetPersistence),Z.A.instance.off(Z.y.Dock,this.onWidgetDockChanges),Z.A.instance.off(Z.y.Undock,this.onWidgetDockChanges)}getPrimarySecondaryCallsForPip(e){if(!e)return[null,[]];const t=this.context.legacyCallHandler.getAllActiveCallsForPip(e);let n=null,i=[];for(const e of t)eS.includes(e.state)&&(e.isRemoteOnHold()||null!==n?i.push(e):n=e);return null===n&&i.length>0&&(n=i[0],i=i.slice(1)),i.length>1&&o.vF.log("Found more than 1 secondary call! Other calls will not be shown."),[n,i]}updateShowWidgetInPip(){var e;const t=Z.A.instance.getPersistentWidgetId(),n=Z.A.instance.getPersistentRoomId();let i=!1,s=!1;t&&n&&null!==(e=this.context.client)&&void 0!==e&&e.getRoom(n)&&(s=!Z.A.instance.isDocked(t,n),i=this.state.viewedRoomId!==n);const o=i||s;this.setState({showWidgetInPip:o,persistentWidgetId:t,persistentRoomId:n})}render(){const e=[];if(this.state.primaryCall){const t=this.state.primaryCall;e.push(({onStartMoving:e,onResize:n})=>s.createElement(Ky,{key:"call-view",onMouseDownOnHeader:e,call:t,secondaryCall:this.state.secondaryCall,pipMode:true,onResize:n,sidebarShown:!1}))}return this.state.showWidgetInPip&&this.state.persistentWidgetId&&e.push(({onStartMoving:e})=>{var t;return s.createElement(iS,{key:"widget-pip",widgetId:this.state.persistentWidgetId,room:this.context.client.getRoom(null!==(t=this.state.persistentRoomId)&&void 0!==t?t:void 0),viewingRoom:this.state.viewedRoomId===this.state.persistentRoomId,onStartMoving:e,movePersistedElement:this.props.movePersistedElement})}),e.length?s.createElement(Qw,{onDoubleClick:this.onDoubleClick,onMove:this.onMove},e):null}}(0,i.A)(tS,"contextType",Ro.A);const nS=()=>{const e=(0,s.useRef)(null);return s.createElement(tS,{movePersistedElement:e})},iS=e=>{const t=(0,Xe.s2q)(()=>new Zw(e));return(0,s.useEffect)(()=>{t.setViewingRoom(e.viewingRoom)},[t,e.viewingRoom]),s.createElement(Xe.RxI,{vm:t,RoomAvatar:({size:t})=>s.createElement(ms.A,{size:t,room:e.room})})};class sS{static encodeActions(e){const t=e.notify,n=e.sound,i=e.highlight;if(t){const e=[r.YUK.Notify];return n&&e.push({set_tweak:"sound",value:n}),i?e.push({set_tweak:"highlight"}):e.push({set_tweak:"highlight",value:!1}),e}return[r.YUK.DontNotify]}static decodeActions(e){let t,n=!1,i=!1;for(const s of e)if(s===r.YUK.Notify)n=!0;else if(s===r.YUK.DontNotify)n=!1;else{if("object"!=typeof s)return null;if("sound"===s.set_tweak)t=s.value;else{if("highlight"!==s.set_tweak)return null;i=s.value}}void 0===i&&(i=!0);const s={notify:n,highlight:i};return void 0!==t&&(s.sound=t),s}}const oS=sS.encodeActions;class rS{}(0,i.A)(rS,"ACTION_NOTIFY",oS({notify:!0})),(0,i.A)(rS,"ACTION_NOTIFY_DEFAULT_SOUND",oS({notify:!0,sound:"default"})),(0,i.A)(rS,"ACTION_NOTIFY_RING_SOUND",oS({notify:!0,sound:"ring"})),(0,i.A)(rS,"ACTION_HIGHLIGHT",oS({notify:!0,highlight:!0})),(0,i.A)(rS,"ACTION_HIGHLIGHT_DEFAULT_SOUND",oS({notify:!0,sound:"default",highlight:!0})),(0,i.A)(rS,"ACTION_DONT_NOTIFY",oS({notify:!1})),(0,i.A)(rS,"ACTION_DISABLED",void 0);let aS=function(e){return e.Off="off",e.On="on",e.Loud="loud",e}({});class lS{static actionsFor(e){return e===aS.On?rS.ACTION_NOTIFY:e===aS.Loud?rS.ACTION_HIGHLIGHT_DEFAULT_SOUND:[]}static contentRuleVectorStateKind(e){const t=sS.decodeActions(e.actions);if(!t)return null;let n=0;t.sound&&n++,t.highlight&&n++;let i=null;switch(n){case 0:i=aS.On;break;case 2:i=aS.Loud}return i}}(0,i.A)(lS,"OFF",aS.Off),(0,i.A)(lS,"ON",aS.On),(0,i.A)(lS,"LOUD",aS.Loud),(0,i.A)(lS,"states",aS);class cS{constructor(e){(0,i.A)(this,"description",void 0),(0,i.A)(this,"vectorStateToActions",void 0),(0,i.A)(this,"syncedRuleIds",void 0),this.description=e.description,this.vectorStateToActions=e.vectorStateToActions,this.syncedRuleIds=e.syncedRuleIds}ruleToVectorState(e){let t=!1;e&&(t=e.enabled);for(const n of Object.values(lS.states)){const i=this.vectorStateToActions[n];if(i){if(t&&JSON.stringify(sS.decodeActions(e.actions))===JSON.stringify(sS.decodeActions(i)))return n}else if(!t)return n}o.vF.error(`Cannot translate rule actions into Vector rule state. Rule: ${JSON.stringify(e)}, Expected: ${JSON.stringify(this.vectorStateToActions)}`)}}const dS={".m.rule.contains_display_name":new cS({description:(0,c.AO)("settings|notifications|rule_contains_display_name"),vectorStateToActions:{[aS.On]:rS.ACTION_NOTIFY,[aS.Loud]:rS.ACTION_HIGHLIGHT_DEFAULT_SOUND,[aS.Off]:rS.ACTION_DISABLED}}),".m.rule.contains_user_name":new cS({description:(0,c.AO)("settings|notifications|rule_contains_user_name"),vectorStateToActions:{[aS.On]:rS.ACTION_NOTIFY,[aS.Loud]:rS.ACTION_HIGHLIGHT_DEFAULT_SOUND,[aS.Off]:rS.ACTION_DISABLED},syncedRuleIds:[r.kqD.IsUserMention]}),".m.rule.roomnotif":new cS({description:(0,c.AO)("settings|notifications|rule_roomnotif"),vectorStateToActions:{[aS.On]:rS.ACTION_NOTIFY,[aS.Loud]:rS.ACTION_HIGHLIGHT,[aS.Off]:rS.ACTION_DISABLED},syncedRuleIds:[r.kqD.IsRoomMention]}),".m.rule.room_one_to_one":new cS({description:(0,c.AO)("settings|notifications|rule_room_one_to_one"),vectorStateToActions:{[aS.On]:rS.ACTION_NOTIFY,[aS.Loud]:rS.ACTION_NOTIFY_DEFAULT_SOUND,[aS.Off]:rS.ACTION_DONT_NOTIFY},syncedRuleIds:[r.kqD.PollStartOneToOne,r.kqD.PollStartOneToOneUnstable,r.kqD.PollEndOneToOne,r.kqD.PollEndOneToOneUnstable]}),".m.rule.encrypted_room_one_to_one":new cS({description:(0,c.AO)("settings|notifications|rule_encrypted_room_one_to_one"),vectorStateToActions:{[aS.On]:rS.ACTION_NOTIFY,[aS.Loud]:rS.ACTION_NOTIFY_DEFAULT_SOUND,[aS.Off]:rS.ACTION_DONT_NOTIFY}}),".m.rule.message":new cS({description:(0,c.AO)("settings|notifications|rule_message"),vectorStateToActions:{[aS.On]:rS.ACTION_NOTIFY,[aS.Loud]:rS.ACTION_NOTIFY_DEFAULT_SOUND,[aS.Off]:rS.ACTION_DONT_NOTIFY},syncedRuleIds:[r.kqD.PollStart,r.kqD.PollStartUnstable,r.kqD.PollEnd,r.kqD.PollEndUnstable]}),".m.rule.encrypted":new cS({description:(0,c.AO)("settings|notifications|rule_encrypted"),vectorStateToActions:{[aS.On]:rS.ACTION_NOTIFY,[aS.Loud]:rS.ACTION_NOTIFY_DEFAULT_SOUND,[aS.Off]:rS.ACTION_DONT_NOTIFY}}),".m.rule.invite_for_me":new cS({description:(0,c.AO)("settings|notifications|rule_invite_for_me"),vectorStateToActions:{[aS.On]:rS.ACTION_NOTIFY,[aS.Loud]:rS.ACTION_NOTIFY_DEFAULT_SOUND,[aS.Off]:rS.ACTION_DISABLED}}),".m.rule.call":new cS({description:(0,c.AO)("settings|notifications|rule_call"),vectorStateToActions:{[aS.On]:rS.ACTION_NOTIFY,[aS.Loud]:rS.ACTION_NOTIFY_RING_SOUND,[aS.Off]:rS.ACTION_DISABLED}}),".m.rule.suppress_notices":new cS({description:(0,c.AO)("settings|notifications|rule_suppress_notices"),vectorStateToActions:{[aS.On]:rS.ACTION_DISABLED,[aS.Loud]:rS.ACTION_NOTIFY_DEFAULT_SOUND,[aS.Off]:rS.ACTION_DONT_NOTIFY}}),".m.rule.tombstone":new cS({description:(0,c.AO)("settings|notifications|rule_tombstone"),vectorStateToActions:{[aS.On]:rS.ACTION_NOTIFY,[aS.Loud]:rS.ACTION_HIGHLIGHT,[aS.Off]:rS.ACTION_DISABLED}})};class mS{static parseContentRules(e){const t=mS.categoriseContentRules(e);return t.loud.length?{vectorState:aS.Loud,rules:t.loud,externalRules:[...t.loud_but_disabled,...t.on,...t.on_but_disabled,...t.other]}:t.loud_but_disabled.length?{vectorState:aS.Off,rules:t.loud_but_disabled,externalRules:[...t.on,...t.on_but_disabled,...t.other]}:t.on.length?{vectorState:aS.On,rules:t.on,externalRules:[...t.on_but_disabled,...t.other]}:t.on_but_disabled.length?{vectorState:aS.Off,rules:t.on_but_disabled,externalRules:t.other}:{vectorState:aS.On,rules:[],externalRules:t.other}}static categoriseContentRules(e){const t={on:[],on_but_disabled:[],loud:[],loud_but_disabled:[],other:[]};for(const n in e.global)for(let i=0;i<Object.keys(e.global[n]).length;++i){const s=e.global[n][i];if("."!==s.rule_id[0]&&n===r.Jig.ContentSpecific)switch(s.kind=n,lS.contentRuleVectorStateKind(s)){case aS.On:s.enabled?t.on.push(s):t.on_but_disabled.push(s);break;case aS.Loud:s.enabled?t.loud.push(s):t.loud_but_disabled.push(s);break;default:t.other.push(s)}}return t}}const uS=async(e,t,n,i)=>{i?(await e.setPushRuleActions("global",n,t,i),await e.setPushRuleEnabled("global",n,t,!0)):await e.setPushRuleEnabled("global",n,t,!1)},pS=async(e,t,n)=>{const i=null==t?void 0:t.map(t=>e.pushProcessor.getPushRuleAndKindById(t)).filter(e=>Boolean(e));if(null!=i&&i.length)for(const{kind:t,rule:s}of i)await uS(e,s.rule_id,t,n)};function hS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function gS(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hS(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hS(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const vS=e=>e?gS(gS({},e.rule),{},{kind:e.kind}):void 0,_S=async(e,t)=>{(null==e?void 0:e.getType())===r.Bx4.PushRules&&Object.entries(dS).forEach(async([e,n])=>{try{await(async(e,t,n)=>{var i;const s=vS(e.pushProcessor.getPushRuleAndKindById(t));if(!s)return;const o=null===(i=n.syncedRuleIds)||void 0===i?void 0:i.map(t=>vS(e.pushProcessor.getPushRuleAndKindById(t))).filter(e=>Boolean(e));if(null==o||!o.length)return;const r=n.ruleToVectorState(s),a=o.filter(e=>e.enabled!==s.enabled||n.ruleToVectorState(e)!==r);a.length&&await pS(e,a.map(({rule_id:e})=>e),s.enabled?s.actions:void 0)})(t,e,n)}catch(t){o.vF.error(`Failed to fully synchronise push rules for ${e}`,t)}})};var fS=n("./src/contexts/LocalDeviceVerificationStateContext.ts");function yS(e){const t=function(e){const[t,n]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{const t=e.getUserId();if(!t)return;const i=e.getCrypto();null==i||i.getUserVerificationStatus(t).then(e=>n(e.isCrossSigningVerified()),e=>o.vF.error("Error fetching verification status",e))},[e]),(0,mo.ml)(e,Ee.cr.UserTrustStatusChanged,(t,i)=>{t===e.getUserId()&&n(i.isCrossSigningVerified())}),t}(e.client);return s.createElement(je.Ay.Provider,{value:e.client},s.createElement(fS.f.Provider,{value:t},e.children))}class ES extends Xe.oY8{constructor(){var e;super(void 0,S.A.getValue("RoomList.isPanelCollapsed")?{isCollapsed:!0,initialSize:0}:{isCollapsed:!1,initialSize:null!==(e=S.A.getValue("RoomList.panelSize"))&&void 0!==e?e:void 0}),(0,i.A)(this,"panelHandle",void 0),(0,i.A)(this,"mouseClickHandler",void 0),(0,i.A)(this,"onLeftPanelResize",(0,Ap.A)(e=>{const t=e.inPixels;this.snapshot.merge({isCollapsed:0===t})},50)),(0,i.A)(this,"onLeftPanelResized",e=>{var t;if(!Number.isInteger(e))return void(null===(t=this.panelHandle)||void 0===t||t.resize(`${Math.round(e)}%`));const n=0===e;n||S.A.setValue("RoomList.panelSize",null,oe.p.DEVICE,e),S.A.setValue("RoomList.isPanelCollapsed",null,oe.p.DEVICE,n)}),(0,i.A)(this,"setPanelHandle",e=>{this.panelHandle=e}),(0,i.A)(this,"onSeparatorClick",()=>{var e;if(null!==(e=this.panelHandle)&&void 0!==e&&e.isCollapsed()){const e=S.A.getValue("RoomList.panelSize");this.panelHandle.resize(`${null!=e?e:100}%`)}}),(0,i.A)(this,"onDoubleClick",()=>{var e,t;null!==(e=this.panelHandle)&&void 0!==e&&e.isCollapsed()||null===(t=this.panelHandle)||void 0===t||t.collapse()}),(0,i.A)(this,"onPointerUp",()=>{this.mouseClickHandler.onPointerUp()}),(0,i.A)(this,"onPointerMove",()=>{this.mouseClickHandler.onPointerMove()}),(0,i.A)(this,"onPointerDown",()=>{this.mouseClickHandler.onPointerDown()}),this.mouseClickHandler=new wS(this.onSeparatorClick)}}class wS{constructor(e){(0,i.A)(this,"isResize",!1),(0,i.A)(this,"onPointerUp",()=>{this.isResize||this.onClick()}),(0,i.A)(this,"onPointerDown",()=>{this.isResize=!1}),(0,i.A)(this,"onPointerMove",()=>{this.isResize=!0}),this.onClick=e}}function SS(e){return e.closest("input, textarea, select, [contenteditable=true]")}class bS extends s.Component{constructor(e,t){super(e,t),(0,i.A)(this,"_matrixClient",void 0),(0,i.A)(this,"_roomView",void 0),(0,i.A)(this,"layoutWatcherRef",void 0),(0,i.A)(this,"compactLayoutWatcherRef",void 0),(0,i.A)(this,"backgroundImageWatcherRef",void 0),(0,i.A)(this,"timezoneProfileUpdateRef",void 0),(0,i.A)(this,"resizerViewModel",void 0),(0,i.A)(this,"onTimezoneUpdate",async()=>{if(!S.A.getValue("userTimezonePublish")){try{await this._matrixClient.deleteExtendedProfileProperty(r.MYZ),await this._matrixClient.deleteExtendedProfileProperty(r.S3U)}catch(e){console.warn("Failed to delete timezone from user profile",e)}return}const e=S.A.getValue("userTimezone")||Intl.DateTimeFormat().resolvedOptions().timeZone;if(e&&"string"==typeof e)try{await this._matrixClient.setExtendedProfileProperty(r.S3U,e),await this._matrixClient.setExtendedProfileProperty(r.MYZ,e)}catch(e){console.warn("Failed to update user profile with current timezone",e)}}),(0,i.A)(this,"onCallState",()=>{const e=this.context.legacyCallHandler.getAllActiveCalls();e!==this.state.activeCalls&&this.setState({activeCalls:e})}),(0,i.A)(this,"refreshBackgroundImage",async()=>{let e=S.A.getValue("RoomList.backgroundImage");e=e?(0,Ci.l)(e).srcHttp:dp.V.instance.getHttpAvatarUrl(),this.setState({backgroundImage:null!=e?e:void 0})}),(0,i.A)(this,"canResetTimelineInRoom",e=>!this._roomView.current||this._roomView.current.canResetTimeline()),(0,i.A)(this,"onAccountData",e=>{"m.ignored_user_list"===e.getType()&&K.A.dispatch({action:"ignore_state_changed"}),_S(e,this._matrixClient)}),(0,i.A)(this,"onCompactLayoutChanged",()=>{this.setState({useCompactLayout:S.A.getValue("useCompactLayout")})}),(0,i.A)(this,"onSync",(e,t,n)=>{var i,s;const o=null===(i=this.state.syncErrorData)||void 0===i||null===(i=i.error)||void 0===i?void 0:i.errcode,a=null==n||null===(s=n.error)||void 0===s?void 0:s.errcode;if(e===t&&o===a)return;const l=e===r.Lmg.Error?n:void 0;this.setState({syncErrorData:l}),t===r.Lmg.Prepared&&e===r.Lmg.Syncing?this.updateServerNoticeEvents():this.calculateServerLimitToast(l,this.state.usageLimitEventContent)}),(0,i.A)(this,"onRoomStateEvents",e=>{fm.default.instance.getServerNoticeRooms().some(t=>t.roomId===e.getRoomId())&&this.updateServerNoticeEvents()}),(0,i.A)(this,"onUsageLimitDismissed",()=>{this.setState({usageLimitDismissed:!0})}),(0,i.A)(this,"updateServerNoticeEvents",async()=>{const e=fm.default.instance.getServerNoticeRooms();if(!e.length)return;const t=[];let n=0;for(const i of e){const e=i.currentState.getStateEvents("m.room.pinned_events","");if(!e||!e.getContent().pinned)continue;n=e.getTs();const s=e.getContent().pinned.slice(0,2);for(const e of s){const n=await this._matrixClient.getEventTimeline(i.getUnfilteredTimelineSet(),e),s=null==n?void 0:n.getEvents().find(t=>t.getId()===e);s&&t.push(s)}}if(n&&this.state.usageLimitEventTs&&this.state.usageLimitEventTs>n)return;const i=t.find(e=>e&&"m.room.message"===e.getType()&&"m.server_notice.usage_limit_reached"===e.getContent().server_notice_type),s=null==i?void 0:i.getContent();this.calculateServerLimitToast(this.state.syncErrorData,s),this.setState({usageLimitEventContent:s,usageLimitEventTs:n,usageLimitDismissed:!1})}),(0,i.A)(this,"onPaste",e=>{const t=SS(e.target);if(t!==document.activeElement)if(null!=t&&t.focus)t.focus();else{var n;const e=!(null===(n=document.activeElement)||void 0===n||!n.closest(".mx_ThreadView"));K.A.dispatch({action:$.r.FocusSendMessageComposer,context:e?Qo.Ae.Thread:Qo.Ae.Room},!0)}}),(0,i.A)(this,"onReactKeyDown",e=>{this.onKeyDown(e)}),(0,i.A)(this,"onNativeKeyDown",e=>{e.target===document.body&&this.onKeyDown(e)}),(0,i.A)(this,"onKeyDown",e=>{var t,n,i;let s=!1;switch((0,dc.zM)().getRoomAction(e)){case mc.bY.ScrollUp:case mc.bY.ScrollDown:case mc.bY.JumpToFirstMessage:case mc.bY.JumpToLatestMessage:this.onScrollKeyPressed(e),s=!0;break;case mc.bY.SearchInRoom:K.A.fire($.r.FocusMessageSearch),s=!0}if(s)return e.stopPropagation(),void e.preventDefault();const o=(0,dc.zM)().getNavigationAction(e);switch(o){case mc.bY.NextLandmark:case mc.bY.PreviousLandmark:_m.r.findAndFocusNextLandmark(_m.H.MESSAGE_COMPOSER_OR_HOME,o===mc.bY.PreviousLandmark),s=!0;break;case mc.bY.FilterRooms:K.A.fire($.r.OpenSpotlight),s=!0;break;case mc.bY.ToggleUserMenu:K.A.fire($.r.ToggleUserMenu),s=!0;break;case mc.bY.ShowKeyboardSettings:K.A.dispatch({action:$.r.ViewUserSettings,initialTabId:ct.v.Keyboard}),s=!0;break;case mc.bY.GoToHome:if(s=!0,X.Ay.hasDialogs())return;K.A.dispatch({action:$.r.ViewHomePage});break;case mc.bY.ToggleSpacePanel:K.A.fire($.r.ToggleSpacePanel),s=!0;break;case mc.bY.ToggleRoomSidePanel:"room_view"===this.props.page_type&&(this.context.rightPanelStore.togglePanel(null),s=!0);break;case mc.bY.SelectPrevRoom:K.A.dispatch({action:$.r.ViewRoomDelta,delta:-1,unread:!1}),s=!0;break;case mc.bY.SelectNextRoom:K.A.dispatch({action:$.r.ViewRoomDelta,delta:1,unread:!1}),s=!0;break;case mc.bY.SelectPrevUnreadRoom:K.A.dispatch({action:$.r.ViewRoomDelta,delta:-1,unread:!0});break;case mc.bY.SelectNextUnreadRoom:K.A.dispatch({action:$.r.ViewRoomDelta,delta:1,unread:!0});break;case mc.bY.PreviousVisitedRoomOrSpace:null===(t=l.A.get())||void 0===t||t.navigateForwardBack(!0),s=!0;break;case mc.bY.NextVisitedRoomOrSpace:null===(n=l.A.get())||void 0===n||n.navigateForwardBack(!1),s=!0}if(!s){switch((0,dc.zM)().getLabsAction(e)){case mc.bY.ToggleHiddenEventVisibility:{const e=S.A.getValueAt(oe.p.DEVICE,"showHiddenEventsInTimeline",void 0,!1);S.A.setValue("showHiddenEventsInTimeline",null,oe.p.DEVICE,!e),s=!0;break}}}if(!s&&null!==(i=l.A.get())&&void 0!==i&&i.overrideBrowserShortcuts()&&e.code.startsWith("Digit")&&"Digit0"!==e.code&&(0,ni.Et)(e)&&(K.A.dispatch({action:$.r.SwitchSpace,num:parseInt(e.code.slice(5),10)}),s=!0),s)return e.stopPropagation(),void e.preventDefault();if(!(e.key===ni.Uz.ALT||e.key===ni.Uz.CONTROL||e.key===ni.Uz.META||e.key===ni.Uz.SHIFT)&&!e.ctrlKey&&!e.metaKey){const t=e.target!==document.body&&(e.key===ni.Uz.SPACE||e.key===ni.Uz.ENTER),n=1===e.key.length||"Dead"===e.key;if(!t&&n&&!SS(e.target)){var r;const t=!(null===(r=document.activeElement)||void 0===r||!r.closest(".mx_ThreadView"));K.A.dispatch({action:$.r.FocusSendMessageComposer,context:t?Qo.Ae.Thread:Qo.Ae.Room},!0),e.stopPropagation()}}}),(0,i.A)(this,"onScrollKeyPressed",e=>{var t;null===(t=this._roomView.current)||void 0===t||t.handleScrollKey(e)}),this.state={syncErrorData:void 0,useCompactLayout:S.A.getValue("useCompactLayout"),usageLimitDismissed:!1,activeCalls:t.legacyCallHandler.getAllActiveCalls()},this._matrixClient=this.props.matrixClient,Yd.Ay.loadDevices(),this._roomView=s.createRef()}componentDidMount(){var e;document.addEventListener("keydown",this.onNativeKeyDown,!1),this.context.legacyCallHandler.addListener(tm.uv.CallState,this.onCallState),this.updateServerNoticeEvents(),this._matrixClient.on(r.AUM.AccountData,this.onAccountData),_S(this._matrixClient.getAccountData(r.Bx4.PushRules),this._matrixClient),this._matrixClient.on(r.AUM.Sync,this.onSync),this.onSync(this._matrixClient.getSyncState(),null,null!==(e=this._matrixClient.getSyncStateData())&&void 0!==e?e:void 0),this._matrixClient.on(r.fZ1.Events,this.onRoomStateEvents),this.layoutWatcherRef=S.A.watchSetting("layout",null,this.onCompactLayoutChanged),this.compactLayoutWatcherRef=S.A.watchSetting("useCompactLayout",null,this.onCompactLayoutChanged),this.backgroundImageWatcherRef=S.A.watchSetting("RoomList.backgroundImage",null,this.refreshBackgroundImage),this.timezoneProfileUpdateRef=[S.A.watchSetting("userTimezonePublish",null,this.onTimezoneUpdate),S.A.watchSetting("userTimezone",null,this.onTimezoneUpdate)],this.onTimezoneUpdate(),dp.V.instance.on("update",this.refreshBackgroundImage),this.refreshBackgroundImage()}getResizerViewModel(){return this.resizerViewModel||(this.resizerViewModel=new ES),this.resizerViewModel}disposeResizerViewModel(){var e;null===(e=this.resizerViewModel)||void 0===e||e.dispose(),this.resizerViewModel=void 0}componentWillUnmount(){var e,t;document.removeEventListener("keydown",this.onNativeKeyDown,!1),this.context.legacyCallHandler.removeListener(tm.uv.CallState,this.onCallState),this._matrixClient.removeListener(r.AUM.AccountData,this.onAccountData),this._matrixClient.removeListener(r.AUM.Sync,this.onSync),this._matrixClient.removeListener(r.fZ1.Events,this.onRoomStateEvents),dp.V.instance.off("update",this.refreshBackgroundImage),S.A.unwatchSetting(this.layoutWatcherRef),S.A.unwatchSetting(this.compactLayoutWatcherRef),S.A.unwatchSetting(this.backgroundImageWatcherRef),null===(e=this.timezoneProfileUpdateRef)||void 0===e||e.forEach(e=>S.A.unwatchSetting(e)),null===(t=this.resizerViewModel)||void 0===t||t.dispose()}calculateServerLimitToast(e,t){var n;const i="M_RESOURCE_LIMIT_EXCEEDED"===(null==e||null===(n=e.error)||void 0===n?void 0:n.errcode);var o;i&&(t=null==e||null===(o=e.error)||void 0===o?void 0:o.data);t&&!this.state.usageLimitDismissed?((e,t,n)=>{const i=(0,qc.AB)(e,n,{monthly_active_user:(0,c.AO)("error|mau"),hs_blocked:(0,c.AO)("error|hs_blocked"),"":(0,c.AO)("error|resource_limits")}),o=(0,qc.AB)(e,n,{"":(0,c.AO)("error|admin_contact_short")});re.A.sharedInstance().addOrReplaceToast({key:Qd,title:(0,c._t)("common|warning"),props:{description:s.createElement(s.Fragment,null,i," ",o),primaryLabel:(0,c._t)("action|ok"),onPrimaryClick:()=>{Xd(),t&&t()}},component:lt.A,priority:70})})(t.limit_type,this.onUsageLimitDismissed,t.admin_contact):Xd()}render(){let e;const t=this.props.page_type?yl.r.instance.navigation.locationRenderers.get(this.props.page_type):void 0;switch(this.props.page_type){case Jd.A.RoomView:e=s.createElement(kw,{ref:this._roomView,onRegistered:this.props.onRegistered,threepidInvite:this.props.threepidInvite,oobData:this.props.roomOobData,key:this.props.currentRoomId||"roomview",justCreatedOpts:this.props.roomJustCreatedOpts,forceTimeline:this.props.forceTimeline});break;case Jd.A.HomePage:e=s.createElement(Bw,{justRegistered:this.props.justRegistered});break;case Jd.A.UserView:this.props.currentUserId&&(e=s.createElement(jw,{userId:this.props.currentUserId,resizeNotifier:this.context.resizeNotifier}));break;default:t?(this.disposeResizerViewModel(),e=t()):console.warn(`Couldn't render page type "${this.props.page_type}"`)}const n=un()({mx_MatrixChat_wrapper:!0,mx_MatrixChat_useCompactLayout:this.state.useCompactLayout}),i=un()({mx_MatrixChat:!0,"mx_MatrixChat--with-avatar":this.state.backgroundImage}),o=un()("mx_LeftPanel_wrapper"),r=this.state.activeCalls.map(e=>s.createElement(bp,{call:e,key:e.callId})),a=s.createElement("div",{className:"mx_LeftPanel_outerWrapper"},s.createElement(Ww,{isMinimized:!1}),s.createElement("div",{className:o},!t&&s.createElement("div",{className:"mx_LeftPanel_wrapper--user"},s.createElement(su,{isMinimized:!1,resizeNotifier:this.context.resizeNotifier})))),l=s.createElement("div",{className:"mx_RoomView_wrapper"},e);let c;const d=t?void 0:this.getResizerViewModel();return c=d&&!t?s.createElement(Xe.Jkm,{vm:d},s.createElement(Ep,null),s.createElement(Xe.UR9,{vm:d,className:"mx_LeftPanel_panel",minSize:"200px",maxSize:"370px",defaultSize:"370px"},a),s.createElement(Xe.v36,{className:"mx_Separator",vm:d}),s.createElement(Xe.Zkm,{className:"mx_LeftPanel_panel"},l)):s.createElement(s.Fragment,null,s.createElement(Ep,null),a,l),s.createElement(yS,{client:this._matrixClient},s.createElement("div",{onPaste:this.onPaste,onKeyDown:this.onReactKeyDown,className:n,"aria-hidden":this.props.hideToSRUsers},s.createElement(Iw,null),s.createElement("div",{className:i},c)),s.createElement(nS,null),s.createElement(ru,null),r)}}(0,i.A)(bS,"displayName","LoggedInView"),(0,i.A)(bS,"contextType",Ro.A);const AS=bS;function CS(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}let xS=function(e){return e[e.Primary=0]="Primary",e[e.Cancel=1]="Cancel",e}({});const kS=({onFinished:e,analyticsOwner:t,privacyPolicyUrl:n,primaryButton:i,cancelButton:o,hasCancel:r})=>{const a=n?s.createElement("span",null,(0,c._t)("analytics|privacy_policy",{},{PrivacyPolicyUrl:e=>s.createElement(it.A,{href:n,rel:"norefferer noopener",target:"_blank"},e)})):"";return s.createElement(ke.A,{className:"mx_AnalyticsLearnMoreDialog",contentId:"mx_AnalyticsLearnMore",title:(0,c._t)("analytics|enable_prompt",{analyticsOwner:t}),onFinished:e},s.createElement("div",{className:"mx_Dialog_content"},s.createElement("div",{className:"mx_AnalyticsLearnMore_image_holder"}),s.createElement("div",{className:"mx_AnalyticsLearnMore_copy"},(0,c._t)("analytics|pseudonymous_usage_data",{analyticsOwner:t})),s.createElement("ul",{className:"mx_AnalyticsLearnMore_bullets"},s.createElement("li",null,s.createElement(No.A,null),(0,c._t)("analytics|bullet_1",{},{Bold:e=>s.createElement("strong",null,e)})),s.createElement("li",null,s.createElement(No.A,null),(0,c._t)("analytics|bullet_2",{},{Bold:e=>s.createElement("strong",null,e)})),s.createElement("li",null,s.createElement(No.A,null),(0,c._t)("analytics|disable_prompt"))),a),s.createElement(an.A,{primaryButton:i,cancelButton:o,onPrimaryButtonClick:()=>e(xS.Primary),onCancel:()=>e(xS.Cancel),hasCancel:r}))},RS=e=>{var t;const n=d.A.get("privacy_policy_url"),s=null!==(t=d.A.get("analytics_owner"))&&void 0!==t?t:d.A.get("brand");return X.Ay.createDialog(kS,function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?CS(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):CS(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({privacyPolicyUrl:n,analyticsOwner:s},e),"mx_AnalyticsLearnMoreDialog_wrapper")},IS=()=>{K.A.dispatch({action:$.r.PseudonymousAnalyticsAccept})},TS=()=>{K.A.dispatch({action:$.r.PseudonymousAnalyticsReject})},PS=()=>{const{finished:e}=RS({primaryButton:(0,c._t)("action|enable")});e.then(([e])=>{e===xS.Primary&&IS()})},NS=()=>{const{finished:e}=RS({primaryButton:(0,c._t)("analytics|accept_button"),cancelButton:(0,c._t)("action|stop")});e.then(([e])=>{e===xS.Primary?IS():e===xS.Cancel&&TS()})},DS="analytics",MS=()=>{var e;const t=S.A.getValue("analyticsOptIn",null,!0);let n;if(t)n={description:(0,c._t)("analytics|consent_migration"),primaryLabel:(0,c._t)("analytics|accept_button"),onPrimaryClick:IS,secondaryLabel:(0,c._t)("action|learn_more"),onSecondaryClick:NS};else{if(null!=t)return;{const e=e=>s.createElement(Ve.A,{kind:"link_inline",onClick:PS},e);n={description:(0,c._t)("analytics|learn_more",{},{LearnMoreLink:e}),primaryLabel:(0,c._t)("action|yes"),onPrimaryClick:IS,secondaryLabel:(0,c._t)("action|no"),onSecondaryClick:TS}}}const i=null!==(e=d.A.get("analytics_owner"))&&void 0!==e?e:d.A.get().brand;re.A.sharedInstance().addOrReplaceToast({key:DS,title:(0,c._t)("analytics|enable_prompt",{analyticsOwner:i}),props:n,component:lt.A,className:"mx_AnalyticsToast",priority:10})},OS=()=>{re.A.sharedInstance().dismissToast(DS)};var FS=n("./src/components/views/elements/DialPadBackspaceButton.tsx");class LS extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"numberEntryFieldRef",(0,s.createRef)()),(0,i.A)(this,"onCancelClick",()=>{this.props.onFinished(!1)}),(0,i.A)(this,"onChange",e=>{this.setState({value:e.target.value})}),(0,i.A)(this,"onFormSubmit",e=>{e.preventDefault(),this.onDialPress()}),(0,i.A)(this,"onDigitPress",(e,t)=>{var n;(this.setState({value:this.state.value+e}),"click"===t.type)&&(null===(n=this.numberEntryFieldRef.current)||void 0===n||n.focus())}),(0,i.A)(this,"onDeletePress",e=>{var t;0!==this.state.value.length&&(this.setState({value:this.state.value.slice(0,-1)}),"click"===e.type&&(null===(t=this.numberEntryFieldRef.current)||void 0===t||t.focus()))}),(0,i.A)(this,"onDialPress",async()=>{gs._.instance.legacyCallHandler.dialNumber(this.state.value),this.props.onFinished(!0)}),this.state={value:""}}render(){const e=s.createElement(FS.A,{onBackspacePress:this.onDeletePress});let t;return t=0!==this.state.value.length?s.createElement(yi.A,{ref:this.numberEntryFieldRef,className:"mx_DialPadModal_field",id:"dialpad_number",value:this.state.value,autoFocus:!0,onChange:this.onChange,postfixComponent:e}):s.createElement(yi.A,{ref:this.numberEntryFieldRef,className:"mx_DialPadModal_field",id:"dialpad_number",value:this.state.value,autoFocus:!0,onChange:this.onChange}),s.createElement("div",{className:"mx_DialPadModal"},s.createElement("div",null,s.createElement(Ve.A,{className:"mx_DialPadModal_cancel",onClick:this.onCancelClick},s.createElement(ti.A,null))),s.createElement("div",{className:"mx_DialPadModal_header"},s.createElement("form",{onSubmit:this.onFormSubmit},t)),s.createElement("div",{className:"mx_DialPadModal_dialPad"},s.createElement(Dy.Ay,{hasDial:!0,onDigitPress:this.onDigitPress,onDeletePress:this.onDeletePress,onDialPress:this.onDialPress})))}}const US=()=>{window.location.href="mobile_guide/"},VS=()=>{document.cookie="element_mobile_redirect_to_guide=false;path=/;max-age=14400",jS()},BS="mobileguide",jS=()=>{re.A.sharedInstance().dismissToast(BS)};var HS=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Toast/Toast.js"),zS=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/keyboard.js"),WS=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/sidebar.js"),JS=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/labs.js"),GS=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/block.js"),KS=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Form/Controls/EditInPlace/EditInPlace.js"),qS=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Alert/Alert.js"),$S=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/sign-out.js");let YS=function(e){return e[e.LOADING=0]="LOADING",e[e.NO_CRYPTO=1]="NO_CRYPTO",e[e.BACKUP_ACTIVE=2]="BACKUP_ACTIVE",e[e.SERVER_BACKUP_BUT_DISABLED=3]="SERVER_BACKUP_BUT_DISABLED",e[e.BACKUP_NO_RECOVERY=4]="BACKUP_NO_RECOVERY",e[e.NO_BACKUP=5]="NO_BACKUP",e[e.ERROR=6]="ERROR",e}({});function QS(e){const t=_.J.safeGet(),n=function(e){return(0,De.e)(async()=>{const t=e.getCrypto();if(!t)return YS.NO_CRYPTO;try{return null!==await t.getActiveSessionBackupVersion()?await t.isSecretStorageReady()?YS.BACKUP_ACTIVE:YS.BACKUP_NO_RECOVERY:await t.getKeyBackupInfo()?YS.SERVER_BACKUP_BUT_DISABLED:YS.NO_BACKUP}catch{return YS.ERROR}},[],YS.LOADING)}(t),i=Fe(t),o=t=>{t&&K.A.dispatch({action:"logout"}),e.onFinished(!!t)},r=()=>{K.A.dispatch({action:"logout"}),e.onFinished(!0)},a=()=>{const t={action:$.r.ViewUserSettings,initialTabId:ct.v.Encryption,props:{initialEncryptionState:"set_recovery_key"}};K.A.dispatch(t),e.onFinished(!1)};if(void 0===i)return s.createElement(XS,{onFinished:o});if(i)return s.createElement(ZS,{onFinished:o});switch(n){case YS.LOADING:return s.createElement(XS,{onFinished:o});case YS.NO_CRYPTO:case YS.BACKUP_ACTIVE:return s.createElement(ZS,{onFinished:o});case YS.NO_BACKUP:case YS.SERVER_BACKUP_BUT_DISABLED:case YS.ERROR:case YS.BACKUP_NO_RECOVERY:return s.createElement(ke.A,{contentId:"mx_Dialog_content",hasCancel:!0,onFinished:o,className:"mx_LogoutDialog"},s.createElement(Ke.g,{Icon:we.A,destructive:!0,title:(0,c._t)("auth|logout_dialog|setup_key_backup_title"),className:"mx_EncryptionCard_noBorder"},s.createElement(Ze,null,s.createElement(Pu.E,null,(0,c._t)("auth|logout_dialog|setup_secure_backup_description")),s.createElement(Pu.E,{as:"a",target:"_blank",href:"https://element.io/en/help#encryption16"},(0,c._t)("action|learn_more")," ",s.createElement(mt.A,null))),s.createElement(Qe.D,null,s.createElement(xe.$,{onClick:a,Icon:be.A},(0,c._t)("settings|encryption|recovery|set_up_recovery")),s.createElement(xe.$,{kind:"tertiary",destructive:!0,onClick:r,Icon:$S.A},(0,c._t)("auth|logout_dialog|skip_key_backup")))))}}function XS(e){return s.createElement(ke.A,{title:(0,c._t)("action|sign_out"),contentId:"mx_Dialog_content",hasCancel:!0,onFinished:e.onFinished},s.createElement(Be.A,null))}function ZS(e){return s.createElement(on.A,{hasCancelButton:!0,title:(0,c._t)("action|sign_out"),description:(0,c._t)("auth|logout_dialog|description"),button:(0,c._t)("action|sign_out"),onFinished:e.onFinished})}const eb=({children:e})=>s.createElement(s.Fragment,null,s.createElement($s.A,null),e),tb=({username:e})=>{const t=(0,s.useId)();return s.createElement("div",{className:"mx_UserProfileSettings_profile_controls_userId"},s.createElement("div",{className:"mx_UserProfileSettings_profile_controls_userId_label",id:t},(0,c._t)("settings|general|username")),s.createElement(Cn.A,{getTextToCopy:()=>e,"aria-labelledby":t},e))},nb=({externalAccountManagementUrl:e})=>s.createElement(Ve.A,{onClick:null,element:"a",kind:"primary","data-kind":"primary",target:"_blank",rel:"noreferrer noopener",href:e,style:{textDecoration:"none"}},s.createElement(mt.A,{className:"mx_UserProfileSettings_accountmanageIcon",width:"24",height:"24"}),(0,c._t)("settings|general|oidc_manage_button")),ib=()=>{const e=(0,je.nH)(),t=(0,s.useCallback)(async()=>{await async function(e){return!!(null==e?void 0:e.getCrypto())}(e)?X.Ay.createDialog(QS):K.A.dispatch({action:"logout"})},[e]);return s.createElement(Ve.A,{onClick:t,kind:"danger_outline"},s.createElement($S.A,{className:"mx_UserProfileSettings_accountmanageIcon",width:"24",height:"24"}),(0,c._t)("action|sign_out"))},sb=({externalAccountManagementUrl:e,canSetDisplayName:t,canSetAvatar:n})=>{var i,r;const[a,l]=(0,s.useState)(dp.V.instance.avatarMxc),[d,m]=(0,s.useState)(null!==(i=dp.V.instance.displayName)&&void 0!==i?i:""),[u,p]=(0,s.useState)(!1),[h,g]=(0,s.useState)(),[v,_]=(0,s.useState)(!1),f=(0,Xe.Y6d)(),y=(0,je.nH)();(0,s.useEffect)(()=>{(async()=>{try{const e=await y.getMediaConfig();g(e["m.upload.size"])}catch(e){o.vF.warn("Failed to get media config",e)}})()},[y]);const E=S.A.getValue("feature_user_status"),w=(0,Xe.s2q)(()=>new ap({client:y,ownProfileStore:dp.V.instance})),b=(0,s.useCallback)(async()=>{const e=f.displayToast(s.createElement(eb,null,(0,c._t)("settings|general|avatar_remove_progress")));try{await y.setAvatarUrl(""),l("")}finally{e()}},[f,y]),A=(0,s.useCallback)(async e=>{Gi.A.trackInteraction("WebProfileSettingsAvatarUploadButton"),o.vF.log(`Uploading new avatar, ${e.name} of type ${e.type}, (${e.size}) bytes`);const t=f.displayToast(s.createElement(eb,null,(0,c._t)("settings|general|avatar_save_progress")));try{p(!1);const{content_uri:t}=await y.uploadContent(e);await y.setAvatarUrl(t),l(t)}catch{p(!0)}finally{t()}},[f,y]),x=(0,s.useCallback)(e=>{m(e.target.value)},[]),k=(0,s.useCallback)(()=>{var e;m(null!==(e=dp.V.instance.displayName)&&void 0!==e?e:"")},[]),R=(0,s.useCallback)(async()=>{try{_(!1),await y.setDisplayName(d)}catch(e){throw _(!0),e}},[d,y]),I=(0,s.useMemo)(()=>Fo.A.getDisplayUserIdentifier(y.getSafeUserId(),{withDisplayName:!0}),[y]),T=!t||!n;return s.createElement(On,{heading:(0,c._t)("common|profile")},s.createElement("div",{className:"mx_UserProfileSettings"},s.createElement("div",null,T?(0,c._t)("settings|general|profile_subtitle_oidc"):(0,c._t)("settings|general|profile_subtitle")),s.createElement("div",{className:"mx_UserProfileSettings_profile"},s.createElement(Ti,{avatar:null!=a?a:void 0,avatarAccessibleName:(0,c._t)("common|user_avatar"),onChange:A,removeAvatar:a?b:void 0,placeholderName:d,placeholderId:null!==(r=y.getUserId())&&void 0!==r?r:"",disabled:!n}),s.createElement(Xe.son,{direction:"column",className:"mx_UserProfileSettings_profile_nameAndStatus"},s.createElement(KS.d,{className:"mx_UserProfileSettings_profile_displayName",label:(0,c._t)("settings|general|display_name"),value:d,saveButtonLabel:(0,c._t)("common|save"),cancelButtonLabel:(0,c._t)("common|cancel"),savedLabel:(0,c._t)("common|saved"),savingLabel:(0,c._t)("common|updating"),onChange:x,onCancel:k,onSave:R,disabled:!t},v&&s.createElement(Yi.Kw,null,(0,c._t)("settings|general|display_name_error"))),E&&s.createElement(Xe.MtU,{vm:w}))),u&&s.createElement(qS.F,{title:(0,c._t)("settings|general|avatar_upload_error_title"),type:"critical"},void 0===h?(0,c._t)("settings|general|avatar_upload_error_text_generic"):(0,c._t)("settings|general|avatar_upload_error_text",{size:(0,C.z3)(h)})),I&&s.createElement(tb,{username:I}),s.createElement(Xe.son,{gap:"var(--cpd-space-4x)",className:"mx_UserProfileSettings_profile_buttons"},e&&s.createElement(nb,{externalAccountManagementUrl:e}),s.createElement(ib,null))))};var ob=n("./src/components/structures/InteractiveAuth.tsx");class rb extends s.Component{constructor(e){super(e),(0,i.A)(this,"onStagePhaseChange",(e,t)=>{const n={[qe.av.PHASE_PREAUTH]:{body:(0,c._t)("settings|general|deactivate_confirm_body_sso"),continueText:(0,c._t)("auth|sso"),continueKind:"danger"},[qe.av.PHASE_POSTAUTH]:{body:(0,c._t)("settings|general|deactivate_confirm_body"),continueText:(0,c._t)("settings|general|deactivate_confirm_continue"),continueKind:"danger"}},i={[qe.av.LOGIN_TYPE]:n,[qe.av.UNSTABLE_LOGIN_TYPE]:n}[e];let s,o,r;if(i){const e=i[t];e&&(e.body&&(s=e.body),e.continueText&&(o=e.continueText),e.continueKind&&(r=e.continueKind))}this.setState({bodyText:s,continueText:o,continueKind:r})}),(0,i.A)(this,"onUIAuthFinished",async(e,t)=>{e||(t!==ob.R?(o.vF.error("Error during UI Auth:",{result:t}),this.setState({errStr:(0,c._t)("settings|general|error_deactivate_communication")})):this.onCancel())}),(0,i.A)(this,"onUIAuthComplete",e=>{_.J.safeGet().deactivateAccount(null!=e?e:void 0,this.state.shouldErase).then(e=>{K.A.fire($.r.TriggerLogout),this.props.onFinished(!0)}).catch(e=>{o.vF.error(e),this.setState({errStr:(0,c._t)("settings|general|error_deactivate_communication")})})}),(0,i.A)(this,"onEraseFieldChange",e=>{this.setState({shouldErase:e.currentTarget.checked,authEnabled:!1}),this.initAuth(e.currentTarget.checked)}),this.state={shouldErase:!1,errStr:null,authData:null,authEnabled:!0}}componentDidMount(){this.initAuth(!1)}onCancel(){this.props.onFinished(!1)}initAuth(e){_.J.safeGet().deactivateAccount(void 0,e).then(e=>{o.vF.warn("User's account got deactivated without confirmation: Server had no auth"),this.setState({errStr:(0,c._t)("settings|general|error_deactivate_no_auth")})}).catch(e=>{e&&401===e.httpStatus&&e.data?this.setState({authData:e.data,authEnabled:!0}):this.setState({errStr:(0,c._t)("settings|general|error_deactivate_invalid_auth")})})}render(){let e;this.state.errStr&&(e=s.createElement("div",{className:"error"},this.state.errStr));let t=s.createElement("div",null,(0,c._t)("common|loading"));return this.state.authData&&this.state.authEnabled&&(t=s.createElement("div",null,this.state.bodyText,s.createElement(ob.A,{matrixClient:_.J.safeGet(),authData:this.state.authData,makeRequest:this.onUIAuthComplete,onAuthFinished:this.onUIAuthFinished,onStagePhaseChange:this.onStagePhaseChange,continueText:this.state.continueText,continueKind:this.state.continueKind}))),s.createElement(ke.A,{className:"mx_DeactivateAccountDialog",onFinished:this.props.onFinished,titleClass:"danger",title:(0,c._t)("settings|general|deactivate_section"),screenName:"DeactivateAccount"},s.createElement("div",{className:"mx_Dialog_content"},s.createElement("p",null,(0,c._t)("settings|general|deactivate_confirm_content")),s.createElement("ul",null,s.createElement("li",null,(0,c._t)("settings|general|deactivate_confirm_content_1")),s.createElement("li",null,(0,c._t)("settings|general|deactivate_confirm_content_2")),s.createElement("li",null,(0,c._t)("settings|general|deactivate_confirm_content_3")),s.createElement("li",null,(0,c._t)("settings|general|deactivate_confirm_content_4")),s.createElement("li",null,(0,c._t)("settings|general|deactivate_confirm_content_5"))),s.createElement("p",null,(0,c._t)("settings|general|deactivate_confirm_content_6")),s.createElement("div",{className:"mx_DeactivateAccountDialog_input_section"},s.createElement("p",null,s.createElement(hs.A,{checked:this.state.shouldErase,onChange:this.onEraseFieldChange},(0,c._t)("settings|general|deactivate_confirm_erase_label"))),e,t)))}}var ab=n("./src/components/views/auth/PassphraseField.tsx");const lb=/^[0-9 -.]+$/;const cb=127462-"A".charCodeAt(0),db=/^[A-Z]{2}$/,mb=[{iso2:"GB",prefix:"44"},{iso2:"US",prefix:"1"},{iso2:"AF",prefix:"93"},{iso2:"AX",prefix:"358"},{iso2:"AL",prefix:"355"},{iso2:"DZ",prefix:"213"},{iso2:"AS",prefix:"1"},{iso2:"AD",prefix:"376"},{iso2:"AO",prefix:"244"},{iso2:"AI",prefix:"1"},{iso2:"AQ",prefix:"672"},{iso2:"AG",prefix:"1"},{iso2:"AR",prefix:"54"},{iso2:"AM",prefix:"374"},{iso2:"AW",prefix:"297"},{iso2:"AU",prefix:"61"},{iso2:"AT",prefix:"43"},{iso2:"AZ",prefix:"994"},{iso2:"BS",prefix:"1"},{iso2:"BH",prefix:"973"},{iso2:"BD",prefix:"880"},{iso2:"BB",prefix:"1"},{iso2:"BY",prefix:"375"},{iso2:"BE",prefix:"32"},{iso2:"BZ",prefix:"501"},{iso2:"BJ",prefix:"229"},{iso2:"BM",prefix:"1"},{iso2:"BT",prefix:"975"},{iso2:"BO",prefix:"591"},{iso2:"BA",prefix:"387"},{iso2:"BW",prefix:"267"},{iso2:"BV",prefix:"47"},{iso2:"BR",prefix:"55"},{iso2:"IO",prefix:"246"},{iso2:"VG",prefix:"1"},{iso2:"BN",prefix:"673"},{iso2:"BG",prefix:"359"},{iso2:"BF",prefix:"226"},{iso2:"BI",prefix:"257"},{iso2:"KH",prefix:"855"},{iso2:"CM",prefix:"237"},{iso2:"CA",prefix:"1"},{iso2:"CV",prefix:"238"},{iso2:"BQ",prefix:"599"},{iso2:"KY",prefix:"1"},{iso2:"CF",prefix:"236"},{iso2:"TD",prefix:"235"},{iso2:"CL",prefix:"56"},{iso2:"CN",prefix:"86"},{iso2:"CX",prefix:"61"},{iso2:"CC",prefix:"61"},{iso2:"CO",prefix:"57"},{iso2:"KM",prefix:"269"},{iso2:"CG",prefix:"242"},{iso2:"CD",prefix:"243"},{iso2:"CK",prefix:"682"},{iso2:"CR",prefix:"506"},{iso2:"HR",prefix:"385"},{iso2:"CU",prefix:"53"},{iso2:"CW",prefix:"599"},{iso2:"CY",prefix:"357"},{iso2:"CZ",prefix:"420"},{iso2:"CI",prefix:"225"},{iso2:"DK",prefix:"45"},{iso2:"DJ",prefix:"253"},{iso2:"DM",prefix:"1"},{iso2:"DO",prefix:"1"},{iso2:"EC",prefix:"593"},{iso2:"EG",prefix:"20"},{iso2:"SV",prefix:"503"},{iso2:"GQ",prefix:"240"},{iso2:"ER",prefix:"291"},{iso2:"EE",prefix:"372"},{iso2:"ET",prefix:"251"},{iso2:"FK",prefix:"500"},{iso2:"FO",prefix:"298"},{iso2:"FJ",prefix:"679"},{iso2:"FI",prefix:"358"},{iso2:"FR",prefix:"33"},{iso2:"GF",prefix:"594"},{iso2:"PF",prefix:"689"},{iso2:"TF",prefix:"262"},{iso2:"GA",prefix:"241"},{iso2:"GM",prefix:"220"},{iso2:"GE",prefix:"995"},{iso2:"DE",prefix:"49"},{iso2:"GH",prefix:"233"},{iso2:"GI",prefix:"350"},{iso2:"GR",prefix:"30"},{iso2:"GL",prefix:"299"},{iso2:"GD",prefix:"1"},{iso2:"GP",prefix:"590"},{iso2:"GU",prefix:"1"},{iso2:"GT",prefix:"502"},{iso2:"GG",prefix:"44"},{iso2:"GN",prefix:"224"},{iso2:"GW",prefix:"245"},{iso2:"GY",prefix:"592"},{iso2:"HT",prefix:"509"},{iso2:"HM",prefix:"672"},{iso2:"HN",prefix:"504"},{iso2:"HK",prefix:"852"},{iso2:"HU",prefix:"36"},{iso2:"IS",prefix:"354"},{iso2:"IN",prefix:"91"},{iso2:"ID",prefix:"62"},{iso2:"IR",prefix:"98"},{iso2:"IQ",prefix:"964"},{iso2:"IE",prefix:"353"},{iso2:"IM",prefix:"44"},{iso2:"IL",prefix:"972"},{iso2:"IT",prefix:"39"},{iso2:"JM",prefix:"1"},{iso2:"JP",prefix:"81"},{iso2:"JE",prefix:"44"},{iso2:"JO",prefix:"962"},{iso2:"KZ",prefix:"7"},{iso2:"KE",prefix:"254"},{iso2:"KI",prefix:"686"},{iso2:"XK",prefix:"383"},{iso2:"KW",prefix:"965"},{iso2:"KG",prefix:"996"},{iso2:"LA",prefix:"856"},{iso2:"LV",prefix:"371"},{iso2:"LB",prefix:"961"},{iso2:"LS",prefix:"266"},{iso2:"LR",prefix:"231"},{iso2:"LY",prefix:"218"},{iso2:"LI",prefix:"423"},{iso2:"LT",prefix:"370"},{iso2:"LU",prefix:"352"},{iso2:"MO",prefix:"853"},{iso2:"MK",prefix:"389"},{iso2:"MG",prefix:"261"},{iso2:"MW",prefix:"265"},{iso2:"MY",prefix:"60"},{iso2:"MV",prefix:"960"},{iso2:"ML",prefix:"223"},{iso2:"MT",prefix:"356"},{iso2:"MH",prefix:"692"},{iso2:"MQ",prefix:"596"},{iso2:"MR",prefix:"222"},{iso2:"MU",prefix:"230"},{iso2:"YT",prefix:"262"},{iso2:"MX",prefix:"52"},{iso2:"FM",prefix:"691"},{iso2:"MD",prefix:"373"},{iso2:"MC",prefix:"377"},{iso2:"MN",prefix:"976"},{iso2:"ME",prefix:"382"},{iso2:"MS",prefix:"1"},{iso2:"MA",prefix:"212"},{iso2:"MZ",prefix:"258"},{iso2:"MM",prefix:"95"},{iso2:"NA",prefix:"264"},{iso2:"NR",prefix:"674"},{iso2:"NP",prefix:"977"},{iso2:"NL",prefix:"31"},{iso2:"NC",prefix:"687"},{iso2:"NZ",prefix:"64"},{iso2:"NI",prefix:"505"},{iso2:"NE",prefix:"227"},{iso2:"NG",prefix:"234"},{iso2:"NU",prefix:"683"},{iso2:"NF",prefix:"672"},{iso2:"KP",prefix:"850"},{iso2:"MP",prefix:"1"},{iso2:"NO",prefix:"47"},{iso2:"OM",prefix:"968"},{iso2:"PK",prefix:"92"},{iso2:"PW",prefix:"680"},{iso2:"PS",prefix:"970"},{iso2:"PA",prefix:"507"},{iso2:"PG",prefix:"675"},{iso2:"PY",prefix:"595"},{iso2:"PE",prefix:"51"},{iso2:"PH",prefix:"63"},{iso2:"PN",prefix:"870"},{iso2:"PL",prefix:"48"},{iso2:"PT",prefix:"351"},{iso2:"PR",prefix:"1"},{iso2:"QA",prefix:"974"},{iso2:"RO",prefix:"40"},{iso2:"RU",prefix:"7"},{iso2:"RW",prefix:"250"},{iso2:"RE",prefix:"262"},{iso2:"WS",prefix:"685"},{iso2:"SM",prefix:"378"},{iso2:"SA",prefix:"966"},{iso2:"SN",prefix:"221"},{iso2:"RS",prefix:"381 p"},{iso2:"SC",prefix:"248"},{iso2:"SL",prefix:"232"},{iso2:"SG",prefix:"65"},{iso2:"SX",prefix:"1"},{iso2:"SK",prefix:"421"},{iso2:"SI",prefix:"386"},{iso2:"SB",prefix:"677"},{iso2:"SO",prefix:"252"},{iso2:"ZA",prefix:"27"},{iso2:"GS",prefix:"500"},{iso2:"KR",prefix:"82"},{iso2:"SS",prefix:"211"},{iso2:"ES",prefix:"34"},{iso2:"LK",prefix:"94"},{iso2:"BL",prefix:"590"},{iso2:"SH",prefix:"290 n"},{iso2:"KN",prefix:"1"},{iso2:"LC",prefix:"1"},{iso2:"MF",prefix:"590"},{iso2:"PM",prefix:"508"},{iso2:"VC",prefix:"1"},{iso2:"SD",prefix:"249"},{iso2:"SR",prefix:"597"},{iso2:"SJ",prefix:"47"},{iso2:"SZ",prefix:"268"},{iso2:"SE",prefix:"46"},{iso2:"CH",prefix:"41"},{iso2:"SY",prefix:"963"},{iso2:"ST",prefix:"239"},{iso2:"TW",prefix:"886"},{iso2:"TJ",prefix:"992"},{iso2:"TZ",prefix:"255"},{iso2:"TH",prefix:"66"},{iso2:"TL",prefix:"670"},{iso2:"TG",prefix:"228"},{iso2:"TK",prefix:"690"},{iso2:"TO",prefix:"676"},{iso2:"TT",prefix:"1"},{iso2:"TN",prefix:"216"},{iso2:"TR",prefix:"90"},{iso2:"TM",prefix:"993"},{iso2:"TC",prefix:"1"},{iso2:"TV",prefix:"688"},{iso2:"VI",prefix:"1"},{iso2:"UG",prefix:"256"},{iso2:"UA",prefix:"380"},{iso2:"AE",prefix:"971"},{iso2:"UY",prefix:"598"},{iso2:"UZ",prefix:"998"},{iso2:"VU",prefix:"678"},{iso2:"VA",prefix:"39"},{iso2:"VE",prefix:"58"},{iso2:"VN",prefix:"84"},{iso2:"WF",prefix:"681"},{iso2:"EH",prefix:"212"},{iso2:"YE",prefix:"967"},{iso2:"ZM",prefix:"260"},{iso2:"ZW",prefix:"263"}];class ub extends s.PureComponent{constructor(...e){super(...e),(0,i.A)(this,"validate",(0,Yp.A)({rules:[{key:"required",test:({value:e,allowEmpty:t})=>t||!!e,invalid:()=>(0,c._t)(this.props.labelRequired)},{key:"email",test:({value:e})=>!e||hE.X(e),invalid:()=>(0,c._t)(this.props.labelInvalid)}]})),(0,i.A)(this,"onValidate",async e=>{let t=this.validate;this.props.validationRules&&(t=this.props.validationRules);const n=await t(e);return this.props.onValidate&&this.props.onValidate(n),n})}render(){return s.createElement(yi.A,{id:this.props.id,ref:this.props.fieldRef,type:"text",label:(0,c._t)(this.props.label),value:this.props.value,autoFocus:this.props.autoFocus,onChange:this.props.onChange,onValidate:this.onValidate,tooltipAlignment:this.props.tooltipAlignment})}}(0,i.A)(ub,"defaultProps",{label:(0,c.AO)("auth|email_field_label"),labelRequired:(0,c.AO)("auth|email_field_label_required"),labelInvalid:(0,c.AO)("auth|email_field_label_invalid")});const pb=ub,hb=({onFinished:e})=>{const[t,n]=(0,s.useState)(""),i=(0,s.useRef)(null),o=async n=>{if(n.preventDefault(),i.current){if(t){if(!await i.current.validate({}))return i.current.focus(),void i.current.validate({focused:!0})}e(!0,t)}};return s.createElement(ke.A,{title:(0,c._t)("auth|registration|continue_without_email_title"),className:"mx_RegistrationEmailPromptDialog",contentId:"mx_RegistrationEmailPromptDialog",onFinished:()=>e(!1),fixedWidth:!1},s.createElement("div",{className:"mx_Dialog_content",id:"mx_RegistrationEmailPromptDialog"},s.createElement("p",null,(0,c._t)("auth|registration|continue_without_email_description",{},{b:e=>s.createElement("strong",null,e)})),s.createElement("form",{onSubmit:o},s.createElement(pb,{fieldRef:i,autoFocus:!0,label:(0,c.AO)("auth|registration|continue_without_email_field_label"),value:t,onChange:e=>{const t=e.target;n(t.value)}}))),s.createElement(an.A,{primaryButton:(0,c._t)("action|continue"),onPrimaryButtonClick:o,hasCancel:!1}))};var gb=n("./src/i18n/settings.ts");function vb(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}class _b extends s.Component{constructor(e){super(e),(0,i.A)(this,"defaultCountry",void 0),(0,i.A)(this,"countries",void 0),(0,i.A)(this,"countryMap",void 0),(0,i.A)(this,"onSearchChange",e=>{this.setState({searchQuery:e})}),(0,i.A)(this,"onOptionChange",e=>{this.props.onOptionChange(this.countryMap.get(e))}),(0,i.A)(this,"getShortOption",e=>{if(!this.props.isSmall)return;let t;return this.props.showPrefix&&(t="+"+this.countryMap.get(e).prefix),s.createElement("span",{className:"mx_CountryDropdown_shortOption"},this.flagImgForIso2(e),t)});const t=new Intl.DisplayNames([(0,gb.m)()],{type:"region"});let n;this.countries=mb.map(e=>{var n;return function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?vb(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):vb(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({name:null!==(n=t.of(e.iso2))&&void 0!==n?n:e.iso2},e)}),this.countryMap=new Map(this.countries.map(e=>[e.iso2,e]));const o=d.A.get("default_country_code");if(o){const e=this.countries.find(e=>e.iso2===o.toUpperCase());e&&(n=e)}if(!n)try{var r,a,l;const e=new Intl.Locale(null!==(r=navigator.language)&&void 0!==r?r:navigator.languages[0]),i=null!==(a=null!==(l=e.region)&&void 0!==l?l:e.language)&&void 0!==a?a:e.baseName,s=t.of(i).toUpperCase();n=this.countries.find(e=>e.iso2===i.toUpperCase()||e.name.toUpperCase()===s)}catch(e){console.warn("Failed to detect default locale",e)}this.defaultCountry=null!=n?n:this.countries[0],this.state={searchQuery:""}}componentDidMount(){this.props.value||this.props.onOptionChange(this.defaultCountry)}flagImgForIso2(e){return s.createElement("div",{className:"mx_Dropdown_option_emoji"},(t=e,db.test(t)?String.fromCodePoint(...t.split("").map(e=>cb+e.charCodeAt(0))):""));var t}render(){let e;if(this.state.searchQuery){if(e=this.countries.filter(e=>function(e,t){return"+"===e[0]&&(e=e.slice(1)),0==t.name.toUpperCase().indexOf(e.toUpperCase())||t.iso2==e.toUpperCase()||-1!==t.prefix.indexOf(e)}(this.state.searchQuery,e)),2==this.state.searchQuery.length&&this.countryMap.has(this.state.searchQuery.toUpperCase())){const t=this.countryMap.get(this.state.searchQuery.toUpperCase());e=e.filter(e=>e.iso2!=t.iso2),e.unshift(t)}}else e=this.countries;const t=e.map(e=>s.createElement("div",{className:"mx_CountryDropdown_option",key:e.iso2},this.flagImgForIso2(e.iso2),e.name," (+",e.prefix,")")),n=this.props.value||this.defaultCountry.iso2;return s.createElement(Du.A,{id:"mx_CountryDropdown",className:this.props.className+" mx_CountryDropdown",onOptionChange:this.onOptionChange,onSearchChange:this.onSearchChange,menuWidth:298,getShortOption:this.getShortOption,value:n,searchEnabled:!0,disabled:this.props.disabled,label:(0,c._t)("auth|country_dropdown"),autoComplete:"tel-country-code"},t)}}var fb=n("./src/components/views/auth/PassphraseConfirmField.tsx");let yb,Eb,wb,Sb,bb;var Ab=function(e){return e.Email="field_email",e.PhoneNumber="field_phone_number",e.Username="field_username",e.Password="field_password",e.PasswordConfirm="field_password_confirm",e}(Ab||{}),Cb=function(e){return e[e.Unknown=0]="Unknown",e[e.Available=1]="Available",e[e.Unavailable=2]="Unavailable",e[e.Error=3]="Error",e[e.Invalid=4]="Invalid",e}(Cb||{});yb=Ab.Email,Eb=Ab.Password,wb=Ab.PasswordConfirm,Sb=Ab.Username,bb=Ab.PhoneNumber;class xb extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,yb,null),(0,i.A)(this,Eb,null),(0,i.A)(this,wb,null),(0,i.A)(this,Sb,null),(0,i.A)(this,bb,null),(0,i.A)(this,"onSubmit",async e=>{if(e.preventDefault(),e.persist(),!this.props.canSubmit)return;if(await this.verifyFieldsBeforeSubmit())if(""===this.state.email){if(!this.showEmail())return void this.doSubmit(e);{const{finished:t}=X.Ay.createDialog(hb);t.then(async([t,n])=>{t&&void 0!==n&&this.setState({email:n},()=>this.doSubmit(e))})}}else this.doSubmit(e)}),(0,i.A)(this,"onEmailChange",e=>{this.setState({email:e.target.value.trim()})}),(0,i.A)(this,"onEmailValidate",e=>{this.markFieldValid(Ab.Email,!!e.valid)}),(0,i.A)(this,"validateEmailRules",(0,Yp.A)({description:()=>(0,c._t)("auth|reset_password_email_field_description"),hideDescriptionIfValid:!0,rules:[{key:"required",test({value:e,allowEmpty:t}){return t||!this.authStepIsRequired("m.login.email.identity")||!!e},invalid:()=>(0,c._t)("auth|reset_password_email_field_required_invalid")},{key:"email",test:({value:e})=>!e||hE.X(e),invalid:()=>(0,c._t)("auth|email_field_label_invalid")}]})),(0,i.A)(this,"onPasswordChange",e=>{this.setState({password:e.target.value})}),(0,i.A)(this,"onPasswordValidate",e=>{this.markFieldValid(Ab.Password,!!e.valid)}),(0,i.A)(this,"onPasswordConfirmChange",e=>{this.setState({passwordConfirm:e.target.value})}),(0,i.A)(this,"onPasswordConfirmValidate",e=>{this.markFieldValid(Ab.PasswordConfirm,!!e.valid)}),(0,i.A)(this,"onPhoneCountryChange",e=>{this.setState({phoneCountry:e.iso2})}),(0,i.A)(this,"onPhoneNumberChange",e=>{this.setState({phoneNumber:e.target.value})}),(0,i.A)(this,"onPhoneNumberValidate",async e=>{const t=await this.validatePhoneNumberRules(e);return this.markFieldValid(Ab.PhoneNumber,!!t.valid),t}),(0,i.A)(this,"validatePhoneNumberRules",(0,Yp.A)({description:()=>(0,c._t)("auth|msisdn_field_description"),hideDescriptionIfValid:!0,rules:[{key:"required",test({value:e,allowEmpty:t}){return t||!this.authStepIsRequired("m.login.msisdn")||!!e},invalid:()=>(0,c._t)("auth|registration_msisdn_field_required_invalid")},{key:"email",test:({value:e})=>{return!e||(t=e,lb.test(t));var t},invalid:()=>(0,c._t)("auth|msisdn_field_number_invalid")}]})),(0,i.A)(this,"onUsernameChange",e=>{this.setState({username:e.target.value})}),(0,i.A)(this,"onUsernameValidate",async e=>{const t=await this.validateUsernameRules(e);return this.markFieldValid(Ab.Username,!!t.valid),t}),(0,i.A)(this,"validateUsernameRules",(0,Yp.A)({description:(e,t)=>t.every(({key:e,valid:t})=>"available"===e||t)?null:(0,c._t)("auth|registration_username_validation"),hideDescriptionIfValid:!0,async deriveData({value:e}){if(!e)return Cb.Unknown;try{return await this.props.matrixClient.isUsernameAvailable(e)?Cb.Available:Cb.Unavailable}catch(e){return e instanceof r.upv&&"M_INVALID_USERNAME"===e.errcode?Cb.Invalid:Cb.Error}},rules:[{key:"required",test:({value:e,allowEmpty:t})=>t||!!e,invalid:()=>(0,c._t)("auth|username_field_required_invalid")},{key:"safeLocalpart",test:({value:e},t)=>(!e||Gd.test(e))&&t!==Cb.Invalid,invalid:()=>(0,c._t)("room_settings|general|alias_field_safe_localpart_invalid")},{key:"available",final:!0,test:async({value:e},t)=>!e||t===Cb.Available,invalid:e=>e===Cb.Error?(0,c._t)("auth|registration_username_unable_check"):(0,c._t)("auth|registration_username_in_use")}]})),this.state={fieldValid:{},phoneCountry:this.props.defaultPhoneCountry,username:this.props.defaultUsername||"",email:this.props.defaultEmail||"",phoneNumber:this.props.defaultPhoneNumber||"",password:this.props.defaultPassword||"",passwordConfirm:this.props.defaultPassword||""}}doSubmit(e){ue.Vo.instance.setAuthenticationType("Password");const t=this.state.email.trim(),n=this.props.onRegisterClick({username:this.state.username.trim(),password:this.state.password.trim(),email:t,phoneCountry:this.state.phoneCountry,phoneNumber:this.state.phoneNumber});n&&(e.target.disabled=!0,n.finally(function(){e.target.disabled=!1}))}async verifyFieldsBeforeSubmit(){const e=document.activeElement;e&&e.blur();const t=[Ab.Username,Ab.Password,Ab.PasswordConfirm,Ab.Email,Ab.PhoneNumber];for(const e of t){const t=this[e];t&&await t.validate({allowEmpty:!1})}if(await new Promise(e=>this.setState({},e)),this.allFieldsValid())return!0;const n=this.findFirstInvalidField(t);return!n||(n.focus(),n.validate({allowEmpty:!1,focused:!0}),!1)}allFieldsValid(){return Object.values(this.state.fieldValid).every(Boolean)}findFirstInvalidField(e){for(const t of e)if(!this.state.fieldValid[t]&&this[t])return this[t];return null}markFieldValid(e,t){const{fieldValid:n}=this.state;n[e]=t,this.setState({fieldValid:n})}authStepIsRequired(e){return this.props.flows.every(t=>t.stages.includes(e))}authStepIsUsed(e){return this.props.flows.some(t=>t.stages.includes(e))}showEmail(){return!(d.A.get().disable_3pid_login||!this.authStepIsUsed("m.login.email.identity"))}showPhoneNumber(){return!(d.A.get().disable_3pid_login||!this.authStepIsUsed("m.login.msisdn"))}tooltipAlignment(){if(this.props.mobileRegister)return"bottom"}renderEmail(){if(!this.showEmail())return null;const e=this.authStepIsRequired("m.login.email.identity")?(0,c.AO)("auth|email_field_label"):(0,c.AO)("auth|registration|continue_without_email_field_label");return s.createElement(pb,{fieldRef:e=>{this[Ab.Email]=e},label:e,value:this.state.email,validationRules:this.validateEmailRules.bind(this),onChange:this.onEmailChange,onValidate:this.onEmailValidate,tooltipAlignment:this.tooltipAlignment()})}renderPassword(){return s.createElement(ab.A,{id:"mx_RegistrationForm_password",fieldRef:e=>{this[Ab.Password]=e},minScore:3,value:this.state.password,onChange:this.onPasswordChange,onValidate:this.onPasswordValidate,userInputs:[this.state.username],tooltipAlignment:this.tooltipAlignment()})}renderPasswordConfirm(){return s.createElement(fb.A,{id:"mx_RegistrationForm_passwordConfirm",fieldRef:e=>{this[Ab.PasswordConfirm]=e},autoComplete:"new-password",value:this.state.passwordConfirm,password:this.state.password,onChange:this.onPasswordConfirmChange,onValidate:this.onPasswordConfirmValidate,tooltipAlignment:this.tooltipAlignment()})}renderPhoneNumber(){if(!this.showPhoneNumber())return null;const e=this.authStepIsRequired("m.login.msisdn")?(0,c._t)("auth|phone_label"):(0,c._t)("auth|phone_optional_label"),t=s.createElement(_b,{value:this.state.phoneCountry,isSmall:!0,showPrefix:!0,onOptionChange:this.onPhoneCountryChange});return s.createElement(yi.A,{ref:e=>{this[Ab.PhoneNumber]=e},type:"text",label:e,value:this.state.phoneNumber,prefixComponent:t,onChange:this.onPhoneNumberChange,onValidate:this.onPhoneNumberValidate})}renderUsername(){return s.createElement(yi.A,{id:"mx_RegistrationForm_username",ref:e=>{this[Ab.Username]=e},type:"text",autoFocus:!0,label:(0,c._t)("common|username"),placeholder:(0,c._t)("common|username"),value:this.state.username,onChange:this.onUsernameChange,onValidate:this.onUsernameValidate,tooltipAlignment:this.tooltipAlignment(),autoCorrect:"off",autoCapitalize:"none"})}render(){const e=s.createElement(xe.$,{className:"mx_Login_submit",size:"md",type:"submit",disabled:!this.props.canSubmit},(0,c._t)("action|register"));let t,n;return this.showEmail()&&(t=this.showPhoneNumber()?s.createElement("div",null,(0,c._t)("auth|email_help_text")," ",(0,c._t)("auth|email_phone_discovery_text")):s.createElement("div",null,(0,c._t)("auth|email_help_text")," ",(0,c._t)("auth|email_discovery_text"))),n=this.props.mobileRegister?s.createElement(s.Fragment,null,s.createElement("div",{className:"mx_AuthBody_fieldRow"},this.renderPassword()),s.createElement("div",{className:"mx_AuthBody_fieldRow"},this.renderPasswordConfirm())):s.createElement("div",{className:"mx_AuthBody_fieldRow"},this.renderPassword(),this.renderPasswordConfirm()),s.createElement("div",null,s.createElement("form",{onSubmit:this.onSubmit},s.createElement("div",{className:"mx_AuthBody_fieldRow"},this.renderUsername()),n,s.createElement("div",{className:"mx_AuthBody_fieldRow"},this.renderEmail(),this.renderPhoneNumber()),t,e))}}function kb(e){const t=e.getIdentityServerUrl(!0);if(!t)throw new c.P7("settings|general|identity_server_not_set");return t}(0,i.A)(xb,"defaultProps",{canSubmit:!0});class Rb{constructor(e){(0,i.A)(this,"sessionId",void 0),(0,i.A)(this,"submitUrl",void 0),(0,i.A)(this,"bind",!1),(0,i.A)(this,"clientSecret",void 0),(0,i.A)(this,"makeAddThreepidOnlyRequest",e=>this.matrixClient.addThreePidOnly({sid:this.sessionId,client_secret:this.clientSecret,auth:null!=e?e:void 0})),this.matrixClient=e,this.clientSecret=e.generateClientSecret()}async addEmailAddress(e){try{const t=await this.matrixClient.requestAdd3pidEmailToken(e,this.clientSecret,1);return this.sessionId=t.sid,t}catch(e){if(e instanceof r.upv&&"M_THREEPID_IN_USE"===e.errcode)throw new c.P7("settings|general|email_address_in_use",{cause:e});if(e instanceof r.upv&&"M_THREEPID_MEDIUM_NOT_SUPPORTED"===e.errcode)throw new c.P7("settings|general|email_adding_unsupported_by_hs",{cause:e});throw e}}async bindEmailAddress(e){var t;this.bind=!0;const n=new A.A,i=null!==(t=await n.getAccessToken())&&void 0!==t?t:void 0;try{const t=await this.matrixClient.requestEmailToken(e,this.clientSecret,1,void 0,i);return this.sessionId=t.sid,t}catch(e){if(e instanceof r.upv&&"M_THREEPID_IN_USE"===e.errcode)throw new c.P7("settings|general|email_address_in_use",{cause:e});throw e}}async addMsisdn(e,t){try{const n=await this.matrixClient.requestAdd3pidMsisdnToken(e,t,this.clientSecret,1);return this.sessionId=n.sid,this.submitUrl=n.submit_url,n}catch(e){if(e instanceof r.upv&&"M_THREEPID_IN_USE"===e.errcode)throw new c.P7("settings|general|msisdn_in_use",{cause:e});if(e instanceof r.upv&&"M_THREEPID_MEDIUM_NOT_SUPPORTED"===e.errcode)throw new c.P7("settings|general|msisdn_adding_unsupported_by_hs",{cause:e});if(e instanceof r.upv&&"M_INVALID_PARAM"===e.errcode)throw new c.P7("settings|general|invalid_phone_number",{cause:e});throw e}}async bindMsisdn(e,t){var n;this.bind=!0;const i=new A.A,s=null!==(n=await i.getAccessToken())&&void 0!==n?n:void 0;try{const n=await this.matrixClient.requestMsisdnToken(e,t,this.clientSecret,1,void 0,s);return this.sessionId=n.sid,n}catch(e){if(e instanceof r.upv&&"M_THREEPID_IN_USE"===e.errcode)throw new c.P7("settings|general|msisdn_in_use",{cause:e});throw e}}async checkEmailLinkClicked(){try{if(this.bind){const e=new A.A,t=await e.getAccessToken();if(!t)throw new c.P7("settings|general|identity_server_no_token");await this.matrixClient.bindThreePid({sid:this.sessionId,client_secret:this.clientSecret,id_server:kb(this.matrixClient),id_access_token:t})}else try{return await this.makeAddThreepidOnlyRequest(),[!0]}catch(t){var e;if(!(t instanceof r.upv&&401===t.httpStatus&&null!==(e=t.data)&&void 0!==e&&e.flows))throw t;const n={[qe.av.PHASE_PREAUTH]:{title:(0,c._t)("auth|uia|sso_title"),body:(0,c._t)("auth|uia|sso_body"),continueText:(0,c._t)("auth|sso"),continueKind:"primary"},[qe.av.PHASE_POSTAUTH]:{title:(0,c._t)("settings|general|confirm_adding_email_title"),body:(0,c._t)("settings|general|confirm_adding_email_body"),continueText:(0,c._t)("action|confirm"),continueKind:"primary"}},{finished:i}=X.Ay.createDialog($e.A,{title:(0,c._t)("settings|general|add_email_dialog_title"),matrixClient:this.matrixClient,authData:t.data,makeRequest:this.makeAddThreepidOnlyRequest,aestheticsForStagePhases:{[qe.av.LOGIN_TYPE]:n,[qe.av.UNSTABLE_LOGIN_TYPE]:n}});return i}}catch(e){if(e instanceof r.Hl$&&401===e.httpStatus)throw new c.P7("settings|general|add_email_failed_verification",{cause:e});throw e}return[]}async haveMsisdnToken(e){const t=new A.A;if(this.submitUrl)await this.matrixClient.submitMsisdnTokenOtherUrl(this.submitUrl,this.sessionId,this.clientSecret,e);else{if(!this.bind)throw new c.P7("settings|general|add_msisdn_misconfigured");await this.matrixClient.submitMsisdnToken(this.sessionId,this.clientSecret,e,await t.getAccessToken())}if(this.bind)return await this.matrixClient.bindThreePid({sid:this.sessionId,client_secret:this.clientSecret,id_server:kb(this.matrixClient),id_access_token:await t.getAccessToken()}),[!0];try{return await this.makeAddThreepidOnlyRequest(),[!0]}catch(e){var n;if(!(e instanceof r.upv&&401===e.httpStatus&&null!==(n=e.data)&&void 0!==n&&n.flows))throw e;const t={[qe.av.PHASE_PREAUTH]:{title:(0,c._t)("auth|uia|sso_title"),body:(0,c._t)("settings|general|add_msisdn_confirm_sso_button"),continueText:(0,c._t)("auth|sso"),continueKind:"primary"},[qe.av.PHASE_POSTAUTH]:{title:(0,c._t)("settings|general|add_msisdn_confirm_button"),body:(0,c._t)("settings|general|add_msisdn_confirm_body"),continueText:(0,c._t)("action|confirm"),continueKind:"primary"}},{finished:i}=X.Ay.createDialog($e.A,{title:(0,c._t)("settings|general|add_msisdn_dialog_title"),matrixClient:this.matrixClient,authData:e.data,makeRequest:this.makeAddThreepidOnlyRequest,aestheticsForStagePhases:{[qe.av.LOGIN_TYPE]:t,[qe.av.UNSTABLE_LOGIN_TYPE]:t}});return i}}}var Ib=function(e){return e.Display="display",e.Edit="edit",e}(Ib||{});class Tb extends s.Component{constructor(e){super(e),(0,i.A)(this,"value",""),(0,i.A)(this,"placeholder",!1),(0,i.A)(this,"editableDiv",(0,s.createRef)()),(0,i.A)(this,"showPlaceholder",e=>{this.editableDiv.current&&(e?(this.editableDiv.current.textContent=this.props.placeholder,this.editableDiv.current.setAttribute("class",this.props.className+" "+this.props.placeholderClassName),this.placeholder=!0,this.value=""):(this.editableDiv.current.textContent=this.value,this.editableDiv.current.setAttribute("class",this.props.className),this.placeholder=!1))}),(0,i.A)(this,"cancelEdit",()=>{var e;this.setState({phase:Ib.Display}),this.value=this.props.initialValue,this.showPlaceholder(!this.value),this.onValueChanged(!1),null===(e=this.editableDiv.current)||void 0===e||e.blur()}),(0,i.A)(this,"onValueChanged",e=>{var t,n;null===(t=(n=this.props).onValueChanged)||void 0===t||t.call(n,this.value,e)}),(0,i.A)(this,"onKeyDown",e=>{this.placeholder&&this.showPlaceholder(!1);if((0,dc.zM)().getAccessibilityAction(e)===mc.bY.Enter)e.stopPropagation(),e.preventDefault()}),(0,i.A)(this,"onKeyUp",e=>{if(e.target.textContent){if(!this.placeholder){var t;this.value=null!==(t=e.target.textContent)&&void 0!==t?t:""}}else this.showPlaceholder(!0);switch((0,dc.zM)().getAccessibilityAction(e)){case mc.bY.Escape:this.cancelEdit();break;case mc.bY.Enter:this.onFinish(e)}}),(0,i.A)(this,"onClickDiv",()=>{this.props.editable&&this.setState({phase:Ib.Edit})}),(0,i.A)(this,"onFocus",e=>{const t=e.target.childNodes[0];if(t){const n=document.createRange();n.setStart(t,0),n.setEnd(t,e.target.childNodes.length);const i=window.getSelection();i.removeAllRanges(),i.addRange(n)}}),(0,i.A)(this,"onFinish",(e,t=!1)=>{const n=this,i=(0,dc.zM)().getAccessibilityAction(e)===mc.bY.Enter||t;this.setState({phase:Ib.Display},()=>{this.value!==this.props.initialValue&&n.onValueChanged(i)})}),(0,i.A)(this,"onBlur",e=>{window.getSelection().removeAllRanges(),this.props.blurToCancel?this.cancelEdit():this.onFinish(e,this.props.blurToSubmit),this.showPlaceholder(!this.value)}),this.state={phase:Ib.Display}}componentDidUpdate(e){e.initialValue!==this.props.initialValue&&(this.value=this.props.initialValue,this.editableDiv.current&&this.showPlaceholder(!this.value))}componentDidMount(){this.value=this.props.initialValue,this.editableDiv.current&&this.showPlaceholder(!this.value)}render(){const{className:e,editable:t,initialValue:n,label:i,labelClassName:o}=this.props;let r;return r=!t||this.state.phase===Ib.Display&&(i||o)&&!this.value?s.createElement("div",{className:e+" "+o,onClick:this.onClickDiv},i||n):s.createElement("div",{ref:this.editableDiv,contentEditable:!0,className:e,onKeyDown:this.onKeyDown,onKeyUp:this.onKeyUp,onFocus:this.onFocus,onBlur:this.onBlur}),r}}(0,i.A)(Tb,"defaultProps",{onValueChanged(){},initialValue:"",label:"",placeholder:"",editable:!0,className:"mx_EditableText",placeholderClassName:"mx_EditableText_placeholder",blurToSubmit:!1});class Pb extends s.Component{constructor(e){super(e),(0,i.A)(this,"addThreepid",void 0),(0,i.A)(this,"onEmailAddressChanged",e=>{this.setState({emailAddress:e})}),(0,i.A)(this,"onSubmit",()=>{const e=this.state.emailAddress;hE.X(e)?(this.addThreepid=new Rb(_.J.safeGet()),this.addThreepid.addEmailAddress(e).then(()=>{const{finished:e}=X.Ay.createDialog(on.A,{title:(0,c._t)("auth|set_email|verification_pending_title"),description:(0,c._t)("auth|set_email|verification_pending_description"),button:(0,c._t)("action|continue")});e.then(([e])=>this.onEmailDialogFinished(e))},t=>{this.setState({emailBusy:!1}),o.vF.error("Unable to add email address "+e+" "+t),X.Ay.createDialog(sn.A,{title:(0,c._t)("settings|general|error_add_email"),description:(0,sn.$)(t,(0,c._t)("invite|failed_generic"))})}),this.setState({emailBusy:!0})):X.Ay.createDialog(sn.A,{title:(0,c._t)("settings|general|error_invalid_email"),description:(0,c._t)("settings|general|error_invalid_email_detail")})}),(0,i.A)(this,"onCancelled",()=>{this.props.onFinished(!1)}),(0,i.A)(this,"onEmailDialogFinished",e=>{e?this.verifyEmailAddress():this.setState({emailBusy:!1})}),this.state={emailAddress:"",emailBusy:!1}}verifyEmailAddress(){var e;null===(e=this.addThreepid)||void 0===e||e.checkEmailLinkClicked().then(()=>{this.props.onFinished(!0)},e=>{this.setState({emailBusy:!1});let t=e;if(e instanceof c.P7&&(t=e.cause),t instanceof r.upv&&"M_THREEPID_AUTH_FAILED"===t.errcode){const e=(0,c._t)("settings|general|error_email_verification")+" "+(0,c._t)("auth|set_email|verification_pending_description"),{finished:t}=X.Ay.createDialog(on.A,{title:(0,c._t)("auth|set_email|verification_pending_title"),description:e,button:(0,c._t)("action|continue")});t.then(([e])=>this.onEmailDialogFinished(e))}else o.vF.error("Unable to verify email address: "+e),X.Ay.createDialog(sn.A,{title:(0,c._t)("settings|general|error_email_verification"),description:(0,sn.$)(e,(0,c._t)("invite|failed_generic"))})})}render(){const e=this.state.emailBusy?s.createElement(Be.A,null):s.createElement(Tb,{initialValue:this.state.emailAddress,className:"mx_SetEmailDialog_email_input",placeholder:(0,c._t)("common|email_address"),placeholderClassName:"mx_SetEmailDialog_email_input_placeholder",blurToCancel:!1,onValueChanged:this.onEmailAddressChanged});return s.createElement(ke.A,{className:"mx_SetEmailDialog",onFinished:this.onCancelled,title:this.props.title,contentId:"mx_Dialog_content"},s.createElement("div",{className:"mx_Dialog_content"},s.createElement("p",{id:"mx_Dialog_content"},(0,c._t)("auth|set_email|description")),e),s.createElement("div",{className:"mx_Dialog_buttons"},s.createElement("input",{className:"mx_Dialog_primary",type:"submit",value:(0,c._t)("action|continue"),onClick:this.onSubmit}),s.createElement("input",{type:"submit",value:(0,c._t)("action|skip"),onClick:this.onCancelled})))}}const Nb="field_old_password",Db="field_new_password",Mb="field_new_password_confirm";var Ob=function(e){return e.Edit="edit",e.Uploading="uploading",e.Error="error",e}(Ob||{});class Fb extends s.Component{constructor(e){super(e),(0,i.A)(this,Nb,null),(0,i.A)(this,Db,null),(0,i.A)(this,Mb,null),(0,i.A)(this,"onChangeOldPassword",e=>{this.setState({oldPassword:e.target.value})}),(0,i.A)(this,"onOldPasswordValidate",async e=>{const t=await this.validateOldPasswordRules(e);return this.markFieldValid(Nb,t.valid),t}),(0,i.A)(this,"validateOldPasswordRules",(0,Yp.A)({rules:[{key:"required",test:({value:e,allowEmpty:t})=>t||!!e,invalid:()=>(0,c._t)("auth|change_password_empty")}]})),(0,i.A)(this,"onChangeNewPassword",e=>{this.setState({newPassword:e.target.value})}),(0,i.A)(this,"onNewPasswordValidate",e=>{this.markFieldValid(Db,e.valid)}),(0,i.A)(this,"onChangeNewPasswordConfirm",e=>{this.setState({newPasswordConfirm:e.target.value})}),(0,i.A)(this,"onNewPasswordConfirmValidate",async e=>{const t=await this.validatePasswordConfirmRules(e);return this.markFieldValid(Mb,t.valid),t}),(0,i.A)(this,"validatePasswordConfirmRules",(0,Yp.A)({rules:[{key:"required",test:({value:e,allowEmpty:t})=>t||!!e,invalid:()=>(0,c._t)("auth|change_password_confirm_label")},{key:"match",test({value:e}){return!e||e===this.state.newPassword},invalid:()=>(0,c._t)("auth|change_password_confirm_invalid")}]})),(0,i.A)(this,"onClickChange",async e=>{e.preventDefault();if(!await this.verifyFieldsBeforeSubmit())return;const t=this.state.oldPassword,n=this.state.newPassword,i=this.state.newPasswordConfirm;try{return this.checkPassword(t,n,i),this.onChangePassword(t,n)}catch(e){e instanceof Error?this.props.onError(e):this.props.onError(new c.P7("auth|change_password_error",{error:String(e),cause:void 0}))}}),this.state={fieldValid:{},phase:Ob.Edit,oldPassword:"",newPassword:"",newPasswordConfirm:""}}async onChangePassword(e,t){const n=_.J.safeGet();this.changePassword(n,e,t)}changePassword(e,t,n){const i={type:"m.login.password",identifier:{type:"m.id.user",user:e.credentials.userId},password:t};this.setState({phase:Ob.Uploading}),e.setPassword(i,n,!1).then(()=>{if(this.props.shouldAskForEmail)return this.optionallySetEmail().then(e=>{this.props.onFinished({didSetEmail:e})});this.props.onFinished({})},e=>{e instanceof Error?this.props.onError(e):this.props.onError(new c.P7("auth|change_password_error",{error:String(e),cause:void 0}))}).finally(()=>{this.setState({phase:Ob.Edit,oldPassword:"",newPassword:"",newPasswordConfirm:""})})}checkPassword(e,t,n){if(t!==n)throw new c.P7("auth|change_password_mismatch");if(!t||0===t.length)throw new c.P7("auth|change_password_empty")}optionallySetEmail(){return X.Ay.createDialog(Pb,{title:(0,c._t)("auth|set_email_prompt")}).finished.then(([e])=>!!e)}markFieldValid(e,t){const{fieldValid:n}=this.state;n[e]=t,this.setState({fieldValid:n})}async verifyFieldsBeforeSubmit(){const e=document.activeElement;e&&e.blur();const t=[Nb,Db,Mb];for(const e of t){const t=this[e];t&&await t.validate({allowEmpty:!1})}if(await new Promise(e=>this.setState({},e)),this.allFieldsValid())return!0;const n=this.findFirstInvalidField(t);return!n||(n.focus(),await n.validate({allowEmpty:!1,focused:!0}),!1)}allFieldsValid(){return Object.values(this.state.fieldValid).every(Boolean)}findFirstInvalidField(e){for(const t of e)if(!this.state.fieldValid[t]&&this[t])return this[t];return null}render(){const e=this.props.rowClassName,t=this.props.buttonClassName;switch(this.state.phase){case Ob.Edit:return s.createElement("form",{className:this.props.className,onSubmit:this.onClickChange},s.createElement("div",{className:e},s.createElement(yi.A,{ref:e=>{this[Nb]=e},type:"password",label:(0,c._t)("auth|change_password_current_label"),value:this.state.oldPassword,onChange:this.onChangeOldPassword,onValidate:this.onOldPasswordValidate})),s.createElement("div",{className:e},s.createElement(ab.A,{fieldRef:e=>{this[Db]=e},type:"password",label:(0,c.AO)("auth|change_password_new_label"),minScore:3,value:this.state.newPassword,autoFocus:this.props.autoFocusNewPasswordInput,onChange:this.onChangeNewPassword,onValidate:this.onNewPasswordValidate,autoComplete:"new-password"})),s.createElement("div",{className:e},s.createElement(yi.A,{ref:e=>{this[Mb]=e},type:"password",label:(0,c._t)("auth|change_password_confirm_label"),value:this.state.newPasswordConfirm,onChange:this.onChangeNewPasswordConfirm,onValidate:this.onNewPasswordConfirmValidate,autoComplete:"new-password"})),s.createElement(Ve.A,{className:t,kind:this.props.buttonKind,onClick:this.onClickChange},this.props.buttonLabel||(0,c._t)("auth|change_password_action")));case Ob.Uploading:return s.createElement("div",{className:"mx_Dialog_content"},s.createElement(Be.A,null))}}}(0,i.A)(Fb,"defaultProps",{onFinished(){},onError(){}});const Lb=({mode:e,threepid:t,onChange:n,disabled:i})=>{const[a,l]=(0,s.useState)(!1),d=(0,je.nH)(),m=(0,s.useRef)(void 0),[u,p]=(0,s.useState)(!1),[h,g]=(0,s.useState)(!1),[v,_]=(0,s.useState)(""),f=(0,s.useCallback)(e=>{e.stopPropagation(),e.preventDefault(),l(!0)},[]),y=(0,s.useCallback)(e=>{e.stopPropagation(),e.preventDefault(),l(!1)},[]),E=(0,s.useCallback)(e=>{e.stopPropagation(),e.preventDefault(),d.deleteThreePid(t.medium,t.address).then(()=>n(t)).catch(e=>{var t;o.vF.error("Unable to remove contact information: "+e),X.Ay.createDialog(sn.A,{title:(0,c._t)("settings|general|error_remove_3pid"),description:null!==(t=null==e?void 0:e.message)&&void 0!==t?t:(0,c._t)("invite|failed_generic")})})},[d,t,n]),w=(0,s.useCallback)(async({bind:e,label:i,errorTitle:s})=>{try{e?(m.current=new Rb(d),g(!0),t.medium===r.reI.Email?await m.current.bindEmailAddress(t.address):await m.current.bindMsisdn(null,`+${t.address}`),g(!1),p(!0)):(await d.unbindThreePid(t.medium,t.address),n(t))}catch(e){o.vF.error(`changeBinding: Unable to ${i} email address ${t.address}`,e),p(!1),g(!1),m.current=void 0,X.Ay.createDialog(sn.A,{title:s,description:(0,sn.$)(e,(0,c._t)("invite|failed_generic"))})}},[d,t,n]),S=(0,s.useCallback)(e=>{e.stopPropagation(),e.preventDefault(),w({bind:!1,label:"revoke",errorTitle:"email"===t.medium?(0,c._t)("settings|general|error_revoke_email_discovery"):(0,c._t)("settings|general|error_revoke_msisdn_discovery")}).then()},[w,t.medium]),b=(0,s.useCallback)(e=>{e.stopPropagation(),e.preventDefault(),w({bind:!0,label:"share",errorTitle:"email"===t.medium?(0,c._t)("settings|general|error_share_email_discovery"):(0,c._t)("settings|general|error_share_msisdn_discovery")}).then()},[w,t.medium]),A=(0,s.useCallback)(async e=>{e.stopPropagation(),e.preventDefault(),g(!0);try{var i,s;if(t.medium===r.reI.Email)await(null===(i=m.current)||void 0===i?void 0:i.checkEmailLinkClicked());else await(null===(s=m.current)||void 0===s?void 0:s.haveMsisdnToken(v));p(!1),n(t),m.current=void 0}catch(e){o.vF.error("Unable to verify threepid:",e);let n=e;e instanceof c.P7&&(n=e.cause),n instanceof r.upv&&"M_THREEPID_AUTH_FAILED"===n.errcode?X.Ay.createDialog(sn.A,{title:"email"===t.medium?(0,c._t)("settings|general|email_not_verified"):(0,c._t)("settings|general|error_msisdn_verification"),description:"email"===t.medium?(0,c._t)("settings|general|email_verification_instructions"):(0,sn.$)(e,(0,c._t)("invite|failed_generic"))}):(o.vF.error("Unable to verify email address: "+e),X.Ay.createDialog(sn.A,{title:(0,c._t)("settings|general|error_email_verification"),description:(0,sn.$)(e,(0,c._t)("invite|failed_generic"))}))}finally{g(!1)}},[v,n,t]),C=(0,s.useCallback)(e=>{_(e.target.value)},[]);return a?s.createElement("div",{className:"mx_AddRemoveThreepids_existing"},s.createElement("span",{className:"mx_AddRemoveThreepids_existing_promptText"},t.medium===r.reI.Email?(0,c._t)("settings|general|remove_email_prompt",{email:t.address}):(0,c._t)("settings|general|remove_msisdn_prompt",{phone:t.address})),s.createElement(Ve.A,{onClick:E,kind:"danger_sm",className:"mx_AddRemoveThreepids_existing_button"},(0,c._t)("action|remove")),s.createElement(Ve.A,{onClick:y,kind:"link_sm",className:"mx_AddRemoveThreepids_existing_button"},(0,c._t)("action|cancel"))):u?t.medium===r.reI.Email?s.createElement("div",{className:"mx_EmailAddressesPhoneNumbers_verify"},s.createElement("span",{className:"mx_EmailAddressesPhoneNumbers_verify_instructions"},(0,c._t)("settings|general|discovery_email_verification_instructions")),s.createElement(Ve.A,{className:"mx_EmailAddressesPhoneNumbers_existing_button",kind:"primary_sm",onClick:A,disabled:h},(0,c._t)("action|complete"))):s.createElement("div",{className:"mx_EmailAddressesPhoneNumbers_verify"},s.createElement("span",{className:"mx_EmailAddressesPhoneNumbers_verify_instructions"},(0,c._t)("settings|general|msisdn_verification_instructions")),s.createElement("form",{onSubmit:A,autoComplete:"off",noValidate:!0},s.createElement(yi.A,{type:"text",label:(0,c._t)("settings|general|msisdn_verification_field_label"),autoComplete:"off",disabled:h,value:v,onChange:C}))):s.createElement("div",{className:"mx_AddRemoveThreepids_existing"},s.createElement("span",{className:"mx_AddRemoveThreepids_existing_address"},t.address),s.createElement(Ve.A,{onClick:"hs"===e?f:t.bound?S:b,kind:"hs"===e||t.bound?"danger_sm":"primary_sm",disabled:i},"hs"===e?(0,c._t)("action|remove"):t.bound?(0,c._t)("action|revoke"):(0,c._t)("action|share")))};const Ub=({medium:e,disabled:t,onChange:n})=>{const i=(0,s.useRef)(void 0),[a,l]=(0,s.useState)(""),[d,m]=(0,s.useState)(""),[u,p]=(0,s.useState)(""),[h,g]=(0,s.useState)(!1),[v,_]=(0,s.useState)(!1),[f,y]=(0,s.useState)(""),E=(0,je.nH)(),w=(0,s.useCallback)(e=>{m(e.iso2)},[]),S=(0,s.useCallback)(t=>{var s,a;if(t.stopPropagation(),t.preventDefault(),!i.current)return;_(!0);("email"===e?null===(s=i.current)||void 0===s?void 0:s.checkEmailLinkClicked():null===(a=i.current)||void 0===a?void 0:a.haveMsisdnToken(u)).then(([e])=>{e&&(i.current=void 0,g(!1),l(""),n()),_(!1)}).catch(t=>{o.vF.error("Unable to verify 3pid: ",t),_(!1);let n=t;t instanceof c.P7&&(n=t.cause),n instanceof r.upv&&"M_THREEPID_AUTH_FAILED"===n.errcode?X.Ay.createDialog(sn.A,{title:"email"===e?(0,c._t)("settings|general|email_not_verified"):(0,c._t)("settings|general|error_msisdn_verification"),description:(0,c._t)("settings|general|email_verification_instructions")}):X.Ay.createDialog(sn.A,{title:"email"==e?(0,c._t)("settings|general|error_email_verification"):(0,c._t)("settings|general|error_msisdn_verification"),description:(0,sn.$)(t,(0,c._t)("invite|failed_generic"))})})},[n,e,u]),b=(0,s.useCallback)(e=>{l(e.target.value)},[]),A=(0,s.useCallback)(t=>{if(t.stopPropagation(),t.preventDefault(),!a)return;if("email"===e&&!(0,hE.X)(a))return void X.Ay.createDialog(sn.A,{title:(0,c._t)("settings|general|error_invalid_email"),description:(0,c._t)("settings|general|error_invalid_email_detail")});i.current=new Rb(E),g(!0),_(!0);("email"===e?i.current.addEmailAddress(a):i.current.addMsisdn(d,a)).then(e=>{_(!1),function(e){return void 0!==e.msisdn}(e)&&y(e.msisdn)}).catch(t=>{o.vF.error(`Unable to add threepid ${a}`,t),g(!1),_(!1),i.current=void 0,X.Ay.createDialog(sn.A,{title:"email"===e?(0,c._t)("settings|general|error_add_email"):(0,c._t)("common|error"),description:(0,sn.$)(t,(0,c._t)("invite|failed_generic"))})})},[E,d,a,e]),C=(0,s.useCallback)(e=>{p(e.target.value)},[]);if(h&&"email"===e)return s.createElement("div",null,s.createElement("div",null,(0,c._t)("settings|general|add_email_instructions")),s.createElement(Ve.A,{onClick:S,kind:"primary",disabled:v},(0,c._t)("action|continue")));if(h)return s.createElement("div",null,s.createElement("div",null,(0,c._t)("settings|general|add_msisdn_instructions",{msisdn:f}),s.createElement("br",null)),s.createElement("form",{onSubmit:S,autoComplete:"off",noValidate:!0},s.createElement(yi.A,{type:"text",label:(0,c._t)("settings|general|msisdn_verification_field_label"),autoComplete:"off",disabled:t||v,value:u,onChange:C}),s.createElement(Ve.A,{onClick:S,kind:"primary",disabled:t||v||0===u.length},(0,c._t)("action|continue"))));const x="msisdn"===e?s.createElement(_b,{onOptionChange:w,className:"mx_PhoneNumbers_country",value:d,disabled:h,isSmall:!0,showPrefix:!0}):void 0;return s.createElement("form",{onSubmit:A,autoComplete:"off",noValidate:!0},s.createElement(yi.A,{type:"text",label:"email"===e?(0,c._t)("settings|general|email_address_label"):(0,c._t)("settings|general|msisdn_label"),autoComplete:"email"===e?"email":"tel-national",disabled:t||h,value:a,onChange:b,prefixComponent:x}),s.createElement(Ve.A,{onClick:A,kind:"primary",disabled:t},(0,c._t)("action|add")))},Vb=({mode:e,medium:t,threepids:n,disabled:i,onChange:o,isLoading:r})=>{if(r)return s.createElement($s.A,null);const a=n.map(t=>s.createElement(Lb,{mode:e,threepid:t,onChange:o,key:t.address,disabled:i}));return s.createElement(s.Fragment,null,a,"hs"===e&&s.createElement(Ub,{medium:t,disabled:i,onChange:o}))},Bb=({error:e,loadingState:t,children:n})=>"loading"===t?s.createElement($s.A,null):"error"===t?s.createElement(qS.F,{type:"critical",title:(0,c._t)("common|error")},e):s.createElement(s.Fragment,null,n),jb=({canMake3pidChanges:e})=>{const[t,n]=(0,s.useState)(),[i,o]=(0,s.useState)(),[a,l]=(0,s.useState)("loading"),d=(0,je.nH)(),m=(0,s.useCallback)(async()=>{try{const e=await d.getThreePids();n(e.threepids.filter(e=>e.medium===r.reI.Email)),o(e.threepids.filter(e=>e.medium===r.reI.Phone)),l("loaded")}catch{l("error")}},[d]);(0,s.useEffect)(()=>{m().then()},[m]);const u=(0,s.useCallback)(()=>{m().then()},[m]),p=(0,s.useCallback)(()=>{m().then()},[m]);return S.A.getValue(as.f.ThirdPartyID)?s.createElement(On,{heading:(0,c._t)("settings|general|personal_info"),className:"mx_UserPersonalInfoSettings"},s.createElement(zn,{heading:(0,c._t)("settings|general|emails_heading"),stretchContent:!0},s.createElement(Bb,{error:(0,c._t)("settings|general|unable_to_load_emails"),loadingState:a},s.createElement(Vb,{mode:"hs",medium:r.reI.Email,threepids:t,onChange:u,disabled:!e,isLoading:"loading"===a}))),s.createElement(zn,{heading:(0,c._t)("settings|general|msisdns_heading"),stretchContent:!0},s.createElement(Bb,{error:(0,c._t)("settings|general|unable_to_load_msisdns"),loadingState:a},s.createElement(Vb,{mode:"hs",medium:r.reI.Phone,threepids:i,onChange:p,disabled:!e,isLoading:"loading"===a})))):null},Hb=({canChangePassword:e,onPasswordChangeError:t,onPasswordChanged:n})=>e?s.createElement(On,null,s.createElement(zn,{heading:(0,c._t)("settings|general|account_section"),stretchContent:!0},s.createElement(Hn,null,(0,c._t)("settings|general|password_change_section")),s.createElement(Fb,{rowClassName:"",buttonKind:"primary",onError:t,onFinished:n}))):s.createElement(s.Fragment,null),zb=({onDeactivateClicked:e})=>s.createElement(On,{heading:(0,c._t)("settings|general|deactivate_section")},s.createElement(zn,{heading:(0,c._t)("settings|general|account_management_section"),description:(0,c._t)("settings|general|deactivate_warning")},s.createElement(Ve.A,{onClick:e,kind:"danger"},(0,c._t)("settings|general|deactivate_section")))),Wb=({closeSettingsFn:e})=>{const[t,n]=s.useState(),[i,a]=s.useState(!1),[l,d]=s.useState(!1),[m,u]=s.useState(!1),[p,h]=s.useState(!1),g=(0,s.useContext)(Ro.A).client;(0,s.useEffect)(()=>{(async e=>{const t=null!==(e=await g.getCapabilities())&&void 0!==e?e:{},i=t["m.change_password"],s=!i||!1!==i.enabled,o=await g.getAuthMetadata().catch(()=>{}),r=null==o?void 0:o.account_management_uri,l=!t["m.3pid_changes"]||!0===t["m.3pid_changes"].enabled,c=!t["m.set_displayname"]||!0===t["m.set_displayname"].enabled,m=!t["m.set_avatar_url"]||!0===t["m.set_avatar_url"].enabled;a(l),d(c),u(m),n(r),h(s)})()},[g]);const v=(0,s.useCallback)(e=>{o.vF.error("Failed to change password: "+e);let t=e;e instanceof c.P7&&e.cause instanceof Error&&(t=e.cause);const n=(0,sn.$)(e,(0,c._t)("settings|general|error_password_change_unknown",{stringifiedError:String(e)}));let i=n;t instanceof r.Hl$&&403===t.httpStatus?i=(0,c._t)("settings|general|error_password_change_403"):t instanceof r.Hl$&&(i=(0,c._t)("settings|general|error_password_change_http",{errorMessage:n,httpStatus:t.httpStatus})),X.Ay.createDialog(sn.A,{title:(0,c._t)("settings|general|error_password_change_title"),description:i})},[]),_=(0,s.useCallback)(()=>{const e=(0,c._t)("settings|general|password_change_success");X.Ay.createDialog(sn.A,{title:(0,c._t)("common|success"),description:e})},[]),f=(0,s.useCallback)(()=>{const{finished:t}=X.Ay.createDialog(rb);t.then(([t])=>{t&&e()})},[e]);let y;const E=Boolean(t);return S.A.getValue(as.f.Deactivate)&&!E&&(y=s.createElement(zb,{onDeactivateClicked:f})),s.createElement(Rn,null,s.createElement(sb,{externalAccountManagementUrl:t,canSetDisplayName:l,canSetAvatar:m}),(!E||i)&&s.createElement(jb,{canMake3pidChanges:i}),s.createElement(Hb,{canChangePassword:p,onPasswordChanged:_,onPasswordChangeError:v}),y)};var Jb=n("./src/settings/Settings.tsx"),Gb=n("./src/utils/maps.ts");const Kb=()=>d.A.get("show_labs_settings")||S.A.getValue("developerMode");class qb extends s.Component{constructor(e){super(e),(0,i.A)(this,"labs",void 0),(0,i.A)(this,"betas",void 0);const t=S.A.getFeatureSettingNames(),[n,s]=t.reduce((e,t)=>(e[S.A.getBetaInfo(t)?1:0].push(t),e),[[],[]]);this.labs=n,this.betas=s,Kb()||(this.labs=[])}render(){let e,t;if(this.betas.length&&(e=s.createElement(s.Fragment,null,this.betas.map(e=>s.createElement(Eu.A,{key:e,featureId:e})))),this.labs.length){const e=new Gb.h;this.labs.forEach(t=>{e.getOrCreate(S.A.getLabGroup(t),[]).push(s.createElement(ls.A,{level:oe.p.DEVICE,name:t,key:t}))}),t=s.createElement(s.Fragment,null,(0,Hf.A)(Array.from(e.entries()),"0").map(([e,t])=>s.createElement(zn,{key:e,heading:(0,c._t)(Jb.B2[e])},t)))}return s.createElement(Rn,null,s.createElement(Ln.lV.Root,{onSubmit:e=>{e.preventDefault(),e.stopPropagation()}},s.createElement(On,{heading:(0,c._t)("labs|beta_section")},s.createElement(Hn,null,(0,c._t)("labs|beta_description",{brand:d.A.get("brand")})),e),t&&s.createElement(On,{heading:(0,c._t)("labs|experimental_section")},s.createElement(Hn,null,(0,c._t)("labs|experimental_description",{},{a:e=>s.createElement("a",{href:"https://github.com/vector-im/element-web/blob/develop/docs/labs.md",rel:"noreferrer noopener",target:"_blank"},e)})),t)))}}var $b=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Form/Controls/Toggle/Toggle.js");class Yb extends s.Component{constructor(e){super(e),this.state={message:e.message}}fakeEvent({message:e}){const t={type:"m.room.message",sender:this.props.userId,content:{"m.new_content":{msgtype:r.Wrw.Text,body:e,displayname:this.props.displayName,avatar_url:this.props.avatarUrl},msgtype:r.Wrw.Text,body:e,displayname:this.props.displayName,avatar_url:this.props.avatarUrl},unsigned:{age:97},event_id:"$9999999999999999999999999999999999999999999",room_id:"!999999999999999999:example.org"},n=new r.klx(t);return n.sender={name:this.props.displayName||this.props.userId,rawDisplayName:this.props.displayName,userId:this.props.userId,getAvatarUrl:(...e)=>Mo.r4({avatarUrl:this.props.avatarUrl},32,32,"crop"),getMxcAvatarUrl:()=>this.props.avatarUrl},n}render(){const e=un()(this.props.className,{mx_IRCLayout:this.props.layout==Do.P.IRC,mx_EventTilePreview_loader:!this.props.userId});if(!this.props.userId)return s.createElement("div",{className:e},s.createElement(Be.A,null));const t=this.fakeEvent(this.state);return s.createElement("div",{className:e,role:"presentation"},s.createElement(ec,{mxEvent:t,layout:this.props.layout,as:"div",hideTimestamp:!0,inhibitInteraction:!0}))}}function Qb(){return s.createElement(zn,{heading:(0,c._t)("common|message_layout"),legacy:!1},s.createElement(Xb,null),s.createElement(eA,null))}function Xb(){return s.createElement(Ki.b,{className:"mx_LayoutSwitcher_LayoutSelector",onChange:async e=>{const t=new FormData(e.currentTarget).get("layout");await S.A.setValue("layout",null,oe.p.DEVICE,t)}},s.createElement(Zb,{layout:Do.P.Group,label:(0,c._t)("common|modern")}),s.createElement(Zb,{layout:Do.P.Bubble,label:(0,c._t)("settings|appearance|layout_bubbles")}),s.createElement(Zb,{layout:Do.P.IRC,label:(0,c._t)("settings|appearance|layout_irc")}))}function Zb({layout:e,label:t}){const n=(0,es.ti)("layout"),i=function(){const e=(0,je.nH)(),t=e.getSafeUserId(),[n,i]=(0,s.useState)({userId:t});return(0,s.useEffect)(()=>{(async()=>{const n=await e.getProfileInfo(t);i({userId:t,displayName:n.displayname,avatarUrl:n.avatar_url})})()},[t,e,i]),n}();return s.createElement(qi.D,{name:"layout",className:"mxLayoutSwitcher_LayoutSelector_LayoutRadio"},s.createElement($i.J,{"aria-label":t},s.createElement("div",{className:"mxLayoutSwitcher_LayoutSelector_LayoutRadio_inline"},s.createElement(Xi.b,{name:"layout",value:e,defaultChecked:n===e}),s.createElement("span",null,t)),s.createElement("hr",{className:"mxLayoutSwitcher_LayoutSelector_LayoutRadio_separator"}),s.createElement(Yb,(0,xn.A)({message:(0,c._t)("common|preview_message"),layout:e,className:"mxLayoutSwitcher_LayoutSelector_LayoutRadio_EventTilePreview"},i))))}function eA(){const e=(0,es.ti)("useCompactLayout"),t=(0,es.ti)("layout");return s.createElement(Ki.b,{onChange:async e=>{const t="on"===new FormData(e.currentTarget).get("compactLayout");await S.A.setValue("useCompactLayout",null,oe.p.DEVICE,t)}},s.createElement(Qi.I,{name:"compactLayout",control:s.createElement($b._,{disabled:t!==Do.P.Group,name:"compactLayout",defaultChecked:e})},s.createElement($i.J,null,(0,c._t)("settings|appearance|compact_layout")),s.createElement(Yi.po,null,(0,c._t)("settings|appearance|compact_layout_description"))))}class tA extends s.Component{constructor(e){super(e),(0,i.A)(this,"MESSAGE_PREVIEW_TEXT",(0,c._t)("common|preview_message")),(0,i.A)(this,"sizes",[9,10,11,12,13,14,15,16,17,18,20,22,24,26,28,30,32,34,36]),(0,i.A)(this,"layoutWatcherRef",void 0),(0,i.A)(this,"unmounted",!1),(0,i.A)(this,"onFontSizeChanged",async e=>{const t=parseInt(e,10)||0;this.setState({fontSizeDelta:t}),await S.A.setValue("fontSizeDelta",null,oe.p.DEVICE,t)}),(0,i.A)(this,"computeDeltaFontSize",e=>e-this.state.browserFontSize),this.state={fontSizeDelta:S.A.getValue("fontSizeDelta",null),browserFontSize:qd.g.getBrowserDefaultFontSize(),useCustomFontSize:S.A.getValue("useCustomFontSize"),layout:S.A.getValue("layout")}}async componentDidMount(){this.unmounted=!1;const e=_.J.safeGet(),t=e.getSafeUserId(),n=await e.getProfileInfo(t);this.layoutWatcherRef=S.A.watchSetting("layout",null,()=>{const e=S.A.getValue("layout");this.state.layout!==e&&this.setState({layout:e})}),this.unmounted||this.setState({userId:t,displayName:n.displayname,avatarUrl:n.avatar_url})}componentWillUnmount(){this.unmounted=!0,S.A.unwatchSetting(this.layoutWatcherRef)}render(){return s.createElement(zn,{heading:(0,c._t)("settings|appearance|font_size"),stretchContent:!0},s.createElement(yi.A,{element:"select",className:"mx_FontScalingPanel_Dropdown",label:(0,c._t)("settings|appearance|font_size"),value:this.state.fontSizeDelta.toString(),onChange:e=>this.onFontSizeChanged(e.target.value)},this.sizes.map(e=>s.createElement("option",{key:e,value:this.computeDeltaFontSize(e)},e===this.state.browserFontSize?(0,c._t)("settings|appearance|font_size_default",{fontSize:e}):e))),s.createElement(Yb,{className:"mx_FontScalingPanel_preview",message:this.MESSAGE_PREVIEW_TEXT,layout:this.state.layout,userId:this.state.userId,displayName:this.state.displayName,avatarUrl:this.state.avatarUrl}))}}function nA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function iA(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nA(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nA(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function sA(){const e=Mu(),t=(0,s.useMemo)(()=>new Kd.A,[]),n=(0,es.ti)("feature_custom_themes");return s.createElement(zn,{heading:(0,c._t)("common|theme"),legacy:!1},t.isSystemThemeSupported()&&s.createElement(oA,{systemThemeActivated:e.systemThemeActivated}),s.createElement(rA,{theme:e.theme,disabled:e.systemThemeActivated}),n&&s.createElement(aA,{theme:e.theme}))}function oA({systemThemeActivated:e}){return s.createElement(Ki.b,{onChange:async e=>{const t="on"===new FormData(e.currentTarget).get("systemTheme");await S.A.setValue("use_system_theme",null,oe.p.DEVICE,t),K.A.dispatch({action:$.r.RecheckTheme})}},s.createElement(Qi.I,{name:"systemTheme",control:s.createElement($b._,{name:"systemTheme",defaultChecked:e})},s.createElement($i.J,null,S.A.getDisplayName("use_system_theme"))))}function rA({theme:e,disabled:t}){const n=function(){const e=(0,es.ti)("custom_themes");return(0,s.useMemo)(()=>{const t=(e||[]).reduce((e,t)=>e.set(t.name,t),new Map),n=(0,Nu.E0)(),i=n.filter(e=>!t.has(e.name)),s=n.filter(e=>t.has(e.name)),o=function(){const e=(0,Nu.TJ)("light");if(e)return{name:(0,c._t)("settings|appearance|high_contrast"),id:e}}();o&&i.push(o);return i.concat(s).map(e=>{const n=t.get(e.name),i=(n?n.is_dark:e.id.includes("dark"))||!1;return iA(iA({},e),{},{isDark:i})})},[e])}();return s.createElement(Ki.b,{className:"mx_ThemeChoicePanel_ThemeSelectors",onChange:async t=>{const n=new FormData(t.currentTarget).get("themeSelector");n&&e!==n&&(S.A.setValue("theme",null,oe.p.DEVICE,n).catch(()=>{K.A.dispatch({action:$.r.RecheckTheme})}),K.A.dispatch({action:$.r.RecheckTheme,forceTheme:n}))}},n.map(n=>{const i=e===n.id;return s.createElement(Qi.I,{className:un()("mx_ThemeChoicePanel_themeSelector",{mx_ThemeChoicePanel_themeSelector_enabled:!t&&e===n.id,mx_ThemeChoicePanel_themeSelector_disabled:t,"cpd-theme-light":!n.isDark,"cpd-theme-dark":n.isDark}),name:"themeSelector",key:n.id,control:s.createElement(Xi.b,{name:"themeSelector",checked:!t&&i,disabled:t,value:n.id})},s.createElement($i.J,{className:"mx_ThemeChoicePanel_themeSelector_Label"},n.name))}))}function aA({theme:e}){const[t,n]=(0,s.useState)(""),[i,r]=(0,s.useState)(),a=(0,s.useCallback)(()=>{r(void 0),n("")},[r,n]);return s.createElement("div",{className:"mx_ThemeChoicePanel_CustomTheme"},s.createElement(KS.d,{className:"mx_ThemeChoicePanel_CustomTheme_EditInPlace",label:(0,c._t)("settings|appearance|custom_theme_add"),cancelButtonLabel:(0,c._t)("action|cancel"),saveButtonLabel:(0,c._t)("settings|appearance|custom_theme_add"),savingLabel:(0,c._t)("settings|appearance|custom_theme_downloading"),value:t,onChange:e=>{r(void 0),n(e.target.value)},onSave:async()=>{if(!t)return;const e=S.A.getValue("custom_themes").map(e=>e)||[];try{const n=await fetch(t),i=await n.json();if(!i||"string"!=typeof i.name||"object"!=typeof i.colors)return void r((0,c._t)("settings|appearance|custom_theme_invalid"));if(Boolean(e.find(e=>e.name===i.name)))return void a();e.push(i)}catch(e){return o.vF.error(e),void r((0,c._t)("settings|appearance|custom_theme_error_downloading"))}a(),await S.A.setValue("custom_themes",null,oe.p.ACCOUNT,e)},onCancel:a},s.createElement(Yi.po,null,(0,c._t)("settings|appearance|custom_theme_help")),i&&s.createElement(Yi.Kw,null,i)),s.createElement(lA,{theme:e}))}function lA({theme:e}){const t=(0,es.ti)("custom_themes")||[];return s.createElement("ul",{className:"mx_ThemeChoicePanel_CustomThemeList"},t.map(t=>s.createElement("li",{key:t.name,className:"mx_ThemeChoicePanel_CustomThemeList_theme","aria-label":t.name},s.createElement("span",{className:"mx_ThemeChoicePanel_CustomThemeList_name"},t.name),s.createElement(Tu.K,{destructive:!0,"aria-label":(0,c._t)("action|delete"),tooltip:(0,c._t)("action|delete"),onClick:async()=>{const n=(S.A.getValue("custom_themes").map(e=>e)||[]).filter(e=>e.name!==t.name);await S.A.setValue("custom_themes",null,oe.p.ACCOUNT,n),e===`custom-${t.name}`&&(await S.A.setValue("theme",null,oe.p.DEVICE,null),K.A.dispatch({action:$.r.RecheckTheme}))}},s.createElement(Si.A,null)))))}var cA,dA,mA,uA,pA,hA,gA,vA,_A,fA,yA=n("./src/components/views/elements/StyledRadioButton.tsx"),EA=n("./src/settings/enums/ImageSize.ts");function wA(){return wA=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},wA.apply(null,arguments)}var SA=function(e,t){return s.createElement("svg",wA({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 221 148",role:"presentation","aria-hidden":!0,ref:t},e),cA||(cA=s.createElement("defs",null,s.createElement("mask",{id:"img-size-normal_svg__a"},s.createElement("rect",{width:"100%",height:"100%",fill:"#fff"}),s.createElement("path",{fill:"#000",d:"m75.155 94.339-10.186 16.127a1 1 0 0 0 .845 1.534h20.372a1 1 0 0 0 .845-1.534L76.845 94.339a1 1 0 0 0-1.69 0"}),s.createElement("path",{fill:"#000",d:"m86.159 99.309-7.169 11.15a1 1 0 0 0 .842 1.541h14.336a1 1 0 0 0 .841-1.541l-7.168-11.15a1 1 0 0 0-1.682 0"}),s.createElement("circle",{cx:93,cy:92,r:4,fill:"#000"})))),dA||(dA=s.createElement("rect",{width:220,height:147,x:.5,y:.5,stroke:"currentColor",rx:7.5})),mA||(mA=s.createElement("rect",{width:10,height:10,x:57,y:14,fill:"currentColor",rx:1.5})),uA||(uA=s.createElement("rect",{width:10,height:10,x:57,y:64,fill:"currentColor",rx:1.5})),pA||(pA=s.createElement("rect",{width:10,height:10,x:57,y:125,fill:"currentColor",rx:1.5})),hA||(hA=s.createElement("rect",{width:60,height:10,x:70,y:14,fill:"currentColor",rx:1.5})),gA||(gA=s.createElement("rect",{width:60,height:10,x:70,y:64,fill:"currentColor",rx:1.5})),vA||(vA=s.createElement("rect",{width:60,height:10,x:70,y:125,fill:"currentColor",rx:1.5})),_A||(_A=s.createElement("path",{fill:"currentColor",d:"M57 32.5a1.5 1.5 0 0 1 1.5-1.5h150a1.5 1.5 0 0 1 1.5 1.5v22a1.5 1.5 0 0 1-1.5 1.5h-150a1.5 1.5 0 0 1-1.5-1.5zM0 8a8 8 0 0 1 8-8h37a1 1 0 0 1 1 1v146a1 1 0 0 1-1 1H8a8 8 0 0 1-8-8z"})),fA||(fA=s.createElement("rect",{width:47,height:35,x:57,y:82,fill:"currentColor",mask:"url(#img-size-normal_svg__a)",rx:2})))},bA=(0,s.forwardRef)(SA);var AA,CA,xA,kA,RA,IA;function TA(){return TA=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},TA.apply(null,arguments)}var PA=function(e,t){return s.createElement("svg",TA({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 221 148",role:"presentation","aria-hidden":!0,ref:t},e),AA||(AA=s.createElement("defs",null,s.createElement("mask",{id:"img-size-large_svg__a"},s.createElement("rect",{width:"100%",height:"100%",fill:"#fff"}),s.createElement("path",{fill:"#000",d:"m109.918 67.966-29.69 47.009c-1.226 1.941.17 4.472 2.465 4.472h59.38c2.296 0 3.69-2.531 2.465-4.472l-29.691-47.009c-1.143-1.811-3.785-1.811-4.929 0"}),s.createElement("path",{fill:"#000",d:"M141.995 82.453 121.1 114.956c-1.247 1.94.146 4.491 2.452 4.491h41.79c2.306 0 3.699-2.551 2.452-4.491l-20.895-32.503c-1.148-1.785-3.757-1.785-4.904 0"}),s.createElement("circle",{cx:161.936,cy:61.149,r:11.66,fill:"#000"})))),CA||(CA=s.createElement("rect",{width:220,height:147,x:.5,y:.5,stroke:"currentColor",rx:7.5})),xA||(xA=s.createElement("rect",{width:10,height:10,x:57,y:14,fill:"currentColor",rx:1.5})),kA||(kA=s.createElement("rect",{width:60,height:10,x:70,y:14,fill:"currentColor",rx:1.5})),RA||(RA=s.createElement("path",{fill:"currentColor",d:"M0 8a8 8 0 0 1 8-8h37a1 1 0 0 1 1 1v146a1 1 0 0 1-1 1H8a8 8 0 0 1-8-8z"})),IA||(IA=s.createElement("rect",{width:137,height:102.021,x:57,y:32,fill:"currentColor",mask:"url(#img-size-large_svg__a)",rx:5.83})))},NA=(0,s.forwardRef)(PA);class DA extends s.Component{constructor(e){super(e),(0,i.A)(this,"onSizeChange",e=>{const t=e.target.value;this.setState({size:t}),S.A.setValue("Images.size",null,oe.p.ACCOUNT,t)}),this.state={size:S.A.getValue("Images.size")}}render(){return s.createElement(zn,{heading:(0,c._t)("settings|appearance|timeline_image_size")},s.createElement("div",{className:"mx_ImageSizePanel_radios"},s.createElement("label",null,s.createElement(bA,{className:"mx_ImageSizePanel_size"}),s.createElement(yA.A,{name:"image_size",value:EA.h.Normal,checked:this.state.size===EA.h.Normal,onChange:this.onSizeChange},(0,c._t)("settings|appearance|image_size_default"))),s.createElement("label",null,s.createElement(NA,{className:"mx_ImageSizePanel_size"}),s.createElement(yA.A,{name:"image_size",value:EA.h.Large,checked:this.state.size===EA.h.Large,onChange:this.onSizeChange},(0,c._t)("settings|appearance|image_size_large")))))}}class MA extends s.Component{constructor(e){super(e),this.state={useBundledEmojiFont:S.A.getValue("useBundledEmojiFont"),useSystemFont:S.A.getValue("useSystemFont"),systemFont:S.A.getValue("systemFont"),showAdvanced:!1}}renderAdvancedSection(){if(!S.A.getValue(as.f.AdvancedSettings))return null;const e=s.createElement(Ve.A,{kind:"link",onClick:()=>this.setState({showAdvanced:!this.state.showAdvanced}),"aria-expanded":this.state.showAdvanced},this.state.showAdvanced?(0,c._t)("action|hide_advanced"):(0,c._t)("action|show_advanced"));let t;return this.state.showAdvanced&&(t=s.createElement(Ln.lV.Root,{onSubmit:e=>{e.preventDefault(),e.stopPropagation()}},s.createElement(ls.A,{name:"useBundledEmojiFont",level:oe.p.DEVICE,onChange:e=>this.setState({useBundledEmojiFont:e})}),s.createElement(ls.A,{name:"useSystemFont",level:oe.p.DEVICE,onChange:e=>this.setState({useSystemFont:e})}),s.createElement(yi.A,{className:"mx_AppearanceUserSettingsTab_checkboxControlledField",label:S.A.getDisplayName("systemFont"),onChange:e=>{this.setState({systemFont:e.target.value}),S.A.setValue("systemFont",null,oe.p.DEVICE,e.target.value)},disabled:!this.state.useSystemFont,value:this.state.systemFont}))),s.createElement(zn,null,e,t)}render(){return s.createElement(Rn,null,s.createElement(On,null,s.createElement(sA,null),s.createElement(Qb,null),s.createElement(tA,null),this.renderAdvancedSection(),s.createElement(DA,null)))}}class OA extends s.PureComponent{render(){return s.createElement(ke.A,{hasCancel:!0,onFinished:this.props.onFinished.bind(null,!1),title:(0,c._t)("seshat|reset_title")},s.createElement("div",null,s.createElement("p",null,(0,c._t)("seshat|reset_description"),s.createElement("br",null),(0,c._t)("seshat|reset_explainer"))),s.createElement(an.A,{primaryButton:(0,c._t)("seshat|reset_button"),onPrimaryButtonClick:this.props.onFinished.bind(null,!0),primaryButtonClass:"danger",cancelButton:(0,c._t)("action|cancel"),onCancel:this.props.onFinished.bind(null,!1)}))}}class FA extends s.Component{constructor(e){super(e),(0,i.A)(this,"updateCurrentRoom",async()=>{const e=y.A.get(),t=await(null==e?void 0:e.getStats().catch(()=>{}));t&&this.setState({eventIndexSize:t.size,roomCount:t.roomCount})}),(0,i.A)(this,"onManage",async()=>{X.Ay.createDialog((0,s.lazy)(()=>n.e(9491).then(n.bind(n,"./src/async-components/views/dialogs/eventindex/ManageEventIndexDialog.tsx"))),{onFinished:()=>{}},void 0,!1,!0)}),(0,i.A)(this,"onEnable",async()=>{var e,t;this.setState({enabling:!0}),await y.A.initEventIndex(),await(null===(e=y.A.get())||void 0===e?void 0:e.addInitialCheckpoints()),null===(t=y.A.get())||void 0===t||t.startCrawler(),await S.A.setValue("enableEventIndexing",null,oe.p.DEVICE,!0),await this.updateState()}),(0,i.A)(this,"confirmEventStoreReset",()=>{const{finished:e,close:t}=X.Ay.createDialog(OA);e.then(async([e])=>{e&&(await S.A.setValue("enableEventIndexing",null,oe.p.DEVICE,!1),await y.A.deleteEventIndex(),await this.onEnable(),t())})}),this.state={enabling:!1,eventIndexSize:0,roomCount:0,eventIndexingEnabled:S.A.getValueAt(oe.p.DEVICE,"enableEventIndexing")}}componentWillUnmount(){const e=y.A.get();null!==e&&e.removeListener("changedCheckpoint",this.updateCurrentRoom)}componentDidMount(){this.updateState()}async updateState(){const e=y.A.get(),t=S.A.getValueAt(oe.p.DEVICE,"enableEventIndexing");let n=0,i=0;if(null!==e){e.on("changedCheckpoint",this.updateCurrentRoom);const t=await e.getStats().catch(()=>{});t&&(n=t.size,i=t.roomCount)}this.setState({enabling:!1,eventIndexSize:n,roomCount:i,eventIndexingEnabled:t})}render(){let e;const{brand:t,desktop_builds:n}=d.A.get();if(null!==y.A.get())e=s.createElement(s.Fragment,null,s.createElement(Hn,null,(0,c._t)("settings|security|message_search_enabled",{size:(0,C.z3)(this.state.eventIndexSize,0),count:this.state.roomCount,rooms:(0,C.Zl)(this.state.roomCount)})),s.createElement(Ve.A,{kind:"primary",onClick:this.onManage},(0,c._t)("action|manage")));else if(!this.state.eventIndexingEnabled&&y.A.supportIsInstalled())e=s.createElement(s.Fragment,null,s.createElement(Hn,null,(0,c._t)("settings|security|message_search_disabled")),s.createElement("div",null,s.createElement(Ve.A,{kind:"primary",disabled:this.state.enabling,onClick:this.onEnable},(0,c._t)("action|enable")),this.state.enabling?s.createElement($s.A,null):s.createElement("div",null)));else if(y.A.platformHasSupport()&&!y.A.supportIsInstalled()){const n="https://github.com/element-hq/element-web/blob/develop/apps/desktop/docs/native-node-modules.md#adding-seshat-for-search-in-e2e-encrypted-rooms";e=s.createElement(Hn,null,(0,c._t)("settings|security|message_search_unsupported",{brand:t},{nativeLink:e=>s.createElement(it.A,{href:n,target:"_blank",rel:"noreferrer noopener"},e)}))}else e=y.A.platformHasSupport()?s.createElement(s.Fragment,null,s.createElement(Hn,null,this.state.enabling?s.createElement($s.A,null):(0,c._t)("settings|security|message_search_failed")),y.A.error?s.createElement(Hn,null,s.createElement("details",null,s.createElement("summary",null,(0,c._t)("common|advanced")),s.createElement("code",null,y.A.error instanceof Error?y.A.error.message:(0,c._t)("error|unknown")),s.createElement("p",null,s.createElement(Ve.A,{element:"button",key:"delete",kind:"danger",onClick:this.confirmEventStoreReset},(0,c._t)("action|reset"))))):void 0):s.createElement(Hn,null,(0,c._t)("settings|security|message_search_unsupported_web",{brand:t},{desktopLink:e=>s.createElement(it.A,{href:n.url,target:"_blank",rel:"noreferrer noopener"},e)}));return e}}function LA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function UA(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?LA(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):LA(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const VA=(e,t)=>{const{name:n,version:i,url:s}=_e(e,t.device_id);return{appName:n,appVersion:i,url:s}};let BA=function(e){return e.Unsupported="Unsupported",e.Default="Default",e}({});const jA=()=>{var e;const t=(0,s.useContext)(Ro.A).client,n=t.getDeviceId(),i=t.getSafeUserId(),[a,l]=(0,s.useState)({}),[d,m]=(0,s.useState)(void 0),[u,p]=(0,s.useState)([]),[h,g]=(0,s.useState)(new Map),[v,_]=(0,s.useState)(!0),[f,y]=(0,s.useState)(!0),[E,w]=(0,s.useState)();(0,s.useEffect)(()=>{t.doesServerSupportUnstableFeature("org.matrix.msc3881").then(e=>{y(e)})},[t]);const S=(0,s.useCallback)(async()=>{_(!0);try{var e,n;const s=await async function(e){const{devices:t}=await e.getDevices(),n={};for(const i of t)n[i.device_id]=UA(UA(UA({},i),{},{isVerified:await It(e,i.device_id)},VA(e,i)),(0,Pt.y)(i[r.HFo.name]));return n}(t);l(s);const{pushers:o}=await t.getPushers();p(o);const a=new Map;Object.keys(s).forEach(e=>{const n=`${r.Xs3.name}.${e}`,i=t.getAccountData(n);i&&a.set(e,i.getContent())}),g(a);const c=t.getUserId(),d=null===(e=await(null===(n=t.getCrypto())||void 0===n?void 0:n.getUserDeviceInfo([c])))||void 0===e?void 0:e.get(c),u=[];for(const e of null!==(i=null==d?void 0:d.values())&&void 0!==i?i:[]){var i;e.dehydrated&&u.push(e.deviceId)}m(1==u.length?u[0]:void 0),_(!1)}catch(e){404==e.httpStatus?w(BA.Unsupported):(o.vF.error("Error loading sessions:",e),w(BA.Default)),_(!1)}},[t]);(0,s.useEffect)(()=>{S()},[S]),(0,s.useEffect)(()=>{const e=Object.keys(a);e.length&&((e,t)=>{Array.from(t.store.accountData.values()).forEach(n=>{if(!n.getType().startsWith(pe))return;const[,i]=n.getType().split(pe);i&&!e.includes(i)&&t.deleteAccountData(n.getType())})})(e,t)},[a,t]),(0,mo.ml)(t,Ee.cr.DevicesUpdated,e=>{e.includes(i)&&S()}),(0,mo.ml)(t,r.AUM.AccountData,e=>{const t=e.getType();if(t.startsWith(r.Xs3.name)){const n=new Map(h),i=t.slice(t.lastIndexOf(".")+1);n.set(i,e.getContent()),g(n)}});const b=!(null===(e=a[n])||void 0===e||!e.isVerified)&&i?async e=>await t.getCrypto().requestDeviceVerification(i,e):void 0,A=(0,s.useCallback)(async(e,n)=>{const i=a[e];if(n!==(null==i?void 0:i.display_name))try{await t.setDeviceDetails(e,{display_name:n}),await S()}catch(e){throw o.vF.error("Error setting device name",e),new Error((0,c._t)("settings|sessions|error_set_name"))}},[t,a,S]),C=(0,s.useCallback)(async(e,n)=>{try{const i=u.find(t=>t[r.VTI.name]===e);i?await t.setPusher(UA(UA({},i),{},{[r.crK.name]:n})):h.has(e)&&await t.setLocalNotificationSettings(e,{is_silenced:!n})}catch(e){throw o.vF.error("Error setting pusher state",e),new Error((0,c._t)("settings|sessions|error_pusher_state"))}finally{await S()}},[t,u,h,S]);return{devices:a,dehydratedDeviceId:d,pushers:u,localNotificationSettings:h,currentDeviceId:n,isLoadingDeviceList:v,error:E,requestDeviceVerification:b,refreshDevices:S,saveDeviceName:A,setPushNotifications:C,supportsMSC3881:f}};async function HA(e,t){const n=e.getUserId();let{threepids:i}=await e.getThreePids();if(t&&(i=i.filter(e=>e.medium===t)),i.length>0&&e.getIdentityServerUrl())try{const s=new A.A,o=await s.getAccessToken({check:!1});if(!o)throw new Error("No identity access token found");const r=i.map(({medium:e,address:t})=>[e,t]),a=await e.bulkLookupThreePids(r,o);for(const[e,s,o]of a.threepids){if(o!==n)continue;if(t&&e!==t)continue;const r=i.find(t=>t.medium===e&&t.address===s);r&&(r.bound=!0)}}catch(e){if(!(e instanceof r.upv)||"M_TERMS_NOT_SIGNED"!==e.errcode)throw e}return i}var zA=n("./src/utils/IdentityServerUtils.ts");class WA extends s.Component{constructor(e){super(e),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"onAction",e=>{"id_server_changed"===e.action&&this.setState({currentClientIdServer:_.J.safeGet().getIdentityServerUrl()})}),(0,i.A)(this,"onIdentityServerChanged",e=>{const t=e.target.value;this.setState({idServer:t,error:void 0})}),(0,i.A)(this,"saveIdServer",e=>{_.J.safeGet().setAccountData("m.identity_server",{base_url:e}),this.setState({busy:!1,error:void 0,currentClientIdServer:e,idServer:e})}),(0,i.A)(this,"checkIdServer",async e=>{e.preventDefault();const{idServer:t,currentClientIdServer:n}=this.state;this.setState({busy:!0,checking:!0,error:void 0});const i=(0,Cg.qe)(t);let r=await async function(e){if("https:"!==(0,Cg.Dl)(e).protocol)return(0,c._t)("identity_server|url_not_https");try{const t=await fetch(e+"/_matrix/identity/v2");return t.ok?null:t.status<200||t.status>=300?(0,c._t)("identity_server|error_invalid",{code:t.status}):(0,c._t)("identity_server|error_connection")}catch{return(0,c._t)("identity_server|error_connection")}}(i);if(!r)try{this.setState({checking:!1});const e=new A.A(i);await e.getAccessToken();let o=!0;if(!await(0,zA.mn)(_.J.safeGet(),i)){const[e]=await this.showNoTermsWarning();o=!!e}if(o&&n&&i!==n){const[e]=await this.showServerChangeWarning({title:(0,c._t)("identity_server|change"),unboundMessage:(0,c._t)("identity_server|change_prompt",{},{current:e=>s.createElement("strong",null,(0,Cg.FO)(n)),new:e=>s.createElement("strong",null,(0,Cg.FO)(t))}),button:(0,c._t)("action|continue")});o=!!e}o&&this.saveIdServer(i)}catch(e){o.vF.error(e),r=(0,c._t)("identity_server|error_invalid_or_terms")}this.setState({busy:!1,checking:!1,error:null!=r?r:void 0,currentClientIdServer:_.J.safeGet().getIdentityServerUrl()})}),(0,i.A)(this,"onDisconnectClicked",async()=>{this.setState({disconnectBusy:!0});try{const[e]=await this.showServerChangeWarning({title:(0,c._t)("identity_server|disconnect"),unboundMessage:(0,c._t)("identity_server|disconnect_server",{},{idserver:e=>s.createElement("strong",null,(0,Cg.FO)(this.state.currentClientIdServer))}),button:(0,c._t)("action|disconnect")});e&&this.disconnectIdServer()}finally{this.setState({disconnectBusy:!1})}}),(0,i.A)(this,"disconnectIdServer",()=>{_.J.safeGet().setAccountData("m.identity_server",{base_url:null});let e="";(0,zA.iR)()&&(e=(0,Cg.FO)((0,zA.iR)())),this.setState({busy:!1,error:void 0,currentClientIdServer:_.J.safeGet().getIdentityServerUrl(),idServer:e})}),(0,i.A)(this,"onInputCancel",()=>this.setState(e=>{var t;return{idServer:null!==(t=e.currentClientIdServer)&&void 0!==t?t:""}})),(0,i.A)(this,"onClearServerErrors",()=>this.setState({error:void 0}));let t="";!_.J.safeGet().getIdentityServerUrl()&&(0,zA.iR)()&&(t=(0,Cg.FO)((0,zA.iR)()));const n=_.J.safeGet().getIdentityServerUrl();this.state={defaultIdServer:t,currentClientIdServer:n,idServer:null!=n?n:"",busy:!1,disconnectBusy:!1,checking:!1}}componentDidMount(){this.dispatcherRef=K.A.register(this.onAction)}componentWillUnmount(){K.A.unregister(this.dispatcherRef)}showNoTermsWarning(){const{finished:e}=X.Ay.createDialog(on.A,{title:(0,c._t)("terms|identity_server_no_terms_title"),description:s.createElement("div",null,s.createElement("strong",{className:"warning"},(0,c._t)("identity_server|no_terms")),s.createElement("span",null," ",(0,c._t)("terms|identity_server_no_terms_description_2"))),button:(0,c._t)("action|continue")});return e}async showServerChangeWarning({title:e,unboundMessage:t,button:n}){const{currentClientIdServer:i}=this.state;let r=[],a=!0;try{r=await(0,sg.wR)(HA(_.J.safeGet()),Promise.reject(new Error("Timeout attempting to reach identity server")),1e4)}catch(e){a=!1,o.vF.warn(`Unable to reach identity server at ${i} to check for 3PIDs during IS change flow`),o.vF.warn(e)}const l=r.filter(e=>e.bound);let d,m=!1;const u={idserver:e=>s.createElement("strong",null,(0,Cg.FO)(i)),b:e=>s.createElement("strong",null,e)};a?l.length?(d=s.createElement("div",null,s.createElement("p",null,(0,c._t)("identity_server|disconnect_personal_data_warning_1",{},u)),s.createElement("p",null,(0,c._t)("identity_server|disconnect_personal_data_warning_2"))),m=!0,n=(0,c._t)("identity_server|disconnect_anyway")):d=t:(d=s.createElement("div",null,s.createElement("p",null,(0,c._t)("identity_server|disconnect_offline_warning",{},u)),s.createElement("p",null,(0,c._t)("identity_server|suggestions")),s.createElement("ul",null,s.createElement("li",null,(0,c._t)("identity_server|suggestions_1")),s.createElement("li",null,(0,c._t)("identity_server|suggestions_2",{},{idserver:u.idserver})),s.createElement("li",null,(0,c._t)("identity_server|suggestions_3")))),m=!0,n=(0,c._t)("identity_server|disconnect_anyway"));const{finished:p}=X.Ay.createDialog(on.A,{title:e,description:d,button:n,cancelButton:(0,c._t)("action|go_back"),danger:m});return p}render(){const e=this.state.currentClientIdServer;let t,n,i;if(e?(t=(0,c._t)("identity_server|url",{server:(0,Cg.FO)(e)}),n=(0,c._t)("identity_server|description_connected",{},{server:()=>s.createElement("strong",null,(0,Cg.FO)(e))}),this.props.missingTerms&&(n=(0,c._t)("identity_server|change_server_prompt",{},{server:()=>s.createElement("strong",null,(0,Cg.FO)(e))}))):(t=(0,c._t)("common|identity_server"),n=(0,c._t)("identity_server|description_disconnected")),e){let e=(0,c._t)("action|disconnect"),t=(0,c._t)("identity_server|disconnect_warning");this.props.missingTerms&&(t=(0,c._t)("identity_server|description_optional"),e=(0,c._t)("identity_server|do_not_use")),this.state.disconnectBusy&&(e=s.createElement($s.A,null)),i=s.createElement(s.Fragment,null,s.createElement(Hn,null,t),s.createElement(Ve.A,{onClick:this.onDisconnectClicked,kind:"danger_sm"},e))}return s.createElement(Xn,{legend:t,description:n},s.createElement(KS.d,{className:"mx_IdentityServerPicker",cancelButtonLabel:(0,c._t)("action|reset"),disabled:!!this.state.busy,label:(0,c._t)("identity_server|url_field_label"),onCancel:this.onInputCancel,onChange:this.onIdentityServerChanged,onClearServerErrors:this.onClearServerErrors,onSave:this.checkIdServer,placeholder:this.state.defaultIdServer,saveButtonLabel:(0,c._t)("action|change"),savedLabel:this.state.error?void 0:(0,c._t)("identity_server|changed"),savingLabel:(0,c._t)("identity_server|checking"),serverInvalid:!!this.state.error,value:this.state.idServer},this.state.error&&s.createElement(Yi.Kw,null,this.state.error)),i)}}var JA=n("./src/Terms.ts");class GA extends s.Component{constructor(e){super(e),(0,i.A)(this,"togglePolicy",e=>{const t=(0,ui.ZV)(this.state.policies);t[e].checked=!t[e].checked,this.setState({policies:t})}),(0,i.A)(this,"onContinue",()=>{!!this.state.policies.some(e=>!e.checked)||(this.setState({busy:!0}),this.props.onFinished(this.state.policies.map(e=>e.url)))}),this.state={policies:[],busy:!1}}componentDidMount(){const e=[];for(const t of this.props.policiesAndServicePairs){const n=Object.values(t.policies);for(const t of n){const n=(0,JA.S$)(t);if(!n)continue;const i={checked:!1,url:n.url,name:n.name};e.push(i)}}this.setState({policies:e})}renderCheckboxes(){const e=[];for(let t=0;t<this.state.policies.length;t++){const n=this.state.policies[t],i=(0,c._t)("terms|inline_intro_text",{},{policyLink:()=>s.createElement(it.A,{href:n.url},n.name)});e.push(s.createElement("div",{key:t,className:"mx_InlineTermsAgreement_cbContainer"},s.createElement("div",null,i),s.createElement("div",{className:"mx_InlineTermsAgreement_checkbox"},s.createElement(hs.A,{onChange:()=>this.togglePolicy(t),checked:n.checked},(0,c._t)("action|accept")))))}return e}render(){const e=!!this.state.policies.some(e=>!e.checked);return s.createElement("div",null,this.props.introElement,this.renderCheckboxes(),s.createElement(Ve.A,{onClick:this.onContinue,disabled:e||this.state.busy,kind:"primary_sm"},(0,c._t)("action|continue")))}}const KA=()=>{const e=(0,je.nH)(),[t,n]=(0,s.useState)(!0),[i,a]=(0,s.useState)([]),[l,d]=(0,s.useState)([]),[m,u]=(0,s.useState)((0,Cg.FO)(e.getIdentityServerUrl())),[p,h]=(0,s.useState)({policiesAndServices:null,agreedUrls:null,resolve:null}),[g,v]=(0,s.useState)(!1),_=(0,s.useCallback)(async()=>{n(!0);const t=await HA(e);a(t.filter(e=>e.medium===r.reI.Email)),d(t.filter(e=>e.medium===r.reI.Phone)),n(!1)},[e]);if((0,Dc.F)(K.A,(0,s.useCallback)(t=>{"id_server_changed"===t.action&&(u((0,Cg.FO)(e.getIdentityServerUrl())),_().then())},[e,_])),(0,s.useEffect)(()=>{(async()=>{try{await _();const t=e.getIdentityServerUrl();if(!t)return;const n=new A.A;try{const i=await n.getAccessToken({check:!1});await(0,JA.gw)(e,[new JA.kl(r.SLg.IS,t,i)],(e,n,i)=>new Promise(i=>{u((0,Cg.FO)(t)),v(!0),h({policiesAndServices:e,agreedUrls:n,resolve:i})})),v(!1)}catch(e){o.vF.warn(`Unable to reach identity server at ${t} to check for terms in Settings`),o.vF.warn(e)}}catch{}})()},[e,_]),g&&p.policiesAndServices){const e=s.createElement(qS.F,{type:"info",title:(0,c._t)("settings|general|discovery_needs_terms_title")},(0,c._t)("settings|general|discovery_needs_terms",{serverName:m}));return s.createElement(s.Fragment,null,s.createElement(GA,{policiesAndServicePairs:p.policiesAndServices,onFinished:p.resolve,introElement:e}),s.createElement(WA,{missingTerms:!0}))}let f;return m&&(f=s.createElement(s.Fragment,null,s.createElement(zn,{heading:(0,c._t)("settings|general|emails_heading"),description:0===i.length?(0,c._t)("settings|general|discovery_email_empty"):void 0,stretchContent:!0},s.createElement(Vb,{mode:"is",medium:r.reI.Email,threepids:i,onChange:_,disabled:g,isLoading:t})),s.createElement(zn,{heading:(0,c._t)("settings|general|msisdns_heading"),description:0===l.length?(0,c._t)("settings|general|discovery_msisdn_empty"):void 0,stretchContent:!0},s.createElement(Vb,{mode:"is",medium:r.reI.Phone,threepids:l,onChange:_,disabled:g,isLoading:t})))),s.createElement(zn,{heading:(0,c._t)("settings|discovery|title"),stretchContent:!0},f,s.createElement(WA,{missingTerms:!1}))};class qA extends s.Component{constructor(e){super(e),(0,i.A)(this,"onProvisioningToggled",()=>{const e=this.state.provisioningEnabled;S.A.setValue("integrationProvisioning",null,oe.p.ACCOUNT,!e).catch(t=>{o.vF.error("Error changing integration manager provisioning"),o.vF.error(t),this.setState({provisioningEnabled:e})}),this.setState({provisioningEnabled:!e})});const t=ae.J.sharedInstance().getPrimaryManager();this.state={currentManager:t,provisioningEnabled:S.A.getValue("integrationProvisioning")}}render(){const e=this.state.currentManager;let t,n;return e?(t=`(${e.name})`,n=(0,c._t)("integration_manager|use_im_default",{serverName:e.name},{b:e=>s.createElement("strong",null,e)})):n=(0,c._t)("integration_manager|use_im"),S.A.getValue(as.f.Widgets)?s.createElement(Ln.lV.Root,{onSubmit:e=>{e.preventDefault(),e.stopPropagation()},className:"mx_SetIntegrationManager"},s.createElement("div",{className:"mx_SettingsFlag"},s.createElement("div",{className:"mx_SetIntegrationManager_heading_manager"},s.createElement(In.A,{as:"h2",size:"3"},(0,c._t)("integration_manager|manage_title")),s.createElement(In.A,{id:"mx_SetIntegrationManager_ManagerName",as:"h3",size:"4"},t))),s.createElement(Hn,{id:"mx_SetIntegrationManager_BodyText"},n),s.createElement(Hn,null,(0,c._t)("integration_manager|explainer")),s.createElement(Vi.I,{name:"enable_im",label:(0,c._t)("integration_manager|toggle_label"),checked:this.state.provisioningEnabled,onChange:this.onProvisioningToggled})):null}}const $A=()=>{const{dehydratedDeviceId:e}=jA();return e?s.createElement(zn,{heading:(0,c._t)("common|secure_backup")},s.createElement("div",{className:"mx_SettingsSubsection_content"},s.createElement("div",{className:"mx_SettingsFlag_label"},(0,c._t)("settings|security|dehydrated_device_enabled")),s.createElement("div",{className:"mx_SettingsSubsection_text"},(0,c._t)("settings|security|dehydrated_device_description")))):null};class YA extends s.Component{constructor(...e){super(...e),(0,i.A)(this,"onUnignoreClicked",()=>{this.props.onUnignored(this.props.userId)})}render(){const e=`mx_SecurityUserSettingsTab_ignoredUser_${this.props.userId}`;return s.createElement("li",{className:"mx_SecurityUserSettingsTab_ignoredUser","aria-label":this.props.userId},s.createElement(Ve.A,{onClick:this.onUnignoreClicked,kind:"primary_sm","aria-describedby":e,disabled:this.props.inProgress},(0,c._t)("action|unignore")),s.createElement("span",{id:e},this.props.userId))}}class QA extends s.Component{constructor(e){super(e),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"onAction",({action:e})=>{if("ignore_state_changed"===e){const e=_.J.safeGet().getIgnoredUsers(),t=this.state.waitingUnignored.filter(t=>e.includes(t));this.setState({ignoredUserIds:e,waitingUnignored:t})}}),(0,i.A)(this,"onMyMembership",(e,t)=>{e.isSpaceRoom()||(t===$n.O.Invite?this.addInvitedRoom(e):this.state.invitedRoomIds.has(e.roomId)&&this.removeInvitedRoom(e.roomId))}),(0,i.A)(this,"addInvitedRoom",e=>{this.setState(({invitedRoomIds:t})=>({invitedRoomIds:new Set(t).add(e.roomId)}))}),(0,i.A)(this,"removeInvitedRoom",e=>{this.setState(({invitedRoomIds:t})=>{const n=new Set(t);return n.delete(e),{invitedRoomIds:n}})}),(0,i.A)(this,"onUserUnignored",async e=>{const{ignoredUserIds:t,waitingUnignored:n}=this.state,i=t.filter(e=>!n.includes(e)),s=i.indexOf(e);-1!==s&&(i.splice(s,1),this.setState(({waitingUnignored:t})=>({waitingUnignored:[...t,e]})),_.J.safeGet().setIgnoredUsers(i))}),(0,i.A)(this,"getInvitedRooms",()=>_.J.safeGet().getRooms().filter(e=>e.hasMembershipState(_.J.safeGet().getUserId(),$n.O.Invite))),(0,i.A)(this,"manageInvites",async e=>{this.setState({managingInvites:!0});const t=Array.from(this.state.invitedRoomIds),n=_.J.safeGet(),i=e?n.joinRoom.bind(n):n.leave.bind(n);for(let e=0;e<t.length;e++){const n=t[e];await i(n).then(()=>{this.removeInvitedRoom(n)},async t=>{"M_LIMIT_EXCEEDED"===t.errcode?(await(0,Pa.yy)(t.retry_after_ms||2500),e--):o.vF.warn(t)})}this.setState({managingInvites:!1})}),(0,i.A)(this,"onAcceptAllInvitesClicked",()=>{this.manageInvites(!0)}),(0,i.A)(this,"onRejectAllInvitesClicked",()=>{this.manageInvites(!1)});const t=new Set(this.getInvitedRooms().map(e=>e.roomId));this.state={ignoredUserIds:_.J.safeGet().getIgnoredUsers(),waitingUnignored:[],managingInvites:!1,invitedRoomIds:t}}componentDidMount(){this.dispatcherRef=K.A.register(this.onAction),_.J.safeGet().on(r.u99.MyMembership,this.onMyMembership)}componentWillUnmount(){K.A.unregister(this.dispatcherRef),_.J.safeGet().removeListener(r.u99.MyMembership,this.onMyMembership)}renderIgnoredUsers(){const{waitingUnignored:e,ignoredUserIds:t}=this.state;return null!=t&&t.length?s.createElement(zn,{id:"mx_SecurityUserSettingsTab_ignoredUsersHeading",heading:(0,c._t)("settings|security|ignore_users_section")},s.createElement(Hn,null,s.createElement("ul",{"aria-label":(0,c._t)("settings|security|ignore_users_section"),className:"mx_SecurityUserSettingsTab_ignoredUsers"},t.map(t=>s.createElement(YA,{userId:t,onUnignored:this.onUserUnignored,key:t,inProgress:e.includes(t)}))))):s.createElement(zn,{heading:(0,c._t)("settings|security|ignore_users_section")},s.createElement(Hn,null,(0,c._t)("settings|security|ignore_users_empty")))}renderManageInvites(){const{invitedRoomIds:e}=this.state;return 0===e.size?null:s.createElement(zn,{heading:(0,c._t)("settings|security|bulk_options_section")},s.createElement("div",{className:"mx_SecurityUserSettingsTab_bulkOptions"},s.createElement(Ve.A,{onClick:this.onAcceptAllInvitesClicked,kind:"primary_outline",disabled:this.state.managingInvites},(0,c._t)("settings|security|bulk_options_accept_all_invites",{invitedRooms:e.size})),s.createElement(Ve.A,{onClick:this.onRejectAllInvitesClicked,kind:"danger_outline",disabled:this.state.managingInvites},(0,c._t)("settings|security|bulk_options_reject_all_invites",{invitedRooms:e.size})),this.state.managingInvites?s.createElement($s.A,null):s.createElement("div",null)))}render(){const e=s.createElement($A,null),t=s.createElement(zn,{heading:(0,c._t)("settings|security|message_search_section")},s.createElement(FA,null));let n,i,o,r,a;if((0,Dh.u)(_.J.safeGet())||(n=s.createElement("div",{className:"mx_SecurityUserSettingsTab_warning"},s.createElement(os.A,null),(0,c._t)("settings|security|e2ee_default_disabled_warning"))),ue.Vo.instance.isEnabled()){const e=()=>{RS({primaryButton:(0,c._t)("action|ok"),hasCancel:!1})};i=s.createElement(Ln.lV.Root,{onSubmit:e=>{e.preventDefault(),e.stopPropagation()},className:"mx_SecurityUserSettingsTab_posthogSection"},s.createElement(zn,{heading:(0,c._t)("common|analytics"),description:(0,c._t)("settings|security|analytics_description")},s.createElement(Ve.A,{kind:"link",onClick:e},(0,c._t)("action|learn_more")),ue.Vo.instance.isEnabled()&&s.createElement(ls.A,{name:"pseudonymousAnalyticsOptIn",level:oe.p.ACCOUNT})),s.createElement(zn,{heading:(0,c._t)("settings|sessions|title")},s.createElement(ls.A,{name:"deviceClientInformationOptIn",level:oe.p.ACCOUNT})))}if(S.A.getValue(as.f.AdvancedSettings)){const e=this.renderIgnoredUsers(),t=this.renderManageInvites();(e||t)&&(o=s.createElement(On,{heading:(0,c._t)("common|advanced")},e,t))}return S.A.getValue(as.f.ThirdPartyID)&&(r=s.createElement(KA,null)),(r||i)&&(a=s.createElement(On,{heading:(0,c._t)("common|privacy")},r,i)),s.createElement(Rn,null,n,s.createElement(qA,null),s.createElement(On,{heading:(0,c._t)("settings|security|encryption_section")},e,t),a,o)}}const XA=["icon","label","onDeleteClick","disabled"],ZA=e=>{let{icon:t,label:n,onDeleteClick:i,disabled:o=!1}=e,r=(0,v.A)(e,XA);return s.createElement("div",(0,xn.A)({className:"mx_Tag"},r),null==t?void 0:t(),n,i&&s.createElement(Ve.A,{"aria-label":"Remove",className:"mx_Tag_delete",onClick:i,disabled:o},s.createElement(ti.A,null)))};class eC extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"onInputChange",e=>{this.setState({newTag:e.target.value})}),(0,i.A)(this,"onAdd",e=>{e.preventDefault(),this.state.newTag&&(this.props.onAdd(this.state.newTag),this.setState({newTag:""}))}),this.state={newTag:""}}onRemove(e){this.props.onRemove(e)}render(){return s.createElement("div",{className:un()("mx_TagComposer",{mx_TagComposer_disabled:this.props.disabled})},s.createElement("form",{className:"mx_TagComposer_input",onSubmit:this.onAdd},s.createElement(yi.A,{id:this.props.id?this.props.id+"_field":void 0,value:this.state.newTag,onChange:this.onInputChange,label:this.props.label||(0,c._t)("notifications|keyword"),placeholder:this.props.placeholder||(0,c._t)("notifications|keyword_new"),disabled:this.props.disabled,autoComplete:"off"}),s.createElement(Ve.A,{onClick:this.onAdd,kind:"primary",disabled:this.props.disabled},(0,c._t)("action|add"))),s.createElement("div",{className:"mx_TagComposer_tags",role:"list"},this.props.tags.map((e,t)=>s.createElement(ZA,{label:e,key:e,onDeleteClick:this.onRemove.bind(this,e),disabled:this.props.disabled,role:"listitem"}))))}}function tC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function nC(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?tC(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):tC(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var iC=function(e){return e.Loading="loading",e.Ready="ready",e.Persisting="persisting",e.Error="error",e.SavingError="savingError",e}(iC||{}),sC=function(e){return e.Master="master",e.VectorGlobal="vector_global",e.VectorMentions="vector_mentions",e.VectorOther="vector_other",e.Other="other",e}(sC||{});const oC="_keywords",rC=sC.VectorMentions,aC=[r.kqD.DM,r.kqD.EncryptedDM,r.kqD.Message,r.kqD.EncryptedMessage,r.kqD.ContainsDisplayName,r.kqD.ContainsUserName,r.kqD.AtRoomNotification,r.kqD.InviteToSelf,r.kqD.IncomingCall,r.kqD.SuppressNotices,r.kqD.Tombstone],lC=[aS.Off,aS.On,aS.Loud],cC=(e,t,n)=>{var i;if(null===(i=n.syncedRuleIds)||void 0===i||!i.length)return;const s=n.syncedRuleIds.reduce((t,i)=>{if(t===aS.Loud)return t;const s=((e,t)=>{for(const n in t){const i=t[n].find(t=>t.rule_id===e);if(i)return i}})(i,e);if(s){const e=n.ruleToVectorState(s);if(e&&lC.indexOf(e)>lC.indexOf(t))return e}return t},n.ruleToVectorState(t));return s},dC=()=>s.createElement(Ln.lV.Root,{onSubmit:e=>{e.preventDefault(),e.stopPropagation()}},s.createElement(ls.A,{name:"Notifications.showbold",level:oe.p.DEVICE}),s.createElement(ls.A,{name:"Notifications.tac_only_notifications",level:oe.p.DEVICE}));class mC extends s.PureComponent{constructor(e){var t;super(e),(0,i.A)(this,"settingWatchers",[]),(0,i.A)(this,"onMasterRuleChanged",async e=>{const{checked:t}=e.target;this.setState({phase:iC.Persisting});const n=this.state.masterPushRule;try{await _.J.safeGet().setPushRuleEnabled("global",n.kind,n.rule_id,!t),await this.refreshFromServer()}catch(e){this.setState({phase:iC.Error}),o.vF.error("Error updating master push rule:",e),this.showSaveError()}}),(0,i.A)(this,"setSavingError",e=>{this.setState(({ruleIdsWithError:t})=>({phase:iC.SavingError,ruleIdsWithError:nC(nC({},t),{},{[e]:!0})}))}),(0,i.A)(this,"onEmailNotificationsChanged",async(e,t)=>{const{checked:n}=t.target;this.setState({phase:iC.Persisting});try{if(n)await _.J.safeGet().setPusher({kind:"email",app_id:"m.email",pushkey:e,app_display_name:"Email Notifications",device_display_name:e,lang:navigator.language,data:{brand:d.A.get().brand},append:!0});else{var i;const t=null===(i=this.state.pushers)||void 0===i?void 0:i.find(t=>"email"===t.kind&&t.pushkey===e);t&&await _.J.safeGet().removePusher(t.pushkey,t.app_id)}await this.refreshFromServer()}catch(e){this.setState({phase:iC.Error}),o.vF.error("Error updating email pusher:",e),this.showSaveError()}}),(0,i.A)(this,"onRadioChecked",async(e,t)=>{this.setState(({ruleIdsWithError:t})=>({phase:iC.Persisting,ruleIdsWithError:nC(nC({},t),{},{[e.ruleId]:!1})}));try{const n=_.J.safeGet();if(e.ruleId===oC){if(!this.state.vectorKeywordRuleInfo)throw new Error("Notification data is incomplete.");for(const e of this.state.vectorKeywordRuleInfo.rules){let i,s;t===aS.On?(1!==e.actions.length&&(s=lS.actionsFor(t)),this.state.vectorKeywordRuleInfo.vectorState===aS.Off&&(i=!0)):t===aS.Loud?(3!==e.actions.length&&(s=lS.actionsFor(t)),this.state.vectorKeywordRuleInfo.vectorState===aS.Off&&(i=!0)):i=!1,s&&await n.setPushRuleActions("global",e.kind,e.rule_id,s),void 0!==i&&await n.setPushRuleEnabled("global",e.kind,e.rule_id,i)}}else{const i=dS[e.ruleId],s=i.vectorStateToActions[t];if(!e.rule)throw new Error("Cannot update rule: push rule data is incomplete.");await uS(n,e.rule.rule_id,e.rule.kind,s),await pS(n,i.syncedRuleIds,s)}await this.refreshFromServer()}catch(t){this.setSavingError(e.ruleId),o.vF.error("Error updating push rule:",t)}}),(0,i.A)(this,"onClearNotificationsClicked",async()=>{try{this.setState({clearingNotifications:!0});const e=_.J.safeGet();await(0,Ra.XC)(e)}finally{this.setState({clearingNotifications:!1})}}),(0,i.A)(this,"onKeywordAdd",e=>{if(!this.state.vectorKeywordRuleInfo)throw new Error("Notification data is incomplete.");const t=(0,ui.ZV)(this.state.vectorKeywordRuleInfo.rules);this.setState({phase:iC.Persisting,vectorKeywordRuleInfo:nC(nC({},this.state.vectorKeywordRuleInfo),{},{rules:[...this.state.vectorKeywordRuleInfo.rules,{pattern:e}]})},async()=>{await this.setKeywords(this.state.vectorKeywordRuleInfo.rules.map(e=>e.pattern),t)})}),(0,i.A)(this,"onKeywordRemove",e=>{if(!this.state.vectorKeywordRuleInfo)throw new Error("Notification data is incomplete.");const t=(0,ui.ZV)(this.state.vectorKeywordRuleInfo.rules);this.setState({phase:iC.Persisting,vectorKeywordRuleInfo:nC(nC({},this.state.vectorKeywordRuleInfo),{},{rules:this.state.vectorKeywordRuleInfo.rules.filter(t=>t.pattern!==e)})},async()=>{await this.setKeywords(this.state.vectorKeywordRuleInfo.rules.map(e=>e.pattern),t)})}),this.state={phase:iC.Loading,deviceNotificationsEnabled:null===(t=S.A.getValue("deviceNotificationsEnabled"))||void 0===t||t,clearingNotifications:!1,ruleIdsWithError:{}}}get isInhibited(){var e;return!(null===(e=this.state.masterPushRule)||void 0===e||!e.enabled)}componentDidMount(){this.settingWatchers=[S.A.watchSetting("deviceNotificationsEnabled",null,(...[,,,,e])=>{this.setState({deviceNotificationsEnabled:e})})],this.refreshFromServer(),this.refreshFromAccountData()}componentWillUnmount(){this.settingWatchers.forEach(e=>S.A.unwatchSetting(e))}componentDidUpdate(e,t){this.state.deviceNotificationsEnabled!==t.deviceNotificationsEnabled&&this.persistLocalNotificationSettings(this.state.deviceNotificationsEnabled)}async refreshFromServer(){try{const e=(await Promise.all([this.refreshRules(),this.refreshPushers(),this.refreshThreepids()])).reduce((e,t)=>Object.assign(t,e),{});this.setState(nC(nC({},e),{},{phase:iC.Ready}))}catch(e){o.vF.error("Error setting up notifications for settings: ",e),this.setState({phase:iC.Error})}}async refreshFromAccountData(){const e=_.J.safeGet(),t=e.getAccountData((0,Ra.uG)(e.deviceId));if(t){const e=!t.getContent().is_silenced;await S.A.setValue("deviceNotificationsEnabled",null,oe.p.DEVICE,e)}}persistLocalNotificationSettings(e){const t=_.J.safeGet();return t.setAccountData((0,Ra.uG)(t.deviceId),{is_silenced:!e})}async refreshRules(){const e=await _.J.safeGet().getPushRules(),t={[r.kqD.Master]:sC.Master,[r.kqD.DM]:sC.VectorGlobal,[r.kqD.EncryptedDM]:sC.VectorGlobal,[r.kqD.Message]:sC.VectorGlobal,[r.kqD.EncryptedMessage]:sC.VectorGlobal,[r.kqD.ContainsDisplayName]:sC.VectorMentions,[r.kqD.ContainsUserName]:sC.VectorMentions,[r.kqD.AtRoomNotification]:sC.VectorMentions,[r.kqD.InviteToSelf]:sC.VectorOther,[r.kqD.IncomingCall]:sC.VectorOther,[r.kqD.SuppressNotices]:sC.VectorOther,[r.kqD.Tombstone]:sC.VectorOther},n={[sC.Master]:[],[sC.VectorGlobal]:[],[sC.VectorMentions]:[],[sC.VectorOther]:[],[sC.Other]:[]};for(const s in e.global){const o=s;for(const s of e.global[o]){var i;const e=Object.assign(s,{kind:o}),r=null!==(i=t[e.rule_id])&&void 0!==i?i:sC.Other;"."===e.rule_id[0]&&n[r].push(e)}}const s={};if(!(n.master.length>0))throw new Error("Failed to locate a master push rule");s.masterPushRule=n.master[0],s.vectorKeywordRuleInfo=mS.parseContentRules(e),s.vectorPushRules={};const o=[sC.VectorGlobal,sC.VectorMentions,sC.VectorOther];for(const e of o){s.vectorPushRules[e]=[];for(const t of n[e]){const i=dS[t.rule_id],o=i.ruleToVectorState(t);s.vectorPushRules[e].push({ruleId:t.rule_id,rule:t,vectorState:o,syncedVectorState:cC(n,t,i),description:(0,c._t)(i.description)})}s.vectorPushRules[e].sort((e,t)=>{let n=aC.indexOf(e.ruleId),i=aC.indexOf(t.ruleId);return n<0&&(n=aC.length),i<0&&(i=aC.length),n-i}),e===rC&&s.vectorPushRules[e].push({ruleId:oC,description:(0,c._t)("settings|notifications|messages_containing_keywords"),vectorState:s.vectorKeywordRuleInfo.vectorState})}return s}refreshPushers(){return _.J.safeGet().getPushers()}refreshThreepids(){return _.J.safeGet().getThreePids()}showSaveError(){X.Ay.createDialog(sn.A,{title:(0,c._t)("settings|notifications|error_saving"),description:(0,c._t)("settings|notifications|error_saving_detail")})}async setKeywords(e,t){try{const n=(0,Me.Bo)(Array.from(new Set(e))),i=(0,Me.Bo)(Array.from(new Set(t.map(e=>e.pattern)))),s=(0,Me.ZQ)(i,n);for(const e of s.removed)for(const n of t.filter(t=>t.pattern===e))await _.J.safeGet().deletePushRule("global",n.kind,n.rule_id);let o=this.state.vectorKeywordRuleInfo.vectorState;if(o===aS.Off){const e=t.length?lS.contentRuleVectorStateKind(t[0]):void 0;o=null!=e?e:aS.On}const a=r.Jig.ContentSpecific;for(const e of s.added)await _.J.safeGet().addPushRule("global",a,e,{actions:lS.actionsFor(o),pattern:e}),o===aS.Off&&await _.J.safeGet().setPushRuleEnabled("global",a,e,!1);await this.refreshFromServer()}catch(e){this.setState({phase:iC.Error}),o.vF.error("Error updating keyword push rules:",e),this.showSaveError()}}renderTopSection(){const e=s.createElement(Vi.I,{checked:!this.isInhibited,name:"notif-master-switch",label:(0,c._t)("settings|notifications|enable_notifications_account"),helpMessage:(0,c._t)("settings|notifications|enable_notifications_account_detail"),onChange:this.onMasterRuleChanged,disabled:this.state.phase===iC.Persisting});if(this.isInhibited)return s.createElement(Ln.lV.Root,{onSubmit:ji},e);const t=(this.state.threepids||[]).filter(e=>e.medium===r.reI.Email).map(e=>{var t;return s.createElement(Vi.I,{name:"notif-email-switch",key:e.address,checked:!(null===(t=this.state.pushers)||void 0===t||!t.some(t=>"email"===t.kind&&t.pushkey===e.address)),label:(0,c._t)("settings|notifications|enable_email_notifications",{email:e.address}),onChange:this.onEmailNotificationsChanged.bind(this,e.address),disabled:this.state.phase===iC.Persisting})});return s.createElement(zn,null,s.createElement(Ln.lV.Root,{onSubmit:ji},e,s.createElement(ls.A,{name:"deviceNotificationsEnabled",level:oe.p.DEVICE}),this.state.deviceNotificationsEnabled&&s.createElement(s.Fragment,null,s.createElement(ls.A,{name:"notificationsEnabled",level:oe.p.DEVICE}),s.createElement(ls.A,{name:"notificationBodyEnabled",level:oe.p.DEVICE}),s.createElement(ls.A,{name:"audioNotificationsEnabled",level:oe.p.DEVICE})),t))}renderCategory(e){var t;if(this.isInhibited)return null;let n;if(e===sC.VectorMentions){var i;const e=(0,Me.Bo)((null===(i=this.state.vectorKeywordRuleInfo)||void 0===i?void 0:i.rules.map(e=>e.pattern))||[]);n=s.createElement(eC,{tags:e,onAdd:this.onKeywordAdd,onRemove:this.onKeywordRemove,disabled:this.state.phase===iC.Persisting,label:(0,c._t)("notifications|keyword"),placeholder:(0,c._t)("notifications|keyword_new")})}const o={[aS.On]:(0,c._t)("common|on"),[aS.Off]:(0,c._t)("common|off"),[aS.Loud]:(0,c._t)("settings|notifications|noisy")},r=(e,t)=>{var n;return s.createElement(yA.A,{key:e.ruleId+t,name:e.ruleId,checked:(null!==(n=e.syncedVectorState)&&void 0!==n?n:e.vectorState)===t,onChange:this.onRadioChecked.bind(this,e,t),disabled:this.state.phase===iC.Persisting,"aria-label":o[t]})},a=null===(t=this.state.vectorPushRules)||void 0===t||null===(t=t[e])||void 0===t?void 0:t.map(t=>s.createElement("fieldset",{key:e+t.ruleId,className:"mx_UserNotifSettings_gridRowContainer"},s.createElement("legend",{className:"mx_UserNotifSettings_gridRowLabel"},t.description),r(t,aS.Off),r(t,aS.On),r(t,aS.Loud),this.state.ruleIdsWithError[t.ruleId]&&s.createElement("div",{className:"mx_UserNotifSettings_gridRowError"},s.createElement(Is,{isError:!0},(0,c._t)("settings|notifications|error_updating")))));let l;switch(e){case sC.VectorGlobal:l=(0,c._t)("notifications|class_global");break;case sC.VectorMentions:l=(0,c._t)("notifications|mentions_keywords");break;case sC.VectorOther:l=(0,c._t)("notifications|class_other");break;default:throw new Error("Developer error: Unnamed notifications section: "+e)}return s.createElement("div",null,s.createElement("div",{className:"mx_UserNotifSettings_grid"},s.createElement(Vn,{heading:l,as:"h2"}),s.createElement("span",{className:"mx_UserNotifSettings_gridColumnLabel"},o[aS.Off]),s.createElement("span",{className:"mx_UserNotifSettings_gridColumnLabel"},o[aS.On]),s.createElement("span",{className:"mx_UserNotifSettings_gridColumnLabel"},o[aS.Loud]),a),n)}renderTargets(){var e;if(this.isInhibited)return null;const t=null===(e=this.state.pushers)||void 0===e?void 0:e.map(e=>s.createElement("tr",{key:e.kind+e.pushkey},s.createElement("td",null,e.app_display_name),s.createElement("td",null,e.device_display_name)));return null!=t&&t.length?s.createElement("div",{className:"mx_UserNotifSettings_floatingSection"},s.createElement("div",null,(0,c._t)("settings|notifications|push_targets")),s.createElement("table",null,s.createElement("tbody",null,t))):null}render(){if(this.state.phase===iC.Loading)return s.createElement(Be.A,null);if(this.state.phase===iC.Error)return s.createElement("p",null,(0,c._t)("settings|notifications|error_loading"));let e;return _.J.safeGet().getRooms().some(e=>(0,Ju.GN)(e,!0))&&(e=s.createElement(Ve.A,{onClick:this.onClearNotificationsClicked,disabled:this.state.clearingNotifications,kind:"danger",className:"mx_UserNotifSettings_clearNotifsButton"},(0,c._t)("notifications|mark_all_read"))),s.createElement(s.Fragment,null,this.renderTopSection(),this.renderCategory(sC.VectorGlobal),this.renderCategory(sC.VectorMentions),this.renderCategory(sC.VectorOther),this.renderTargets(),s.createElement(dC,null),e)}}function uC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function pC(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?uC(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):uC(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function hC(e){const t=new Map;for(const i of Object.values(r.Jig))for(const s of null!==(n=e.global[i])&&void 0!==n?n:[]){var n;s.rule_id.startsWith(".")&&t.set(s.rule_id,pC(pC({},s),{},{kind:i}))}return t}function gC(e,t,n){var i,s;const o={updated:[],added:[],deleted:[]},a=hC(e),l=function(e,t){const n=new Map;n.set(r.kqD.Master,{rule_id:r.kqD.Master,kind:r.Jig.Override,enabled:e.globalMute}),n.set(r.kqD.EncryptedMessage,{rule_id:r.kqD.EncryptedMessage,kind:r.Jig.Underride,enabled:!0,actions:sS.encodeActions({notify:e.defaultLevels.room===Ds.dC.AllMessages,highlight:!1})}),n.set(r.kqD.Message,{rule_id:r.kqD.Message,kind:r.Jig.Underride,enabled:!0,actions:sS.encodeActions({notify:e.defaultLevels.room===Ds.dC.AllMessages,highlight:!1})}),n.set(r.kqD.EncryptedDM,{rule_id:r.kqD.EncryptedDM,kind:r.Jig.Underride,enabled:!0,actions:sS.encodeActions({notify:e.defaultLevels.dm===Ds.dC.AllMessages,highlight:!1,sound:e.sound.people})}),n.set(r.kqD.DM,{rule_id:r.kqD.DM,kind:r.Jig.Underride,enabled:!0,actions:sS.encodeActions({notify:e.defaultLevels.dm===Ds.dC.AllMessages,highlight:!1,sound:e.sound.people})}),n.set(r.kqD.SuppressNotices,{rule_id:r.kqD.SuppressNotices,kind:r.Jig.Override,enabled:!e.activity.bot_notices,actions:rS.ACTION_DONT_NOTIFY}),n.set(r.kqD.InviteToSelf,{rule_id:r.kqD.InviteToSelf,kind:r.Jig.Override,enabled:e.activity.invite,actions:sS.encodeActions({notify:!0,highlight:!1,sound:e.sound.people})}),n.set(r.kqD.MemberEvent,{rule_id:r.kqD.MemberEvent,kind:r.Jig.Override,enabled:!0,actions:e.activity.status_event?rS.ACTION_NOTIFY:rS.ACTION_DONT_NOTIFY});const i=sS.encodeActions({notify:!0,sound:e.sound.mentions,highlight:!0}),s=e.mentions.user?i:rS.ACTION_DONT_NOTIFY;t&&n.set(r.kqD.IsUserMention,{rule_id:r.kqD.IsUserMention,kind:r.Jig.Override,enabled:!0,actions:s}),n.set(r.kqD.ContainsDisplayName,{rule_id:r.kqD.ContainsDisplayName,kind:r.Jig.Override,enabled:!0,actions:s}),n.set(r.kqD.ContainsUserName,{rule_id:r.kqD.ContainsUserName,kind:r.Jig.ContentSpecific,enabled:!0,actions:s});const o=e.mentions.room?rS.ACTION_NOTIFY:rS.ACTION_DONT_NOTIFY;return t&&n.set(r.kqD.IsRoomMention,{rule_id:r.kqD.IsRoomMention,kind:r.Jig.Override,enabled:!0,actions:o}),n.set(r.kqD.AtRoomNotification,{rule_id:r.kqD.AtRoomNotification,kind:r.Jig.Override,enabled:!0,actions:o}),n.set(r.kqD.Tombstone,{rule_id:r.kqD.Tombstone,kind:r.Jig.Override,enabled:e.activity.status_event,actions:rS.ACTION_HIGHLIGHT}),n.set(r.kqD.IncomingCall,{rule_id:r.kqD.IncomingCall,kind:r.Jig.Underride,enabled:!0,actions:sS.encodeActions({notify:!0,sound:e.sound.calls})}),n}(t,n);for(const e of l.values()){const t=a.get(e.rule_id);let n=!1;if(void 0===t)n=!0;else if(void 0!==e.enabled&&e.enabled!==t.enabled)n=!0;else if(void 0!==e.actions){const i=sS.decodeActions(t.actions),s=sS.decodeActions(e.actions);null===i||null===s?n=!0:(0,Pa.ky)(s,i)||(n=!0)}n&&o.updated.push(e)}const c=sS.encodeActions({notify:!0,sound:t.sound.mentions,highlight:!0}),d=null!==(i=null===(s=e.global.content)||void 0===s?void 0:s.filter(e=>!e.rule_id.startsWith(".")))&&void 0!==i?i:[],m=new Set(t.keywords);for(const e of d){if(m.has(e.pattern)){let n=!1;if(e.enabled!==t.mentions.keywords)n=!0;else if(void 0!==e.actions){const t=sS.decodeActions(e.actions),i=sS.decodeActions(c);null===t||null===i?n=!0:(0,Pa.ky)(i,t)||(n=!0)}n&&o.updated.push({rule_id:e.rule_id,kind:r.Jig.ContentSpecific,enabled:t.mentions.keywords,actions:c})}else o.deleted.push({rule_id:e.rule_id,kind:r.Jig.ContentSpecific});m.delete(e.pattern)}for(const e of m)o.added.push({rule_id:e,kind:r.Jig.ContentSpecific,default:!1,enabled:t.mentions.keywords,pattern:e,actions:c});return o}function vC(e){if(0===e.length)return!0;for(const t of e){if(null==t||!1===t||!t.enabled)continue;const e=sS.decodeActions(t.actions);if(null!==e&&e.notify)return!0}return!1}function _C(e){if(0===e.length)return!1;for(const t of e){if(null==t||!1===t||!t.enabled)continue;const e=sS.decodeActions(t.actions);if(null!==e&&!e.notify&&!0!==e.highlight&&void 0===e.sound)return!0}return!1}function fC(e){for(const t of e){if(null==t||!1===t||!t.enabled)continue;const e=sS.decodeActions(t.actions);if(null!==e&&e.notify&&void 0!==e.sound)return e.sound}}function yC(e){const t=function(){const e=(0,s.useRef)(null);return(0,s.useCallback)(t=>{let n;return n=null===e.current?t():e.current.then(t),e.current=n,n},[])}(),n=(0,s.useMemo)(()=>e.supportsIntentionalMentions(),[e]),i=(0,s.useRef)(null),[o,a]=(0,s.useState)(null),[l,c]=(0,s.useState)(!1),d=(0,s.useCallback)(async()=>{const t=await e.getPushRules(),s=function(e,t){var n,i,s,o;const a=hC(e),l=null!==(n=null===(i=e.global.content)||void 0===i?void 0:i.filter(e=>!e.rule_id.startsWith(".")))&&void 0!==n?n:[],c=[a.get(r.kqD.DM),a.get(r.kqD.EncryptedDM)],d=[a.get(r.kqD.Message),a.get(r.kqD.EncryptedMessage)];return{globalMute:null!==(s=null===(o=a.get(r.kqD.Master))||void 0===o?void 0:o.enabled)&&void 0!==s&&s,defaultLevels:{room:vC(d)?Ds.dC.AllMessages:Ds.dC.MentionsOnly,dm:vC(c)?Ds.dC.AllMessages:Ds.dC.MentionsOnly},sound:{calls:fC([a.get(r.kqD.IncomingCall)]),mentions:fC([t&&a.get(r.kqD.IsUserMention),a.get(r.kqD.ContainsUserName),a.get(r.kqD.ContainsDisplayName),...l]),people:fC(c)},activity:{bot_notices:!_C([a.get(r.kqD.SuppressNotices)]),invite:vC([a.get(r.kqD.InviteToSelf)]),status_event:vC([a.get(r.kqD.MemberEvent),a.get(r.kqD.Tombstone)])},mentions:{user:vC([t&&a.get(r.kqD.IsUserMention),a.get(r.kqD.ContainsUserName),a.get(r.kqD.ContainsDisplayName)]),room:vC([t&&a.get(r.kqD.IsRoomMention),a.get(r.kqD.AtRoomNotification)]),keywords:vC(l)},keywords:l.map(e=>e.pattern)}}(t,n),o=gC(t,s,n);i.current=t,c(o.updated.length>0||o.added.length>0||o.deleted.length>0),a(s)},[e,n]);(0,s.useEffect)(()=>{t(d).catch(e=>console.error(e))},[e,t,d]);const m=(0,s.useCallback)(s=>{a(s),t(async()=>{if(null!==i.current){const t=gC(i.current,s,n);await async function(e,t){await Promise.all(t.deleted.map(t=>e.deletePushRule("global",t.kind,t.rule_id))),await Promise.all(t.added.map(t=>e.addPushRule("global",t.kind,t.rule_id,t))),await Promise.all(t.updated.map(async t=>{void 0!==t.enabled&&await e.setPushRuleEnabled("global",t.kind,t.rule_id,t.enabled),void 0!==t.actions&&await e.setPushRuleActions("global",t.kind,t.rule_id,t.actions)}))}(e,t),await d()}}).catch(e=>console.error(e))},[t,n,e,d]);return{model:o,hasPendingChanges:l,reconcile:m}}const EC={globalMute:!1,defaultLevels:{room:Ds.dC.AllMessages,dm:Ds.dC.AllMessages},sound:{people:"default",mentions:"default",calls:"ring"},activity:{invite:!0,status_event:!1,bot_notices:!0},mentions:{user:!0,room:!0,keywords:!0},keywords:[]};function wC({children:e,icon:t,action:n,onAction:i}){return s.createElement("div",{className:"mx_SettingsBanner"},t,s.createElement("div",{className:"mx_SettingsBanner_content"},e),n&&s.createElement(Ve.A,{kind:"primary_outline",onClick:null!=i?i:null},n))}function SC(e,t,n){const[i,o]=(0,s.useState)(n),r=(0,s.useCallback)(()=>{let t=!1;return e().then(e=>{t||o(e)}).catch(e=>console.error(e)),()=>{t=!0}},t);return(0,s.useEffect)(r,[r]),[i,r]}const bC=["children"],AC=e=>{let{children:t}=e,n=(0,v.A)(e,bC);return s.createElement("div",(0,xn.A)({},n,{className:"mx_SettingsIndent"}),t)};function CC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function xC(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?CC(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):CC(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function kC(e){return s.createElement(Ve.A,{kind:"link_inline",onClick:()=>{K.A.dispatch({action:$.r.ViewUserSettings,initialTabId:ct.v.Account})}},e)}function RC(){const e=(0,s.useMemo)(()=>({kind:"email",app_id:"m.email",app_display_name:(0,c._t)("notifications|email_pusher_app_display_name"),lang:navigator.language,data:{brand:d.A.get().brand}}),[]),t=(0,je.nH)(),[n,i]=function(e){return SC(()=>e.getPushers().then(e=>e.pushers),[e],[])}(t),[o,a]=function(e){return SC(()=>e.getThreePids().then(e=>e.threepids),[e],[])}(t),l=(0,s.useCallback)((s,o)=>{if(o)t.setPusher(xC(xC({},e),{},{pushkey:s,device_display_name:s,append:!0})).catch(e=>console.error(e));else{const e=n.find(e=>"email"===e.kind&&e.pushkey===s);e&&t.removePusher(e.pushkey,e.app_id).catch(e=>console.error(e))}a(),i()},[e,t,n,i,a]),m=n.filter(e=>"email"!==e.kind);return s.createElement(s.Fragment,null,s.createElement(zn,{className:"mx_NotificationPusherSettings",heading:(0,c._t)("settings|notifications|email_section"),legacy:!1},s.createElement(Hn,{className:"mx_NotificationPusherSettings_description"},(0,c._t)("settings|notifications|email_description")),s.createElement("div",{className:"mx_SettingsSubsection_description mx_NotificationPusherSettings_detail"},s.createElement(Hn,null,(0,c._t)("settings|notifications|email_select",{},{button:kC}))),s.createElement(AC,null,o.filter(e=>e.medium===r.reI.Email).map(e=>s.createElement(bs,{key:e.address,label:e.address,value:void 0!==n.find(t=>t.pushkey===e.address),onChange:t=>l(e.address,t)})))),m.length>0&&s.createElement(zn,{heading:(0,c._t)("settings|notifications|push_targets"),legacy:!1},s.createElement("ul",null,n.filter(e=>"email"!==e.kind).map(e=>s.createElement("li",{key:e.pushkey},e.device_display_name||e.app_display_name)))))}function IC(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function TC(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?IC(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):IC(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var PC=function(e){return e.AllMessages="all_messages",e.PeopleMentionsKeywords="people_mentions_keywords",e.MentionsKeywords="mentions_keywords",e}(PC||{});function NC(e){return s.createElement("strong",null,e)}function DC(e){return s.createElement(it.A,{href:"https://element.io/help#settings2"},e)}function MC(){var e;const t=(0,je.nH)(),{model:n,hasPendingChanges:i,reconcile:o}=yC(t),r=null===n||i,a=null!=n?n:EC,[l,d]=(0,s.useState)(!1),m=(0,je.nH)().getRooms().some(e=>e.getUnreadNotificationCount()>0),u=[{value:PC.AllMessages,label:(0,c._t)("notifications|all_messages")},{value:PC.PeopleMentionsKeywords,label:(0,c._t)("settings|notifications|people_mentions_keywords")},{value:PC.MentionsKeywords,label:(0,c._t)("settings|notifications|mentions_keywords_only")}];return s.createElement("div",{className:"mx_NotificationSettings2"},i&&null!==n&&s.createElement(wC,{icon:s.createElement("img",{src:"img/element-icons/new-and-improved.65a63c7.svg",alt:"",width:12}),action:(0,c._t)("action|proceed"),onAction:()=>o(n)},(0,c._t)("settings|notifications|labs_notice_prompt",{},{strong:NC,a:DC})),s.createElement(On,null,s.createElement(Ln.lV.Root,{className:"mx_SettingsSubsection_content",onSubmit:ji},s.createElement(Vi.I,{name:"enable_notifications_account",label:(0,c._t)("settings|notifications|enable_notifications_account"),checked:!a.globalMute,disabled:r,onChange:e=>{o(TC(TC({},n),{},{globalMute:!e.target.checked}))}}),s.createElement(ls.A,{name:"notificationsEnabled",level:oe.p.DEVICE}),s.createElement(ls.A,{name:"notificationBodyEnabled",label:(0,c._t)("settings|notifications|desktop_notification_message_preview"),level:oe.p.DEVICE}),s.createElement(ls.A,{name:"audioNotificationsEnabled",level:oe.p.DEVICE})),s.createElement(zn,{heading:s.createElement(Vn,{heading:(0,c._t)("settings|notifications|default_setting_section"),as:"h2"}),description:(0,c._t)("settings|notifications|default_setting_description")},s.createElement(rs.A,{name:"defaultNotificationLevel",value:(p=a.defaultLevels,p.room===Ds.dC.AllMessages?PC.AllMessages:p.dm===Ds.dC.AllMessages?PC.PeopleMentionsKeywords:PC.MentionsKeywords),disabled:r,definitions:u,onChange:e=>{o(TC(TC({},n),{},{defaultLevels:TC(TC({},n.defaultLevels),{},{dm:e!==PC.MentionsKeywords?Ds.dC.AllMessages:Ds.dC.MentionsOnly,room:e===PC.AllMessages?Ds.dC.AllMessages:Ds.dC.MentionsOnly})}))}})),s.createElement(zn,{heading:s.createElement(Vn,{heading:(0,c._t)("settings|notifications|play_sound_for_section"),as:"h2"}),description:(0,c._t)("settings|notifications|play_sound_for_description")},s.createElement(bs,{label:(0,c._t)("common|people"),value:void 0!==a.sound.people,disabled:r||a.defaultLevels.dm===Ds.dC.MentionsOnly,onChange:e=>{o(TC(TC({},n),{},{sound:TC(TC({},n.sound),{},{people:e?"default":void 0})}))}}),s.createElement(bs,{label:(0,c._t)("settings|notifications|mentions_keywords"),value:void 0!==a.sound.mentions,disabled:r,onChange:e=>{o(TC(TC({},n),{},{sound:TC(TC({},n.sound),{},{mentions:e?"default":void 0})}))}}),s.createElement(bs,{label:(0,c._t)("settings|notifications|voip"),value:void 0!==a.sound.calls,disabled:r,onChange:e=>{o(TC(TC({},n),{},{sound:TC(TC({},n.sound),{},{calls:e?"ring":void 0})}))}})),s.createElement(zn,{heading:s.createElement(Vn,{heading:(0,c._t)("settings|notifications|other_section"),as:"h2"})},s.createElement(bs,{label:(0,c._t)("settings|notifications|invites"),value:a.activity.invite,disabled:r,onChange:e=>{o(TC(TC({},n),{},{activity:TC(TC({},n.activity),{},{invite:e})}))}}),s.createElement(bs,{label:(0,c._t)("settings|notifications|room_activity"),value:a.activity.status_event,disabled:r,onChange:e=>{o(TC(TC({},n),{},{activity:TC(TC({},n.activity),{},{status_event:e})}))}}),s.createElement(bs,{label:(0,c._t)("settings|notifications|notices"),value:a.activity.bot_notices,disabled:r,onChange:e=>{o(TC(TC({},n),{},{activity:TC(TC({},n.activity),{},{bot_notices:e})}))}})),s.createElement(zn,{heading:s.createElement(Vn,{heading:(0,c._t)("settings|notifications|mentions_keywords"),as:"h2"}),description:(0,c._t)("settings|notifications|keywords",{},{badge:s.createElement(qu.V,{symbol:"1",count:1,level:dr.S.Notification})})},s.createElement(bs,{label:(0,c._t)("settings|notifications|notify_at_room"),value:a.mentions.room,disabled:r,onChange:e=>{o(TC(TC({},n),{},{mentions:TC(TC({},n.mentions),{},{room:e})}))}}),s.createElement(bs,{label:(0,c._t)("settings|notifications|notify_mention",{mxid:t.getUserId()}),id:"mx_NotificationSettings2_MentionCheckbox",value:a.mentions.user,disabled:r,onChange:e=>{o(TC(TC({},n),{},{mentions:TC(TC({},n.mentions),{},{user:e})}))}}),s.createElement(bs,{label:(0,c._t)("settings|notifications|notify_keyword"),byline:(0,c._t)("settings|notifications|keywords_prompt"),value:a.mentions.keywords,disabled:r,onChange:e=>{o(TC(TC({},n),{},{mentions:TC(TC({},n.mentions),{},{keywords:e})}))}}),s.createElement(eC,{id:"mx_NotificationSettings2_Keywords",tags:null!==(e=null==n?void 0:n.keywords)&&void 0!==e?e:[],disabled:r,onAdd:e=>{o(TC(TC({},n),{},{keywords:[e,...n.keywords]}))},onRemove:e=>{o(TC(TC({},n),{},{keywords:n.keywords.filter(t=>t!==e)}))},label:(0,c._t)("notifications|keyword"),placeholder:(0,c._t)("notifications|keyword_new")}),s.createElement(Ln.lV.Root,{onSubmit:ji},s.createElement(ls.A,{name:"Notifications.showbold",level:oe.p.DEVICE}),s.createElement(ls.A,{name:"Notifications.tac_only_notifications",level:oe.p.DEVICE}))),s.createElement(RC,null),s.createElement(zn,{heading:(0,c._t)("settings|notifications|quick_actions_section")},m&&s.createElement(Ve.A,{kind:"primary_outline",disabled:l,onClick:async()=>{d(!0),await(0,Ra.XC)(t),d(!1)}},(0,c._t)("settings|notifications|quick_actions_mark_all_read")),s.createElement(Ve.A,{kind:"danger_outline",disabled:null===n,onClick:()=>{o(EC)}},(0,c._t)("settings|notifications|quick_actions_reset")))));var p}class OC extends s.Component{render(){const e=S.A.getValue(Jb.O5.NotificationSettings2);return s.createElement(Rn,null,e?s.createElement(MC,null):s.createElement(On,null,s.createElement(mC,null)))}}var FC=n("./src/i18n/utils.ts");class LC extends s.Component{constructor(e){super(e),(0,i.A)(this,"onSearchChange",e=>{this.setState({searchQuery:e})}),this.state={searchQuery:"",langs:null}}componentDidMount(){if((0,FC.o)().then(e=>{e.sort(function(e,t){return e.labelInTargetLanguage<t.labelInTargetLanguage?-1:e.labelInTargetLanguage>t.labelInTargetLanguage?1:0}),this.setState({langs:e})}).catch(()=>{this.setState({langs:[{value:"en",label:"English",labelInTargetLanguage:"English"}]})}),!this.props.value){const e=(0,gb.m)();this.props.onOptionChange(e)}}render(){if(null===this.state.langs)return s.createElement(Be.A,null);let e;e=this.state.searchQuery?this.state.langs.filter(e=>{return t=this.state.searchQuery,!!(n=e).labelInTargetLanguage.toUpperCase().includes(t.toUpperCase())||!!n.label.toUpperCase().includes(t.toUpperCase())||n.value.toUpperCase()===t.toUpperCase();var t,n}):this.state.langs;const t=e.map(e=>s.createElement("div",{key:e.value},e.labelInTargetLanguage));return s.createElement(Du.A,{id:"mx_LanguageDropdown",className:un()("mx_LanguageDropdown",this.props.className),onOptionChange:this.props.onOptionChange,onSearchChange:this.onSearchChange,searchEnabled:!0,value:this.props.value,label:(0,c._t)("language_dropdown_label"),disabled:this.props.disabled},t)}}class UC extends s.Component{constructor(e){super(e),(0,i.A)(this,"onSearchChange",e=>{this.setState({searchQuery:e})}),this.onSearchChange=this.onSearchChange.bind(this),this.state={searchQuery:""}}componentDidMount(){const e=l.A.get();if(e){var t;const n=new Intl.DisplayNames([(0,gb.m)()],{type:"language",style:"short"});null===(t=e.getAvailableSpellCheckLanguages())||void 0===t||t.then(e=>{e.sort(function(e,t){return e<t?-1:e>t?1:0});const t=[];e.forEach(e=>{t.push({label:n.of(e),value:e})}),this.setState({languages:t})}).catch(e=>{this.setState({languages:[{value:"en",label:n.of("en")}]})})}}render(){if(!this.state.languages)return s.createElement(Be.A,null);let e;e=this.state.searchQuery?this.state.languages.filter(e=>{return t=this.state.searchQuery,!!(n=e).label.toUpperCase().includes(t.toUpperCase())||n.value.toUpperCase()===t.toUpperCase();var t,n}):this.state.languages;const t=e.map(e=>s.createElement("div",{key:e.value},e.label));return s.createElement(Du.A,{id:"mx_LanguageDropdown",className:this.props.className,onOptionChange:this.props.onOptionChange,onSearchChange:this.onSearchChange,searchEnabled:!0,value:this.props.value,label:(0,c._t)("language_dropdown_label"),placeholder:(0,c._t)("settings|general|spell_check_locale_placeholder")},t)}}class VC extends s.Component{constructor(...e){super(...e),(0,i.A)(this,"onRemove",e=>(e.stopPropagation(),e.preventDefault(),this.props.onRemoved(this.props.language)))}render(){var e;return s.createElement("div",{className:"mx_ExistingSpellCheckLanguage"},s.createElement("span",{className:"mx_ExistingSpellCheckLanguage_language"},null!==(e=this.props.label)&&void 0!==e?e:this.props.language),s.createElement(Ve.A,{onClick:this.onRemove,kind:"danger_sm"},(0,c._t)("action|remove")))}}class BC extends s.Component{constructor(e){super(e),(0,i.A)(this,"onRemoved",e=>{const t=this.props.languages.filter(t=>t!==e);this.props.onLanguagesChange(t)}),(0,i.A)(this,"onAddClick",e=>{e.stopPropagation(),e.preventDefault();const t=this.state.newLanguage;this.setState({newLanguage:""}),t&&(this.props.languages.includes(t)||(this.props.languages.push(t),this.props.onLanguagesChange(this.props.languages)))}),(0,i.A)(this,"onNewLanguageChange",e=>{this.state.newLanguage!==e&&this.setState({newLanguage:e})}),this.state={newLanguage:""}}render(){const e=new Intl.DisplayNames([(0,gb.m)()],{type:"language",style:"short"}),t=this.props.languages.map(t=>s.createElement(VC,{language:t,label:e.of(t),onRemoved:this.onRemoved,key:t})),n=s.createElement(Ve.A,{onClick:this.onAddClick,kind:"primary"},(0,c._t)("action|add"));return s.createElement(s.Fragment,null,t,s.createElement("form",{onSubmit:this.onAddClick,noValidate:!0},s.createElement(UC,{className:"mx_GeneralUserSettingsTab_spellCheckLanguageInput",value:this.state.newLanguage,onOptionChange:this.onNewLanguageChange}),n))}}const jC=()=>{const e=(0,es.ti)("inviteRules"),t=(0,es.ti)("blockInvites"),n=S.A.disabledMessage("inviteRules"),i=S.A.disabledMessage("blockInvites"),[r,a]=(0,s.useState)(!1),l=(0,s.useCallback)(async e=>{try{a(!0),e.target.checked?(await S.A.setValue("blockInvites",null,oe.p.ACCOUNT,!1),await S.A.setValue("inviteRules",null,oe.p.ACCOUNT,{allBlocked:!1})):i?n||await S.A.setValue("inviteRules",null,oe.p.ACCOUNT,{allBlocked:!0}):await S.A.setValue("blockInvites",null,oe.p.ACCOUNT,!0)}catch(e){o.vF.error("Unable to set invite rules",e)}finally{a(!1)}},[n,i,a]),d=n&&i,m=!n&&e.allBlocked||!i&&t;return s.createElement(Ln.lV.Root,{className:"mx_MediaPreviewAccountSetting_Form",onSubmit:e=>{e.preventDefault(),e.stopPropagation()}},s.createElement(Vi.I,{name:"invite_controls",label:(0,c._t)("settings|invite_controls|default_label"),checked:!m,onChange:l,className:"mx_MediaPreviewAccountSetting_ToggleSwitch",disabled:!!d||r,disabledMessage:d}))},HC=({settingKey:e,roomId:t,level:n,label:i,isExplicit:o,hideIfCannotSet:r,onChange:a})=>{const l=(0,s.useId)(),c=(0,es.wL)(n,e,null!=t?t:null,o),[d,m]=(0,s.useState)(c),u=Jb.yy[e],p=(0,s.useCallback)(i=>{m(i),S.A.setValue(e,null!=t?t:null,n,i),null==a||a(i)},[e,t,n,a]),h=!S.A.canSetValue(e,null!=t?t:null,n);if(h&&r)return s.createElement(s.Fragment,null);if(!u.options)return console.error("SettingsDropdown used for a setting with no `options`"),s.createElement(s.Fragment,null);const g=null!=i?i:S.A.getDisplayName(e,n),v=u.options.map(e=>s.createElement("div",{key:e.value},(0,Xe._t)(e.label)));return s.createElement("div",{className:"mx_SettingsDropdown"},s.createElement("label",{className:"mx_SettingsDropdown_label",htmlFor:l},s.createElement("span",{className:"mx_SettingsDropdown_labelText"},g)),s.createElement(Du.A,{id:l,onOptionChange:p,menuWidth:360,value:d,disabled:h,label:g},v))},zC=()=>{const[e,t]=(0,s.useState)((0,c.UK)()),n=(0,s.useCallback)(n=>{if(e===n)return;S.A.setValue("language",null,oe.p.DEVICE,n),t(n);const i=l.A.get();i&&(i.setLanguage([n]),i.reload())},[e]);return s.createElement("div",{className:"mx_SettingsSubsection_dropdown"},(0,c._t)("settings|general|application_language"),s.createElement(LC,{onOptionChange:n,value:e}),s.createElement("div",{className:"mx_PreferencesUserSettingsTab_section_hint"},(0,c._t)("settings|general|application_language_reload_hint")))},WC=()=>{var e;const[t,n]=(0,s.useState)(),[i,o]=(0,s.useState)();(0,s.useEffect)(()=>{(async()=>{const e=l.A.get(),[t,i]=await Promise.all([null==e?void 0:e.getSpellCheckEnabled(),null==e?void 0:e.getSpellCheckLanguages()]);n(t),o(i||void 0)})()},[]);const r=(0,s.useCallback)(e=>{var t;const i=e.target.checked;n(i),null===(t=l.A.get())||void 0===t||t.setSpellCheckEnabled(i)},[]),a=(0,s.useCallback)(e=>{var t;o(e),null===(t=l.A.get())||void 0===t||t.setSpellCheckLanguages(e)},[]);return null!==(e=l.A.get())&&void 0!==e&&e.supportsSpellCheckSettings()?s.createElement(s.Fragment,null,s.createElement(Vi.I,{name:"allow_spellcheck",label:(0,c._t)("settings|general|allow_spellcheck"),onChange:r,checked:Boolean(t)}),t&&void 0!==i&&!ni.vL&&s.createElement(BC,{languages:i,onLanguagesChange:a})):null};class JC extends s.Component{constructor(e){super(e),(0,i.A)(this,"onTimezoneChange",e=>{this.setState({timezone:e}),Cp.nY(e)}),(0,i.A)(this,"onTimezoneSearchChange",e=>{const t=e.toLowerCase(),n=t?Cp.QG().filter(e=>e.toLowerCase().includes(t)):Cp.QG();this.setState({timezones:n})}),(0,i.A)(this,"onAutocompleteDelayChange",e=>{this.setState({autocompleteDelay:e.target.value}),S.A.setValue("autocompleteDelay",null,oe.p.DEVICE,e.target.valueAsNumber)}),(0,i.A)(this,"onReadMarkerInViewThresholdMs",e=>{this.setState({readMarkerInViewThresholdMs:e.target.value}),S.A.setValue("readMarkerInViewThresholdMs",null,oe.p.DEVICE,e.target.valueAsNumber)}),(0,i.A)(this,"onReadMarkerOutOfViewThresholdMs",e=>{this.setState({readMarkerOutOfViewThresholdMs:e.target.value}),S.A.setValue("readMarkerOutOfViewThresholdMs",null,oe.p.DEVICE,e.target.valueAsNumber)}),(0,i.A)(this,"onKeyboardShortcutsClicked",()=>{K.A.dispatch({action:$.r.ViewUserSettings,initialTabId:ct.v.Keyboard})}),this.state={timezone:Cp.dB(),timezones:Cp.QG(),autocompleteDelay:S.A.getValueAt(oe.p.DEVICE,"autocompleteDelay").toString(10),readMarkerInViewThresholdMs:S.A.getValueAt(oe.p.DEVICE,"readMarkerInViewThresholdMs").toString(10),readMarkerOutOfViewThresholdMs:S.A.getValueAt(oe.p.DEVICE,"readMarkerOutOfViewThresholdMs").toString(10)}}renderGroup(e,t=oe.p.ACCOUNT){return s.createElement(s.Fragment,null,e.map(e=>s.createElement(ls.A,{key:e,name:e,level:t})))}render(){const e=(0,c._t)("settings|preferences|default_timezone",{timezone:Cp.cf()}),t=d.A.get().brand,n=this.state.timezones.map(e=>s.createElement("div",{key:e},e));return n.unshift(s.createElement("div",{key:""},e)),s.createElement(Rn,null,s.createElement(On,null,s.createElement(zn,{heading:(0,c._t)("settings|general|language_section"),formWrap:!0},s.createElement(zC,null),s.createElement(WC,null)),S.A.canSetValue("Electron.autoLaunch",null,oe.p.PLATFORM)&&s.createElement(zn,{heading:(0,c._t)("settings|preferences|startup_window_behaviour_label"),formWrap:!0},s.createElement(HC,{settingKey:"Electron.autoLaunch",label:(0,c._t)("settings|start_automatically|label",{brand:t}),level:oe.p.PLATFORM,hideIfCannotSet:!0})),s.createElement(zn,{heading:(0,c._t)("settings|preferences|room_list_heading"),formWrap:!0},s.createElement(ls.A,{name:"RoomList.showMessagePreview",level:oe.p.DEVICE}),s.createElement(ls.A,{name:"RoomList.showSections",level:oe.p.ACCOUNT})),s.createElement(zn,{heading:(0,c._t)("common|spaces"),formWrap:!0},this.renderGroup(JC.SPACES_SETTINGS,oe.p.ACCOUNT)),s.createElement(zn,{heading:(0,c._t)("settings|preferences|keyboard_heading"),description:(0,c._t)("settings|preferences|keyboard_view_shortcuts_button",{},{a:e=>s.createElement(Ve.A,{kind:"link_inline",onClick:this.onKeyboardShortcutsClicked},e)}),formWrap:!0},this.renderGroup(JC.KEYBINDINGS_SETTINGS)),s.createElement(zn,{heading:(0,c._t)("settings|preferences|time_heading"),formWrap:!0},s.createElement("div",{className:"mx_SettingsSubsection_dropdown"},(0,c._t)("settings|preferences|user_timezone"),s.createElement(Du.A,{id:"mx_dropdownUserTimezone",className:"mx_dropdownUserTimezone",searchEnabled:!0,value:this.state.timezone,label:(0,c._t)("settings|preferences|user_timezone"),placeholder:e,onOptionChange:this.onTimezoneChange,onSearchChange:this.onTimezoneSearchChange},n)),this.renderGroup(JC.TIME_SETTINGS),s.createElement(ls.A,{name:"userTimezonePublish",level:oe.p.DEVICE})),s.createElement(zn,{heading:(0,c._t)("common|presence"),description:(0,c._t)("settings|preferences|presence_description"),formWrap:!0},this.renderGroup(JC.PRESENCE_SETTINGS)),s.createElement(zn,{heading:(0,c._t)("settings|preferences|composer_heading"),formWrap:!0},this.renderGroup(JC.COMPOSER_SETTINGS)),s.createElement(zn,{heading:(0,c._t)("settings|preferences|code_blocks_heading"),formWrap:!0},this.renderGroup(JC.CODE_BLOCKS_SETTINGS)),s.createElement(zn,{heading:(0,c._t)("settings|preferences|link_previews_heading"),description:(0,c._t)("settings|preferences|link_previews_description"),formWrap:!0},s.createElement(ls.A,{name:"urlPreviewsEnabled",level:oe.p.DEVICE}),s.createElement(ls.A,{name:"urlPreviewsEnabled_e2ee",level:oe.p.DEVICE,requires:["urlPreviewsEnabled"]})),s.createElement(zn,{heading:(0,c._t)("settings|preferences|media_heading"),formWrap:!0},this.renderGroup(JC.IMAGES_AND_VIDEOS_SETTINGS)),s.createElement(zn,{heading:(0,c._t)("common|timeline"),formWrap:!0},this.renderGroup(JC.TIMELINE_SETTINGS)),s.createElement(zn,{heading:(0,c._t)("common|moderation_and_safety"),legacy:!1},s.createElement(is,null),s.createElement(jC,null)),s.createElement(zn,{heading:(0,c._t)("settings|preferences|room_directory_heading"),formWrap:!0},this.renderGroup(JC.ROOM_DIRECTORY_SETTINGS)),s.createElement(zn,{heading:(0,c._t)("common|general"),stretchContent:!0,formWrap:!0},this.renderGroup(JC.GENERAL_SETTINGS),s.createElement(ls.A,{name:"Electron.showTrayIcon",level:oe.p.PLATFORM,hideIfCannotSet:!0}),s.createElement(ls.A,{name:"Electron.enableHardwareAcceleration",level:oe.p.PLATFORM,hideIfCannotSet:!0,label:(0,c._t)("settings|preferences|Electron.enableHardwareAcceleration",{appName:t})}),s.createElement(ls.A,{name:"Electron.enableContentProtection",level:oe.p.PLATFORM,hideIfCannotSet:!0,label:(0,c._t)("settings|preferences|Electron.enableContentProtection")}),s.createElement(ls.A,{name:"Electron.alwaysShowMenuBar",level:oe.p.PLATFORM,hideIfCannotSet:!0}),s.createElement(ls.A,{name:"Electron.warnBeforeExit",level:oe.p.PLATFORM,hideIfCannotSet:!0}),s.createElement(yi.A,{label:(0,c._t)("settings|preferences|autocomplete_delay"),type:"number",value:this.state.autocompleteDelay,onChange:this.onAutocompleteDelayChange}),s.createElement(yi.A,{label:(0,c._t)("settings|preferences|rm_lifetime"),type:"number",value:this.state.readMarkerInViewThresholdMs,onChange:this.onReadMarkerInViewThresholdMs}),s.createElement(yi.A,{label:(0,c._t)("settings|preferences|rm_lifetime_offscreen"),type:"number",value:this.state.readMarkerOutOfViewThresholdMs,onChange:this.onReadMarkerOutOfViewThresholdMs}))))}}(0,i.A)(JC,"SPACES_SETTINGS",["Spaces.allRoomsInHome"]),(0,i.A)(JC,"KEYBINDINGS_SETTINGS",["ctrlFForSearch"]),(0,i.A)(JC,"PRESENCE_SETTINGS",["sendReadReceipts","sendTypingNotifications"]),(0,i.A)(JC,"COMPOSER_SETTINGS",["MessageComposerInput.autoReplaceEmoji","MessageComposerInput.useMarkdown","MessageComposerInput.suggestEmoji","MessageComposerInput.ctrlEnterToSend","MessageComposerInput.surroundWith","MessageComposerInput.showStickersButton","MessageComposerInput.insertTrailingColon"]),(0,i.A)(JC,"TIME_SETTINGS",["showTwelveHourTimestamps","alwaysShowTimestamps"]),(0,i.A)(JC,"CODE_BLOCKS_SETTINGS",["enableSyntaxHighlightLanguageDetection","expandCodeByDefault","showCodeLineNumbers"]),(0,i.A)(JC,"IMAGES_AND_VIDEOS_SETTINGS",["autoplayGifs","autoplayVideo"]),(0,i.A)(JC,"TIMELINE_SETTINGS",["showTypingNotifications","showRedactions","showReadReceipts","showJoinLeaves","showDisplaynameChanges","showChatEffects","showAvatarChanges","Pill.shouldShowPillAvatar","TextualBody.enableBigEmoji","scrollToBottomOnMessageSent","useOnlyCurrentProfiles"]),(0,i.A)(JC,"ROOM_DIRECTORY_SETTINGS",["SpotlightSearch.showNsfwPublicRooms"]),(0,i.A)(JC,"GENERAL_SETTINGS",["promptBeforeInviteUnknownUsers"]);const GC=e=>{switch(e){case Yd.cm.AudioOutput:return Yd.Ay.getAudioOutput();case Yd.cm.AudioInput:return Yd.Ay.getAudioInput();case Yd.cm.VideoInput:return Yd.Ay.getVideoInput()}};class KC extends s.Component{constructor(e){super(e),(0,i.A)(this,"legacyCallsEnabledWatcherRef",void 0),(0,i.A)(this,"refreshMediaDevices",async e=>{var t;this.setState({mediaDevices:null!==(t=await Yd.Ay.getDevices())&&void 0!==t?t:null,[Yd.cm.AudioOutput]:GC(Yd.cm.AudioOutput),[Yd.cm.AudioInput]:GC(Yd.cm.AudioInput),[Yd.cm.VideoInput]:GC(Yd.cm.VideoInput)}),e&&e.getTracks().forEach(e=>e.stop())}),(0,i.A)(this,"requestMediaPermissions",async()=>{const e=await(async(e=!0)=>{let t,n;try{t=await navigator.mediaDevices.getUserMedia({audio:!0,video:e})}catch(i){if(e&&"NotFoundError"===i.name)try{t=await navigator.mediaDevices.getUserMedia({audio:!0})}catch(e){n=e}else n=i}if(n){o.vF.log("Failed to list userMedia devices",n);const e=d.A.get().brand;X.Ay.createDialog(sn.A,{title:(0,c._t)("voip|no_media_perms_title"),description:(0,c._t)("voip|no_media_perms_description",{brand:e})})}return t})();e&&await this.refreshMediaDevices(e)}),(0,i.A)(this,"setDevice",async(e,t)=>{this.setState({[t]:e});try{await Yd.Ay.instance.setDevice(e,t)}catch{o.vF.error(`Failed to set device ${t}: ${e}`),this.setState({[t]:GC(t)})}}),(0,i.A)(this,"changeWebRtcMethod",e=>{this.context.setForceTURN(!e)}),(0,i.A)(this,"onAutoGainChanged",async e=>{const t=e.target.checked;await Yd.Ay.setAudioAutoGainControl(t),this.setState({audioAutoGainControl:Yd.Ay.getAudioAutoGainControl()})}),(0,i.A)(this,"onNoiseSuppressionChanged",async e=>{const t=e.target.checked;await Yd.Ay.setAudioNoiseSuppression(t),this.setState({audioNoiseSuppression:Yd.Ay.getAudioNoiseSuppression()})}),(0,i.A)(this,"onEchoCancellationChanged",async e=>{const t=e.target.checked;await Yd.Ay.setAudioEchoCancellation(t),this.setState({audioEchoCancellation:Yd.Ay.getAudioEchoCancellation()})}),this.state={mediaDevices:null,[Yd.cm.AudioOutput]:null,[Yd.cm.AudioInput]:null,[Yd.cm.VideoInput]:null,audioAutoGainControl:Yd.Ay.getAudioAutoGainControl(),audioEchoCancellation:Yd.Ay.getAudioEchoCancellation(),audioNoiseSuppression:Yd.Ay.getAudioNoiseSuppression(),enableLegacyCallsVoip:S.A.getValue("enableLegacyCallsVoip")}}async componentDidMount(){this.legacyCallsEnabledWatcherRef=S.A.watchSetting("enableLegacyCallsVoip",null,(...[,,,,e])=>this.setState({enableLegacyCallsVoip:e}));await Yd.Ay.hasAnyLabeledDevices()&&await this.refreshMediaDevices()}componentWillUnmount(){S.A.unwatchSetting(this.legacyCallsEnabledWatcherRef)}renderDeviceOptions(e,t){return e.map(e=>s.createElement("option",{key:`${t}-${e.deviceId}`,value:e.deviceId},e.label))}renderDropdown(e,t){var n;const i=null===(n=this.state.mediaDevices)||void 0===n?void 0:n[e].slice(0);if(null==i||!i.length)return null;const o=Yd.Ay.getDefaultDevice(i);return s.createElement(yi.A,{element:"select",label:t,value:this.state[e]||o,onChange:t=>this.setDevice(t.target.value,e)},this.renderDeviceOptions(i,e))}render(){let e,t,n,i;this.state.mediaDevices?this.state.mediaDevices&&(t=this.renderDropdown(Yd.cm.AudioOutput,(0,c._t)("settings|voip|audio_output"))||s.createElement("p",null,(0,c._t)("settings|voip|audio_output_empty")),n=this.renderDropdown(Yd.cm.AudioInput,(0,c._t)("common|microphone"))||s.createElement("p",null,(0,c._t)("settings|voip|audio_input_empty")),i=this.renderDropdown(Yd.cm.VideoInput,(0,c._t)("common|camera"))||s.createElement("p",null,(0,c._t)("settings|voip|video_input_empty"))):e=s.createElement(qS.F,{type:"info",title:(0,c._t)("settings|voip|permissions"),actions:s.createElement(Ve.A,{onClick:this.requestMediaPermissions,kind:"primary"},(0,c._t)("settings|voip|request_permissions"))},(0,c._t)("settings|voip|missing_permissions_prompt",{brand:d.A.get("brand")}));const o=!d.A.get("element_call").disable,r=!d.A.get("element_call").use_exclusively||!o,a=this.state.enableLegacyCallsVoip,l=s.createElement(s.Fragment,null,s.createElement(zn,{heading:(0,c._t)("settings|voip|voice_section"),stretchContent:!0},t,s.createElement(Vi.I,{name:"voice-auto-gain",label:(0,c._t)("settings|voip|voice_agc"),checked:this.state.audioAutoGainControl,onChange:this.onAutoGainChanged})),s.createElement(zn,{heading:(0,c._t)("settings|voip|video_section"),stretchContent:!0},i,s.createElement(ls.A,{name:"VideoView.flipVideoHorizontally",level:oe.p.ACCOUNT})),s.createElement(On,{heading:(0,c._t)("common|advanced")},s.createElement(ls.A,{name:"webRtcAllowPeerToPeer",level:oe.p.DEVICE,onChange:this.changeWebRtcMethod}),s.createElement(ls.A,{name:"fallbackICEServerAllowed",label:(0,c._t)("settings|voip|enable_fallback_ice_server",{server:new URL(Kl.ZB).pathname}),level:oe.p.DEVICE,hideIfCannotSet:!0})));return s.createElement(Rn,null,s.createElement(Ln.lV.Root,{onSubmit:e=>{e.preventDefault(),e.stopPropagation()}},s.createElement(On,{heading:(0,c._t)("settings|voip|voice_input_section")},(0,c._t)("settings|voip|voice_input_description"),e,n),r&&s.createElement(On,{heading:(0,c._t)("common|legacy_voice_and_video_settings")},o&&s.createElement(ls.A,{name:"enableLegacyCallsVoip",level:oe.p.DEVICE}),(!o||a)&&l),(r||o)&&s.createElement(On,{heading:(0,c._t)("settings|voip|voice_processing")},s.createElement(Vi.I,{name:"voice-noise-suppression",label:(0,c._t)("settings|voip|noise_suppression"),helpMessage:(0,c._t)("settings|voip|noise_suppression_description"),checked:this.state.audioNoiseSuppression,onChange:this.onNoiseSuppressionChanged}),s.createElement(Vi.I,{name:"voice-echo-cancellation",label:(0,c._t)("settings|voip|echo_cancellation"),helpMessage:(0,c._t)("settings|voip|echo_cancellation_description"),checked:this.state.audioEchoCancellation,onChange:this.onEchoCancellationChanged}))))}}(0,i.A)(KC,"contextType",je.Ay);const qC=["action"];function $C(){var e;null===(e=l.A.get())||void 0===e||e.installUpdate()}const YC=[Qt.Kn.Ready,Qt.Kn.Error,Qt.Kn.NotAvailable],QC=()=>{const[e,t]=(0,s.useState)(null);(0,Dc.F)(K.A,e=>{let{action:n}=e,i=(0,v.A)(e,qC);n===$.r.CheckUpdates&&t(i)});const n=!!e&&!YC.includes(e.status);let i;return e&&(i=s.createElement("span",{className:"mx_UpdateCheckButton_summary"},function(e,t){switch(e){case Qt.Kn.Error:return(0,c._t)("update|error_encountered",{errorDetail:t});case Qt.Kn.Checking:return(0,c._t)("update|checking");case Qt.Kn.NotAvailable:return(0,c._t)("update|no_update");case Qt.Kn.Downloading:return(0,c._t)("update|downloading");case Qt.Kn.Ready:return(0,c._t)("update|new_version_available",{},{a:e=>s.createElement(Ve.A,{kind:"link_inline",onClick:$C},e)})}}(e.status,e.detail),n&&s.createElement($s.A,null))),s.createElement(s.Fragment,null,s.createElement(Ve.A,{onClick:()=>{var e;t(null),null===(e=l.A.get())||void 0===e||e.startUpdateCheck()},kind:"primary_outline",disabled:n},(0,c._t)("update|check_action")),i)};class XC extends s.Component{constructor(e){super(e),(0,i.A)(this,"onClearCacheAndReload",()=>{l.A.get()&&(o.vF.log("Clear cache & reload clicked"),this.context.stopClient(),this.context.store.deleteAllData().then(()=>{var e;null===(e=l.A.get())||void 0===e||e.reload()}))}),(0,i.A)(this,"getVersionTextToCopy",()=>{const{appVersion:e,cryptoVersion:t}=this.getVersionInfo();return`${e}\n${t}`}),this.state={appVersion:null,canUpdate:!1}}componentDidMount(){var e,t;null===(e=l.A.get())||void 0===e||e.getAppVersion().then(e=>this.setState({appVersion:e})).catch(e=>{o.vF.error("Error getting vector version: ",e)}),null===(t=l.A.get())||void 0===t||t.canSelfUpdate().then(e=>this.setState({canUpdate:e})).catch(e=>{o.vF.error("Error getting self updatability: ",e)})}getVersionInfo(){var e,t;const n=d.A.get().brand,i=this.state.appVersion||"unknown",s=null!==(e=null===(t=this.context.getCrypto())||void 0===t?void 0:t.getVersion())&&void 0!==e?e:"<not-enabled>";return{appVersion:`${(0,c._t)("setting|help_about|brand_version",{brand:n})} ${i}`,cryptoVersion:`${(0,c._t)("setting|help_about|crypto_version")} ${s}`}}renderLegal(){const e=d.A.get().terms_and_conditions_links;if(!e)return null;const t=[];for(const n of e)t.push(s.createElement("div",{key:n.url},s.createElement(it.A,{href:n.url},n.text)));return s.createElement(zn,{heading:(0,c._t)("common|legal")},s.createElement(Hn,null,t))}renderCredits(){return s.createElement(zn,{heading:(0,c._t)("common|credits")},s.createElement(Hn,null,s.createElement("ul",null,s.createElement("li",null,(0,c._t)("credits|default_cover_photo",{},{photo:e=>s.createElement(it.A,{href:"themes/element/img/backgrounds/lake.jpg",rel:"noreferrer noopener",target:"_blank"},e),author:e=>s.createElement(it.A,{href:"https://www.flickr.com/golan"},e),terms:e=>s.createElement(it.A,{href:"https://creativecommons.org/licenses/by-sa/4.0/",rel:"noreferrer noopener",target:"_blank"},e)})),s.createElement("li",null,(0,c._t)("credits|twemoji_colr",{},{colr:e=>s.createElement(it.A,{href:"https://github.com/matrix-org/twemoji-colr",rel:"noreferrer noopener",target:"_blank"},e),author:e=>s.createElement(it.A,{href:"https://mozilla.org"},e),terms:e=>s.createElement(it.A,{href:"https://www.apache.org/licenses/LICENSE-2.0",rel:"noreferrer noopener",target:"_blank"},e)})),s.createElement("li",null,(0,c._t)("credits|twemoji",{},{twemoji:e=>s.createElement(it.A,{href:"https://twemoji.twitter.com/"},e),author:e=>s.createElement(it.A,{href:"https://twemoji.twitter.com/"},e),terms:e=>s.createElement(it.A,{href:"https://creativecommons.org/licenses/by/4.0/",rel:"noreferrer noopener",target:"_blank"},e)})))))}render(){const e=d.A.get().brand,t=(0,c._t)("setting|help_about|help_link",{brand:e},{a:e=>s.createElement(it.A,{href:d.A.get("help_url")},e)});let n,i;this.state.canUpdate&&(n=s.createElement(QC,null)),d.A.get().bug_report_endpoint_url&&(i=s.createElement(zn,{heading:(0,c._t)("bug_reporting|title"),description:s.createElement(s.Fragment,null,s.createElement(Hn,null,(0,c._t)("bug_reporting|introduction")),(0,c._t)("bug_reporting|description"))},s.createElement(wo,null),s.createElement(Hn,null,(0,c._t)("bug_reporting|matrix_security_issue",{},{a:e=>s.createElement(it.A,{href:"https://matrix.org/security-disclosure-policy/"},e)}))));const{appVersion:o,cryptoVersion:r}=this.getVersionInfo();return s.createElement(Rn,null,s.createElement(On,null,i,s.createElement(zn,{heading:(0,c._t)("common|faq"),description:t}),s.createElement(zn,{heading:(0,c._t)("setting|help_about|versions")},s.createElement(Hn,null,s.createElement(Cn.A,{getTextToCopy:this.getVersionTextToCopy},o,s.createElement("br",null),r,s.createElement("br",null)),n)),this.renderLegal(),this.renderCredits(),s.createElement(zn,{heading:(0,c._t)("common|advanced")},s.createElement(Hn,null,(0,c._t)("setting|help_about|homeserver",{homeserverUrl:this.context.getHomeserverUrl()},{code:e=>s.createElement("code",null,e)})),this.context.getIdentityServerUrl()&&s.createElement(Hn,null,(0,c._t)("setting|help_about|identity_server",{identityServerUrl:this.context.getIdentityServerUrl()},{code:e=>s.createElement("code",null,e)})),s.createElement(Hn,null,s.createElement("details",null,s.createElement("summary",{className:"mx_HelpUserSettingsTab_accessTokenDetails"},(0,c._t)("common|access_token")),s.createElement("strong",null,(0,c._t)("setting|help_about|access_token_detail")),s.createElement(Cn.A,{getTextToCopy:()=>this.context.getAccessToken()},this.context.getAccessToken()))),s.createElement(Ve.A,{onClick:this.onClearCacheAndReload,kind:"danger_outline"},(0,c._t)("setting|help_about|clear_cache_reload")))))}}(0,i.A)(XC,"contextType",je.Ay);var ZC=n("./src/mjolnir/BanList.ts");class ex extends s.Component{constructor(e){super(e),(0,i.A)(this,"onPersonalRuleChanged",e=>{this.setState({newPersonalRule:e.target.value})}),(0,i.A)(this,"onNewListChanged",e=>{this.setState({newList:e.target.value})}),(0,i.A)(this,"onAddPersonalRule",async e=>{e.preventDefault(),e.stopPropagation();let t=ZC.fy;this.state.newPersonalRule.startsWith("@")&&(t=ZC.ZZ),this.setState({busy:!0});try{const e=await le.u.sharedInstance().getOrCreatePersonalList();await e.banEntity(t,this.state.newPersonalRule,(0,c._t)("labs_mjolnir|ban_reason")),this.setState({newPersonalRule:""})}catch(e){o.vF.error(e),X.Ay.createDialog(sn.A,{title:(0,c._t)("labs_mjolnir|error_adding_ignore"),description:(0,c._t)("labs_mjolnir|something_went_wrong")})}finally{this.setState({busy:!1})}}),(0,i.A)(this,"onSubscribeList",async e=>{e.preventDefault(),e.stopPropagation(),this.setState({busy:!0});try{const e=await _.J.safeGet().joinRoom(this.state.newList);await le.u.sharedInstance().subscribeToList(e.roomId),this.setState({newList:""})}catch(e){o.vF.error(e),X.Ay.createDialog(sn.A,{title:(0,c._t)("labs_mjolnir|error_adding_list_title"),description:(0,c._t)("labs_mjolnir|error_adding_list_description")})}finally{this.setState({busy:!1})}}),this.state={busy:!1,newPersonalRule:"",newList:""}}async removePersonalRule(e){this.setState({busy:!0});try{const t=le.u.sharedInstance().getPersonalList();await t.unbanEntity(e.kind,e.entity)}catch(e){o.vF.error(e),X.Ay.createDialog(sn.A,{title:(0,c._t)("labs_mjolnir|error_removing_ignore"),description:(0,c._t)("labs_mjolnir|something_went_wrong")})}finally{this.setState({busy:!1})}}async unsubscribeFromList(e){this.setState({busy:!0});try{await le.u.sharedInstance().unsubscribeFromList(e.roomId),await _.J.safeGet().leave(e.roomId)}catch(e){o.vF.error(e),X.Ay.createDialog(sn.A,{title:(0,c._t)("labs_mjolnir|error_removing_list_title"),description:(0,c._t)("labs_mjolnir|error_removing_list_description")})}finally{this.setState({busy:!1})}}viewListRules(e){const t=_.J.safeGet().getRoom(e.roomId),n=t?t.name:e.roomId,i=e=>{if(0===e.length)return s.createElement("i",null,(0,c._t)("labs_mjolnir|rules_empty"));const t=[];for(const n of e)t.push(s.createElement("li",{key:n.kind+n.entity},s.createElement("code",null,n.entity)));return s.createElement("ul",null,t)};X.Ay.createDialog(on.A,{title:(0,c._t)("labs_mjolnir|rules_title",{roomName:n}),description:s.createElement("div",null,s.createElement("h3",null,(0,c._t)("labs_mjolnir|rules_server")),i(e.serverRules),s.createElement("h3",null,(0,c._t)("labs_mjolnir|rules_user")),i(e.userRules)),button:(0,c._t)("action|close"),hasCancelButton:!1})}renderPersonalBanListRules(){const e=le.u.sharedInstance().getPersonalList(),t=e?[...e.userRules,...e.serverRules]:[];if(!e||t.length<=0)return s.createElement("i",null,(0,c._t)("labs_mjolnir|personal_empty"));const n=[];for(const e of t)n.push(s.createElement("li",{key:e.entity,className:"mx_MjolnirUserSettingsTab_listItem"},s.createElement(Ve.A,{kind:"danger_sm",onClick:()=>this.removePersonalRule(e),disabled:this.state.busy},(0,c._t)("action|remove"))," ",s.createElement("code",null,e.entity)));return s.createElement("div",null,s.createElement("p",null,(0,c._t)("labs_mjolnir|personal_section")),s.createElement("ul",null,n))}renderSubscribedBanLists(){const e=le.u.sharedInstance().getPersonalList(),t=le.u.sharedInstance().lists.filter(t=>!e||e.roomId!==t.roomId);if(!t||t.length<=0)return s.createElement("i",null,(0,c._t)("labs_mjolnir|no_lists"));const n=[];for(const e of t){const t=_.J.safeGet().getRoom(e.roomId),i=t?s.createElement("span",null,t.name," (",s.createElement("code",null,e.roomId),")"):s.createElement("code",null,"list.roomId");n.push(s.createElement("li",{key:e.roomId,className:"mx_MjolnirUserSettingsTab_listItem"},s.createElement(Ve.A,{kind:"danger_sm",onClick:()=>this.unsubscribeFromList(e),disabled:this.state.busy},(0,c._t)("action|unsubscribe"))," ",s.createElement(Ve.A,{kind:"primary_sm",onClick:()=>this.viewListRules(e),disabled:this.state.busy},(0,c._t)("labs_mjolnir|view_rules"))," ",i))}return s.createElement("div",null,s.createElement("p",null,(0,c._t)("labs_mjolnir|lists")),s.createElement("ul",null,n))}render(){const e=d.A.get().brand;return s.createElement(Rn,null,s.createElement(On,null,s.createElement(Hn,null,s.createElement("strong",{className:"warning"},(0,c._t)("labs_mjolnir|advanced_warning")),s.createElement("p",null,(0,c._t)("labs_mjolnir|explainer_1",{brand:e},{code:e=>s.createElement("code",null,e)})),s.createElement("p",null,(0,c._t)("labs_mjolnir|explainer_2"))),s.createElement(zn,{heading:(0,c._t)("labs_mjolnir|personal_heading"),description:(0,c._t)("labs_mjolnir|personal_description",{myBanList:(0,c._t)("labs_mjolnir|room_name")})},this.renderPersonalBanListRules(),s.createElement("form",{onSubmit:this.onAddPersonalRule,autoComplete:"off"},s.createElement(yi.A,{type:"text",label:(0,c._t)("labs_mjolnir|personal_new_label"),placeholder:(0,c._t)("labs_mjolnir|personal_new_placeholder"),value:this.state.newPersonalRule,onChange:this.onPersonalRuleChanged}),s.createElement(Ve.A,{kind:"primary",onClick:this.onAddPersonalRule,disabled:this.state.busy},(0,c._t)("action|ignore")))),s.createElement(zn,{heading:(0,c._t)("labs_mjolnir|lists_heading"),description:s.createElement(s.Fragment,null,s.createElement("strong",{className:"warning"},(0,c._t)("labs_mjolnir|lists_description_1"))," ",s.createElement("span",null,(0,c._t)("labs_mjolnir|lists_description_2")))},this.renderSubscribedBanLists(),s.createElement("form",{onSubmit:this.onSubscribeList,autoComplete:"off"},s.createElement(yi.A,{type:"text",label:(0,c._t)("labs_mjolnir|lists_new_label"),value:this.state.newList,onChange:this.onNewListChanged}),s.createElement(Ve.A,{kind:"primary",onClick:this.onSubscribeList,disabled:this.state.busy},(0,c._t)("action|subscribe"))))))}}function tx(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function nx(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?tx(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):tx(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const ix=(e,t)=>async n=>{const i=S.A.getValue("Spaces.enabledMetaSpaces");await S.A.setValue("Spaces.enabledMetaSpaces",null,oe.p.ACCOUNT,nx(nx({},i),{},{[e]:n.target.checked})),Gi.A.trackInteraction(t,n,[Zd._b.Home,null,Zd._b.Orphans,Zd._b.VideoRooms].indexOf(e))},sx=()=>{const{[Zd._b.Home]:e,[Zd._b.Orphans]:t,[Zd._b.VideoRooms]:n}=(0,es.ti)("Spaces.enabledMetaSpaces"),i=(0,es.ti)("Spaces.allRoomsInHome"),o=(0,s.useMemo)(()=>d.A.get("element_call").guest_spa_url,[]),r=(0,c._t)("settings|sidebar|metaspaces_video_rooms_description")+(o?" "+(0,c._t)("settings|sidebar|metaspaces_video_rooms_description_invite_extension"):"");return s.createElement(Rn,null,s.createElement(On,null,s.createElement(zn,{heading:(0,c._t)("settings|sidebar|metaspaces_subsection"),description:(0,c._t)("settings|sidebar|spaces_explainer")},s.createElement(hs.A,{checked:!!e,onChange:ix(Zd._b.Home,"WebSettingsSidebarTabSpacesCheckbox"),className:"mx_SidebarUserSettingsTab_checkbox",disabled:e,description:(0,c._t)("settings|sidebar|metaspaces_home_description")},s.createElement(lu.A,{className:"mx_SidebarUserSettingsTab_icon"}),(0,c._t)("common|home")),s.createElement(hs.A,{checked:i,disabled:!e,onChange:async e=>{await S.A.setValue("Spaces.allRoomsInHome",null,oe.p.ACCOUNT,e.target.checked),Gi.A.trackInteraction("WebSettingsSidebarTabSpacesCheckbox",e,1)},className:"mx_SidebarUserSettingsTab_checkbox mx_SidebarUserSettingsTab_homeAllRoomsCheckbox",description:(0,c._t)("settings|sidebar|metaspaces_home_all_rooms_description")},(0,c._t)("settings|sidebar|metaspaces_home_all_rooms")),s.createElement(hs.A,{checked:!!t,onChange:ix(Zd._b.Orphans,"WebSettingsSidebarTabSpacesCheckbox"),className:"mx_SidebarUserSettingsTab_checkbox",description:(0,c._t)("settings|sidebar|metaspaces_orphans_description")},(0,c._t)("settings|sidebar|metaspaces_orphans")),S.A.getValue("feature_video_rooms")&&s.createElement(hs.A,{checked:!!n,onChange:ix(Zd._b.VideoRooms,"WebSettingsSidebarTabSpacesCheckbox"),className:"mx_SidebarUserSettingsTab_checkbox",description:r},s.createElement(om.A,{className:"mx_SidebarUserSettingsTab_icon"}),(0,c._t)("settings|sidebar|metaspaces_video_rooms")))))};var ox=n("./src/accessibility/KeyboardShortcutUtils.ts");const rx=Object.entries(mc.R6).filter(([e])=>e!==mc.md.LABS||Kb()),ax=({name:e})=>{const t=(0,ox.Lt)(e),n=(0,ox.Tz)(e);return t&&n?s.createElement("li",{className:"mx_KeyboardShortcut_shortcutRow"},t,s.createElement(Qu.S,{value:n})):null},lx=({categoryName:e,category:t})=>t.categoryLabel?s.createElement(zn,{heading:(0,c._t)(t.categoryLabel),key:e},s.createElement("ul",{className:"mx_KeyboardShortcut_shortcutList"},t.settingNames.map(e=>s.createElement(ax,{key:e,name:e})))):null,cx=()=>s.createElement(Rn,null,s.createElement(On,null,rx.map(([e,t])=>s.createElement(lx,{key:e,categoryName:e,category:t}))));var dx=n("../../node_modules/.pnpm/matrix-js-sdk@42.0.0/node_modules/matrix-js-sdk/src/rendezvous/index.ts");const mx=["value","options","selectedLabel","className"],ux=(e,t)=>n=>{const i=e.find(({id:e})=>e===n);return i?t?`${t}: ${i.label}`:i.label:null},px=e=>{let{value:t,options:n,selectedLabel:i,className:o}=e,r=(0,v.A)(e,mx);return s.createElement(Du.A,(0,xn.A)({},r,{value:t,className:un()("mx_FilterDropdown",o),getShortOption:ux(n,i)}),n.map(({id:e,label:n,description:i})=>s.createElement("div",{className:"mx_FilterDropdown_option",key:e},e===t&&s.createElement(Je.A,{className:"mx_FilterDropdown_optionSelectedIcon"}),s.createElement("span",{className:"mx_FilterDropdown_optionLabel"},n),!!i&&s.createElement("span",{className:"mx_FilterDropdown_optionDescription"},i))))},hx=["checked","disabled","onChange","title","tooltip"],gx=e=>{let{checked:t,disabled:n=!1,onChange:i,title:o,tooltip:r}=e,a=(0,v.A)(e,hx);const l=un()({mx_ToggleSwitch:!0,mx_ToggleSwitch_on:t,mx_ToggleSwitch_enabled:!n});return s.createElement(Ve.A,(0,xn.A)({},a,{className:l,onClick:()=>{n||i(!t)},role:"switch","aria-label":o,"aria-checked":t,"aria-disabled":n,title:r}),s.createElement("div",{className:"mx_ToggleSwitch_ball"}))};n.dn(gx);const vx=["title","description"],_x=e=>{let{title:t,description:n}=e,i=(0,v.A)(e,vx);return s.createElement(Ve.A,(0,xn.A)({},i,{element:"button",kind:"link_inline",onClick:()=>{X.Ay.createDialog(tp.A,{title:t,description:n,button:(0,c._t)("action|got_it"),hasCloseButton:!0})},className:"mx_LearnMore_button"}),(0,c._t)("action|learn_more"))},fx=({device:e,saveDeviceName:t,stopEditing:n})=>{const[i,o]=(0,s.useState)(e.display_name||""),[r,a]=(0,s.useState)(!1),[l,d]=(0,s.useState)(null);(0,s.useEffect)(()=>{o(e.display_name||"")},[e.display_name]);const m=async e=>{a(!0),d(null),e.preventDefault();try{await t(i),n()}catch{d((0,c._t)("settings|sessions|error_set_name")),a(!1)}},u=`device-rename-${e.device_id}`,p=`device-rename-description-${e.device_id}`;return s.createElement("form",{"aria-disabled":r,className:"mx_DeviceDetailHeading_renameForm",onSubmit:m,method:"post"},s.createElement("p",{id:u,className:"mx_DeviceDetailHeading_renameFormHeading"},(0,c._t)("settings|sessions|rename_form_heading")),s.createElement("div",null,s.createElement(yi.A,{type:"text",value:i,autoComplete:"off",onChange:e=>o(e.target.value),autoFocus:!0,disabled:r,"aria-labelledby":u,"aria-describedby":p,className:"mx_DeviceDetailHeading_renameFormInput",maxLength:100}),s.createElement(Is,{id:p},(0,c._t)("settings|sessions|rename_form_caption"),s.createElement(_x,{title:(0,c._t)("settings|sessions|rename_form_learn_more"),description:s.createElement(s.Fragment,null,s.createElement("p",null,(0,c._t)("settings|sessions|rename_form_learn_more_description_1")),s.createElement("p",null,(0,c._t)("settings|sessions|rename_form_learn_more_description_2")))}),!!l&&s.createElement("span",{className:"mx_DeviceDetailHeading_renameFormError"},l))),s.createElement("div",{className:"mx_DeviceDetailHeading_renameFormButtons"},s.createElement(Ve.A,{onClick:m,kind:"primary",disabled:r},(0,c._t)("action|save")),s.createElement(Ve.A,{onClick:n,kind:"secondary",disabled:r},(0,c._t)("action|cancel")),r&&s.createElement(Be.A,{size:16})))},yx=({device:e,saveDeviceName:t})=>{const[n,i]=(0,s.useState)(!1);return n?s.createElement(fx,{device:e,saveDeviceName:t,stopEditing:()=>i(!1)}):s.createElement("div",{className:"mx_DeviceDetailHeading"},s.createElement(In.A,{size:"4"},e.display_name||e.device_id),s.createElement(Ve.A,{kind:"link_inline",onClick:()=>i(!0),className:"mx_DeviceDetailHeading_renameCta"},(0,c._t)("action|rename")))};var Ex=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/shield.js");const wx={[Ot.Inactive]:Mt,[Ot.Verified]:Ex.A,[Ot.Unverified]:we.A,[Ot.Unverifiable]:we.A},Sx=({variation:e})=>{const t=wx[e];return s.createElement("div",{className:un()("mx_DeviceSecurityCard_icon",e)},s.createElement(t,{height:16,width:16}))},bx=({variation:e,heading:t,description:n,children:i})=>s.createElement("div",{className:"mx_DeviceSecurityCard"},s.createElement(Sx,{variation:e}),s.createElement("div",{className:"mx_DeviceSecurityCard_content"},s.createElement("p",{className:"mx_DeviceSecurityCard_heading"},t),s.createElement("p",{className:"mx_DeviceSecurityCard_description"},n),!!i&&s.createElement("div",{className:"mx_DeviceSecurityCard_actions"},i))),Ax={[Ot.Verified]:{title:(0,c._t)("settings|sessions|verified_sessions"),description:s.createElement(s.Fragment,null,s.createElement("p",null,(0,c._t)("settings|sessions|verified_sessions_explainer_1")),s.createElement("p",null,(0,c._t)("settings|sessions|verified_sessions_explainer_2")))},[Ot.Unverified]:{title:(0,c._t)("settings|sessions|unverified_sessions"),description:s.createElement(s.Fragment,null,s.createElement("p",null,(0,c._t)("settings|sessions|unverified_sessions_explainer_1")),s.createElement("p",null,(0,c._t)("settings|sessions|unverified_sessions_explainer_2")))},[Ot.Unverifiable]:{title:(0,c._t)("settings|sessions|unverified_session"),description:s.createElement(s.Fragment,null,s.createElement("p",null,(0,c._t)("settings|sessions|unverified_session_explainer_1")),s.createElement("p",null,(0,c._t)("settings|sessions|unverified_session_explainer_2")),s.createElement("p",null,(0,c._t)("settings|sessions|unverified_session_explainer_3")))},[Ot.Inactive]:{title:(0,c._t)("settings|sessions|inactive_sessions"),description:s.createElement(s.Fragment,null,s.createElement("p",null,(0,c._t)("settings|sessions|inactive_sessions_explainer_1")),s.createElement("p",null,(0,c._t)("settings|sessions|inactive_sessions_explainer_2")))}},Cx=({variation:e})=>{const{title:t,description:n}=Ax[e];return s.createElement(_x,{title:t,description:n})},xx=({device:e,isCurrentDevice:t,onVerifyDevice:n})=>{const i=((e,t)=>{if(e.isVerified){const e=t?(0,c._t)("settings|sessions|device_verified_description_current"):(0,c._t)("settings|sessions|device_verified_description");return{variation:Ot.Verified,heading:(0,c._t)("settings|sessions|verified_session"),description:s.createElement(s.Fragment,null,e,s.createElement(Cx,{variation:Ot.Verified}))}}if(null===e.isVerified)return{variation:Ot.Unverified,heading:(0,c._t)("settings|sessions|unverified_session"),description:s.createElement(s.Fragment,null,(0,c._t)("settings|sessions|unverified_session_explainer_1"),s.createElement(Cx,{variation:Ot.Unverifiable}))};const n=t?(0,c._t)("settings|sessions|device_unverified_description_current"):(0,c._t)("settings|sessions|device_unverified_description");return{variation:Ot.Unverified,heading:(0,c._t)("settings|sessions|unverified_session"),description:s.createElement(s.Fragment,null,n,s.createElement(Cx,{variation:Ot.Unverified}))}})(e,t);return s.createElement(bx,i,!1===e.isVerified&&!!n&&s.createElement(Ve.A,{kind:"primary",onClick:n},(0,c._t)("settings|sessions|verify_session")))};var kx=function(e){return e.Profile="org.matrix.profile",e.DevicesList="org.matrix.devices_list",e.DeviceView="org.matrix.device_view",e.DeviceDelete="org.matrix.device_delete",e.AccountDeactivate="org.matrix.account_deactivate",e.CrossSigningReset="org.matrix.cross_signing_reset",e}(kx||{});const Rx=(e,t,n)=>{let i;null!=t&&t.includes(kx.DeviceView)?i=kx.DeviceView:null!=t&&t.includes("org.matrix.session_view")?i="org.matrix.session_view":null!=t&&t.includes("session_view")&&(i="session_view"),i||(i=t?kx.DeviceView:"org.matrix.session_view");const s=((e,t)=>{const n=new URL(e);return n.searchParams.set("action",t),n})(e,i);return s.searchParams.set("device_id",n),s.toString()};function Ix(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function Tx(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ix(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ix(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Px(e,t){return e?!!e[r.crK.name]:!t||!t.is_silenced}function Nx(e,t,n){return!t&&!(!e||n)}const Dx=({device:e,pusher:t,localNotificationSettings:n,isSigningOut:i,onVerifyDevice:o,onSignOutDevice:r,saveDeviceName:a,setPushNotifications:l,supportsMSC3881:d,className:m,isCurrentDevice:u,accountManagementEndpoint:p,accountManagementActionsSupported:h})=>{const g=[{id:"session",values:[{label:(0,c._t)("settings|sessions|session_id"),value:e.device_id},{label:(0,c._t)("settings|sessions|last_activity"),value:e.last_seen_ts&&(0,Bt.Yq)(new Date(e.last_seen_ts))}]},{id:"application",heading:(0,c._t)("common|application"),values:[{label:(0,c._t)("common|name"),value:e.appName},{label:(0,c._t)("common|version"),value:e.appVersion},{label:(0,c._t)("settings|sessions|url"),value:e.url}]},{id:"device",heading:(0,c._t)("common|device"),values:[{label:(0,c._t)("common|model"),value:e.deviceModel},{label:(0,c._t)("settings|sessions|os"),value:e.deviceOperatingSystem},{label:(0,c._t)("settings|sessions|browser"),value:e.client},{label:(0,c._t)("settings|sessions|ip"),value:e.last_seen_ip}]}].map(e=>Tx(Tx({},e),{},{values:e.values.filter(e=>!!e.value)})).filter(e=>e.values.length),v=!!t||!!n;return s.createElement("div",{className:un()("mx_DeviceDetails",m)},s.createElement("section",{className:"mx_DeviceDetails_section"},s.createElement(yx,{device:e,saveDeviceName:a}),s.createElement(xx,{device:e,onVerifyDevice:o,isCurrentDevice:u})),!p&&s.createElement("section",{className:"mx_DeviceDetails_section"},s.createElement("p",{className:"mx_DeviceDetails_sectionHeading"},(0,c._t)("settings|sessions|details_heading")),g.map(({heading:e,values:t,id:n},i)=>s.createElement("table",{className:"mx_DeviceDetails_metadataTable",key:i},e&&s.createElement("thead",null,s.createElement("tr",null,s.createElement("th",null,e))),s.createElement("tbody",null,t.map(({label:e,value:t})=>s.createElement("tr",{key:e},s.createElement("td",{className:"mxDeviceDetails_metadataLabel"},e),s.createElement("td",{className:"mxDeviceDetails_metadataValue"},t))))))),v&&s.createElement("section",{className:"mx_DeviceDetails_section mx_DeviceDetails_pushNotifications"},s.createElement(gx,{checked:Px(t,n),disabled:Nx(t,n,d),onChange:t=>null==l?void 0:l(e.device_id,t),title:(0,c._t)("settings|sessions|push_toggle")}),s.createElement("p",{className:"mx_DeviceDetails_sectionHeading"},(0,c._t)("settings|sessions|push_heading"),s.createElement("small",{className:"mx_DeviceDetails_sectionSubheading"},(0,c._t)("settings|sessions|push_subheading")))),s.createElement("section",{className:"mx_DeviceDetails_section"},p&&!u?s.createElement(Ve.A,{element:"a",onClick:null,kind:"link_inline",href:Rx(p,h,e.device_id),target:"_blank"},s.createElement("span",{className:"mx_DeviceDetails_signOutButtonContent"},(0,c._t)("settings|sessions|manage"))):s.createElement(Ve.A,{onClick:r,kind:"danger_inline",disabled:i},s.createElement("span",{className:"mx_DeviceDetails_signOutButtonContent"},(0,c._t)("settings|sessions|sign_out"),i&&s.createElement(Be.A,{size:16})))))},Mx=["isExpanded"],Ox=e=>{let{isExpanded:t}=e,n=(0,v.A)(e,Mx);const i=t?(0,c._t)("settings|sessions|hide_details"):(0,c._t)("settings|sessions|show_details");return s.createElement(Ve.A,(0,xn.A)({},n,{"aria-label":i,title:i,kind:"icon",className:un()("mx_DeviceExpandDetailsButton",{mx_DeviceExpandDetailsButton_expanded:t})}),s.createElement(uu.A,{className:"mx_DeviceExpandDetailsButton_icon"}))};var Fx=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/computer.js"),Lx=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/mobile.js"),Ux=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/web-browser.js");const Vx={[Pt.b.Desktop]:Fx.A,[Pt.b.Mobile]:Lx.A,[Pt.b.Web]:Ux.A,[Pt.b.Unknown]:Ae.A},Bx={[Pt.b.Desktop]:(0,c.AO)("settings|sessions|desktop_session"),[Pt.b.Mobile]:(0,c.AO)("settings|sessions|mobile_session"),[Pt.b.Web]:(0,c.AO)("settings|sessions|web_session"),[Pt.b.Unknown]:(0,c.AO)("settings|sessions|unknown_session")},jx=({isVerified:e,isSelected:t,deviceType:n})=>{const i=Vx[n]||Vx[Pt.b.Unknown],o=(0,c._t)(Bx[n]||Bx[Pt.b.Unknown]);return s.createElement("div",{className:un()("mx_DeviceTypeIcon",{mx_DeviceTypeIcon_selected:t})},s.createElement("div",{className:"mx_DeviceTypeIcon_deviceIconWrapper"},s.createElement(i,{className:"mx_DeviceTypeIcon_deviceIcon",role:"img","aria-label":o})),e?s.createElement(Ex.A,{className:un()("mx_DeviceTypeIcon_verificationIcon","verified"),role:"img","aria-label":(0,c._t)("common|verified")}):s.createElement(we.A,{className:un()("mx_DeviceTypeIcon_verificationIcon","unverified"),role:"img","aria-label":(0,c._t)("common|unverified")}))};var Hx=n("./src/utils/NativeEventUtils.ts");const zx=({device:e})=>s.createElement(In.A,{as:"h3",size:"4"},e.display_name||e.device_id),Wx=({device:e,children:t,isSelected:n,onClick:i})=>s.createElement("div",{className:un()("mx_DeviceTile",{mx_DeviceTile_interactive:!!i}),onClick:i},s.createElement(jx,{isVerified:e.isVerified,isSelected:n,deviceType:e.deviceType}),s.createElement("div",{className:"mx_DeviceTile_info"},s.createElement(zx,{device:e}),s.createElement("div",{className:"mx_DeviceTile_metadata"},s.createElement(zt,{device:e}))),s.createElement("div",{className:"mx_DeviceTile_actions",onClick:(0,Hx.Z)(()=>{})},t)),Jx=({children:e,device:t,isSelected:n,onSelect:i,onClick:o})=>s.createElement("div",{className:"mx_SelectableDeviceTile"},s.createElement(hs.A,{checked:n,onChange:i,className:"mx_SelectableDeviceTile_checkbox",id:`device-tile-checkbox-${t.device_id}`},s.createElement(Wx,{device:t,onClick:o,isSelected:n},e))),Gx=["selectedDeviceCount","isAllSelected","isSelectDisabled","toggleSelectAll","children"],Kx=e=>{let{selectedDeviceCount:t,isAllSelected:n,isSelectDisabled:i,toggleSelectAll:o,children:r}=e,a=(0,v.A)(e,Gx);const l=n?(0,c._t)("common|deselect_all"):(0,c._t)("common|select_all");return s.createElement("div",(0,xn.A)({className:"mx_FilteredDeviceListHeader"},a),!i&&s.createElement(Ys.m,{label:l,placement:"top",isTriggerInteractive:!1},s.createElement(hs.A,{checked:n,onChange:o,id:"device-select-all-checkbox","aria-label":l})),s.createElement("span",{className:"mx_FilteredDeviceListHeader_label"},t>0?(0,c._t)("settings|sessions|n_sessions_selected",{count:t}):(0,c._t)("settings|sessions|title")),r)},qx=(e,t)=>t.includes(e),$x=(e,t)=>(t.last_seen_ts||0)-(e.last_seen_ts||0)||(e.display_name||e.device_id).localeCompare(t.display_name||t.device_id),Yx="ALL",Qx=({filter:e})=>{if((e=>!!e&&[Ot.Inactive,Ot.Unverified,Ot.Verified].includes(e))(e)){const t={[Ot.Verified]:{title:(0,c._t)("settings|sessions|verified_sessions"),description:(0,c._t)("settings|sessions|verified_sessions_list_description")},[Ot.Unverified]:{title:(0,c._t)("settings|sessions|unverified_sessions"),description:(0,c._t)("settings|sessions|unverified_sessions_list_description")},[Ot.Unverifiable]:{title:(0,c._t)("settings|sessions|unverified_session"),description:(0,c._t)("settings|sessions|unverified_session_explainer_1")},[Ot.Inactive]:{title:(0,c._t)("settings|sessions|inactive_sessions"),description:(0,c._t)("settings|sessions|inactive_sessions_list_description",{inactiveAgeDays:90})}},{title:n,description:i}=t[e];return s.createElement("div",{className:"mx_FilteredDeviceList_securityCard"},s.createElement(bx,{variation:e,heading:n,description:s.createElement("span",null,i,s.createElement(Cx,{variation:e}))}))}return null},Xx=({filter:e,clearFilter:t})=>s.createElement("div",{className:"mx_FilteredDeviceList_noResults"},(e=>{switch(e){case Ot.Verified:return(0,c._t)("settings|sessions|no_verified_sessions");case Ot.Unverified:return(0,c._t)("settings|sessions|no_unverified_sessions");case Ot.Inactive:return(0,c._t)("settings|sessions|no_inactive_sessions");default:return(0,c._t)("settings|sessions|no_sessions")}})(e),!!e&&s.createElement(s.Fragment,null," ",s.createElement(Ve.A,{kind:"link_inline",onClick:t},(0,c._t)("action|show_all")))),Zx=({device:e,pusher:t,localNotificationSettings:n,isExpanded:i,isSigningOut:o,isSelected:r,onDeviceExpandToggle:a,onSignOutDevice:l,saveDeviceName:c,onRequestDeviceVerification:d,setPushNotifications:m,toggleSelected:u,supportsMSC3881:p,isSelectDisabled:h,accountManagementEndpoint:g,accountManagementActionsSupported:v})=>{const _=s.createElement(s.Fragment,null,o&&s.createElement(Be.A,{size:16}),s.createElement(Ox,{isExpanded:i,onClick:a}));return s.createElement("li",{className:"mx_FilteredDeviceList_listItem"},h?s.createElement(Wx,{device:e,onClick:a},_):s.createElement(Jx,{isSelected:r,onSelect:u,onClick:a,device:e},_),i&&s.createElement(Dx,{device:e,pusher:t,localNotificationSettings:n,isSigningOut:o,onVerifyDevice:d,onSignOutDevice:l,saveDeviceName:c,setPushNotifications:m,supportsMSC3881:p,className:"mx_FilteredDeviceList_deviceDetails",accountManagementEndpoint:g,accountManagementActionsSupported:v}))},ek=({devices:e,pushers:t,localNotificationSettings:n,filter:i,expandedDeviceIds:o,signingOutDeviceIds:a,selectedDeviceIds:l,onFilterChange:d,onDeviceExpandToggle:m,saveDeviceName:u,onSignOutDevices:p,onRequestDeviceVerification:h,setPushNotifications:g,setSelectedDeviceIds:v,supportsMSC3881:_,accountManagementEndpoint:f,accountManagementActionsSupported:y,ref:E})=>{const w=((e,t)=>Vt(Object.values(e),t?[t]:[]).sort($x))(e,i);function S(e){return t.find(t=>t[r.VTI.name]===e.device_id)}const b=[{id:Yx,label:(0,c._t)("settings|sessions|filter_all")},{id:Ot.Verified,label:(0,c._t)("common|verified"),description:(0,c._t)("settings|sessions|filter_verified_description")},{id:Ot.Unverified,label:(0,c._t)("common|unverified"),description:(0,c._t)("settings|sessions|filter_unverified_description")},{id:Ot.Inactive,label:(0,c._t)("settings|sessions|filter_inactive"),description:(0,c._t)("settings|sessions|filter_inactive_description",{inactiveAgeDays:90})}],A=l.length>=w.length,C=!!a.length;return s.createElement("div",{className:"mx_FilteredDeviceList",ref:E},s.createElement(Kx,{selectedDeviceCount:l.length,isAllSelected:A,toggleSelectAll:()=>{v(A?[]:w.map(e=>e.device_id))},isSelectDisabled:!!f},l.length?s.createElement(s.Fragment,null,s.createElement(Ve.A,{kind:"content_inline",disabled:C,onClick:()=>v([]),className:"mx_FilteredDeviceList_headerButton"},(0,c._t)("action|cancel")),s.createElement(Ve.A,{kind:"danger_inline",disabled:C,onClick:()=>p(l),className:"mx_FilteredDeviceList_headerButton"},C&&s.createElement(Be.A,{size:16}),(0,c._t)("settings|sessions|sign_out_n_sessions",{count:l.length}))):s.createElement(px,{id:"device-list-filter",label:(0,c._t)("settings|sessions|filter_label"),value:i||Yx,onOptionChange:e=>{d(e===Yx?void 0:e)},options:b,selectedLabel:(0,c._t)("action|show")})),w.length?s.createElement(Qx,{filter:i}):s.createElement(Xx,{filter:i,clearFilter:()=>d(void 0)}),s.createElement("ol",{className:"mx_FilteredDeviceList_list"},w.map(e=>s.createElement(Zx,{key:e.device_id,device:e,pusher:S(e),localNotificationSettings:n.get(e.device_id),isExpanded:o.includes(e.device_id),isSigningOut:a.includes(e.device_id),isSelected:qx(e.device_id,l),isSelectDisabled:!!f,onDeviceExpandToggle:()=>m(e.device_id),onSignOutDevice:()=>p([e.device_id]),saveDeviceName:t=>u(e.device_id,t),onRequestDeviceVerification:h?()=>h(e.device_id):void 0,setPushNotifications:g,toggleSelected:()=>{return t=e.device_id,void(qx(t,l)?v(l.filter(e=>e!==t)):v([...l,t]));var t},supportsMSC3881:_,accountManagementEndpoint:f,accountManagementActionsSupported:y}))))},tk=["options","title"],nk=e=>{let{options:t,title:n}=e,i=(0,v.A)(e,tk);const[o,r,a,l]=(0,tr.EF)();return s.createElement(s.Fragment,null,s.createElement(tr.VJ,(0,xn.A)({},i,{onClick:a,title:n,isExpanded:o,ref:r}),s.createElement(uc.A,{className:"mx_KebabContextMenu_icon"})),o&&s.createElement(yu.Ay,(0,xn.A)({onFinished:l,compact:!0,rightAligned:!0,closeOnInteraction:!0},{left:(c=r.current.getBoundingClientRect()).left+window.scrollX+c.width,top:c.bottom+window.scrollY,chevronFace:tr.t4.None}),s.createElement(yu.tx,null,t)));var c},ik=({onSignOutCurrentDevice:e,signOutAllOtherSessions:t,otherSessionsCount:n,disabled:i})=>{const o=[s.createElement(yu.R$,{key:"sign-out",label:(0,c._t)("action|sign_out"),onClick:e,isDestructive:!0}),...t?[s.createElement(yu.R$,{key:"sign-out-all-others",label:(0,c._t)("settings|sessions|sign_out_all_other_sessions",{otherSessionsCount:n}),onClick:t,isDestructive:!0})]:[]];return s.createElement(Vn,{heading:(0,c._t)("settings|sessions|current_session")},s.createElement(nk,{disabled:i,title:(0,c._t)("common|options"),options:o}))},sk=({device:e,isLoading:t,isSigningOut:n,localNotificationSettings:i,otherSessionsCount:o,setPushNotifications:r,onVerifyCurrentDevice:a,onSignOutCurrentDevice:l,signOutAllOtherSessions:c,saveDeviceName:d,accountManagementEndpoint:m,accountManagementActionsSupported:u})=>{const[p,h]=(0,s.useState)(!1);return s.createElement(zn,{heading:s.createElement(ik,{onSignOutCurrentDevice:l,signOutAllOtherSessions:c,otherSessionsCount:o,disabled:t||!e||n})},t&&!e&&s.createElement(Be.A,null),!!e&&s.createElement(s.Fragment,null,s.createElement(Wx,{device:e,onClick:()=>h(!p)},s.createElement(Ox,{isExpanded:p,onClick:()=>h(!p)})),p?s.createElement(Dx,{device:e,localNotificationSettings:i,setPushNotifications:r,isSigningOut:n,onVerifyDevice:a,onSignOutDevice:l,saveDeviceName:d,className:"mx_CurrentDeviceSection_deviceDetails",accountManagementEndpoint:m,accountManagementActionsSupported:u,isCurrentDevice:!0}):s.createElement(s.Fragment,null,s.createElement("br",null),s.createElement(xx,{device:e,onVerifyDevice:a,isCurrentDevice:!0}))))},ok=({devices:e,currentDeviceId:t,goToFilteredList:n})=>{const i=Object.values(e),o=Vt(i,[Ot.Unverified]).filter(e=>e.device_id!==t).length,r=Vt(i,[Ot.Inactive]).length;if(!(o|r))return null;return s.createElement(zn,{heading:(0,c._t)("settings|sessions|security_recommendations"),description:(0,c._t)("settings|sessions|security_recommendations_description")},!!o&&s.createElement(bx,{variation:Ot.Unverified,heading:(0,c._t)("settings|sessions|unverified_sessions"),description:s.createElement(s.Fragment,null,(0,c._t)("settings|sessions|unverified_sessions_list_description"),s.createElement(Cx,{variation:Ot.Unverified}))},s.createElement(Ve.A,{kind:"link_inline",onClick:()=>n(Ot.Unverified)},(0,c._t)("action|view_all")+` (${o})`)),!!r&&s.createElement(s.Fragment,null,!!o&&s.createElement("div",{className:"mx_SecurityRecommendations_spacing"}),s.createElement(bx,{variation:Ot.Inactive,heading:(0,c._t)("settings|sessions|inactive_sessions"),description:s.createElement(s.Fragment,null,(0,c._t)("settings|sessions|inactive_sessions_list_description",{inactiveAgeDays:90}),s.createElement(Cx,{variation:Ot.Inactive}))},s.createElement(Ve.A,{kind:"link_inline",onClick:()=>n(Ot.Inactive)},(0,c._t)("action|view_all")+` (${r})`))))},rk=(e,t)=>async n=>e.deleteMultipleDevices(t,null!=n?n:void 0);var ak=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/qr-code.js");const lk=({onShowQr:e,isCrossSigningReady:t})=>{const n=(0,je.nH)(),i=(0,De.e)(()=>async function(e,t){var n;return await(0,dx.F9)(e)&&!(null===(n=e.getCrypto())||void 0===n||!n.exportSecretsBundle)&&t}(n,!!t),[n,t],!1);return s.createElement(zn,{heading:(0,c._t)("settings|sessions|sign_in_with_qr")},s.createElement("div",{className:"mx_LoginWithQRSection"},s.createElement("p",{className:"mx_SettingsTab_subsectionText"},(0,c._t)("settings|sessions|sign_in_with_qr_description")),s.createElement(Ve.A,{onClick:e,kind:"primary",disabled:!i},s.createElement(ak.A,{height:20,width:20}),(0,c._t)("settings|sessions|sign_in_with_qr_button")),!i&&s.createElement(Pu.E,{size:"sm"},(0,c._t)("settings|sessions|sign_in_with_qr_unsupported"))))};var ck=n("./src/components/views/auth/LoginWithQR-types.ts");const dk=({otherSessionsCount:e,disabled:t,signOutAllOtherSessions:n})=>{const i=(0,Me.Bo)([n?s.createElement(yu.R$,{key:"sign-out-all-others",label:(0,c._t)("settings|sessions|sign_out_n_sessions",{count:e}),onClick:n,isDestructive:!0}):null]);return s.createElement(Vn,{heading:(0,c._t)("settings|sessions|other_sessions_heading")},!!i.length&&s.createElement(nk,{disabled:t,title:(0,c._t)("common|options"),options:i}))};function mk(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var i=n.call(e,t||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}const uk=(0,s.lazy)(()=>n.e(5844).then(n.bind(n,"./src/components/views/auth/LoginWithQR.tsx"))),pk=(e,t,n,i)=>{const[a,l]=(0,s.useState)([]);return{onSignOutCurrentDevice:()=>{X.Ay.createDialog(QS,{},void 0,!1,!0)},onSignOutOtherDevices:async a=>{if(!a.length)return;if(!await(async e=>{const{finished:t}=X.Ay.createDialog(on.A,{title:(0,c._t)("settings|sessions|sign_out_n_sessions",{count:e}),description:s.createElement("div",null,s.createElement("p",null,(0,c._t)("settings|sessions|sign_out_confirm_description",{count:e}))),cancelButton:(0,c._t)("action|cancel"),button:(0,c._t)("settings|sessions|sign_out_n_sessions",{count:e})}),[n]=await t;return!!n})(a.length))return;let d=!1;try{if(l(e=>[...e,...a]),n){const[e]=a,t=Rx(n,i,e);window.open(t,"_blank")}else{const t=Promise.withResolvers();await(async(e,t,n)=>{if(t.length)try{await rk(e,t)(null),await n(!0)}catch(s){var i;if(!(s instanceof r.upv&&401===s.httpStatus&&null!==(i=s.data)&&void 0!==i&&i.flows))throw s;const o=t.length,a={[qe.av.PHASE_PREAUTH]:{title:(0,c._t)("auth|uia|sso_title"),body:(0,c._t)("settings|sessions|confirm_sign_out_sso",{count:o}),continueText:(0,c._t)("auth|sso"),continueKind:"primary"},[qe.av.PHASE_POSTAUTH]:{title:(0,c._t)("settings|sessions|confirm_sign_out",{count:o}),body:(0,c._t)("settings|sessions|confirm_sign_out_body",{count:o}),continueText:(0,c._t)("settings|sessions|confirm_sign_out_continue",{count:o}),continueKind:"danger"}},{finished:l}=X.Ay.createDialog($e.A,{title:(0,c._t)("common|authentication"),matrixClient:e,authData:s.data,makeRequest:rk(e,t),aestheticsForStagePhases:{[qe.av.LOGIN_TYPE]:a,[qe.av.UNSTABLE_LOGIN_TYPE]:a}});l.then(([e])=>n(e))}})(e,a,async e=>{t.resolve(!!e)}),d=await t.promise}}catch(e){o.vF.error("Error deleting sessions",e)}finally{d&&await t(),l(e=>e.filter(e=>!a.includes(e)))}},signingOutDeviceIds:a}},hk=({showMsc4108QrCode:e})=>{var t;const{devices:n,dehydratedDeviceId:i,pushers:o,localNotificationSettings:r,currentDeviceId:a,isLoadingDeviceList:l,requestDeviceVerification:d,refreshDevices:m,saveDeviceName:u,setPushNotifications:p,supportsMSC3881:h}=jA(),[g,_]=(0,s.useState)(),[f,y]=(0,s.useState)([]),[E,w]=(0,s.useState)([]),S=(0,s.useRef)(null),b=(0,s.useRef)(void 0),A=(0,s.useContext)(Ro.A).client,C=(0,De.e)(async()=>{const e=await A.getAuthMetadata().catch(()=>{});return{endpoint:null==e?void 0:e.account_management_uri,actionsSupported:null==e?void 0:e.account_management_actions_supported}},[A]),x=!(null==C||!C.endpoint),k=null==A?void 0:A.getUserId(),R=k&&(null==A?void 0:A.getUser(k))||void 0,I=(0,De.e)(async()=>{var e,t;return null!==(e=null===(t=A.getCrypto())||void 0===t?void 0:t.isCrossSigningReady())&&void 0!==e&&e},[A]),{[a]:T}=n,P=(0,v.A)(n,[a].map(mk));i&&null!==(t=P[i])&&void 0!==t&&t.isVerified&&delete P[i];const N=Object.keys(P).length,D=N>0,M=(0,s.useCallback)(e=>{if(!d)return;const t=d(e),{finished:n}=X.Ay.createDialog(Ie,{verificationRequestPromise:t,member:R});n.then(async()=>{(await t).cancel(),await m()})},[d,m,R]),{onSignOutCurrentDevice:O,onSignOutOtherDevices:F,signingOutDeviceIds:L}=pk(A,async()=>{await m(),w([])},null==C?void 0:C.endpoint,null==C?void 0:C.actionsSupported);(0,s.useEffect)(()=>()=>{clearTimeout(b.current)},[b]),(0,s.useEffect)(()=>{w([])},[g,w]);const U=D&&!x?()=>{F(Object.keys(P))}:void 0,[V,B]=(0,s.useState)(e?ck.Kt.Show:null),j=(0,s.useCallback)(()=>{B(null)},[B]),H=(0,s.useCallback)(()=>{B(ck.Kt.Show)},[B]);return V?s.createElement(s.Suspense,{fallback:s.createElement(Be.A,null)},s.createElement(uk,{mode:V,onFinished:j,client:A,intent:dx.E$.RECIPROCATE_LOGIN_ON_EXISTING_DEVICE})):s.createElement(Rn,null,s.createElement(On,null,s.createElement(lk,{onShowQr:H,isCrossSigningReady:I}),s.createElement(ok,{devices:n,goToFilteredList:e=>{_(e),clearTimeout(b.current),b.current=window.setTimeout(()=>{var e;return null===(e=S.current)||void 0===e?void 0:e.scrollIntoView({block:"start",inline:"nearest",behavior:"smooth"})})},currentDeviceId:a}),s.createElement(sk,{device:T,localNotificationSettings:r.get(a),setPushNotifications:p,isSigningOut:L.includes(a),isLoading:l,saveDeviceName:e=>u(a,e),onVerifyCurrentDevice:()=>{const{finished:e}=X.Ay.createDialog(at);e.then(m)},onSignOutCurrentDevice:O,signOutAllOtherSessions:U,otherSessionsCount:N,accountManagementEndpoint:null==C?void 0:C.endpoint,accountManagementActionsSupported:null==C?void 0:C.actionsSupported}),D&&s.createElement(zn,{heading:s.createElement(dk,{otherSessionsCount:N,signOutAllOtherSessions:U,disabled:!!L.length}),description:(0,c._t)("settings|sessions|best_security_note"),stretchContent:!0},s.createElement(ek,{devices:P,pushers:o,localNotificationSettings:r,filter:g,expandedDeviceIds:f,signingOutDeviceIds:L,selectedDeviceIds:E,setSelectedDeviceIds:w,onFilterChange:_,onDeviceExpandToggle:e=>{f.includes(e)?y(f.filter(t=>t!==e)):y([...f,e])},onRequestDeviceVerification:d?M:void 0,onSignOutDevices:F,saveDeviceName:u,setPushNotifications:p,ref:S,supportsMSC3881:h,accountManagementEndpoint:null==C?void 0:C.endpoint,accountManagementActionsSupported:null==C?void 0:C.actionsSupported}))))};function gk({onChangeRecoveryKeyClick:e}){const t=(0,je.nH)(),n=(0,De.e)(async()=>Boolean(await t.secretStorage.getDefaultKeyId())?"good":"missing_recovery_key",[t],"loading"),i="missing_recovery_key"===n;let o;switch(n){case"loading":o=s.createElement(We.Z,{"aria-label":(0,c._t)("common|loading")});break;case"missing_recovery_key":o=s.createElement(xe.$,{size:"md",kind:"primary",Icon:be.A,onClick:()=>e(!0)},(0,c._t)("settings|encryption|recovery|set_up_recovery"));break;case"good":o=s.createElement(xe.$,{size:"md",kind:"secondary",Icon:be.A,onClick:()=>e(!1)},(0,c._t)("settings|encryption|recovery|change_recovery_key"))}return s.createElement(On,{legacy:!1,heading:s.createElement(Pn,{hasRecommendedTag:i,label:(0,c._t)("settings|encryption|recovery|title")}),subHeading:(0,c._t)("settings|encryption|recovery|description")},o)}var vk=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Breadcrumb/Breadcrumb.js"),_k=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Form/Controls/Password/Password.js"),fk=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/copy.js"),yk=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/key-solid.js");function Ek({userHasRecoveryKey:e,onFinish:t,onCancelClick:n}){const i=(0,je.nH)(),[r,a]=(0,s.useState)(e?"save_key_change_flow":"inform_user"),l=(0,s.useCallback)(()=>{o.vF.debug("ChangeRecoveryKey: user cancelled"),n()},[n]),d=(0,De.e)(()=>i.getCrypto().createRecoveryKeyFromPassphrase(),[]);if(!d)return null;let m;switch(r){case"inform_user":m=s.createElement(wk,{onContinueClick:()=>a("save_key_setup_flow"),onCancelClick:l});break;case"save_key_setup_flow":case"save_key_change_flow":m=s.createElement(Sk,{recoveryKey:d.encodedPrivateKey,onConfirmClick:()=>a(e=>"save_key_change_flow"===e?"confirm_key_change_flow":"confirm_key_setup_flow"),onCancelClick:l});break;case"confirm_key_setup_flow":case"confirm_key_change_flow":m=s.createElement(bk,{recoveryKey:d.encodedPrivateKey,onCancelClick:l,onSubmit:async()=>{const e=i.getCrypto();if(!e)return t();try{const n=ye.sharedInstance(),s=await n.keyStorageOutOfSyncNeedsBackupReset(!0);o.vF.debug(`ChangeRecoveryKey: user confirmed recovery key; now doing change. needsBackupReset: ${s}`),await n.whilePaused(async()=>{await(0,b.J6)(async()=>{await e.bootstrapSecretStorage({setupNewSecretStorage:!0,createSecretStorageKey:async()=>d}),s&&await pt(e),await(0,Ne.p)(i,{createNewKey:!0})})}),await i.setAccountData(bt,{enabled:!0}),t()}catch(e){(0,qc.tx)("Failed to set up secret storage",e)}},submitButtonLabel:"confirm_key_setup_flow"===r?(0,c._t)("settings|encryption|recovery|set_up_recovery_confirm_button"):(0,c._t)("settings|encryption|recovery|change_recovery_confirm_button")})}const u=[(0,c._t)("settings|encryption|title"),e?(0,c._t)("settings|encryption|recovery|change_recovery_key"):(0,c._t)("settings|encryption|recovery|set_up_recovery")],p=function(e){switch(e){case"inform_user":return{title:(0,c._t)("settings|encryption|recovery|set_up_recovery"),description:(0,c._t)("settings|encryption|recovery|set_up_recovery_description",{changeRecoveryKeyButton:(0,c._t)("settings|encryption|recovery|change_recovery_key")})};case"save_key_setup_flow":return{title:(0,c._t)("settings|encryption|recovery|set_up_recovery_save_key_title"),description:(0,c._t)("settings|encryption|recovery|set_up_recovery_save_key_description")};case"save_key_change_flow":return{title:(0,c._t)("settings|encryption|recovery|change_recovery_key_title"),description:(0,c._t)("settings|encryption|recovery|change_recovery_key_description")};case"confirm_key_setup_flow":return{title:(0,c._t)("settings|encryption|recovery|set_up_recovery_confirm_title"),description:(0,c._t)("settings|encryption|recovery|set_up_recovery_confirm_description")};case"confirm_key_change_flow":return{title:(0,c._t)("settings|encryption|recovery|change_recovery_confirm_title"),description:(0,c._t)("settings|encryption|recovery|change_recovery_confirm_description")}}}(r);return s.createElement(s.Fragment,null,s.createElement(vk.Q,{backLabel:(0,c._t)("action|back"),onBackClick:l,pages:u,onPageClick:l}),s.createElement(Ke.g,{Icon:yk.A,title:p.title,description:p.description,className:"mx_ChangeRecoveryKey"},m))}function wk({onContinueClick:e,onCancelClick:t}){return s.createElement(s.Fragment,null,s.createElement(Pu.E,{as:"span",weight:"medium",className:"mx_InformationPanel_description"},(0,c._t)("settings|encryption|recovery|set_up_recovery_secondary_description")),s.createElement(Qe.D,null,s.createElement(xe.$,{onClick:e},(0,c._t)("action|continue")),s.createElement(xe.$,{kind:"tertiary",onClick:t},(0,c._t)("action|cancel"))))}function Sk({recoveryKey:e,onConfirmClick:t,onCancelClick:n}){return s.createElement(s.Fragment,null,s.createElement("div",{className:"mx_KeyPanel"},s.createElement(Pu.E,{as:"span",weight:"medium"},(0,c._t)("settings|encryption|recovery|save_key_title")),s.createElement("div",null,s.createElement(Pu.E,{as:"span",className:"mx_KeyPanel_key"},e),s.createElement(Pu.E,{as:"span",size:"sm"},(0,c._t)("settings|encryption|recovery|save_key_description"))),s.createElement(Tu.K,{"aria-label":(0,c._t)("action|copy"),size:"28px",onClick:()=>(0,ir.nC)(e)},s.createElement(fk.A,null))),s.createElement(Qe.D,null,s.createElement(xe.$,{onClick:t},(0,c._t)("action|continue")),s.createElement(xe.$,{kind:"tertiary",onClick:n},(0,c._t)("action|cancel"))))}function bk({onCancelClick:e,onSubmit:t,recoveryKey:n,submitButtonLabel:i}){const[o,r]=(0,s.useState)(),[a,l]=(0,s.useState)(!1),d=!1===o;return s.createElement(Ki.b,{className:"mx_KeyForm",onSubmit:e=>{e.preventDefault(),a||(l(!0),t().finally(()=>{l(!1)}))},onChange:async e=>{e.preventDefault(),e.stopPropagation();const t=new FormData(e.currentTarget).get("recoveryKey");r(t.trim()===n)}},s.createElement(qi.D,{name:"recoveryKey",serverInvalid:d},s.createElement($i.J,null,(0,c._t)("settings|encryption|recovery|enter_recovery_key")),s.createElement(_k.T,{required:!0,title:(0,c._t)("settings|encryption|recovery|enter_recovery_key"),className:"mx_KeyForm_password mx_no_textinput"}),d&&s.createElement(Yi.Kw,null,(0,c._t)("settings|encryption|recovery|enter_key_error"))),s.createElement(Qe.D,null,s.createElement(xe.$,{disabled:!o||a},i),s.createElement(xe.$,{kind:"tertiary",onClick:e},(0,c._t)("action|cancel"))))}var Ak=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/check-circle-solid.js");function Ck({label:e,state:t,stateMessage:n}){return s.createElement("div",{className:"mx_SettingsSubheader"},e,s.createElement("span",{className:un()({mx_SettingsSubheader_success:"success"===t,mx_SettingsSubheader_error:"error"===t})},"success"===t?s.createElement(Ak.A,{width:"20px",height:"20px"}):s.createElement(we.A,{width:"20px",height:"20px"}),n))}var xk=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/download.js");function kk({onResetIdentityClick:e}){return s.createElement(On,{heading:(0,c._t)("settings|encryption|advanced|title"),legacy:!1},s.createElement(Rk,{onResetIdentityClick:e}),s.createElement(Ik,null))}function Rk({onResetIdentityClick:e}){const t=(0,je.nH)(),i=(0,De.e)(()=>t.getCrypto().getOwnDeviceKeys(),[t],null);return s.createElement("div",{className:"mx_EncryptionDetails"},s.createElement("div",{className:"mx_EncryptionDetails_session"},s.createElement("h3",{className:"mx_EncryptionDetails_session_title"},(0,c._t)("settings|encryption|advanced|details_title")),s.createElement("div",null,s.createElement("span",null,(0,c._t)("settings|encryption|advanced|session_id")),s.createElement("span",null,t.deviceId)),s.createElement("div",null,s.createElement("span",null,(0,c._t)("settings|encryption|advanced|session_key")),s.createElement("span",null,i?i.ed25519:s.createElement(We.Z,{"aria-label":(0,c._t)("common|loading")})))),s.createElement("div",{className:"mx_EncryptionDetails_buttons"},s.createElement(xe.$,{size:"md",kind:"secondary",Icon:xk.A,onClick:()=>X.Ay.createDialog((0,s.lazy)(()=>n.e(9350).then(n.bind(n,"./src/async-components/views/dialogs/security/ExportE2eKeysDialog.tsx"))),{matrixClient:t})},(0,c._t)("settings|encryption|advanced|export_keys")),s.createElement(xe.$,{size:"md",kind:"secondary",Icon:wi.A,onClick:()=>X.Ay.createDialog((0,s.lazy)(()=>n.e(3413).then(n.bind(n,"./src/async-components/views/dialogs/security/ImportE2eKeysDialog.tsx"))),{matrixClient:t})},(0,c._t)("settings|encryption|advanced|import_keys"))),s.createElement(xe.$,{size:"md",kind:"tertiary",destructive:!0,onClick:e},(0,c._t)("settings|encryption|advanced|reset_identity")))}function Ik(){const e=(0,es.wL)(oe.p.DEVICE,"blacklistUnverifiedDevices");return S.A.canSetValue("blacklistUnverifiedDevices",null,oe.p.DEVICE)?s.createElement(Ki.b,{className:"mx_OtherSettings",onChange:async e=>{const t="on"===new FormData(e.currentTarget).get("neverSendEncrypted");await S.A.setValue("blacklistUnverifiedDevices",null,oe.p.DEVICE,t)}},s.createElement("h3",{className:"mx_OtherSettings_title"},(0,c._t)("settings|encryption|advanced|other_people_device_title")),s.createElement(Qi.I,{name:"neverSendEncrypted",control:s.createElement($b._,{name:"neverSendEncrypted",defaultChecked:e})},s.createElement($i.J,null,(0,c._t)("settings|encryption|advanced|other_people_device_label")),s.createElement(Yi.po,null,(0,c._t)("settings|encryption|advanced|other_people_device_description")))):null}function Tk({onCancelClick:e,onReset:t,variant:n}){return s.createElement(s.Fragment,null,s.createElement(vk.Q,{backLabel:(0,c._t)("action|back"),onBackClick:e,pages:[(0,c._t)("settings|encryption|title"),(0,c._t)("settings|encryption|advanced|breadcrumb_page")],onPageClick:e}),s.createElement(et,{onReset:t,onCancelClick:e,variant:n}))}function Pk({onForgotRecoveryKey:e,onAccessSecretStorageFailed:t,onFinish:n}){const i=(0,je.nH)();return s.createElement(On,{legacy:!1,heading:(0,c._t)("settings|encryption|recovery|title"),subHeading:s.createElement(Ck,{label:(0,c._t)("settings|encryption|recovery|description"),state:"error",stateMessage:(0,c._t)("settings|encryption|recovery|key_storage_warning")})},s.createElement("div",{className:"mx_RecoveryPanelOutOfSync"},s.createElement(xe.$,{size:"md",kind:"secondary",onClick:e},(0,c._t)("settings|encryption|recovery|forgot_recovery_key")),s.createElement(xe.$,{size:"md",kind:"primary",Icon:be.A,onClick:async()=>{const e=i.getCrypto(),s=ye.sharedInstance(),r=await s.keyStorageOutOfSyncNeedsBackupReset(!1);o.vF.debug(`RecoveryPanelOutOfSync: user clicked 'Enter recovery key'. needsBackupReset: ${r}`);try{await s.whilePaused(async()=>{await(0,b.cb)(async()=>{if(r)await pt(e);else if(await i.isKeyBackupKeyStored())try{await e.loadSessionBackupPrivateKeyFromSecretStorage()}catch(t){if(!(t instanceof Ee.AY))throw t;o.vF.error("RecoveryPanelOutOfSync: decryption key does not match the public backup. Replacing."),await pt(e)}})})}catch(e){return void(e instanceof b.qQ||t())}n()}},(0,c._t)("settings|encryption|recovery|enter_recovery_key"))))}function Nk(){const[e,t]=(0,s.useState)(!0),[n,i]=(0,s.useState)(void 0),r=(0,je.nH)(),a=(0,mo.H8)(r,Ee.cr.KeyBackupStatus,async e=>{if(void 0!==e)return e;const n=r.getCrypto();if(!n)return void o.vF.error("Can't check key backup status: no crypto module available");const i=await n.getActiveSessionBackupVersion();return t(!1),null!==i},[r],void 0);return{isEnabled:null!=n?n:a,setEnabled:(0,s.useCallback)(async e=>{i(e);try{await ye.sharedInstance().whilePaused(async()=>{const t=r.getCrypto();if(t)if(e){o.vF.getChild("[enable key storage]").info("User requested enabling key storage");let e=await t.checkKeyBackupAndEnable();e?(o.vF.info(`Existing key backup is present. version: ${e.backupInfo.version}`,e.trustInfo),e.trustInfo.trusted||e.trustInfo.matchesDecryptionKey?o.vF.info("Existing key backup can be used"):(o.vF.warn("Existing key backup cannot be used, creating new backup"),e=null)):o.vF.info("No existing key backup versions are present, creating new backup"),null===e&&await pt(t),await r.setAccountData(wt,{enabled:!0}),await r.setAccountData(St,{disabled:!1})}else o.vF.info("User requested disabling key backup"),await t.disableKeyStorage(),await r.setAccountData(wt,{enabled:!1}),await r.setAccountData(St,{disabled:!0});else o.vF.error("Can't change key backup status: no crypto module available")})}finally{i(void 0)}},[i,r]),loading:e,busy:void 0!==n}}const Dk=({onKeyStorageDisableClick:e})=>{const{isEnabled:t,setEnabled:n,loading:i,busy:o}=Nk(),r=(0,s.useCallback)(t=>{t.currentTarget.checked?n(!0):e()},[n,e]);return i?s.createElement(We.Z,{"aria-label":(0,c._t)("common|loading")}):s.createElement(On,{legacy:!1,heading:s.createElement(Pn,{hasRecommendedTag:!1===t,label:(0,c._t)("settings|encryption|key_storage|title")}),subHeading:(0,c._t)("settings|encryption|key_storage|description",void 0,{a:e=>s.createElement(Tp.N,{href:d.A.get("help_key_storage_url"),target:"_blank"},e)})},s.createElement(Ki.b,{className:"mx_KeyStoragePanel_toggleRow"},s.createElement(Qi.I,{name:"keyStorage",control:s.createElement($b._,{name:"keyStorage",checked:t,onChange:r})},s.createElement($i.J,null,(0,c._t)("settings|encryption|key_storage|allow_key_storage"))),o&&s.createElement(We.Z,null)))};function Mk({onFinish:e}){const{setEnabled:t}=Nk(),[n,i]=(0,s.useState)(!1),o=(0,s.useCallback)(async()=>{i(!0);try{await t(!1)}finally{i(!1)}e()},[t,e]);return s.createElement(s.Fragment,null,s.createElement(vk.Q,{backLabel:(0,c._t)("action|back"),onBackClick:e,pages:[(0,c._t)("settings|encryption|title"),(0,c._t)("settings|encryption|delete_key_storage|breadcrumb_page")],onPageClick:e}),s.createElement(Ke.g,{Icon:we.A,destructive:!0,title:(0,c._t)("settings|encryption|delete_key_storage|title")},s.createElement(Ze,null,(0,c._t)("settings|encryption|delete_key_storage|description"),s.createElement(He.V,null,s.createElement(ze.k,{Icon:ti.A,destructive:!0},(0,c._t)("settings|encryption|delete_key_storage|list_first")),s.createElement(ze.k,{Icon:ti.A,destructive:!0},(0,c._t)("settings|encryption|delete_key_storage|list_second",{brand:d.A.get().brand})))),s.createElement(Qe.D,null,s.createElement(xe.$,{destructive:!0,onClick:o,disabled:n},(0,c._t)("settings|encryption|delete_key_storage|confirm")),s.createElement(xe.$,{kind:"tertiary",onClick:e},(0,c._t)("action|cancel")))))}function Ok({initialState:e="main"}){const[t,n]=(0,s.useState)(e),i=(0,mo.DY)(ye.sharedInstance().currentDeviceChangedEmitter,ce.DeviceStateChanged,e=>null!=e?e:ye.sharedInstance().getDeviceState()),{isEnabled:o}=Nk();let r;switch(t){case"main":switch(i){case"verify_this_session":r=s.createElement(Lk,{onFinish:()=>n("main")});break;case"key_storage_out_of_sync":r=s.createElement(Pk,{onFinish:()=>n("main"),onForgotRecoveryKey:()=>n("reset_identity_forgot"),onAccessSecretStorageFailed:async()=>{const e=await ye.sharedInstance().keyStorageOutOfSyncNeedsCrossSigningReset(!0);n(e?"reset_identity_sync_failed":"change_recovery_key")}});break;case"identity_needs_reset":r=s.createElement(Uk,{onContinue:()=>n("reset_identity_cant_recover")});break;default:r=s.createElement(s.Fragment,null,s.createElement(Dk,{onKeyStorageDisableClick:()=>n("key_storage_delete")}),s.createElement(Fn.w,{kind:"section"}),o&&s.createElement(s.Fragment,null,s.createElement(gk,{onChangeRecoveryKeyClick:e=>n(e?"set_recovery_key":"change_recovery_key")}),s.createElement(Fn.w,{kind:"section"})),s.createElement(kk,{onResetIdentityClick:()=>n("reset_identity_compromised")}))}break;case"change_recovery_key":case"set_recovery_key":r=s.createElement(Ek,{userHasRecoveryKey:"change_recovery_key"===t,onCancelClick:()=>n("main"),onFinish:()=>n("main")});break;case"reset_identity_compromised":case"reset_identity_forgot":case"reset_identity_sync_failed":case"reset_identity_cant_recover":r=s.createElement(Tk,{variant:Fk(t),onCancelClick:()=>n("main"),onReset:()=>n("main")});break;case"key_storage_delete":r=s.createElement(Mk,{onFinish:()=>n("main")})}return s.createElement(Rn,{className:"mx_EncryptionUserSettingsTab"},r)}function Fk(e){switch(e){case"reset_identity_compromised":return"compromised";case"reset_identity_sync_failed":return"sync_failed";case"reset_identity_cant_recover":return"no_verification_method";default:return"forgot"}}function Lk({onFinish:e}){return s.createElement(On,{legacy:!1,heading:(0,c._t)("settings|encryption|device_not_verified_title"),subHeading:s.createElement(Ck,{stateMessage:(0,c._t)("settings|encryption|device_not_verified_description"),state:"error"})},s.createElement(xe.$,{size:"md",Icon:Fx.A,onClick:()=>{const{finished:t}=X.Ay.createDialog(at);t.then(e)}},(0,c._t)("settings|encryption|device_not_verified_button")))}function Uk({onContinue:e}){return s.createElement(On,{legacy:!1,heading:(0,c._t)("encryption|key_storage_out_of_sync"),subHeading:s.createElement(Ck,{state:"error",stateMessage:(0,c._t)("encryption|identity_needs_reset_description")})},s.createElement("div",null,s.createElement(xe.$,{size:"md",kind:"primary",onClick:e},(0,c._t)("encryption|continue_with_reset"))))}function Vk(e){const t={strong:e=>s.createElement("span",{className:"mx_UserSettingsDialog_title_strong"},e)};switch(e){case ct.v.Account:return(0,c._t)("settings|account|dialog_title",void 0,t);case ct.v.SessionManager:return(0,c._t)("settings|sessions|dialog_title",void 0,t);case ct.v.Appearance:return(0,c._t)("settings|appearance|dialog_title",void 0,t);case ct.v.Notifications:return(0,c._t)("settings|notifications|dialog_title",void 0,t);case ct.v.Preferences:return(0,c._t)("settings|preferences|dialog_title",void 0,t);case ct.v.Keyboard:return(0,c._t)("settings|keyboard|dialog_title",void 0,t);case ct.v.Sidebar:return(0,c._t)("settings|sidebar|dialog_title",void 0,t);case ct.v.Voice:return(0,c._t)("settings|voip|dialog_title",void 0,t);case ct.v.Security:return(0,c._t)("settings|security|dialog_title",void 0,t);case ct.v.Encryption:return(0,c._t)("settings|encryption|dialog_title",void 0,t);case ct.v.Labs:return(0,c._t)("settings|labs|dialog_title",void 0,t);case ct.v.Mjolnir:return(0,c._t)("settings|labs_mjolnir|dialog_title",void 0,t);case ct.v.Help:return(0,c._t)("setting|help_about|dialog_title",void 0,t)}}function Bk(e){const t=(0,es.ti)(as.f.Voip),n=(0,es.ti)("feature_mjolnir"),[i,o]=(0,s.useState)(e.showMsc4108QrCode),[a,l]=(0,s.useState)(e.initialEncryptionState),d=(0,mo.H8)(e.sdkContext.client,r.AUM.AccountData,async t=>{if(void 0===t||"m.secret_storage.default_key"===t.getType()){const t=e.sdkContext.client;return!!t&&!await t.secretStorage.getDefaultKeyId()}return new mo.E6},[],!1),m=()=>{const o=[];return o.push(new Sn.oz(ct.v.Account,(0,c.AO)("settings|account|title"),s.createElement(Vp.A,null),s.createElement(Wb,{closeSettingsFn:e.onFinished}),"UserSettingsGeneral")),o.push(new Sn.oz(ct.v.SessionManager,(0,c.AO)("settings|sessions|title"),s.createElement(Ae.A,null),s.createElement(hk,{showMsc4108QrCode:i}),void 0)),o.push(new Sn.oz(ct.v.Appearance,(0,c.AO)("common|appearance"),s.createElement(kc.A,null),s.createElement(MA,null),"UserSettingsAppearance")),o.push(new Sn.oz(ct.v.Notifications,(0,c.AO)("notifications|enable_prompt_toast_title"),s.createElement(fn.A,null),s.createElement(OC,null),"UserSettingsNotifications")),o.push(new Sn.oz(ct.v.Preferences,(0,c.AO)("common|preferences"),s.createElement(fu.A,null),s.createElement(JC,null),"UserSettingsPreferences")),o.push(new Sn.oz(ct.v.Keyboard,(0,c.AO)("settings|keyboard|title"),s.createElement(zS.A,null),s.createElement(cx,null),"UserSettingsKeyboard")),o.push(new Sn.oz(ct.v.Sidebar,(0,c.AO)("settings|sidebar|title"),s.createElement(WS.A,null),s.createElement(sx,null),"UserSettingsSidebar")),t&&o.push(new Sn.oz(ct.v.Voice,(0,c.AO)("settings|voip|title"),s.createElement(n_.A,null),s.createElement(KC,null),"UserSettingsVoiceVideo")),o.push(new Sn.oz(ct.v.Security,(0,c.AO)("room_settings|security|title"),s.createElement(vn.A,null),s.createElement(QA,null),"UserSettingsSecurityPrivacy")),o.push(new Sn.oz(ct.v.Encryption,(0,c.AO)("settings|encryption|title"),s.createElement(be.A,null),s.createElement(Ok,{initialState:a}),"UserSettingsEncryption",d?"mx_SettingsDialog_tabLabelsAlert":void 0)),(Kb()||S.A.getFeatureSettingNames().some(e=>S.A.getBetaInfo(e)))&&o.push(new Sn.oz(ct.v.Labs,(0,c.AO)("common|labs"),s.createElement(JS.A,null),s.createElement(qb,null),"UserSettingsLabs")),n&&o.push(new Sn.oz(ct.v.Mjolnir,(0,c.AO)("labs_mjolnir|title"),s.createElement(GS.A,null),s.createElement(ex,null),"UserSettingMjolnir")),o.push(new Sn.oz(ct.v.Help,(0,c.AO)("setting|help_about|title"),s.createElement(Ag.A,null),s.createElement(XC,null),"UserSettingsHelpAbout")),o},[u,p]=(0,Sn.yz)(m(),ct.v.Account,e.initialTabId),[h,g]=(0,Xe.VkU)();return s.createElement(Ro.A.Provider,{value:e.sdkContext},s.createElement(Xe.$o.Provider,{value:g},s.createElement(ke.A,{className:"mx_UserSettingsDialog",hasCancel:!0,onFinished:e.onFinished,title:Vk(u),titleClass:"mx_UserSettingsDialog_title"},s.createElement("div",{className:"mx_SettingsDialog_content"},s.createElement(Sn.Ay,{tabs:m(),activeTabId:u,screenName:"UserSettings",onChange:e=>{p(e),o(!1),l(void 0)},responsive:!0})),s.createElement("div",{className:"mx_SettingsDialog_toastContainer"},h&&s.createElement(HS.y,null,h)))))}class jk extends s.Component{render(){return s.createElement("div",null,s.createElement("h2",null,(0,c._t)("encryption|verification|complete_title")),s.createElement("p",null,(0,c._t)("encryption|verification|complete_description")),s.createElement("p",null,(0,c._t)("encryption|verification|explainer")),s.createElement(an.A,{onPrimaryButtonClick:this.props.onDone,primaryButton:(0,c._t)("encryption|verification|complete_action"),hasCancel:!1}))}}class Hk extends s.Component{render(){return s.createElement("div",null,s.createElement("p",null,(0,c._t)("encryption|verification|other_party_cancelled")),s.createElement(an.A,{primaryButton:(0,c._t)("action|ok"),hasCancel:!1,onPrimaryButtonClick:this.props.onDone}))}}var zk=n("./src/components/views/verification/VerificationShowSas.tsx");class Wk extends s.Component{constructor(e){super(e),(0,i.A)(this,"showSasEvent",void 0),(0,i.A)(this,"onFinished",()=>{this.props.onFinished(3===this.state.phase)}),(0,i.A)(this,"onCancelClick",()=>{this.props.onFinished(3===this.state.phase)}),(0,i.A)(this,"onContinueClick",()=>{this.setState({phase:2}),this.props.verifier.verify().then(()=>{this.setState({phase:3})}).catch(e=>{o.vF.log("Verification failed",e)})}),(0,i.A)(this,"onVerifierShowSas",e=>{this.showSasEvent=e,this.setState({phase:1,sas:e.sas})}),(0,i.A)(this,"onVerifierCancel",()=>{this.setState({phase:4})}),(0,i.A)(this,"onSasMatchesClick",()=>{var e;null===(e=this.showSasEvent)||void 0===e||e.confirm(),this.setState({phase:2})}),(0,i.A)(this,"onVerifiedDoneClick",()=>{this.props.onFinished(!0)});let t=0;this.props.verifier.hasBeenCancelled&&(o.vF.log("Verifier was cancelled in the background."),t=4),this.showSasEvent=null,this.state={phase:t,sasVerified:!1,opponentProfile:null,opponentProfileError:null,sas:null}}componentDidMount(){this.props.verifier.on(Ee.Ji.ShowSas,this.onVerifierShowSas),this.props.verifier.on(Ee.Ji.Cancel,this.onVerifierCancel),this.fetchOpponentProfile()}componentWillUnmount(){4!==this.state.phase&&3!==this.state.phase&&this.props.verifier.cancel(new Error("User cancel")),this.props.verifier.removeListener(Ee.Ji.ShowSas,this.onVerifierShowSas)}async fetchOpponentProfile(){try{const e=await _.J.safeGet().getProfileInfo(this.props.verifier.userId);this.setState({opponentProfile:e})}catch(e){this.setState({opponentProfileError:e})}}renderPhaseStart(){const e=this.props.verifier.userId===_.J.safeGet().getUserId();let t;const n=this.state.opponentProfile;if(n){const e=n.avatar_url?(0,Ci.l)(n.avatar_url).getSquareThumbnailHttp(48):null;t=s.createElement("div",{className:"mx_IncomingSasDialog_opponentProfile"},s.createElement(ki.A,{name:n.displayname,idName:this.props.verifier.userId,url:e,size:"48px"}),s.createElement("h2",null,n.displayname))}else t=this.state.opponentProfileError?s.createElement("div",null,s.createElement(ki.A,{name:this.props.verifier.userId.slice(1),idName:this.props.verifier.userId,size:"48px"}),s.createElement("h2",null,this.props.verifier.userId)):s.createElement(Be.A,null);const i=[s.createElement("p",{key:"p1"},(0,c._t)("encryption|verification|incoming_sas_user_dialog_text_1")),s.createElement("p",{key:"p2"},(0,c._t)("encryption|verification|incoming_sas_user_dialog_text_2"))],o=[s.createElement("p",{key:"p1"},(0,c._t)("encryption|verification|incoming_sas_device_dialog_text_1")),s.createElement("p",{key:"p2"},(0,c._t)("encryption|verification|incoming_sas_device_dialog_text_2"))];return s.createElement("div",null,t,e?o:i,s.createElement(an.A,{primaryButton:(0,c._t)("action|continue"),hasCancel:!0,onPrimaryButtonClick:this.onContinueClick,onCancel:this.onCancelClick}))}renderPhaseShowSas(){return this.showSasEvent?s.createElement(zk.A,{sas:this.showSasEvent.sas,onCancel:this.onCancelClick,onDone:this.onSasMatchesClick,isSelf:this.props.verifier.userId===_.J.safeGet().getUserId()}):null}renderPhaseWaitForPartnerToConfirm(){return s.createElement("div",null,s.createElement(Be.A,null),s.createElement("p",null,(0,c._t)("encryption|verification|incoming_sas_dialog_waiting")))}renderPhaseVerified(){return s.createElement(jk,{onDone:this.onVerifiedDoneClick})}renderPhaseCancelled(){return s.createElement(Hk,{onDone:this.onCancelClick})}render(){let e;switch(this.state.phase){case 0:e=this.renderPhaseStart();break;case 1:e=this.renderPhaseShowSas();break;case 2:e=this.renderPhaseWaitForPartnerToConfirm();break;case 3:e=this.renderPhaseVerified();break;case 4:e=this.renderPhaseCancelled()}return s.createElement(ke.A,{title:(0,c._t)("encryption|verification|incoming_sas_dialog_title"),onFinished:this.onFinished,fixedWidth:!1},e)}}var Jk=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/Glass/Glass.js");class Gk extends s.PureComponent{render(){return s.createElement("div",{className:"mx_CompleteSecurityBody"},this.props.children)}}const Kk=()=>{var e;const t=d.A.getObject("branding"),n=null!==(e=null==t?void 0:t.get("auth_footer_links"))&&void 0!==e?e:[{text:"Blog",url:"https://element.io/blog"},{text:"Mastodon",url:"https://mastodon.matrix.org/@Element"},{text:"GitHub",url:"https://github.com/element-hq/element-web"}],i=[];for(const e of n)i.push(s.createElement("a",{href:e.url,key:e.text,target:"_blank",rel:"noreferrer noopener"},e.text));return s.createElement("footer",{className:"mx_AuthFooter",role:"contentinfo"},i,s.createElement("a",{href:"https://matrix.org",target:"_blank",rel:"noreferrer noopener"},(0,c._t)("powered_by_matrix")))};class qk extends s.PureComponent{static getWelcomeBackgroundUrl(){if(qk.welcomeBackgroundUrl)return qk.welcomeBackgroundUrl;const e=d.A.getObject("branding").get("welcome_background_url");if(Array.isArray(e)){const t=Math.floor(Math.random()*e.length);qk.welcomeBackgroundUrl=e[t]}else qk.welcomeBackgroundUrl=e;return qk.welcomeBackgroundUrl}render(){const e={background:`center/cover fixed url(${qk.getWelcomeBackgroundUrl()})`},t={position:"absolute",top:0,right:0,bottom:0,left:0,filter:"blur(40px)",background:e.background};let n;!1!==this.props.addBlur&&(n=s.createElement("div",{className:"mx_AuthPage_modalBlur",style:t}));const i=un()({mx_AuthPage_modal:!0,mx_AuthPage_modal_withBlur:!1!==this.props.addBlur});return s.createElement("div",{className:"mx_AuthPage",style:e},s.createElement("div",{className:i,style:{position:"relative",background:"initial"}},n,s.createElement("main",{className:"mx_AuthPage_modalContent",style:{display:"flex",zIndex:1,borderRadius:"inherit"},tabIndex:-1,"aria-live":"polite"},this.props.children)),s.createElement(Kk,null))}}(0,i.A)(qk,"welcomeBackgroundUrl",void 0);class $k extends s.Component{constructor(e){super(e),(0,i.A)(this,"onStoreUpdate",()=>{const e=Ue.sharedInstance();this.setState({phase:e.phase})}),(0,i.A)(this,"onSkipClick",()=>{Ue.sharedInstance().skip()});const t=Ue.sharedInstance();t.start(),this.state={phase:t.phase}}componentDidMount(){Ue.sharedInstance().on("update",this.onStoreUpdate)}componentWillUnmount(){const e=Ue.sharedInstance();e.off("update",this.onStoreUpdate),e.stop()}render(){const{phase:e}=this.state;let t,n;if(e===Le.Loading)return null;if(e===Le.Intro);else if(e===Le.Done)t=s.createElement(st.A,{className:"mx_CompleteSecurity_headerIcon",status:ot.z.Verified,hideTooltip:!0}),n=(0,c._t)("encryption|verification|after_new_login|device_verified");else if(e===Le.ConfirmSkip)t=s.createElement(st.A,{className:"mx_CompleteSecurity_headerIcon",status:ot.z.Warning,hideTooltip:!0}),n=(0,c._t)("common|are_you_sure");else if(e===Le.Busy)t=s.createElement(st.A,{className:"mx_CompleteSecurity_headerIcon",status:ot.z.Warning,hideTooltip:!0}),n=(0,c._t)("encryption|verification|after_new_login|verify_this_device");else if(e!==Le.Finished)throw new Error(`Unknown phase ${e}`);let i;return d.A.get("force_verification")||e!==Le.Intro||(i=s.createElement(Ve.A,{onClick:this.onSkipClick,className:"mx_CompleteSecurity_skip","aria-label":(0,c._t)("encryption|verification|after_new_login|skip_verification")},s.createElement(ti.A,null))),s.createElement(qk,{addBlur:!1},s.createElement(Jk.H,{className:"mx_Dialog_border"},s.createElement(Gk,null,s.createElement("h1",{className:"mx_CompleteSecurity_header"},t,n,i),s.createElement("div",{className:"mx_CompleteSecurity_body"},s.createElement(rt,{onFinished:this.props.onFinished,allowLogout:!0})))))}}function Yk(e){var t;(0,c.UK)()!==e&&(S.A.setValue("language",null,oe.p.DEVICE,e),null===(t=l.A.get())||void 0===t||t.reload())}function Qk({disabled:e}){return d.A.get("disable_login_language_selector")?s.createElement("div",null):s.createElement(LC,{className:"mx_AuthBody_language",onOptionChange:Yk,value:(0,c.UK)(),disabled:e})}const Xk='<a href="https://matrix.org" target="_blank" rel="noreferrer noopener">\n <img class="mx_WelcomePage_logo" width="79" height="34" alt="Matrix" style="padding-left: 1px;vertical-align: middle" src="img/matrix.9166e4b.svg"/>\n</a>',Zk="Element",eR=({serverConfig:e})=>{const t=d.A.get("brand"),n=d.A.getObject("branding"),i=n.get("auth_header_logo_url"),o=!!_.J.get(),a=(()=>{const e=d.A.get("brand");return e===Zk||e.startsWith(Zk+" ")})(),l=(0,es.ny)("feature_login_with_qr"),m=(0,De.e)(async()=>{if(!l)return!1;return(0,r.UU6)({baseUrl:e.hsUrl}).doesServerSupportUnstableFeature("org.matrix.msc4108")},[e,l]);let u;return u=l&&void 0===m?s.createElement(Be.A,null):s.createElement("div",{className:"mx_DefaultWelcome_buttons"},m&&s.createElement(xe.$,{as:"a",href:"#/qr_login",kind:"primary",size:"md",Icon:ak.A},(0,c._t)("auth|sign_in_with_qr")),s.createElement(xe.$,{as:"a",href:"#/login",kind:"primary",size:"md"},m?(0,c._t)("auth|sign_in_manually"):(0,c._t)("action|sign_in")),s.createElement(xe.$,{as:"a",href:"#/register",kind:"secondary",size:"md"},(0,c._t)("action|create_account")),o&&s.createElement(xe.$,{as:"a",href:"#/directory",kind:"tertiary",size:"md"},(0,c._t)("action|explore_rooms"))),s.createElement("div",{className:"mx_DefaultWelcome"},s.createElement("a",{href:n.get("logo_link_url"),target:"_blank",rel:"noopener",className:"mx_DefaultWelcome_logo"},s.createElement("img",{src:i,alt:t})),s.createElement(Tn.D,{as:"h1",weight:"semibold"},a?(0,c._t)("welcome|title_element"):(0,c._t)("welcome|title_generic",{brand:t})),a&&s.createElement(Pu.E,{size:"md"},(0,c._t)("welcome|tagline_element")),u)};class tR extends s.PureComponent{render(){const e=d.A.getObject("embedded_pages"),t=null==e?void 0:e.get("welcome_url"),n={$brand:d.A.get("brand"),"$riot:ssoUrl":"#/start_sso","$riot:casUrl":"#/start_cas",$matrixLogo:Xk,"[matrix]":Xk};let i;return i=t?s.createElement(Mw,{className:"mx_WelcomePage",url:t,replaceMap:n}):s.createElement(eR,{serverConfig:this.props.serverConfig}),s.createElement(qk,{addBlur:!1},s.createElement(Jk.H,null,s.createElement("div",{className:un()("mx_Welcome",{mx_WelcomePage_registrationDisabled:!S.A.getValue(as.f.Registration)})},i,s.createElement(Qk,null))))}}class nR{constructor(e,t){(0,i.A)(this,"client",void 0),(0,i.A)(this,"clientSecret",void 0),(0,i.A)(this,"password",""),(0,i.A)(this,"sessionId",""),(0,i.A)(this,"logoutDevices",!1),(0,i.A)(this,"sendAttempt",0),this.client=(0,r.UU6)({baseUrl:e,idBaseUrl:t}),this.clientSecret=this.client.generateClientSecret()}requestResetToken(e){return this.sendAttempt++,this.client.requestPasswordEmailToken(e,this.clientSecret,this.sendAttempt).then(e=>(this.sessionId=e.sid,e),function(e){throw"M_THREEPID_NOT_FOUND"===e.errcode?e.message=(0,c._t)("auth|reset_password_email_not_found_title"):e.httpStatus&&(e.message=e.message+` (Status ${e.httpStatus})`),e})}setLogoutDevices(e){this.logoutDevices=e}async setNewPassword(e){this.password=e,await this.checkEmailLinkClicked()}async checkEmailLinkClicked(){const e={sid:this.sessionId,client_secret:this.clientSecret};try{await this.client.setPassword({type:"m.login.email.identity",threepid_creds:e},this.password,this.logoutDevices)}catch(e){throw 401===e.httpStatus?e.message=(0,c._t)("settings|general|add_email_failed_verification"):404===e.httpStatus?e.message=(0,c._t)("auth|reset_password_email_not_associated"):e.httpStatus&&(e.message+=` (Status ${e.httpStatus})`),e}}}class iR extends s.PureComponent{render(){var e;const t=d.A.getObject("branding"),n=null!==(e=null==t?void 0:t.get("auth_header_logo_url"))&&void 0!==e?e:"themes/element/img/logos/element-logo.svg";return s.createElement("aside",{className:"mx_AuthHeaderLogo"},s.createElement("img",{src:n,alt:"Element"}))}}class sR extends s.Component{render(){return s.createElement("div",{className:"mx_AuthHeader"},s.createElement(iR,null),s.createElement(Qk,{disabled:this.props.disableLanguageSelector}))}}function oR({flex:e,className:t,children:n}){return s.createElement("div",{className:un()("mx_AuthBody",t,{mx_AuthBody_flex:e})},n)}var rR=n("./src/components/structures/ErrorMessage.tsx");const aR=({email:e,errorText:t,homeserver:n,loading:i,onInputChanged:o,onLoginClick:r,onSubmitForm:a})=>{const l=i?s.createElement(Be.A,{size:16}):(0,c._t)("auth|forgot_password_send_email"),d=(0,s.useRef)(null);return s.createElement(s.Fragment,null,s.createElement(Ef.A,{className:"mx_AuthBody_icon"}),s.createElement("h1",null,(0,c._t)("auth|enter_email_heading")),s.createElement("p",{className:"mx_AuthBody_text"},(0,c._t)("auth|enter_email_explainer",{homeserver:n},{b:e=>s.createElement("strong",null,e)})),s.createElement("form",{onSubmit:async e=>{var t,n,i;await(null===(t=d.current)||void 0===t?void 0:t.validate({allowEmpty:!1}))?a(e):(null===(n=d.current)||void 0===n||n.focus(),null===(i=d.current)||void 0===i||i.validate({allowEmpty:!1,focused:!0}))}},s.createElement("fieldset",{disabled:i},s.createElement("div",{className:"mx_AuthBody_fieldRow"},s.createElement(pb,{name:"reset_email",label:(0,c.AO)("common|email_address"),labelRequired:(0,c.AO)("auth|forgot_password_email_required"),labelInvalid:(0,c.AO)("auth|forgot_password_email_invalid"),value:e,autoFocus:!0,onChange:e=>o("email",e),fieldRef:d})),t&&s.createElement(rR.K,{message:t}),s.createElement(xe.$,{type:"submit",className:"mx_Login_submit",size:"md"},l),s.createElement("div",{className:"mx_AuthBody_button-container"},s.createElement(Ve.A,{className:"mx_AuthBody_sign-in-instead-button",element:"button",kind:"link",onClick:e=>{e.preventDefault(),r()}},(0,c._t)("auth|sign_in_instead"))))))};var lR=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/restart.js"),cR=n("./res/img/element-icons/email-prompt.svg");const dR=(e,t)=>{const n=(0,s.useRef)(void 0),[i,o]=(0,s.useState)(e);return(0,s.useEffect)(()=>()=>{clearTimeout(n.current)}),{toggle:()=>{o(!e),n.current=window.setTimeout(()=>o(e),t)},value:i}},mR=({email:e,errorText:t,onReEnterEmailClick:n,onSubmitForm:i,onResendClick:o})=>{const{toggle:r,value:a}=dR(!1,2500);return s.createElement(s.Fragment,null,s.createElement(cR.I,{className:"mx_AuthBody_emailPromptIcon--shifted"}),s.createElement("h1",null,(0,c._t)("auth|uia|email_auth_header")),s.createElement("div",{className:"mx_AuthBody_text"},s.createElement("p",null,(0,c._t)("auth|check_email_explainer",{email:e},{b:e=>s.createElement("strong",null,e)})),s.createElement("div",{className:"mx_AuthBody_did-not-receive"},s.createElement("span",{className:"mx_VerifyEMailDialog_text-light"},(0,c._t)("auth|check_email_wrong_email_prompt")),s.createElement(Ve.A,{className:"mx_AuthBody_resend-button",kind:"link",onClick:n},(0,c._t)("auth|check_email_wrong_email_button")))),t&&s.createElement(rR.K,{message:t}),s.createElement(xe.$,{onClick:i,type:"button",className:"mx_Login_submit",size:"md"},(0,c._t)("action|next")),s.createElement("div",{className:"mx_AuthBody_did-not-receive"},s.createElement("span",{className:"mx_VerifyEMailDialog_text-light"},(0,c._t)("auth|check_email_resend_prompt")),s.createElement(Ys.m,{description:(0,c._t)("auth|check_email_resend_tooltip"),placement:"top",open:a},s.createElement(Ve.A,{className:"mx_AuthBody_resend-button",kind:"link",onClick:async()=>{await o(),r()}},s.createElement(lR.A,{className:"mx_Icon mx_Icon_16"}),(0,c._t)("action|resend")))))},uR=({email:e,errorText:t,onCloseClick:n,onReEnterEmailClick:i,onResendClick:o})=>{const{toggle:r,value:a}=dR(!1,2500);return s.createElement(s.Fragment,null,s.createElement(cR.I,{className:"mx_AuthBody_emailPromptIcon"}),s.createElement("h1",null,(0,c._t)("auth|verify_email_heading")),s.createElement("p",null,(0,c._t)("auth|verify_email_explainer",{email:e},{b:e=>s.createElement("strong",null,e)})),s.createElement("div",{className:"mx_AuthBody_did-not-receive"},s.createElement("span",{className:"mx_VerifyEMailDialog_text-light"},(0,c._t)("auth|check_email_resend_prompt")),s.createElement(Ys.m,{description:(0,c._t)("auth|check_email_resend_tooltip"),placement:"top",open:a},s.createElement(Ve.A,{className:"mx_AuthBody_resend-button",kind:"link",onClick:async()=>{await o(),r()}},s.createElement(lR.A,{className:"mx_Icon mx_Icon_16"}),(0,c._t)("action|resend"))),t&&s.createElement(rR.K,{message:t})),s.createElement("div",{className:"mx_AuthBody_did-not-receive"},s.createElement("span",{className:"mx_VerifyEMailDialog_text-light"},(0,c._t)("auth|check_email_wrong_email_prompt")),s.createElement(Ve.A,{className:"mx_AuthBody_resend-button",kind:"link",onClick:i},(0,c._t)("auth|check_email_wrong_email_button"))),s.createElement(Ve.A,{onClick:n,className:"mx_Dialog_cancelButton","aria-label":(0,c._t)("dialog_close_label")},s.createElement(ti.A,null)))};var pR=function(e){return e[e.EnterEmail=1]="EnterEmail",e[e.SendingEmail=2]="SendingEmail",e[e.EmailSent=3]="EmailSent",e[e.PasswordInput=4]="PasswordInput",e[e.ResettingPassword=5]="ResettingPassword",e[e.Done=6]="Done",e}(pR||{});class hR extends s.Component{constructor(e){super(e),(0,i.A)(this,"unmounted",!1),(0,i.A)(this,"reset",void 0),(0,i.A)(this,"fieldPassword",null),(0,i.A)(this,"fieldPasswordConfirm",null),(0,i.A)(this,"sendVerificationMail",async()=>{try{return await this.reset.requestResetToken(this.state.email),!0}catch(e){this.handleError(e)}return!1}),(0,i.A)(this,"onSubmitForm",async e=>{if(e.preventDefault(),[pR.SendingEmail,pR.ResettingPassword].includes(this.state.phase))return;this.setState({errorText:""});if(await this.checkServerLiveliness(this.props.serverConfig))switch(this.state.phase){case pR.EnterEmail:this.onPhaseEmailInputSubmit();break;case pR.EmailSent:this.onPhaseEmailSentSubmit();break;case pR.PasswordInput:this.onPhasePasswordInputSubmit()}}),(0,i.A)(this,"onInputChanged",(e,t)=>{let n=t.currentTarget.value;"email"===e&&(n=n.trim()),this.setState({[e]:n})}),this.state={phase:pR.EnterEmail,email:"",password:"",password2:"",errorText:null,serverIsAlive:!0,serverDeadError:"",logoutDevices:!1},this.reset=new nR(this.props.serverConfig.hsUrl,this.props.serverConfig.isUrl)}componentDidUpdate(e){e.serverConfig.hsUrl===this.props.serverConfig.hsUrl&&e.serverConfig.isUrl===this.props.serverConfig.isUrl||this.checkServerLiveliness(this.props.serverConfig)}componentWillUnmount(){this.unmounted=!0}async checkServerLiveliness(e){try{if(await g.validateServerConfigWithStaticUrls(e.hsUrl,e.isUrl),this.unmounted)return!1;this.setState({serverIsAlive:!0})}catch(e){if(this.unmounted)return!1;const{serverIsAlive:t,serverDeadError:n}=g.authComponentStateForError(e,"forgot_password");return this.setState({serverIsAlive:t,errorText:n}),t}return!0}async onPhaseEmailInputSubmit(){this.phase=pR.SendingEmail,await this.sendVerificationMail()?this.phase=pR.EmailSent:this.phase=pR.EnterEmail}handleError(e){if(429===(null==e?void 0:e.httpStatus)){var t;const n=parseInt(null==e||null===(t=e.data)||void 0===t?void 0:t.retry_after_ms,10),i=isNaN(n)?(0,c._t)("auth|reset_password|rate_limit_error"):(0,c._t)("auth|reset_password|rate_limit_error_with_time",{timeout:(0,Bt.Xo)(n/1e3)});return void this.setState({errorText:i})}"ConnectionError"!==(null==e?void 0:e.name)?this.setState({errorText:e.message}):this.setState({errorText:(0,c._t)("cannot_reach_homeserver")+": "+(0,c._t)("cannot_reach_homeserver_detail")})}async onPhaseEmailSentSubmit(){this.setState({phase:pR.PasswordInput})}set phase(e){this.setState({phase:e})}async verifyFieldsBeforeSubmit(){const e=[this.fieldPassword,this.fieldPasswordConfirm],t=[];for(const n of e){if(!n)continue;await n.validate({allowEmpty:!1})||t.push(n)}return 0===t.length||(t[0].focus(),t[0].validate({allowEmpty:!1,focused:!0}),!1)}async onPhasePasswordInputSubmit(){if(!await this.verifyFieldsBeforeSubmit())return;if(this.state.logoutDevices){if(!await this.renderConfirmLogoutDevicesDialog())return}this.phase=pR.ResettingPassword,this.reset.setLogoutDevices(this.state.logoutDevices);try{return await this.reset.setNewPassword(this.state.password),void this.setState({phase:pR.Done})}catch(e){if(401!==e.httpStatus)return void this.handleError(e)}const e=X.Ay.createDialog(uR,{email:this.state.email,errorText:this.state.errorText,onCloseClick:()=>{e.close(),this.setState({phase:pR.PasswordInput})},onReEnterEmailClick:()=>{e.close(),this.setState({phase:pR.EnterEmail})},onResendClick:this.sendVerificationMail},"mx_VerifyEMailDialog",!1,!1,{onBeforeClose:async e=>("backgroundClick"===e&&this.setState({phase:pR.PasswordInput}),!0)});for(;this.state.phase===pR.ResettingPassword;)try{await this.reset.setNewPassword(this.state.password),this.setState({phase:pR.Done}),e.close()}catch{await(0,Pa.yy)(2e3)}}renderEnterEmail(){return s.createElement(aR,{email:this.state.email,errorText:this.state.errorText,homeserver:this.props.serverConfig.hsName,loading:this.state.phase===pR.SendingEmail,onInputChanged:this.onInputChanged,onLoginClick:this.props.onLoginClick,onSubmitForm:this.onSubmitForm})}async renderConfirmLogoutDevicesDialog(){const{finished:e}=X.Ay.createDialog(on.A,{title:(0,c._t)("common|warning"),description:s.createElement("div",null,s.createElement("p",null,(0,c._t)("auth|reset_password|other_devices_logout_warning_1")),s.createElement("p",null,(0,c._t)("auth|reset_password|other_devices_logout_warning_2"))),button:(0,c._t)("action|continue")}),[t]=await e;return!!t}renderCheckEmail(){return s.createElement(mR,{email:this.state.email,errorText:this.state.errorText,onReEnterEmailClick:()=>this.setState({phase:pR.EnterEmail}),onResendClick:this.sendVerificationMail,onSubmitForm:this.onSubmitForm})}renderSetPassword(){const e=this.state.phase===pR.ResettingPassword?s.createElement(Be.A,{size:16}):(0,c._t)("auth|reset_password_action");return s.createElement(s.Fragment,null,s.createElement(Ce.A,{className:"mx_AuthBody_lockIcon"}),s.createElement("h1",null,(0,c._t)("auth|reset_password_title")),s.createElement(Ln.lV.Root,{onSubmit:this.onSubmitForm},s.createElement("fieldset",{disabled:this.state.phase===pR.ResettingPassword},s.createElement("div",{className:"mx_AuthBody_fieldRow"},s.createElement(ab.A,{name:"reset_password",type:"password",label:(0,c.AO)("auth|change_password_new_label"),value:this.state.password,minScore:3,fieldRef:e=>{this.fieldPassword=e},onChange:this.onInputChanged.bind(this,"password"),autoComplete:"new-password"}),s.createElement(fb.A,{name:"reset_password_confirm",label:(0,c.AO)("auth|reset_password|confirm_new_password"),labelRequired:(0,c.AO)("auth|reset_password|password_not_entered"),labelInvalid:(0,c.AO)("auth|reset_password|passwords_mismatch"),value:this.state.password2,password:this.state.password,fieldRef:e=>{this.fieldPasswordConfirm=e},onChange:this.onInputChanged.bind(this,"password2"),autoComplete:"new-password"})),s.createElement("div",{className:"mx_AuthBody_fieldRow"},s.createElement(hs.A,{onChange:()=>this.setState({logoutDevices:!this.state.logoutDevices}),checked:this.state.logoutDevices,formWrap:!1},(0,c._t)("auth|reset_password|sign_out_other_devices"))),this.state.errorText&&s.createElement(rR.K,{message:this.state.errorText}),s.createElement(xe.$,{type:"submit",className:"mx_Login_submit",size:"md"},e))))}renderDone(){return s.createElement(s.Fragment,null,s.createElement(Je.A,{className:"mx_Icon mx_Icon_32 mx_Icon_accent"}),s.createElement("h1",null,(0,c._t)("auth|reset_password|reset_successful")),this.state.logoutDevices?s.createElement("p",null,(0,c._t)("auth|reset_password|devices_logout_success")):null,s.createElement(xe.$,{className:"mx_Login_submit",size:"md",type:"button",onClick:this.props.onComplete},(0,c._t)("auth|reset_password|return_to_login")))}render(){let e;switch(this.state.phase){case pR.EnterEmail:case pR.SendingEmail:e=this.renderEnterEmail();break;case pR.EmailSent:e=this.renderCheckEmail();break;case pR.PasswordInput:case pR.ResettingPassword:e=this.renderSetPassword();break;case pR.Done:e=this.renderDone();break;default:return o.vF.warn(`unknown forgot password phase ${this.state.phase}`),void this.setState({phase:pR.EnterEmail})}return s.createElement(qk,null,s.createElement(sR,null),s.createElement(oR,{className:"mx_AuthBody_forgot-password"},e))}}class gR extends(Pe()){constructor(...e){super(...e),(0,i.A)(this,"status",void 0),(0,i.A)(this,"client",void 0),(0,i.A)(this,"onFinished",void 0)}static sharedInstance(){return window.mxInitialCryptoStore||(window.mxInitialCryptoStore=new gR),window.mxInitialCryptoStore}getStatus(){return this.status}startInitialCryptoSetup(e,t){this.client=e,this.onFinished=t,this.doSetup().catch(()=>o.vF.error("Initial crypto setup failed"))}retry(){return void 0!==this.client&&(this.doSetup().catch(()=>o.vF.error("Initial crypto setup failed")),!0)}reset(){this.client=void 0}async doSetup(){if(void 0===this.client)throw new Error("No setup is in progress");const e=this.client.getCrypto();if(!e)throw new Error("No crypto module found!");this.status="in_progress",this.emit("update");try{var t;await async function(e){const t=e.getCrypto();if(!t)throw new Error("No crypto API found!");await t.bootstrapCrossSigning({authUploadDeviceSigningKeys:t=>Ye(e,t)})}(this.client);null===await e.checkKeyBackupAndEnable()&&await e.resetKeyBackup(),this.reset(),this.status="complete",this.emit("update"),null===(t=this.onFinished)||void 0===t||t.call(this,!0)}catch(e){o.vF.error("Error bootstrapping cross-signing",e),this.status="error",this.emit("update")}}}const vR=({onCancelled:e})=>{const t=(0,s.useCallback)(()=>{gR.sharedInstance().retry()},[]);let n;return n="error"===(e=>{const[t,n]=(0,s.useState)(e.getStatus());return(0,s.useEffect)(()=>{const t=()=>{n(e.getStatus())};return e.on("update",t),()=>{e.off("update",t)}},[e]),t})(gR.sharedInstance())?s.createElement("div",null,s.createElement("p",null,(0,c._t)("encryption|unable_to_setup_keys_error")),s.createElement("div",{className:"mx_Dialog_buttons"},s.createElement(an.A,{primaryButton:(0,c._t)("action|retry"),onPrimaryButtonClick:t,onCancel:e}))):s.createElement("div",null,s.createElement(Be.A,null)),s.createElement(ke.A,{className:"mx_CreateCrossSigningDialog",title:(0,c._t)("encryption|bootstrap_title"),hasCancel:!1,fixedWidth:!1},s.createElement("div",null,n))};class _R extends s.Component{render(){return s.createElement(qk,null,s.createElement(Gk,null,s.createElement(vR,{onCancelled:this.props.onCancelled})))}}var fR,yR,ER,wR=n("../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/chunk.js"),SR=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/mac.js");function bR(){return bR=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},bR.apply(null,arguments)}var AR=function(e,t){return s.createElement("svg",bR({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 25 24",role:"presentation","aria-hidden":!0,ref:t},e),fR||(fR=s.createElement("mask",{id:"facebook_svg__a",width:22,height:22,x:2,y:1,"mask-type":"alpha",maskUnits:"userSpaceOnUse"},s.createElement("path",{fill:"#fff",d:"M2.102 1.5H23.1v20.872H2.102z"}))),yR||(yR=s.createElement("g",{mask:"url(#facebook_svg__a)"},s.createElement("path",{fill:"#1877F2",fillRule:"evenodd",d:"M23.1 11.999c0-5.799-4.701-10.5-10.5-10.5S2.1 6.2 2.1 11.999c0 5.24 3.84 9.585 8.86 10.373v-7.338H8.292V12h2.666V9.686c0-2.632 1.568-4.085 3.966-4.085 1.15 0 2.35.205 2.35.205V8.39h-1.323c-1.305 0-1.711.809-1.711 1.64v1.969h2.912l-.466 3.035h-2.446v7.338c5.02-.788 8.859-5.132 8.859-10.373",clipRule:"evenodd"}))),ER||(ER=s.createElement("path",{fill:"#fff",fillRule:"evenodd",d:"M16.687 15.034 17.153 12H14.24v-1.97c0-.83.406-1.64 1.71-1.64h1.325V5.807s-1.202-.205-2.35-.205c-2.4 0-3.967 1.453-3.967 4.085v2.313H8.293v3.035h2.666v7.338a10.6 10.6 0 0 0 3.282 0v-7.338z",clipRule:"evenodd"})))},CR=(0,s.forwardRef)(AR);var xR;function kR(){return kR=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},kR.apply(null,arguments)}var RR=function(e,t){return s.createElement("svg",kR({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 25 24",role:"presentation","aria-hidden":!0,ref:t},e),xR||(xR=s.createElement("path",{fill:"currentColor",d:"M20.842 7.106a9.7 9.7 0 0 0-3.548-3.548Q15.054 2.25 12.4 2.25T7.506 3.558a9.7 9.7 0 0 0-3.548 3.548Q2.65 9.346 2.65 12q0 3.186 1.86 5.732 1.86 2.544 4.805 3.522.342.064.508-.088a.5.5 0 0 0 .165-.381l-.007-.686q-.006-.647-.006-1.13l-.292.051a3.7 3.7 0 0 1-.705.045 5.4 5.4 0 0 1-.882-.09 2 2 0 0 1-.85-.38 1.6 1.6 0 0 1-.56-.78l-.126-.293a3.2 3.2 0 0 0-.4-.647q-.273-.356-.552-.482l-.089-.064a1 1 0 0 1-.165-.152.7.7 0 0 1-.114-.178q-.039-.09.063-.146.101-.058.368-.057l.254.038q.255.05.629.304.374.255.615.66.292.521.705.794.412.273.831.273t.724-.063q.304-.065.571-.191.115-.85.622-1.308a9 9 0 0 1-1.301-.228 5.2 5.2 0 0 1-1.193-.496 3.4 3.4 0 0 1-1.022-.85q-.406-.508-.667-1.333-.26-.825-.26-1.904 0-1.537 1.003-2.616-.47-1.155.089-2.59.368-.113 1.092.172.723.286 1.06.489.336.203.54.343 1.18-.33 2.437-.33t2.438.33l.482-.305q.495-.305 1.168-.559.672-.253 1.028-.14.571 1.435.102 2.59 1.002 1.08 1.003 2.616 0 1.08-.26 1.91-.26.832-.673 1.333a3.6 3.6 0 0 1-1.028.845q-.617.342-1.194.495a9 9 0 0 1-1.301.229q.66.57.66 1.802v2.678q0 .23.159.381.158.152.501.089 2.946-.978 4.805-3.523 1.86-2.545 1.86-5.732 0-2.653-1.308-4.893"})))},IR=(0,s.forwardRef)(RR);var TR,PR,NR,DR,MR,OR;function FR(){return FR=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},FR.apply(null,arguments)}var LR=function(e,t){return s.createElement("svg",FR({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",role:"presentation","aria-hidden":!0,ref:t},e),TR||(TR=s.createElement("path",{fill:"#E24329",d:"m12 20.33 3.317-10.2H8.689z"})),PR||(PR=s.createElement("path",{fill:"#FCA326",d:"m4.043 10.13-1.01 3.098a.69.69 0 0 0 .25.768L12 20.33z"})),NR||(NR=s.createElement("path",{fill:"#E24329",d:"M4.042 10.129h4.645L6.688 3.986c-.102-.315-.548-.315-.654 0z"})),DR||(DR=s.createElement("path",{fill:"#FCA326",d:"m19.96 10.13 1.006 3.098a.69.69 0 0 1-.248.768l-8.719 6.334z"})),MR||(MR=s.createElement("path",{fill:"#E24329",d:"M19.962 10.129h-4.645l1.995-6.143c.102-.315.548-.315.654 0z"})),OR||(OR=s.createElement("path",{fill:"#FC6D26",d:"m12 20.33 3.315-10.2h4.645zM11.999 20.33l-7.957-10.2h4.645z"})))},UR=(0,s.forwardRef)(LR);var VR,BR,jR,HR;function zR(){return zR=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},zR.apply(null,arguments)}var WR=function(e,t){return s.createElement("svg",zR({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",role:"presentation","aria-hidden":!0,ref:t},e),VR||(VR=s.createElement("path",{fill:"#4285F4",d:"M22.501 12.233c0-.863-.071-1.493-.226-2.146h-10.06v3.896h5.905c-.119.969-.762 2.427-2.19 3.407l-.02.13 3.18 2.415.22.022c2.024-1.832 3.191-4.527 3.191-7.724"})),BR||(BR=s.createElement("path",{fill:"#34A853",d:"M12.215 22.5c2.893 0 5.321-.933 7.095-2.543l-3.381-2.567c-.905.618-2.12 1.05-3.714 1.05a6.44 6.44 0 0 1-6.096-4.363l-.125.01-3.307 2.509-.044.117c1.762 3.43 5.381 5.787 9.572 5.787"})),jR||(jR=s.createElement("path",{fill:"#FBBC05",d:"M6.12 14.077A6.4 6.4 0 0 1 5.763 12c0-.723.131-1.423.345-2.077l-.006-.139-3.348-2.548-.11.05A10.34 10.34 0 0 0 1.501 12c0 1.692.417 3.29 1.143 4.713z"})),HR||(HR=s.createElement("path",{fill:"#EB4335",d:"M12.215 5.56c2.012 0 3.369.852 4.143 1.563L19.38 4.23c-1.857-1.692-4.273-2.73-7.166-2.73-4.19 0-7.81 2.357-9.572 5.787l3.465 2.636a6.465 6.465 0 0 1 6.107-4.363"})))},JR=(0,s.forwardRef)(WR);var GR;function KR(){return KR=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)({}).hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},KR.apply(null,arguments)}var qR=function(e,t){return s.createElement("svg",KR({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 25 24",role:"presentation","aria-hidden":!0,ref:t},e),GR||(GR=s.createElement("path",{fill:"#1D9BF0",d:"M9.042 21c-2.427 0-4.688-.706-6.592-1.923 1.616.104 4.469-.146 6.243-1.838-2.67-.123-3.873-2.17-4.03-3.045.227.088 1.308.193 1.919-.052-3.07-.77-3.541-3.464-3.436-4.286.575.402 1.552.542 1.936.507-2.86-2.047-1.832-5.126-1.326-5.79 2.053 2.843 5.13 4.44 8.936 4.53a4.4 4.4 0 0 1-.11-.98 4.367 4.367 0 0 1 4.361-4.373c1.259 0 2.393.535 3.189 1.39.84-.197 2.106-.659 2.725-1.058-.312 1.12-1.283 2.054-1.87 2.4.005.012-.005-.012 0 0 .516-.078 1.912-.346 2.463-.72-.273.629-1.302 1.675-2.147 2.26C21.46 14.954 16.157 21 9.042 21"})))},$R=(0,s.forwardRef)(qR);const YR=({matrixClient:e,loginType:t,fragmentAfterLogin:n,idp:i,primary:o,mini:a,action:d,flow:m,disabled:u})=>{let p;p=i?(0,c._t)("auth|continue_with_idp",{provider:i.name}):r.Z7F.findIn(m)?(0,c._t)("action|continue"):(0,c._t)("auth|sign_in_with_sso");const h={iconOnly:a,className:un()("mx_SSOButton",{mx_SSOButton_mini:a}),onClick:()=>{var s,o;const a=(e=>{switch(e){case r.XgJ.Apple:return"Apple";case r.XgJ.Facebook:return"Facebook";case r.XgJ.Github:return"GitHub";case r.XgJ.Gitlab:return"GitLab";case r.XgJ.Google:return"Google";default:return"SSO"}})(null!==(s=null==i?void 0:i.brand)&&void 0!==s?s:"");ue.Vo.instance.setAuthenticationType(a),null===(o=l.A.get())||void 0===o||o.startSingleSignOn(e,t,n,null==i?void 0:i.id,d)},kind:o?"primary":"secondary",disabled:u};let g;const v=null!=i&&i.brand?(e=>{switch(e){case r.XgJ.Apple:return SR.A;case r.XgJ.Facebook:return CR;case r.XgJ.Github:return IR;case r.XgJ.Gitlab:return UR;case r.XgJ.Google:return JR;case r.XgJ.Twitter:return $R;default:return null}})(i.brand):null;if(null!=i&&i.brand&&v){const e=i.brand.split(".").pop();g=s.createElement(v,{"aria-label":e}),h["data-testid"]=`idp-${i.id}`}else if("string"==typeof(null==i?void 0:i.icon)&&i.icon.startsWith("mxc://")){var _;const t=null!==(_=(0,Ci.l)(i.icon,e).getSquareThumbnailHttp(24))&&void 0!==_?_:void 0;g=s.createElement("img",{src:t,alt:i.name})}return a?s.createElement(Ys.m,{label:p},s.createElement(xe.$,(0,xn.A)({},h,{size:"lg"}),g)):s.createElement(xe.$,(0,xn.A)({},h,{size:"md"}),g,p)},QR=({matrixClient:e,flow:t,loginType:n,fragmentAfterLogin:i,primary:o,action:r,disabled:a})=>{const l=t.identity_providers||[];if(l.length<2)return s.createElement("div",{className:"mx_SSOButtons"},s.createElement(YR,{matrixClient:e,loginType:n,fragmentAfterLogin:i,idp:l[0],primary:o,action:r,flow:t,disabled:a}));const c=Math.ceil(l.length/6),d=Math.ceil(l.length/c);return s.createElement("div",{className:"mx_SSOButtons"},(0,wR.A)(l,d).map(a=>s.createElement("div",{key:a[0].id,className:"mx_SSOButtons_row"},a.map(a=>s.createElement(YR,{key:a.id,matrixClient:e,loginType:n,fragmentAfterLogin:i,idp:a,mini:!0,primary:o,action:r,flow:t})))))};class XR extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"defaultServer",void 0),(0,i.A)(this,"fieldRef",(0,s.createRef)()),(0,i.A)(this,"validatedConf",void 0),(0,i.A)(this,"onDefaultChosen",()=>{this.setState({defaultChosen:!0})}),(0,i.A)(this,"onOtherChosen",()=>{this.setState({defaultChosen:!1})}),(0,i.A)(this,"onHomeserverChange",e=>{this.setState({otherHomeserver:e.target.value})}),(0,i.A)(this,"validate",(0,Yp.A)({deriveData:async({value:e})=>{let t=(null!=e?e:"").trim();if(!t.includes("://"))try{const e=await r.MNj.findClientConfig(t);return this.validatedConf=await g.buildValidatedConfigFromDiscovery(t,e),{}}catch(e){o.vF.error(`Attempted ${t} as a server_name but it failed`,e)}t.includes("://")||(t="https://"+t);try{return this.validatedConf=await g.validateServerConfigWithStaticUrls(t),{}}catch(e){o.vF.error(e);if(g.authComponentStateForError(e).serverErrorIsFatal){let t=(0,c._t)("auth|server_picker_failed_validate_homeserver");return e instanceof c.P7&&e.translatedMessage&&(t=e.translatedMessage),{error:t}}try{return this.validatedConf=await g.validateServerConfigWithStaticUrls(t,void 0,!0),{}}catch(e){return o.vF.error(e),{error:(0,c._t)("auth|server_picker_invalid_url")}}}},rules:[{key:"required",test:({value:e,allowEmpty:t})=>t||!!e,invalid:()=>(0,c._t)("auth|server_picker_required")},{key:"valid",test:async function({value:e},{error:t}){return!e||!t},invalid:function({error:e}){return null!=e?e:null}}]})),(0,i.A)(this,"onHomeserverValidate",e=>this.validate(e)),(0,i.A)(this,"onSubmit",async e=>{var t;if(e.preventDefault(),this.state.defaultChosen)return void this.props.onFinished(this.defaultServer);var n,i;if(!await(null===(t=this.fieldRef.current)||void 0===t?void 0:t.validate({allowEmpty:!1})))return null===(n=this.fieldRef.current)||void 0===n||n.focus(),void(null===(i=this.fieldRef.current)||void 0===i||i.validate({allowEmpty:!1,focused:!0}));this.props.onFinished(this.validatedConf)});const t=d.A.get();this.defaultServer=t.validated_server_config;const{serverConfig:n}=this.props;let a="";n.isDefault||(a=n.isNameResolvable&&n.hsName?n.hsName:n.hsUrl),this.state={defaultChosen:n.isDefault,otherHomeserver:a}}render(){let e;"matrix.org"===this.defaultServer.hsName&&(e=(0,c._t)("auth|server_picker_matrix.org"));let t=this.defaultServer.hsName;return this.defaultServer.hsNameIsDifferent&&(t=s.createElement(yE.A,{className:"mx_Login_underlinedServerName",tooltip:this.defaultServer.hsUrl},this.defaultServer.hsName)),s.createElement(ke.A,{title:this.props.title||(0,c._t)("auth|server_picker_title"),className:"mx_ServerPickerDialog",contentId:"mx_ServerPickerDialog",onFinished:this.props.onFinished,fixedWidth:!1,hasCancel:!0},s.createElement("form",{className:"mx_Dialog_content",id:"mx_ServerPickerDialog",onSubmit:this.onSubmit},s.createElement("p",null,(0,c._t)("auth|server_picker_intro")," ",e),s.createElement(yA.A,{name:"defaultChosen",value:"true",checked:this.state.defaultChosen,onChange:this.onDefaultChosen},t),s.createElement(yA.A,{name:"defaultChosen",value:"false",className:"mx_ServerPickerDialog_otherHomeserverRadio",checked:!this.state.defaultChosen,onChange:this.onOtherChosen,childrenInLabel:!1,"aria-label":(0,c._t)("auth|server_picker_custom")},s.createElement(yi.A,{type:"text",className:"mx_ServerPickerDialog_otherHomeserver",label:(0,c._t)("auth|server_picker_custom"),onChange:this.onHomeserverChange,onFocus:this.onOtherChosen,ref:this.fieldRef,onValidate:this.onHomeserverValidate,value:this.state.otherHomeserver,validateOnChange:!1,validateOnFocus:!1,autoFocus:!0,id:"mx_homeserverInput"})),s.createElement("p",null,(0,c._t)("auth|server_picker_explainer")),s.createElement(Ve.A,{className:"mx_ServerPickerDialog_continue",kind:"primary",onClick:this.onSubmit},(0,c._t)("action|continue")),s.createElement("h2",null,(0,c._t)("action|learn_more")),s.createElement(it.A,{href:"https://matrix.org/docs/matrix-concepts/elements-of-matrix/#homeserver",target:"_blank",rel:"noreferrer noopener"},(0,c._t)("auth|server_picker_learn_more"))))}}const ZR=()=>{const e=d.A.get().brand;X.Ay.createDialog(tp.A,{title:(0,c._t)("auth|server_picker_title_default"),description:(0,c._t)("auth|server_picker_description",{brand:e}),button:(0,c._t)("action|dismiss"),hasCloseButton:!1,fixedWidth:!1},"mx_ServerPicker_helpDialog")},eI=({title:e,dialogTitle:t,serverConfig:n,onServerConfigChange:i,disabled:o})=>{const r=d.A.get("disable_custom_urls");let a;if(!r&&i){const e=()=>{((e,t,n)=>{const{finished:i}=X.Ay.createDialog(XR,{title:e,serverConfig:t});i.then(([e])=>n(e))})(t,n,e=>{e&&i(e)})};a=s.createElement(Ve.A,{className:"mx_ServerPicker_change",kind:"link",onClick:e,disabled:o},(0,c._t)("action|edit"))}let l,m=n.isNameResolvable?n.hsName:n.hsUrl;return n.hsNameIsDifferent&&(m=s.createElement(yE.A,{className:"mx_Login_underlinedServerName",tooltip:n.hsUrl},n.hsName)),"matrix.org"===n.hsName&&(l=s.createElement("span",{className:"mx_ServerPicker_desc"},(0,c._t)("auth|server_picker_description_matrix.org"))),s.createElement("div",{className:"mx_ServerPicker"},s.createElement("h2",null,e||(0,c._t)("common|homeserver")),r?null:s.createElement(Ve.A,{className:"mx_ServerPicker_help",onClick:ZR,"aria-label":(0,c._t)("common|help")},s.createElement(Ge.A,null)),s.createElement("span",{className:"mx_ServerPicker_server",title:"string"==typeof m?m:void 0},m),a,l)};var tI=n("./src/components/structures/auth/header/AuthHeaderContext.tsx");function nI({title:e,icon:t,serverPicker:n,children:i}){var o,r,a;const l=(0,s.useContext)(tI.h);if(!l)return s.createElement(s.Fragment,null);const c=null!==(o=l.state[0])&&void 0!==o?o:null;return s.createElement(s.Fragment,null,null!==(r=null==c?void 0:c.icon)&&void 0!==r?r:t,s.createElement("h1",null,null!==(a=null==c?void 0:c.title)&&void 0!==a?a:e),i,!0!==(null==c?void 0:c.hideServerPicker)&&n)}var iI=n("./src/components/structures/auth/header/AuthHeaderProvider.tsx");function sI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}const oI=(...e)=>{S.A.getValue("debug_registration")&&o.vF.log.call(console,"Registration debuglog:",...e)};class rI extends s.Component{constructor(e){super(e),(0,i.A)(this,"loginLogic",void 0),(0,i.A)(this,"latestServerConfig",void 0),(0,i.A)(this,"unloadCallback",e=>{if(this.state.doingUIAuth)return e.preventDefault(),e.returnValue="",""}),(0,i.A)(this,"onFormSubmit",async e=>{this.setState({errorText:"",busy:!0,formVals:e,doingUIAuth:!0})}),(0,i.A)(this,"requestEmailToken",(e,t,n,i)=>{if(!this.state.matrixClient)throw new Error("Matrix client has not yet been loaded");return this.state.matrixClient.requestRegisterEmailToken(e,t,n)}),(0,i.A)(this,"onUIAuthFinished",async(e,t)=>{if(!this.state.matrixClient)throw new Error("Matrix client has not yet been loaded");if(oI("Registration: ui authentication finished: ",{success:e,response:t}),!e){var n;let e=t.message||t.toString();if(t instanceof r.upv&&"M_RESOURCE_LIMIT_EXCEEDED"===t.errcode){const n=(0,qc.AB)(t.data.limit_type,t.data.admin_contact,qc.Ch),i=(0,qc.AB)(t.data.limit_type,t.data.admin_contact,qc.aZ);e=s.createElement("div",null,s.createElement("p",null,n),s.createElement("p",null,i))}else if(null!==(n=t.flows)&&void 0!==n&&n.some(e=>e.stages.includes(r.hTz.Msisdn))){var i;(null!==(i=t.flows)&&void 0!==i?i:[]).some(e=>e.stages.includes(r.hTz.Msisdn))||(e=(0,c._t)("auth|unsupported_auth_msisdn"))}else t instanceof r.upv&&"M_USER_IN_USE"===t.errcode?e=(0,c._t)("auth|username_in_use"):t instanceof r.upv&&"M_THREEPID_IN_USE"===t.errcode&&(e=(0,c._t)("auth|3pid_in_use"));return void this.setState({busy:!1,doingUIAuth:!1,errorText:e})}const a=t.user_id,l=t.access_token;if(!a||!l)throw new Error("Registration failed");_.J.setJustRegisteredUserId(a);const d={doingUIAuth:!1,registeredUsername:a,differentLoggedInUserId:void 0,completedNoSignin:!1,busy:!0},[m,u]=await md();m&&!u&&m!==a&&(o.vF.log(`Found a session for ${m} but ${a} has just registered.`),d.differentLoggedInUserId=m);const p=Boolean(this.state.formVals.email),h=Boolean(l);if(oI("Registration: ui auth finished:",{hasEmail:p,hasAccessToken:h}),h&&!d.differentLoggedInUserId)if(this.props.mobileRegister){const e={user_id:a,home_server:this.state.matrixClient.getHomeserverUrl(),access_token:l,device_id:t.device_id},n=new CustomEvent("mobileregistrationresponse",{detail:e});window.dispatchEvent(n),d.busy=!1,d.completedNoSignin=!0}else await this.props.onLoggedIn({userId:a,deviceId:t.device_id,homeserverUrl:this.state.matrixClient.getHomeserverUrl(),identityServerUrl:this.state.matrixClient.getIdentityServerUrl(),accessToken:l}),this.setupPushers();else d.busy=!1,d.completedNoSignin=!0;this.setState(d)}),(0,i.A)(this,"onLoginClick",e=>{e.preventDefault(),e.stopPropagation(),this.props.onLoginClick()}),(0,i.A)(this,"onGoToFormClicked",e=>{e.preventDefault(),e.stopPropagation(),this.replaceClient(this.props.serverConfig),this.setState({busy:!1,doingUIAuth:!1})}),(0,i.A)(this,"makeRegisterRequest",e=>{if(!this.state.matrixClient)throw new Error("Matrix client has not yet been loaded");const t={username:this.state.formVals.username,password:this.state.formVals.password,initial_device_display_name:this.props.defaultDeviceDisplayName,auth:void 0,inhibit_login:void 0};return e&&(t.auth=e),oI("Registration: sending registration request:",e),this.state.matrixClient.registerRequest(t)}),(0,i.A)(this,"onLoginClickWithCheck",async e=>{e.preventDefault();const t=await dd({ignoreGuest:!0});return t||this.props.onLoginClick(),t}),this.state={busy:!1,errorText:null,formVals:{email:this.props.email},doingUIAuth:Boolean(this.props.sessionId),flows:null,completedNoSignin:!1,serverIsAlive:!0,serverErrorIsFatal:!1,serverDeadError:""};const{hsUrl:t,isUrl:n,delegatedAuthentication:a}=this.props.serverConfig;this.loginLogic=new te(t,n,null,{defaultDeviceDisplayName:"Element login check",delegatedAuthentication:a})}componentDidMount(){this.replaceClient(this.props.serverConfig),window.addEventListener("beforeunload",this.unloadCallback)}componentWillUnmount(){window.removeEventListener("beforeunload",this.unloadCallback)}componentDidUpdate(e){e.serverConfig.hsUrl===this.props.serverConfig.hsUrl&&e.serverConfig.isUrl===this.props.serverConfig.isUrl||this.replaceClient(this.props.serverConfig)}async replaceClient(e){this.latestServerConfig=e;const{hsUrl:t,isUrl:n}=e;this.setState({errorText:null,serverDeadError:null,serverErrorIsFatal:!1,busy:!0});try{if(await g.validateServerConfigWithStaticUrls(t,n),e!==this.latestServerConfig)return;this.setState({serverIsAlive:!0,serverErrorIsFatal:!1})}catch(t){if(e!==this.latestServerConfig)return;if(this.setState(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?sI(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sI(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({busy:!1},g.authComponentStateForError(t,"register"))),this.state.serverErrorIsFatal)return}const s=(0,r.UU6)({baseUrl:t,idBaseUrl:n});let a,l;this.loginLogic.setHomeserverUrl(t),this.loginLogic.setIdentityServerUrl(n),this.loginLogic.setDelegatedAuthentication(e.delegatedAuthentication);try{const t=await this.loginLogic.getFlows(!0);if(e!==this.latestServerConfig)return;a=t.find(e=>"m.login.sso"===e.type||"m.login.cas"===e.type),l=t.find(e=>"oauthNativeFlow"===e.type)}catch(t){if(e!==this.latestServerConfig)return;o.vF.error("Failed to get login flows to check for SSO support",t)}if(await new Promise(e=>{this.setState(({flows:e})=>({matrixClient:s,ssoFlow:a,oauthNativeFlow:l,flows:l?[]:e,busy:!1}),e)}),!l)try{if(!this.state.doingUIAuth){if(await this.makeRegisterRequest(null),e!==this.latestServerConfig)return;o.vF.log("Expecting 401 from register request but got success!")}}catch(t){if(e!==this.latestServerConfig)return;t instanceof r.upv&&401===t.httpStatus?this.setState({flows:t.data.flows}):t instanceof r.upv&&(403===t.httpStatus||"M_FORBIDDEN"===t.errcode)?a?K.A.dispatch({action:"start_login"}):this.setState({serverErrorIsFatal:!0,errorText:(0,c._t)("auth|registration_disabled"),flows:[]}):(o.vF.log("Unable to query for supported registration methods.",t),this.setState({errorText:(0,c._t)("auth|failed_query_registration_methods"),flows:[]}))}}setupPushers(){if(!this.props.brand)return Promise.resolve();const e=_.J.safeGet();return e.getPushers().then(t=>{const n=t.pushers;for(let t=0;t<n.length;++t)if("email"===n[t].kind){const i=n[t];i.data={brand:this.props.brand},e.setPusher(i).then(()=>{o.vF.log("Set email branding to "+this.props.brand)},e=>{o.vF.error("Couldn't set email branding: "+e)})}},e=>{o.vF.error("Couldn't get pushers: "+e)})}getUIAuthInputs(){return{emailAddress:this.state.formVals.email,phoneCountry:this.state.formVals.phoneCountry,phoneNumber:this.state.formVals.phoneNumber}}renderRegisterComponent(){if(this.state.matrixClient&&this.state.doingUIAuth)return s.createElement(ob.A,{matrixClient:this.state.matrixClient,makeRequest:this.makeRegisterRequest,onAuthFinished:this.onUIAuthFinished,inputs:this.getUIAuthInputs(),requestEmailToken:this.requestEmailToken,sessionId:this.props.sessionId,clientSecret:this.props.clientSecret,emailSid:this.props.idSid,poll:!0});if(!this.state.matrixClient&&!this.state.busy)return null;if(this.state.busy||!this.state.flows)return s.createElement("div",{className:"mx_AuthBody_spinner"},s.createElement(Be.A,null));if(this.state.matrixClient&&this.state.oauthNativeFlow)return s.createElement(xe.$,{className:"mx_Login_fullWidthButton",kind:"primary",size:"md",onClick:async()=>{await Zc(this.props.serverConfig.delegatedAuthentication,this.state.oauthNativeFlow.clientId,this.props.serverConfig.hsUrl,this.props.serverConfig.isUrl,!0)}},(0,c._t)("action|continue"));if(this.state.matrixClient&&this.state.flows.length){let e;if(!this.props.mobileRegister&&this.state.ssoFlow){let t;(this.state.ssoFlow.identity_providers||[]).length>1&&(t=s.createElement("h2",{className:"mx_AuthBody_centered"},(0,c._t)("auth|continue_with_sso",{ssoButtons:""}).trim())),e=s.createElement(s.Fragment,null,t,s.createElement(QR,{matrixClient:this.loginLogic.createTemporaryClient(),flow:this.state.ssoFlow,loginType:"m.login.sso"===this.state.ssoFlow.type?"sso":"cas",fragmentAfterLogin:this.props.fragmentAfterLogin,action:r.SbG.REGISTER}),s.createElement("h2",{className:"mx_AuthBody_centered"},(0,c._t)("auth|sso_or_username_password",{ssoButtons:"",usernamePassword:""}).trim()))}return s.createElement(s.Fragment,null,e,s.createElement(xb,{defaultUsername:this.state.formVals.username,defaultEmail:this.state.formVals.email,defaultPhoneCountry:this.state.formVals.phoneCountry,defaultPhoneNumber:this.state.formVals.phoneNumber,defaultPassword:this.state.formVals.password,onRegisterClick:this.onFormSubmit,flows:this.state.flows,canSubmit:!this.state.serverErrorIsFatal,matrixClient:this.state.matrixClient,mobileRegister:this.props.mobileRegister}))}return null}render(){let e;const t=this.state.errorText;let n;if(t&&(e=s.createElement("div",{className:"mx_Login_error"},t)),!this.state.serverIsAlive){const e=un()({mx_Login_error:!0,mx_Login_serverError:!0,mx_Login_serverErrorNonFatal:!this.state.serverErrorIsFatal});n=s.createElement("div",{className:e},this.state.serverDeadError)}const i=s.createElement("span",{className:"mx_AuthBody_changeFlow"},(0,c._t)("auth|sign_in_instead_prompt",{},{a:e=>s.createElement(Ve.A,{kind:"link_inline",onClick:this.onLoginClick},e)}));let o,r;if(this.state.doingUIAuth&&(o=s.createElement(Ve.A,{kind:"link",className:"mx_AuthBody_changeFlow",onClick:this.onGoToFormClicked},(0,c._t)("action|go_back"))),this.state.completedNoSignin){let e;e=this.props.mobileRegister?void 0:this.state.differentLoggedInUserId?s.createElement("div",null,s.createElement("p",null,(0,c._t)("auth|account_clash",{newAccountId:this.state.registeredUsername,loggedInUserId:this.state.differentLoggedInUserId})),s.createElement("p",null,s.createElement(Ve.A,{kind:"link_inline",onClick:async e=>{await this.onLoginClickWithCheck(e)&&K.A.dispatch({action:"view_welcome_page"})}},(0,c._t)("auth|account_clash_previous_account")))):s.createElement("h2",null,(0,c._t)("auth|log_in_new_account",{},{a:e=>s.createElement(Ve.A,{kind:"link_inline",onClick:async e=>{await this.onLoginClickWithCheck(e)&&K.A.dispatch({action:"view_home_page"})}},e)})),r=s.createElement("div",null,s.createElement("h1",null,(0,c._t)("auth|registration_successful")),e)}else r=this.props.mobileRegister?s.createElement(s.Fragment,null,s.createElement("h1",null,(0,c._t)("auth|mobile_create_account_title",{hsName:this.props.serverConfig.hsName})),e,n,this.renderRegisterComponent()):s.createElement(s.Fragment,null,s.createElement("div",{className:"mx_Register_mainContent"},s.createElement(nI,{title:(0,c._t)("auth|create_account_title"),serverPicker:s.createElement(eI,{title:(0,c._t)("auth|server_picker_title_registration"),dialogTitle:(0,c._t)("auth|server_picker_dialog_title"),serverConfig:this.props.serverConfig,onServerConfigChange:this.state.doingUIAuth?void 0:this.props.onServerConfigChange})},e,n),this.renderRegisterComponent()),s.createElement("div",{className:"mx_Register_footerActions"},o,i));return this.props.mobileRegister?s.createElement("div",{className:"mx_MobileRegister_body"},r):s.createElement(qk,null,s.createElement(sR,null),s.createElement(iI.T,null,s.createElement(oR,{flex:!0},r)))}}let aI,lI,cI,dI;const mI=/^[0-9()\-\s]*$/;var uI=function(e){return e.Email="login_field_email",e.MatrixId="login_field_mxid",e.Phone="login_field_phone",e.Password="login_field_password",e}(uI||{});aI=uI.Email,lI=uI.Phone,cI=uI.MatrixId,dI=uI.Password;class pI extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,aI,null),(0,i.A)(this,lI,null),(0,i.A)(this,cI,null),(0,i.A)(this,dI,null),(0,i.A)(this,"onForgotPasswordClick",e=>{var t,n;e.preventDefault(),e.stopPropagation(),null===(t=(n=this.props).onForgotPasswordClick)||void 0===t||t.call(n)}),(0,i.A)(this,"onSubmitForm",async e=>{e.preventDefault();if(await this.verifyFieldsBeforeSubmit())switch(this.state.loginType){case uI.Email:case uI.MatrixId:this.props.onSubmit(this.props.username,void 0,void 0,this.state.password);break;case uI.Phone:this.props.onSubmit(void 0,this.props.phoneCountry,this.props.phoneNumber,this.state.password)}}),(0,i.A)(this,"onUsernameChanged",e=>{var t,n;null===(t=(n=this.props).onUsernameChanged)||void 0===t||t.call(n,e.target.value)}),(0,i.A)(this,"onUsernameBlur",e=>{var t,n;null===(t=(n=this.props).onUsernameBlur)||void 0===t||t.call(n,e.target.value)}),(0,i.A)(this,"onLoginTypeChange",e=>{var t,n;const i=e.target.value;this.setState({loginType:i}),null===(t=(n=this.props).onUsernameChanged)||void 0===t||t.call(n,"")}),(0,i.A)(this,"onPhoneCountryChanged",e=>{var t,n;null===(t=(n=this.props).onPhoneCountryChanged)||void 0===t||t.call(n,e.iso2)}),(0,i.A)(this,"onPhoneNumberChanged",e=>{var t,n;null===(t=(n=this.props).onPhoneNumberChanged)||void 0===t||t.call(n,e.target.value)}),(0,i.A)(this,"onPasswordChanged",e=>{this.setState({password:e.target.value})}),(0,i.A)(this,"validateUsernameRules",(0,Yp.A)({rules:[{key:"required",test:({value:e,allowEmpty:t})=>t||!!e,invalid:()=>(0,c._t)("auth|username_field_required_invalid")}]})),(0,i.A)(this,"onUsernameValidate",async e=>{const t=await this.validateUsernameRules(e);return this.markFieldValid(uI.MatrixId,t.valid),t}),(0,i.A)(this,"onEmailValidate",e=>{this.markFieldValid(uI.Email,e.valid)}),(0,i.A)(this,"validatePhoneNumberRules",(0,Yp.A)({rules:[{key:"required",test:({value:e,allowEmpty:t})=>t||!!e,invalid:()=>(0,c._t)("auth|msisdn_field_required_invalid")},{key:"number",test:({value:e})=>!e||mI.test(e),invalid:()=>(0,c._t)("auth|msisdn_field_number_invalid")}]})),(0,i.A)(this,"onPhoneNumberValidate",async e=>{const t=await this.validatePhoneNumberRules(e);return this.markFieldValid(uI.Password,t.valid),t}),(0,i.A)(this,"validatePasswordRules",(0,Yp.A)({rules:[{key:"required",test:({value:e,allowEmpty:t})=>t||!!e,invalid:()=>(0,c._t)("auth|password_field_label")}]})),(0,i.A)(this,"onPasswordValidate",async e=>{const t=await this.validatePasswordRules(e);return this.markFieldValid(uI.Password,t.valid),t}),this.state={fieldValid:{},loginType:uI.MatrixId,password:""}}async verifyFieldsBeforeSubmit(){const e=document.activeElement;e&&e.blur();const t=[this.state.loginType,uI.Password];for(const e of t){const t=this[e];t&&await t.validate({allowEmpty:!1})}if(await new Promise(e=>this.setState({},e)),this.allFieldsValid())return!0;const n=this.findFirstInvalidField(t);return!n||(n.focus(),n.validate({allowEmpty:!1,focused:!0}),!1)}allFieldsValid(){return Object.values(this.state.fieldValid).every(Boolean)}findFirstInvalidField(e){for(const t of e)if(!this.state.fieldValid[t]&&this[t])return this[t];return null}markFieldValid(e,t){const{fieldValid:n}=this.state;n[e]=t,this.setState({fieldValid:n})}renderLoginField(e,t){const n={error:!1};switch(e){case uI.Email:return n.error=this.props.loginIncorrect&&!this.props.username,s.createElement(pb,{id:"mx_LoginForm_email",className:un()(n),name:"username",autoComplete:"email",type:"email",key:"email_input",placeholder:"joe@example.com",value:this.props.username,onChange:this.onUsernameChanged,onBlur:this.onUsernameBlur,disabled:this.props.busy,autoFocus:t,onValidate:this.onEmailValidate,fieldRef:e=>{this[uI.Email]=e}});case uI.MatrixId:return n.error=this.props.loginIncorrect&&!this.props.username,s.createElement(yi.A,{id:"mx_LoginForm_username",className:un()(n),name:"username",autoComplete:"username",key:"username_input",type:"text",label:(0,c._t)("common|username"),placeholder:(0,c._t)("common|username"),value:this.props.username,onChange:this.onUsernameChanged,onBlur:this.onUsernameBlur,disabled:this.props.busy,autoFocus:t,onValidate:this.onUsernameValidate,ref:e=>{this[uI.MatrixId]=e}});case uI.Phone:{n.error=this.props.loginIncorrect&&!this.props.phoneNumber;const e=s.createElement(_b,{value:this.props.phoneCountry,isSmall:!0,showPrefix:!0,onOptionChange:this.onPhoneCountryChanged});return s.createElement(yi.A,{id:"mx_LoginForm_phone",className:un()(n),name:"phoneNumber",autoComplete:"tel-national",key:"phone_input",type:"text",label:(0,c._t)("auth|msisdn_field_label"),value:this.props.phoneNumber,prefixComponent:e,onChange:this.onPhoneNumberChanged,disabled:this.props.busy,autoFocus:t,onValidate:this.onPhoneNumberValidate,ref:e=>{this[uI.Password]=e}})}}}isLoginEmpty(){switch(this.state.loginType){case uI.Email:case uI.MatrixId:return!this.props.username;case uI.Phone:return!this.props.phoneCountry||!this.props.phoneNumber}}render(){let e;this.props.onForgotPasswordClick&&(e=s.createElement(Ve.A,{className:"mx_Login_forgot",disabled:this.props.busy,kind:"link",onClick:this.onForgotPasswordClick},(0,c._t)("auth|reset_password_button")));const t=un()({error:this.props.loginIncorrect&&!this.isLoginEmpty()}),n=!this.isLoginEmpty(),i=this.renderLoginField(this.state.loginType,!n);let o;return d.A.get().disable_3pid_login||(o=s.createElement("div",{className:"mx_Login_type_container"},s.createElement("label",{className:"mx_Login_type_label"},(0,c._t)("auth|identifier_label")),s.createElement(yi.A,{element:"select",value:this.state.loginType,onChange:this.onLoginTypeChange,disabled:this.props.busy},s.createElement("option",{key:uI.MatrixId,value:uI.MatrixId},(0,c._t)("common|username")),s.createElement("option",{key:uI.Email,value:uI.Email},(0,c._t)("common|email_address")),s.createElement("option",{key:uI.Password,value:uI.Password},(0,c._t)("auth|msisdn_field_label"))))),s.createElement("div",null,s.createElement("form",{onSubmit:this.onSubmitForm},o,i,s.createElement(yi.A,{id:"mx_LoginForm_password",className:t,autoComplete:"current-password",type:"password",name:"password",label:(0,c._t)("common|password"),value:this.state.password,onChange:this.onPasswordChanged,disabled:this.props.busy,autoFocus:n,onValidate:this.onPasswordValidate,ref:e=>{this[uI.Password]=e}}),e,!this.props.busy&&s.createElement(xe.$,{className:"mx_Login_submit",size:"md",type:"submit",disabled:this.props.disableSubmit},(0,c._t)("action|sign_in"))))}}function hI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function gI(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hI(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hI(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}(0,i.A)(pI,"defaultProps",{onUsernameChanged:function(){},onUsernameBlur:function(){},onPhoneCountryChanged:function(){},onPhoneNumberChanged:function(){},loginIncorrect:!1,disableSubmit:!1});class vI extends s.PureComponent{constructor(e){super(e),(0,i.A)(this,"unmounted",!1),(0,i.A)(this,"loginLogic",void 0),(0,i.A)(this,"stepRendererMap",void 0),(0,i.A)(this,"isBusy",()=>!!this.state.busy||!!this.props.busy),(0,i.A)(this,"onPasswordLogin",async(e,t,n,i)=>{if(!this.state.serverIsAlive){this.setState({busy:!0});let e=!0;try{await g.validateServerConfigWithStaticUrls(this.props.serverConfig.hsUrl,this.props.serverConfig.isUrl),this.setState({serverIsAlive:!0,errorText:""})}catch(t){const n=g.authComponentStateForError(t);this.setState(gI({busy:!1,busyLoggingIn:!1},n)),e=!n.serverErrorIsFatal}if(!e)return}this.setState({busy:!0,busyLoggingIn:!0,errorText:null,loginIncorrect:!1}),this.loginLogic.loginViaPassword(e,t,n,i).then(e=>{this.setState({serverIsAlive:!0}),this.props.onLoggedIn(e)},t=>{if(this.unmounted)return;let n;n=400===t.httpStatus&&e&&e.indexOf("@")>0?(0,c._t)("auth|unsupported_auth_email"):(0,qc.Y0)(t,this.props.serverConfig),this.setState({busy:!1,busyLoggingIn:!1,errorText:n,loginIncorrect:401===t.httpStatus||403===t.httpStatus})})}),(0,i.A)(this,"onUsernameChanged",e=>{this.setState({username:e})}),(0,i.A)(this,"onUsernameBlur",async e=>{const t="@"===e[0];if(this.setState({username:e,busy:t,errorText:null}),t){const t=e.split(":").slice(1).join(":");try{const e=await g.validateServerName(t);this.props.onServerConfigChange(e),this.setState({busy:!1})}catch(e){o.vF.error("Problem parsing URL or unhandled error doing .well-known discovery:",e);let t=(0,c._t)("auth|failed_homeserver_discovery");e instanceof c.P7&&e.translatedMessage&&(t=e.translatedMessage);let n=t,i={};g.isLivelinessError(e)&&(n=this.state.errorText,i=g.authComponentStateForError(e)),this.setState(gI({busy:!1,errorText:n},i))}}}),(0,i.A)(this,"onPhoneCountryChanged",e=>{this.setState({phoneCountry:e})}),(0,i.A)(this,"onPhoneNumberChanged",e=>{this.setState({phoneNumber:e})}),(0,i.A)(this,"onRegisterClick",e=>{var t,n;e.preventDefault(),e.stopPropagation(),null===(t=(n=this.props).onRegisterClick)||void 0===t||t.call(n)}),(0,i.A)(this,"onTryRegisterClick",e=>{var t,n;const i=null===(t=this.state.flows)||void 0===t?void 0:t.find(e=>"m.login.password"===e.type),s=null===(n=this.state.flows)||void 0===n?void 0:n.find(e=>"m.login.sso"===e.type||"m.login.cas"===e.type);if(s&&!i){var o;e.preventDefault(),e.stopPropagation();const t="m.login.sso"===s.type?"sso":"cas";null===(o=l.A.get())||void 0===o||o.startSingleSignOn(this.loginLogic.createTemporaryClient(),t,this.props.fragmentAfterLogin,void 0,r.SbG.REGISTER)}else this.onRegisterClick(e)}),(0,i.A)(this,"isSupportedFlow",e=>!!this.stepRendererMap[e.type]||(o.vF.log("Skipping flow",e,"due to unsupported login type",e.type),!1)),(0,i.A)(this,"renderPasswordStep",()=>s.createElement(pI,{onSubmit:this.onPasswordLogin,username:this.state.username,phoneCountry:this.state.phoneCountry,phoneNumber:this.state.phoneNumber,onUsernameChanged:this.onUsernameChanged,onUsernameBlur:this.onUsernameBlur,onPhoneCountryChanged:this.onPhoneCountryChanged,onPhoneNumberChanged:this.onPhoneNumberChanged,onForgotPasswordClick:this.props.onForgotPasswordClick,loginIncorrect:this.state.loginIncorrect,disableSubmit:this.isBusy(),busy:this.props.isSyncing||this.state.busyLoggingIn})),(0,i.A)(this,"renderOAuth2Step",()=>{const e=this.state.flows.find(e=>"oauthNativeFlow"===e.type);return s.createElement(xe.$,{className:"mx_Login_fullWidthButton",kind:"primary",size:"md",onClick:async()=>{await Zc(this.props.serverConfig.delegatedAuthentication,e.clientId,this.props.serverConfig.hsUrl,this.props.serverConfig.isUrl)}},(0,c._t)("action|continue"))}),(0,i.A)(this,"renderSsoStep",e=>{var t,n;const i=null===(t=this.state.flows)||void 0===t?void 0:t.find(t=>t.type==="m.login."+e);return s.createElement(QR,{matrixClient:this.loginLogic.createTemporaryClient(),flow:i,loginType:e,fragmentAfterLogin:this.props.fragmentAfterLogin,primary:!(null!==(n=this.state.flows)&&void 0!==n&&n.find(e=>"m.login.password"===e.type)),action:r.SbG.LOGIN,disabled:this.isBusy()})}),this.state={busy:!1,errorText:null,loginIncorrect:!1,username:e.defaultUsername?e.defaultUsername:"",phoneCountry:"",phoneNumber:"",serverIsAlive:!0,serverErrorIsFatal:!1,serverDeadError:""},this.stepRendererMap={"m.login.password":this.renderPasswordStep,"m.login.cas":()=>this.renderSsoStep("cas"),"m.login.sso":()=>this.renderSsoStep("sso"),oauthNativeFlow:()=>this.renderOAuth2Step()}}componentDidMount(){this.unmounted=!1,this.initLoginLogic(this.props.serverConfig)}componentWillUnmount(){this.unmounted=!0}componentDidUpdate(e){e.serverConfig.hsUrl===this.props.serverConfig.hsUrl&&e.serverConfig.isUrl===this.props.serverConfig.isUrl&&e.serverConfig.delegatedAuthentication===this.props.serverConfig.delegatedAuthentication||this.initLoginLogic(this.props.serverConfig)}async checkServerLiveliness({hsUrl:e,isUrl:t}){try{const{warning:n}=await g.validateServerConfigWithStaticUrls(e,t);n?this.setState(gI(gI({},g.authComponentStateForError(n)),{},{errorText:""})):this.setState({serverIsAlive:!0,errorText:""})}catch(e){this.setState(gI({busy:!1},g.authComponentStateForError(e)))}}async initLoginLogic({hsUrl:e,isUrl:t}){let n=!1;this.props.serverConfig.isDefault&&e===this.props.serverConfig.hsUrl&&t===this.props.serverConfig.isUrl&&(n=!0);const i=n?this.props.fallbackHsUrl:null;this.setState({busy:!0,loginIncorrect:!1}),await this.checkServerLiveliness({hsUrl:e,isUrl:t});const s=new te(e,t,i,{defaultDeviceDisplayName:this.props.defaultDeviceDisplayName,delegatedAuthentication:this.props.serverConfig.delegatedAuthentication});this.loginLogic=s,s.getFlows().then(e=>{const t=e.filter(this.isSupportedFlow);this.setState({flows:t}),0===t.length&&this.setState({errorText:(0,c._t)("auth|unsupported_auth")})},e=>{this.setState({errorText:(0,qc.Vp)(e,this.props.serverConfig),loginIncorrect:!1})}).finally(()=>{this.setState({busy:!1})})}renderLoginComponentForFlows(){if(!this.state.flows)return null;const e=(0,Me.Bo)(["oauthNativeFlow","m.login.password","m.login.sso"].map(e=>{var t;return null===(t=this.state.flows)||void 0===t?void 0:t.find(t=>t.type===e)}));return s.createElement(s.Fragment,null,e.map(e=>{const t=this.stepRendererMap[e.type];return s.createElement(s.Fragment,{key:e.type},t())}))}render(){const e=this.isBusy()&&!this.state.busyLoggingIn?s.createElement("div",{className:"mx_Login_loader"},s.createElement(Be.A,null)):null,t=this.state.errorText;let n,i,o;if(t&&(n=s.createElement("div",{className:"mx_Login_error"},t)),!this.state.serverIsAlive){const e=un()({mx_Login_error:!0,mx_Login_serverError:!0,mx_Login_serverErrorNonFatal:!this.state.serverErrorIsFatal});i=s.createElement("div",{className:e},this.state.serverDeadError)}return this.props.isSyncing||this.state.busyLoggingIn?o=s.createElement("div",{className:"mx_AuthBody_paddedFooter"},s.createElement("div",{className:"mx_AuthBody_paddedFooter_title"},s.createElement($s.A,{size:20}),this.props.isSyncing?(0,c._t)("auth|syncing"):(0,c._t)("auth|signing_in")),this.props.isSyncing&&s.createElement("div",{className:"mx_AuthBody_paddedFooter_subtitle"},(0,c._t)("auth|sync_footer_subtitle"))):this.props.onRegisterClick&&S.A.getValue(as.f.Registration)&&(o=s.createElement("span",{className:"mx_AuthBody_changeFlow"},(0,c._t)("auth|create_account_prompt",{},{a:e=>s.createElement(Ve.A,{kind:"link_inline",onClick:this.onTryRegisterClick},e)}))),s.createElement(qk,null,s.createElement(sR,{disableLanguageSelector:this.props.isSyncing||this.state.busyLoggingIn}),s.createElement(oR,null,s.createElement("h1",null,(0,c._t)("action|sign_in"),e),n,i,s.createElement(eI,{serverConfig:this.props.serverConfig,onServerConfigChange:this.props.onServerConfigChange,disabled:this.isBusy()}),this.renderLoginComponentForFlows(),this.props.children,o))}}const _I=(0,s.memo)(e=>{const t=yl.r.instance.customComponents.loginComponentRenderer;return t?t(e,e=>s.createElement(vI,e)):s.createElement(vI,e)});var fI=n("./src/utils/KeyVerificationStateObserver.ts");class yI extends s.PureComponent{constructor(e){var t;super(e),(0,i.A)(this,"intervalHandle",void 0),(0,i.A)(this,"checkRequestIsPending",()=>{const{request:e}=this.props;(0,Ee.Dy)(e)||re.A.sharedInstance().dismissToast(this.props.toastKey)}),(0,i.A)(this,"cancel",()=>{re.A.sharedInstance().dismissToast(this.props.toastKey);try{this.props.request.cancel()}catch(e){o.vF.error("Error while cancelling verification request",e)}}),(0,i.A)(this,"accept",async()=>{re.A.sharedInstance().dismissToast(this.props.toastKey);const{request:e}=this.props;try{if(e.roomId){var t,n;K.A.dispatch({action:$.r.ViewRoom,room_id:e.roomId,should_peek:!1,metricsTrigger:"VerificationRequest"});const i=null!==(t=null===(n=this.context.client)||void 0===n?void 0:n.getUser(e.otherUserId))&&void 0!==t?t:void 0;this.context.rightPanelStore.setCards([{phase:Wu.n.RoomSummary},{phase:Wu.n.MemberInfo,state:{member:i}},{phase:Wu.n.EncryptionPanel,state:{verificationRequest:e,member:i}}],void 0,e.roomId)}else{const{finished:t}=X.Ay.createDialog(Ie,{verificationRequest:e},void 0,!1,!0);t.then(()=>e.cancel())}await e.accept()}catch(e){o.vF.error("Failed to accept verification request",e)}}),this.state={counter:Math.ceil((null!==(t=e.request.timeout)&&void 0!==t?t:0)/1e3)}}async componentDidMount(){const{request:e}=this.props;e.timeout&&e.timeout>0&&(this.intervalHandle=window.setInterval(()=>{let{counter:e}=this.state;e=Math.max(0,e-1),this.setState({counter:e})},1e3)),e.on(Ee.FM.Change,this.checkRequestIsPending),this.checkRequestIsPending();const t=e.otherDeviceId;if(e.isSelfVerification&&t){const e=this.context.client,n=await e.getDevice(t);this.setState({ip:n.last_seen_ip,device:await(0,Ct.G)(e,e.getSafeUserId(),t)})}}componentWillUnmount(){clearInterval(this.intervalHandle);const{request:e}=this.props;e.off(Ee.FM.Change,this.checkRequestIsPending)}render(){const{request:e}=this.props;let t,n;if(e.isSelfVerification)this.state.device&&(t=this.state.device.displayName,n=(0,c._t)("encryption|verification|request_toast_detail",{deviceId:this.state.device.deviceId,ip:this.state.ip}));else{const n=this.context.client,i=e.otherUserId,s=e.roomId;if(t=s?(0,fI.M)(n,i,s):i,t===i){const e=n.getUser(i);e&&e.displayName&&(t=(0,c._t)("name_and_id",{name:e.displayName,userId:i}))}}const i=0===this.state.counter?(0,c._t)("action|ignore"):(0,c._t)("encryption|verification|request_toast_decline_counter",{counter:this.state.counter});return s.createElement(lt.A,{description:t,detail:n,primaryLabel:e.isSelfVerification||!e.roomId?(0,c._t)("encryption|verification|request_toast_start_verification"):(0,c._t)("encryption|verification|request_toast_accept_user"),onPrimaryClick:this.accept,secondaryLabel:i,onSecondaryClick:this.cancel})}}(0,i.A)(yI,"contextType",Ro.A);let EI=function(e){return e.PAGE_CHANGE="mx_PageChange",e.LOGIN="mx_Login",e.REGISTER="mx_Register",e}({});class wI{constructor(){(0,i.A)(this,"START_PREFIX","start:"),(0,i.A)(this,"STOP_PREFIX","stop:"),(0,i.A)(this,"listeners",[]),(0,i.A)(this,"entries",[])}static get instance(){return wI._instance||(wI._instance=new wI),wI._instance}start(e,t){if(!this.supportsPerformanceApi())return;const n=this.buildKey(e,t);performance.getEntriesByName(this.START_PREFIX+n).length>0?o.vF.warn(`Recording already started for: ${e}`):performance.mark(this.START_PREFIX+n)}stop(e,t){if(!this.supportsPerformanceApi())return;const n=this.buildKey(e,t);if(0===performance.getEntriesByName(this.START_PREFIX+n).length)return void o.vF.warn(`No recording started for: ${e}`);performance.mark(this.STOP_PREFIX+n),performance.measure(n,this.START_PREFIX+n,this.STOP_PREFIX+n),this.clear(e,t);const i=performance.getEntriesByName(n).pop();return this.entries.push(i),this.listeners.forEach(e=>{this.shouldEmit(e,i)&&e.callback([i])}),i}clear(e,t){if(!this.supportsPerformanceApi())return;const n=this.buildKey(e,t);performance.clearMarks(this.START_PREFIX+n),performance.clearMarks(this.STOP_PREFIX+n)}getEntries({name:e,type:t}={}){return this.entries.filter(n=>{const i=!e||n.name===e,s=!t||n.entryType===t;return i&&s})}addPerformanceDataCallback(e,t=!1){if(this.listeners.push(e),t){const t=this.entries.filter(t=>this.shouldEmit(e,t));t.length>0&&e.callback(t)}}removePerformanceDataCallback(e){e?this.listeners.splice(this.listeners.findIndex(t=>t.callback===e),1):this.listeners=[]}supportsPerformanceApi(){return void 0!==performance&&void 0!==performance.mark}shouldEmit(e,t){return!e.entryNames||e.entryNames.includes(t.name)}buildKey(e,t){return`${e}${t?`:${t}`:""}`}}(0,i.A)(wI,"_instance",void 0),window.mxPerformanceMonitor=wI.instance,window.mxPerformanceEntryNames=EI;class SI extends s.Component{constructor(...e){super(...e),(0,i.A)(this,"onConfirm",()=>{this.props.onFinished(!0)}),(0,i.A)(this,"onDecline",()=>{this.props.onFinished(!1)})}render(){return s.createElement(ke.A,{className:"mx_ConfirmWipeDeviceDialog",hasCancel:!0,onFinished:this.props.onFinished,title:(0,c._t)("auth|soft_logout|clear_data_title")},s.createElement("div",{className:"mx_ConfirmWipeDeviceDialog_content"},s.createElement("p",null,(0,c._t)("auth|soft_logout|clear_data_description"))),s.createElement(an.A,{primaryButton:(0,c._t)("auth|soft_logout|clear_data_button"),onPrimaryButtonClick:this.onConfirm,primaryButtonClass:"danger",cancelButton:(0,c._t)("action|cancel"),onCancel:this.onDecline}))}}var bI=function(e){return e[e.Loading=0]="Loading",e[e.Password=1]="Password",e[e.CAS=2]="CAS",e[e.SSO=3]="SSO",e[e.PasswordWithSocialSignOn=4]="PasswordWithSocialSignOn",e[e.Unsupported=5]="Unsupported",e}(bI||{});const AI={"m.login.password":bI.Password,"m.login.cas":bI.CAS,"m.login.sso":bI.SSO};class CI extends s.Component{constructor(e){super(e),(0,i.A)(this,"onClearAll",()=>{const{finished:e}=X.Ay.createDialog(SI);e.then(([e])=>{e&&(o.vF.log("Clearing data from soft-logged-out session"),kd())})}),(0,i.A)(this,"onPasswordChange",e=>{this.setState({password:e.target.value})}),(0,i.A)(this,"onForgotPassword",()=>{K.A.dispatch({action:"start_password_recovery"})}),(0,i.A)(this,"onPasswordLogin",async e=>{var t;e.preventDefault(),e.stopPropagation(),this.setState({busy:!0});const n=_.J.safeGet(),i=n.getHomeserverUrl(),s=n.getIdentityServerUrl(),a={identifier:{type:"m.id.user",user:n.getUserId()},password:this.state.password,device_id:null!==(t=n.getDeviceId())&&void 0!==t?t:void 0};let l;try{l=await ie(i,s,"m.login.password",a)}catch(e){let t=(0,c._t)("auth|failed_soft_logout_homeserver");return e instanceof r.upv&&"M_FORBIDDEN"===e.errcode&&(401===e.httpStatus||403===e.httpStatus)&&(t=(0,c._t)("auth|incorrect_password")),void this.setState({busy:!1,errorText:t})}Sd(l).catch(e=>{o.vF.error(e),this.setState({busy:!1,errorText:(0,c._t)("auth|failed_soft_logout_auth")})})}),this.state={loginView:bI.Loading,busy:!1,password:"",errorText:"",flows:[]}}componentDidMount(){Id()?this.initLogin():K.A.dispatch({action:"start_login"})}async initLogin(){var e;if(!(null===(e=this.props.urlParams)||void 0===e||!e.legacy_sso)){this.setState({loginView:bI.Loading});if(await this.trySsoLogin())return}const t=_.J.safeGet(),n=(await t.loginFlows()).flows,i=n.map(e=>AI[e.type]),s=i.includes(bI.Password)&&i.includes(bI.SSO),o=i.find(e=>!!e)||bI.Unsupported,r=s?bI.PasswordWithSocialSignOn:o;this.setState({flows:n,loginView:r})}async trySsoLogin(){var e,t;this.setState({busy:!0});const n=localStorage.getItem(Qt.FL);if(!n)return o.vF.error("Homeserver URL unknown for SSO login callback"),this.setState({busy:!1,loginView:bI.Unsupported}),!1;const i=localStorage.getItem(Qt.U7)||_.J.safeGet().getIdentityServerUrl(),s={token:null===(e=this.props.urlParams)||void 0===e||null===(e=e.legacy_sso)||void 0===e?void 0:e.loginToken,device_id:null!==(t=_.J.safeGet().getDeviceId())&&void 0!==t?t:void 0};let r;try{r=await ie(n,i,"m.login.token",s)}catch(e){return o.vF.error(e),this.setState({busy:!1,loginView:bI.Unsupported}),!1}return Sd(r).then(()=>(this.props.onTokenLoginCompleted(this.props.urlParams,this.props.fragmentAfterLogin),!0)).catch(e=>(o.vF.error(e),this.setState({busy:!1,loginView:bI.Unsupported}),!1))}renderPasswordForm(e){let t;return this.state.errorText&&(t=s.createElement("span",{className:"mx_Login_error"},this.state.errorText)),s.createElement("form",{onSubmit:this.onPasswordLogin},e?s.createElement("p",null,e):null,t,s.createElement(yi.A,{type:"password",label:(0,c._t)("common|password"),onChange:this.onPasswordChange,value:this.state.password,disabled:this.state.busy}),s.createElement(Ve.A,{onClick:this.onPasswordLogin,kind:"primary",disabled:this.state.busy},(0,c._t)("action|sign_in")),s.createElement(Ve.A,{onClick:this.onForgotPassword,kind:"link"},(0,c._t)("auth|forgot_password_prompt")))}renderSsoForm(e){const t=this.state.loginView===bI.CAS?"cas":"sso",n=this.state.flows.find(e=>e.type==="m.login."+t);return s.createElement("div",null,e?s.createElement("p",null,e):null,s.createElement(QR,{matrixClient:_.J.safeGet(),flow:n,loginType:t,fragmentAfterLogin:this.props.fragmentAfterLogin,primary:!this.state.flows.find(e=>"m.login.password"===e.type),action:r.SbG.LOGIN}))}renderSignInSection(){return this.state.loginView===bI.Loading?s.createElement(Be.A,null):this.state.loginView===bI.Password?this.renderPasswordForm((0,c._t)("auth|soft_logout_intro_password")):this.state.loginView===bI.SSO||this.state.loginView===bI.CAS?this.renderSsoForm((0,c._t)("auth|soft_logout_intro_sso")):this.state.loginView===bI.PasswordWithSocialSignOn?s.createElement(s.Fragment,null,s.createElement("p",null,(0,c._t)("auth|soft_logout_intro_sso")),this.renderSsoForm(),s.createElement("h2",{className:"mx_AuthBody_centered"},(0,c._t)("auth|sso_or_username_password",{ssoButtons:"",usernamePassword:""}).trim()),this.renderPasswordForm()):s.createElement("p",null,(0,c._t)("auth|soft_logout_intro_unsupported_auth"))}render(){return s.createElement(qk,null,s.createElement(sR,null),s.createElement(oR,null,s.createElement("h1",null,(0,c._t)("auth|soft_logout_heading")),s.createElement("h2",null,(0,c._t)("action|sign_in")),s.createElement("div",null,this.renderSignInSection()),s.createElement("h2",null,(0,c._t)("auth|soft_logout_subheading")),s.createElement("p",null,(0,c._t)("auth|soft_logout_warning")),s.createElement("div",null,s.createElement(Ve.A,{onClick:this.onClearAll,kind:"danger"},(0,c._t)("auth|soft_logout|clear_data_button")))))}}var xI=n("./src/Views.ts");var kI=n("../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/sum.js"),RI=n("../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/capitalize.js"),II=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/space.js"),TI=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/home.js"),PI=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/chat.js");function NI(e,t,n,i=100){(0,s.useEffect)(()=>{let s=null;const o=()=>{s=null,t(...n)};if(!1!==e)return s=globalThis.setTimeout(o,i),()=>{s&&clearTimeout(s)}},[e,t,n,i])}const DI=e=>{const t=(0,s.useRef)(null);return[(0,s.useCallback)(e=>{t.current=e},[]),(0,s.useCallback)((n,i)=>{t.current===n&&e(i)},[e])]},MI="ALL_ROOMS",OI="mx_last_room_directory_server",FI="mx_last_room_directory_instance";let LI;const UI="nsfw",VI=e=>{var t,n;return!(null!==(t=e.name)&&void 0!==t&&t.toLocaleLowerCase().includes(UI)||null!==(n=e.topic)&&void 0!==n&&n.toLocaleLowerCase().includes(UI))},BI=()=>{const[e,t]=(0,s.useState)([]),[n,i]=(0,s.useState)(void 0),[o,r]=(0,s.useState)(null),[a,l]=(0,s.useState)(!1),[c,m]=(0,s.useState)(!1),[u,p]=(0,s.useState)(),[h,g]=DI(t),v=(0,es.ti)("SpotlightSearch.showNsfwPublicRooms");const f=(0,s.useCallback)(async({limit:e=20,query:t,roomTypes:i})=>{const s={limit:e};(null==n?void 0:n.roomServer)!=_.J.safeGet().getDomain()&&(s.server=null==n?void 0:n.roomServer),(null==n?void 0:n.instanceId)===MI?s.include_all_networks=!0:null!=n&&n.instanceId&&(s.third_party_instance_id=n.instanceId),(t||i)&&(s.filter={generic_search_term:t,room_types:i&&await _.J.safeGet().doesServerSupportUnstableFeature("org.matrix.msc3827.stable")?Array.from(i):void 0}),h(s),m(!0),p(void 0);try{const{chunk:e}=await _.J.safeGet().publicRooms(s);return g(s,v?e:e.filter(VI)),!0}catch(e){return p(!(e instanceof Error)||e),console.error("Could not fetch public rooms for params",s,e),g(s,[]),!1}finally{m(!1)}},[n,h,g,v]);return(0,s.useEffect)(()=>{!async function(){if(_.J.get())if(LI)r(LI);else{const e=await _.J.safeGet().getThirdpartyProtocols();LI=e,r(e)}else l(!0)}()},[]),(0,s.useEffect)(()=>{var e,t,n;if(null===o)return;const s=_.J.safeGet().getDomain(),r=localStorage.getItem(OI),a=null!==(e=localStorage.getItem(FI))&&void 0!==e?e:void 0;let c,m=s;r&&(null!==(t=d.A.getObject("room_directory"))&&void 0!==t&&null!==(t=t.get("servers"))&&void 0!==t&&t.includes(r)||null!==(n=S.A.getValue("room_directory_servers"))&&void 0!==n&&n.includes(r))&&(m=r),m!==s||a!==MI&&!Object.values(o).some(e=>{e.instances.some(e=>e.instance_id===a)})||(c=a),l(!0),i({roomServer:m,instanceId:c})},[o]),(0,s.useEffect)(()=>{n&&(localStorage.setItem(OI,n.roomServer),n.instanceId?localStorage.setItem(FI,n.instanceId):localStorage.removeItem(FI))},[n]),{ready:a,loading:c,publicRooms:e,protocols:o,config:n,search:f,setConfig:function(e){if(!a)throw new Error("public room configuration not initialised yet");i(e)},error:u}};var jI=n("./src/stores/BreadcrumbsStore.ts"),HI=n("./src/utils/SortMembers.ts"),zI=n("./src/components/views/avatars/SearchResultAvatar.tsx"),WI=n("../../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/without.js"),JI=n("./src/accessibility/context_menu/MenuItemRadio.tsx");function GI({label:e,description:t,onClick:n,isSelected:i,adornment:o}){return s.createElement(JI.s,{active:i,className:"mx_GenericDropdownMenu_Option mx_GenericDropdownMenu_Option--item",onClick:n},i&&s.createElement(Je.A,{className:"mx_GenericDropdownMenu_Option--checkIcon"}),s.createElement("div",{className:"mx_GenericDropdownMenu_Option--label"},s.createElement("span",null,e),t&&s.createElement("span",null,t)),o)}function KI({label:e,description:t,adornment:n,children:i}){return s.createElement(s.Fragment,null,s.createElement("div",{className:"mx_GenericDropdownMenu_Option mx_GenericDropdownMenu_Option--header"},s.createElement("div",{className:"mx_GenericDropdownMenu_Option--label"},s.createElement("span",null,e),s.createElement("span",null,t)),n),i)}function qI(e){return"options"in e}function $I(e,t){return t?t(e):e}function YI({value:e,onChange:t,options:n,selectedLabel:i,onOpen:o,onClose:r,toKey:a,className:l,AdditionalOptions:c}){const[d,m,u,p]=(0,tr.EF)(),h=$I(e,a),g=n.flatMap(e=>qI(e)?[e,...e.options]:[e]).find(e=>$I(e.key,a)===h);let v;v=n&&qI(n[0])?s.createElement(s.Fragment,null,n.map(e=>s.createElement(KI,{key:$I(e.key,a),label:e.label,description:e.description,adornment:e.adornment},e.options.map(e=>s.createElement(GI,{key:$I(e.key,a),label:e.label,description:e.description,onClick:n=>{t(e.key),p(),null==r||r(n)},adornment:e.adornment,isSelected:$I(e.key,a)===h}))))):s.createElement(s.Fragment,null,n.map(e=>s.createElement(GI,{key:$I(e.key,a),label:e.label,description:e.description,onClick:n=>{t(e.key),p(),null==r||r(n)},adornment:e.adornment,isSelected:$I(e.key,a)===h})));const _=d&&m.current?s.createElement(tr.Ay,(0,xn.A)({onFinished:p,chevronFace:tr.t4.Top,wrapperClassName:un()("mx_GenericDropdownMenu_wrapper",l)},(0,tr.qv)(m.current.getBoundingClientRect())),v,c&&s.createElement(c,{menuDisplayed:d,openMenu:u,closeMenu:p})):null;return s.createElement(s.Fragment,null,s.createElement(tr.VJ,{className:"mx_GenericDropdownMenu_button",ref:m,isExpanded:d,onClick:e=>{u(),null==o||o(e)}},i(g),s.createElement(uu.A,null)),_)}var QI=n("./src/components/views/dialogs/TextInputDialog.tsx");function XI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}const ZI=(0,Yp.A)({deriveData:async({value:e})=>{try{return await _.J.safeGet().publicRooms({limit:1,server:null!=e?e:void 0}),{}}catch(e){return{error:e}}},rules:[{key:"required",test:async({value:e})=>!!e,invalid:()=>(0,c._t)("spotlight|public_rooms|network_dropdown_required_invalid")},{key:"available",final:!0,test:async(e,{error:t})=>!t,valid:()=>(0,c._t)("spotlight|public_rooms|network_dropdown_available_valid"),invalid:({error:e})=>e instanceof r.upv&&"M_FORBIDDEN"===e.errcode?(0,c._t)("spotlight|public_rooms|network_dropdown_available_invalid_forbidden"):(0,c._t)("spotlight|public_rooms|network_dropdown_available_invalid")}],memoize:!0});function eT(e,...t){for(const n of t)e.delete(n)}function tT(){var e,t;const[n,i]=function(e,t,n=null,i=!1){const[o,r]=(0,s.useState)(S.A.getValue(e,n,i)),a=(0,s.useCallback)(async i=>{r(i),S.A.setValue(e,n,t,i)},[t,n,e]);return(0,s.useEffect)(()=>{const t=S.A.watchSetting(e,n,()=>{r(S.A.getValue(e,n,i))});return()=>{S.A.unwatchSetting(t)}},[e,n,i]),[o,a]}("room_directory_servers",oe.p.ACCOUNT),o=_.J.safeGet().getDomain(),r=new Set(null!==(e=null===(t=d.A.getObject("room_directory"))||void 0===t?void 0:t.get("servers"))&&void 0!==e?e:[]);eT(r,o);const a=new Set(n);return eT(a,o),eT(a,...r),{allServers:[o,...Array.from(r).sort(),...Array.from(a).sort()],homeServer:o,userDefinedServers:Array.from(a).sort(),setUserDefinedServers:i}}const nT=({protocols:e,config:t,setConfig:n})=>{const{allServers:o,homeServer:r,userDefinedServers:a,setUserDefinedServers:l}=tT(),d=o.map(t=>function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?XI(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):XI(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({key:{roomServer:t,instanceId:void 0},label:t,description:t===r?(0,c._t)("spotlight|public_rooms|network_dropdown_your_server_description"):null,options:[{key:{roomServer:t,instanceId:void 0},label:(0,c._t)("common|matrix")},...t===r&&e?Object.values(e).flatMap(e=>e.instances).map(e=>({key:{roomServer:t,instanceId:e.instance_id},label:e.desc})):[]]},a.includes(t)?{adornment:s.createElement(Ve.A,{className:"mx_NetworkDropdown_removeServer",title:(0,c._t)("spotlight|public_rooms|network_dropdown_remove_server_adornment",{roomServer:t}),onClick:()=>l((0,WI.A)(a,t))},s.createElement(ti.A,null))}:{})),m=(0,s.useCallback)(({closeMenu:e})=>s.createElement(s.Fragment,null,s.createElement("span",{className:"mx_GenericDropdownMenu_divider"}),s.createElement(GI,{key:"add-server",onClick:async()=>{e();const{finished:t}=X.Ay.createDialog(QI.A,{title:(0,c._t)("spotlight|public_rooms|network_dropdown_add_dialog_title"),description:(0,c._t)("spotlight|public_rooms|network_dropdown_add_dialog_description"),button:(0,c._t)("action|add"),hasCancel:!1,placeholder:(0,c._t)("spotlight|public_rooms|network_dropdown_add_dialog_placeholder"),validator:ZI,fixedWidth:!1},"mx_NetworkDropdown_dialog"),[i,s]=await t;i&&(o.includes(s)||(l([...a,s]),n({roomServer:s})))},isSelected:!1,label:(0,c._t)("spotlight|public_rooms|network_dropdown_add_server_option")})),[o,n,l,a]);return s.createElement(YI,{className:"mx_NetworkDropdown_wrapper",value:t,toKey:e=>e?`${e.roomServer}-${e.instanceId}`:"null",options:d,onChange:e=>n(e),selectedLabel:e=>null!=e&&e.key?(0,c._t)("spotlight|public_rooms|network_dropdown_selected_label_instance",{server:e.key.roomServer,instance:e.key.instanceId?e.label:"Matrix"}):(0,c._t)("spotlight|public_rooms|network_dropdown_selected_label"),AdditionalOptions:m})},iT=["children","endAdornment","className"],sT=e=>{let{children:t,endAdornment:n,className:i}=e,o=(0,v.A)(e,iT);const[r,a,l]=(0,Pr.A9)();return s.createElement(Ve.A,(0,xn.A)({},o,{className:un()(i,"mx_SpotlightDialog_option"),onFocus:r,ref:l,tabIndex:-1,"aria-selected":a,role:"option",element:"li"}),t,s.createElement("div",{className:"mx_SpotlightDialog_option--endAdornment"},s.createElement("kbd",{className:"mx_SpotlightDialog_enterPrompt","aria-hidden":!0},"↵"),n))};function oT({room:e,labelId:t,descriptionId:n,detailsId:i}){var o,r,a;let l=e.name||(0,Bd.iW)(null!==(o=e.canonical_alias)&&void 0!==o?o:"",null!==(r=e.aliases)&&void 0!==r?r:[])||(0,c._t)("common|unnamed_room");l.length>80&&(l=`${l.substring(0,80)}...`);let d=e.topic||"";return d.length>800&&(d=`${d.substring(0,800)}...`),s.createElement("div",{className:"mx_SpotlightDialog_result_publicRoomDetails"},s.createElement("div",{className:"mx_SpotlightDialog_result_publicRoomHeader"},s.createElement("span",{id:t,className:"mx_SpotlightDialog_result_publicRoomName"},l),s.createElement("span",{id:n,className:"mx_SpotlightDialog_result_publicRoomAlias"},null!==(a=e.canonical_alias)&&void 0!==a?a:e.room_id)),s.createElement("div",{id:i,className:"mx_SpotlightDialog_result_publicRoomDescription"},s.createElement("span",{className:"mx_SpotlightDialog_result_publicRoomMemberCount"},(0,c._t)("spotlight_dialog|count_of_members",{count:e.num_joined_members})),d&&s.createElement(s.Fragment,null," · ",s.createElement("span",{className:"mx_SpotlightDialog_result_publicRoomTopic",dangerouslySetInnerHTML:{__html:(0,Us.kz)(d)}}))))}var rT=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/notifications-off-solid.js"),aT=n("./src/hooks/useRoomNotificationState.ts"),lT=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/favourite-solid.js"),cT=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/mark-as-read.js"),dT=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/mark-as-unread.js");const mT=({onFinished:e,roomId:t})=>s.createElement(yu.R$,{onClick:()=>{X.Ay.createDialog(Lu.A,{roomId:t},"mx_DevtoolsDialog_wrapper"),e()},label:(0,c._t)("devtools|title"),icon:s.createElement(JS.A,null)}),uT=["room","onFinished","onPostFavoriteClick","onPostLowPriorityClick","onPostInviteClick","onPostCopyLinkClick","onPostSettingsClick","onPostLeaveClick","onPostForgetClick","onPostMarkAsReadClick","onPostMarkAsUnreadClick"],pT=e=>{let{room:t,onFinished:n,onPostFavoriteClick:i,onPostLowPriorityClick:a,onPostInviteClick:l,onPostCopyLinkClick:d,onPostSettingsClick:m,onPostLeaveClick:u,onPostForgetClick:p,onPostMarkAsReadClick:h,onPostMarkAsUnreadClick:g}=e,_=(0,v.A)(e,uT);const f=(0,s.useContext)(je.Ay),y=(0,mo.dF)(t,r.u99.Tags,()=>(0,Rm.E)(t)),E=Q.A.shared().getUserIdForRoomId(t.roomId),w=(e,t,i=!1)=>s=>{s.preventDefault(),s.stopPropagation(),e(s);const o=(0,dc.zM)().getAccessibilityAction(s);i&&o!==mc.bY.Enter||n(),null==t||t(s)},S=(e,n)=>{if(f)if(n===Da.z.Favourite||n===Da.z.LowPriority){const e=n===Da.z.Favourite?Da.z.LowPriority:Da.z.Favourite,i=(0,Rm.E)(t).includes(n),s=i?n:e,o=i?null:n;K.A.dispatch(xm.tagRoom(f,t,s,o))}else o.vF.warn(`Unexpected tag ${n} applied to ${t.roomId}`)},b=y.includes(Da.z.Favourite),A=s.createElement(yu.LS,{onClick:w(e=>S(0,Da.z.Favourite),i,!0),active:b,label:b?(0,c._t)("room|context_menu|unfavourite"):(0,c._t)("room|context_menu|favourite"),icon:s.createElement(lT.A,null)}),C=y.includes(Da.z.LowPriority),x=s.createElement(yu.LS,{onClick:w(e=>S(0,Da.z.LowPriority),a,!0),active:C,label:(0,c._t)("room|context_menu|low_priority"),icon:s.createElement(rm.A,null)});let k=null;t.canInvite(f.getUserId())&&!E&&(0,em.g)(as.C.InviteUsers)&&(k=s.createElement(yu.R$,{onClick:w(()=>K.A.dispatch({action:"view_invite",roomId:t.roomId}),l),label:(0,c._t)("action|invite"),icon:s.createElement(vu.A,null)}));let R=null;E||(R=s.createElement(yu.R$,{onClick:w(()=>K.A.dispatch({action:"copy_room",room_id:t.roomId}),d),label:(0,c._t)("room|context_menu|copy_link"),icon:s.createElement(Op.A,null)}));const I=s.createElement(yu.R$,{onClick:w(()=>K.A.dispatch({action:"open_room_settings",room_id:t.roomId}),m),label:(0,c._t)("common|settings"),icon:s.createElement(Se.A,null)});let T;T=y.includes(Da.z.Archived)?s.createElement(yu.R$,{icon:s.createElement(_u.A,null),label:(0,c._t)("room|context_menu|forget"),className:"mx_IconizedContextMenu_option_red",onClick:w(()=>K.A.dispatch({action:"forget_room",room_id:t.roomId}),p)}):s.createElement(yu.R$,{onClick:w(()=>K.A.dispatch({action:"leave_room",room_id:t.roomId}),u),label:(0,c._t)("action|leave"),className:"mx_IconizedContextMenu_option_red",icon:s.createElement(_u.A,null)});const{level:P}=((e,t)=>{const[n,i]=(0,s.useState)(null),[o,a]=(0,s.useState)(0),[l,c]=(0,s.useState)(dr.S.None);(0,mo.ml)(e,r.u99.UnreadNotifications,(e,n)=>{t&&t!==n||d()}),(0,mo.ml)(e,r.u99.Receipt,()=>d()),(0,mo.ml)(e,r.u99.Timeline,()=>d()),(0,mo.ml)(e,r.u99.Redaction,()=>d()),(0,mo.ml)(e,r.u99.LocalEchoUpdated,()=>d()),(0,mo.ml)(e,r.u99.MyMembership,()=>d());const d=(0,s.useCallback)(()=>{const{symbol:n,count:s,level:o}=(0,Ds.m5)(e,t,!1);i(n),a(s),c(o)},[e,t]);return(0,s.useEffect)(()=>{d()},[d]),{symbol:n,count:o,level:l}})(t),N=P>dr.S.None?s.createElement(yu.R$,{onClick:w(()=>{(0,Ra.G9)(t,f),null==n||n()},h),label:(0,c._t)("room|context_menu|mark_read"),icon:s.createElement(cT.A,null)}):y.includes(Da.z.Archived)?null:s.createElement(yu.R$,{onClick:w(()=>{(0,Ra.bR)(t,f,!0),null==n||n()},g),label:(0,c._t)("room|context_menu|mark_unread"),icon:s.createElement(dT.A,null)}),D=(0,es.ti)("developerMode")?s.createElement(mT,{onFinished:n,roomId:t.roomId}):null;return s.createElement(yu.Ay,(0,xn.A)({},_,{onFinished:n,className:"mx_RoomGeneralContextMenu",compact:!0}),s.createElement(yu.tx,null,N,!y.includes(Da.z.Archived)&&s.createElement(s.Fragment,null,A,x,k,R,I),D),s.createElement(yu.tx,{red:!0},T))},hT=["room","onFinished"],gT=e=>{let{room:t,onFinished:n}=e,i=(0,v.A)(e,hT);const[o,r]=(0,aT.I)(t),a=(e,t=!1)=>i=>{i.preventDefault(),i.stopPropagation(),e(i);const s=(0,dc.zM)().getAccessibilityAction(i);t&&s!==mc.bY.Enter||n()},l=s.createElement(yu.h6,{label:(0,c._t)("room|context_menu|notifications_default"),active:o===Ds.dC.AllMessages,onClick:a(()=>r(Ds.dC.AllMessages))}),d=s.createElement(yu.h6,{label:(0,c._t)("notifications|all_messages"),active:o===Ds.dC.AllMessagesLoud,onClick:a(()=>r(Ds.dC.AllMessagesLoud))}),m=s.createElement(yu.h6,{label:(0,c._t)("notifications|mentions_keywords"),active:o===Ds.dC.MentionsOnly,onClick:a(()=>r(Ds.dC.MentionsOnly))}),u=s.createElement(yu.h6,{label:(0,c._t)("room|context_menu|notifications_mute"),active:o===Ds.dC.Mute,onClick:a(()=>r(Ds.dC.Mute))});return s.createElement(yu.Ay,(0,xn.A)({},i,{onFinished:n,className:"mx_RoomNotificationContextMenu",compact:!0}),s.createElement(yu.tx,{first:!0},l,d,m,u))},vT=e=>({left:e.left+window.scrollX-9,top:e.bottom+window.scrollY+17,chevronFace:tr.t4.None});function _T({room:e}){const[t]=(0,aT.I)(e),[n,i]=(0,s.useState)(null),[o,r]=(0,s.useState)(null);let a,l;return null!==n&&(a=e.isSpaceRoom()?s.createElement(Su,(0,xn.A)({},vT(n),{space:e,onFinished:()=>i(null)})):s.createElement(pT,(0,xn.A)({},vT(n),{room:e,onFinished:()=>i(null)}))),null!==o&&(l=s.createElement(gT,(0,xn.A)({},vT(o),{room:e,onFinished:()=>r(null)}))),s.createElement(s.Fragment,null,(0,em.g)(as.C.RoomOptionsMenu)&&s.createElement(gu.o,{className:"mx_SpotlightDialog_option--menu",onClick:e=>{e.preventDefault(),e.stopPropagation();const t=e.target;i(t.getBoundingClientRect())},title:e.isSpaceRoom()?(0,c._t)("space|context_menu|options"):(0,c._t)("room|context_menu|title"),isExpanded:null!==n},s.createElement(uc.A,null)),!e.isSpaceRoom()&&s.createElement(gu.o,{className:"mx_SpotlightDialog_option--notifications",onClick:e=>{e.preventDefault(),e.stopPropagation();const t=e.target;r(t.getBoundingClientRect())},title:(0,c._t)("room_list|notification_options"),isExpanded:null!==o},t===Ds.dC.Mute?s.createElement(rT.A,null):s.createElement(Yy.A,null)),a,l)}const fT=["inputRef","className"],yT=e=>{let{inputRef:t,className:n}=e,i=(0,v.A)(e,fT);const[o,r,a]=(0,Pr.A9)(t);return s.createElement(Ve.A,(0,xn.A)({},i,{className:un()(n,"mx_SpotlightDialog_option"),onFocus:o,ref:a,tabIndex:-1,"aria-selected":r,role:"option"}))};var ET=n("./src/components/views/dialogs/spotlight/Filter.ts");const wT=50,ST="24px";function bT(e){var t;return!0===(null==e||null===(t=e.id)||void 0===t?void 0:t.startsWith("mx_SpotlightDialog_button_recentlyViewed_"))}function AT(e){const t=new Set;return e===ET.d.PublicRooms&&t.add(null),e===ET.d.PublicSpaces&&t.add(r.CJY.Space),t}var CT=function(e){return e[e.People=0]="People",e[e.Rooms=1]="Rooms",e[e.Spaces=2]="Spaces",e[e.Suggestions=3]="Suggestions",e[e.PublicRoomsAndSpaces=4]="PublicRoomsAndSpaces",e}(CT||{});function xT(e){switch(e){case ET.d.People:return(0,c._t)("common|people");case ET.d.PublicRooms:return(0,c._t)("spotlight_dialog|public_rooms_label");case ET.d.PublicSpaces:return(0,c._t)("spotlight_dialog|public_spaces_label")}}function kT(e){switch(e){case ET.d.People:return s.createElement(Vp.A,null);case ET.d.PublicRooms:return s.createElement(cu.A,null);case ET.d.PublicSpaces:return s.createElement(II.A,null)}}function RT(e){switch(e){case Zd._b.Home:return s.createElement(TI.A,null);case Zd._b.Orphans:return s.createElement(cu.A,null)}}const IT=e=>!(null==e||!e.room),TT=e=>!(null==e||!e.publicRoom),PT=e=>!(null==e||!e.member),NT=e=>{var t,n,i,s,o;return{publicRoom:e,section:CT.PublicRoomsAndSpaces,filter:[ET.d.PublicRooms,ET.d.PublicSpaces],query:(0,Me.Bo)([e.room_id.toLowerCase(),null===(t=e.canonical_alias)||void 0===t?void 0:t.toLowerCase(),null===(n=e.name)||void 0===n?void 0:n.toLowerCase(),Ud()(null!==(i=null===(s=e.topic)||void 0===s?void 0:s.toLowerCase())&&void 0!==i?i:"",{allowedTags:[]}),...(null===(o=e.aliases)||void 0===o?void 0:o.map(e=>e.toLowerCase()))||[]])}},DT=e=>{const t=_.J.safeGet().getUserId();if(Q.A.shared().getUserIdForRoomId(e.roomId)){const n=e.getMembers().filter(e=>e.userId!==t),i=[...n.map(e=>e.name.toLowerCase()),...n.map(e=>e.userId.toLowerCase())].filter(Boolean);return{room:e,section:CT.People,filter:[ET.d.People],query:i}}return e.isSpaceRoom()?{room:e,section:CT.Spaces,filter:[]}:{room:e,section:CT.Rooms,filter:[]}},MT=(e,t)=>({alreadyFiltered:t,member:e,section:CT.Suggestions,filter:[ET.d.People],query:[e.userId.toLowerCase(),e.name.toLowerCase()].filter(Boolean)}),OT=(e,t)=>t.hasMentions?(0,c._t)("a11y|n_unread_messages_mentions",{count:t.count}):t.hasUnreadCount?(0,c._t)("a11y|n_unread_messages",{count:t.count}):t.isUnread?(0,c._t)("a11y|unread_messages"):void 0,FT=e=>S.A.getValue("feature_ask_to_join")&&r.dxp.Knock===e,LT=({initialText:e="",initialFilter:t=null,onFinished:n})=>{var i;const o=(0,s.useRef)(null),a=(0,s.useRef)(null),l=_.J.safeGet(),d=(0,s.useContext)(Pr.ui),[m,u]=(0,s.useState)(e),[p,h]=(()=>{const[e,t]=(0,s.useState)(()=>{const e=_.J.safeGet(),t=S.A.getValue("SpotlightSearch.recentSearches",null);return(0,Me.Bo)(t.map(t=>e.getRoom(t)))});return[e,()=>{S.A.setValue("SpotlightSearch.recentSearches",null,oe.p.ACCOUNT,[]),t([])}]})(),[g,v]=(0,s.useState)(t),f=(0,s.useCallback)(e=>{var t,n,i;v(e),null===(t=o.current)||void 0===t||t.focus(),null===(n=a.current)||void 0===n||null===(i=n.scrollTo)||void 0===i||i.call(n,{top:0})},[]),y=(0,s.useMemo)(()=>{const e=(0,HI.nf)(l),t=(0,HI._5)(l);return(0,HI.j2)(e,t)},[l]),E=(0,es.ny)("feature_dynamic_room_predecessors"),w=(0,Ls.Ne)(l.getUserId()),[b,A]=(0,s.useState)(!1),C=(0,s.useMemo)(()=>m.trim(),[m]),[x,k]=(0,s.useState)(!0);(0,s.useEffect)(()=>{l.isVersionSupported("v1.4").then(e=>e||l.doesServerSupportUnstableFeature("org.matrix.msc3827.stable")).then(e=>{k(e)})},[l]);const{loading:R,publicRooms:I,protocols:T,config:P,setConfig:N,search:D,error:M}=BI(),{loading:O,users:F,search:L}=(()=>{const[e,t]=(0,s.useState)([]),[n,i]=(0,s.useState)(!1),[o,r]=DI(t);return{ready:!0,loading:n,users:e,search:(0,s.useCallback)(async({limit:e=20,query:n})=>{const s={limit:e,term:n};if(o(s),null==n||!n.length)return t([]),!0;try{i(!0);const{results:e}=await _.J.safeGet().searchUserDirectory(s);return r(s,e.map(e=>new HE.qv(e))),!0}catch(t){return console.error("Could not fetch user in user directory for params",{limit:e,term:n},t),r(s,[]),!1}finally{i(!1)}},[o,r])}})(),{loading:U,profile:V,search:B}=(()=>{const[e,t]=(0,s.useState)(null),[n,i]=(0,s.useState)(!1),[o,r]=DI(t);return{ready:!0,loading:n,profile:e,search:(0,s.useCallback)(async({query:e})=>{if(o(e),null==e||!e.length||!e.startsWith("@")||!e.includes(":"))return t(null),!0;i(!0);try{const t=await _.J.safeGet().getProfileInfo(e);return r(e,{user_id:e,avatar_url:t.avatar_url,display_name:t.displayname}),!0}catch(t){return console.error("Could not fetch profile info for params",{term:e},t),r(e,null),!1}finally{i(!1)}},[o,r])}})(),j=(0,s.useMemo)(()=>[{query:C,roomTypes:AT(g),limit:wT}],[C,g]);NI(g===ET.d.PublicRooms||g===ET.d.PublicSpaces,D,j),NI(g===ET.d.People,L,j),NI(g===ET.d.People,B,j);const H=(0,s.useMemo)(()=>{const e=((e,t)=>e.getVisibleRooms(t).filter(e=>!(0,Bl.F)(e)&&(e.getMyMembership()===$n.O.Join||e.getMyMembership()==$n.O.Invite)))(l,E),t=e.map(DT),n=[],i=t.reduce((e,t)=>{const n=Q.A.shared().getUserIdForRoomId(t.room.roomId);return n?(t.room.getJoinedMemberCount()>2||e.set(n,t),e):e},new Map);function o(e,t){for(const s of e){if(i.has(s.userId)){const e=i.get(s.userId);t&&PT(e)&&!e.alreadyFiltered&&(e.alreadyFiltered=!0);continue}const e=MT(s,t);i.set(s.userId,e),n.push(e)}}return o(((e,t,n=!0)=>Object.values(e.filter(e=>!n||!Q.A.shared().getUserIdForRoomId(e.roomId)).reduce((e,t)=>{for(const n of t.getJoinedMembers())e[n.userId]=n;return e},{})).filter(e=>e.userId!==t.getUserId()))(e,l),!1),o(F,!0),V&&o([new HE.qv(V)],!0),[...gs._.instance.spaceStore.enabledMetaSpaces.map(e=>({section:CT.Spaces,filter:[],avatar:s.createElement("div",{className:"mx_SpotlightDialog_metaspaceResult"},RT(e)),name:(0,Zd.Ff)(e,gs._.instance.spaceStore.allRoomsInHome),onClick(){gs._.instance.spaceStore.setActiveSpace(e)}})),...t,...n,...I.map(NT)].filter(e=>null===g||e.filter.includes(g))},[l,F,V,I,g,E]),z=(0,s.useMemo)(()=>{const e={[CT.People]:[],[CT.Rooms]:[],[CT.Spaces]:[],[CT.Suggestions]:[],[CT.PublicRoomsAndSpaces]:[]};if(C){const t=C.toLowerCase(),n=(0,Pa.S8)(C);H.forEach(i=>{if(IT(i)){const e=Q.A.shared().getUserIdForRoomId(i.room.roomId);var s,o,r;if(!F.some(t=>t.userId===e))if(!(null!==(s=i.room.normalizedName)&&void 0!==s&&s.includes(n)||null!==(o=i.room.getCanonicalAlias())&&void 0!==o&&o.toLowerCase().includes(t)||null!==(r=i.query)&&void 0!==r&&r.some(e=>e.includes(t))))return}else if(PT(i)){var a;if(!(i.alreadyFiltered||null!==(a=i.query)&&void 0!==a&&a.some(e=>e.includes(t))))return}else if(TT(i)){var l;if(null===(l=i.query)||void 0===l||!l.some(e=>e.includes(t)))return}else{var c;if(!(i.name.toLowerCase().includes(t)||null!==(c=i.query)&&void 0!==c&&c.some(e=>e.includes(t))))return}e[i.section].push(i)})}else g===ET.d.PublicRooms||g===ET.d.PublicSpaces?H.forEach(t=>{TT(t)&&e[t.section].push(t)}):g===ET.d.People&&H.forEach(t=>{PT(t)&&e[t.section].push(t)});const t=l.getSafeUserId();for(const n of Object.values(e))n.sort((e,n)=>IT(e)||IT(n)?IT(n)&&IT(e)?(0,nc.Y)(e.room,n.room,t):-1:PT(e)||PT(n)?PT(n)&&PT(e)?y(e.member,n.member):-1:0);return e},[l,C,g,H,F,y]);((e,t,n)=>{(0,s.useEffect)(()=>{if(!t)return;const i=window.setTimeout(()=>{ue.Vo.instance.trackEvent({eventName:"WebSearch",viaSpotlight:n,numResults:e,queryLength:t})},1e3);return()=>{clearTimeout(i)}},[e,t,n])})((0,kI.A)(Object.values(z).map(e=>e.length)),m.length,!0);const W=gs._.instance.spaceStore.activeSpaceRoom,[J,G]=((e,t)=>{var n;const[i,o]=(0,s.useState)([]),[a,l]=(0,s.useState)(),c=(0,s.useCallback)(()=>{l(e?new _E.B(e,50):void 0)},[e]);return(0,s.useEffect)(c,[c]),(0,s.useEffect)(()=>{if(!e||!a)return;let t=!1;return(async()=>{for(;null!=a&&a.canLoadMore&&!t&&e===a.root;)await a.load(),a.canLoadMore&&a.load(),o(a.rooms)})(),()=>{t=!0}},[e,a]),[(0,s.useMemo)(()=>{const e=t.trim(),n=e.toLowerCase(),s=(0,Pa.S8)(e),o=_.J.safeGet();return null==i?void 0:i.filter(e=>{var t;return e.room_type!==r.CJY.Space&&(null===(t=o.getRoom(e.room_id))||void 0===t?void 0:t.getMyMembership())!==$n.O.Join&&((0,Pa.S8)(e.name||"").includes(s)||(e.canonical_alias||"").includes(n))})},[i,t]),null!==(n=null==a?void 0:a.loading)&&void 0!==n&&n]})(null!=W?W:void 0,m);(0,s.useEffect)(()=>{setTimeout(()=>{const e=d.state.nodes[0];var t;e&&(d.dispatch({type:Pr.fG.SetFocus,payload:{node:e}}),null==e||null===(t=e.scrollIntoView)||void 0===t||t.call(e,{block:"nearest"}))})},[z,g]);const q=(e,t=!1,i=!1)=>{if(t){const t=new Set(S.A.getValue("SpotlightSearch.recentSearches",null).reverse());t.delete(e.roomId),t.add(e.roomId),S.A.setValue("SpotlightSearch.recentSearches",null,oe.p.ACCOUNT,Array.from(t).reverse().slice(0,10))}K.A.dispatch({action:$.r.ViewRoom,metricsTrigger:"WebUnifiedSearch",metricsViaKeyboard:i,room_id:e.roomId,room_alias:e.roomAlias,auto_join:e.autoJoin&&!FT(e.joinRule),should_peek:e.shouldPeek,via_servers:e.viaServers}),FT(e.joinRule)&&K.A.dispatch({action:$.r.PromptAskToJoin}),n()};let Y,X;if((C||g!==ET.d.PublicRooms&&g!==ET.d.PublicSpaces)&&(Y=s.createElement("div",{className:"mx_SpotlightDialog_section mx_SpotlightDialog_otherSearches",role:"group","aria-labelledby":"mx_SpotlightDialog_section_otherSearches"},s.createElement("h4",{id:"mx_SpotlightDialog_section_otherSearches"},C?(0,c._t)("spotlight_dialog|heading_with_query",{query:m}):(0,c._t)("spotlight_dialog|heading_without_query")),s.createElement("div",null,g!==ET.d.PublicSpaces&&x&&s.createElement(sT,{id:"mx_SpotlightDialog_button_explorePublicSpaces",onClick:()=>f(ET.d.PublicSpaces)},kT(ET.d.PublicSpaces),xT(ET.d.PublicSpaces)),g!==ET.d.PublicRooms&&s.createElement(sT,{id:"mx_SpotlightDialog_button_explorePublicRooms",onClick:()=>f(ET.d.PublicRooms)},kT(ET.d.PublicRooms),xT(ET.d.PublicRooms)),g!==ET.d.People&&s.createElement(sT,{id:"mx_SpotlightDialog_button_startChat",onClick:()=>f(ET.d.People)},kT(ET.d.People),xT(ET.d.People)),null===g&&s.createElement(sT,{id:"mx_SpotlightDialog_button_searchMessages",onClick:()=>{K.A.dispatch({action:$.r.FocusMessageSearch,initialText:C}),n()}},s.createElement(PI.A,null),(0,c._t)("spotlight_dialog|messages_label"))))),C||null!==g){const e=e=>{var t;if(IT(e)){const t=Em.n.instance.getRoomState(e.room),n=OT(e.room,t),i={"aria-label":n?`${e.room.name} ${n}`:e.room.name,"aria-describedby":`mx_SpotlightDialog_button_result_${e.room.roomId}_details`};return s.createElement(sT,(0,xn.A)({id:`mx_SpotlightDialog_button_result_${e.room.roomId}`,key:`${CT[e.section]}-${e.room.roomId}`,onClick:t=>{q({roomId:e.room.roomId},!0,"click"!==(null==t?void 0:t.type))},endAdornment:s.createElement(_T,{room:e.room})},i),s.createElement(tc.A,{room:e.room,size:ST,tooltipProps:{tabIndex:-1}}),e.room.name,s.createElement(kr.A,{notification:t}),s.createElement(cc,{id:`mx_SpotlightDialog_button_result_${e.room.roomId}_details`,className:"mx_SpotlightDialog_result_details",room:e.room}))}if(PT(e))return s.createElement(sT,{id:`mx_SpotlightDialog_button_result_${e.member.userId}`,key:`${CT[e.section]}-${e.member.userId}`,onClick:()=>{(0,HE.UZ)(l,[e.member]),n()},"aria-label":e.member instanceof r.YxN?e.member.rawDisplayName:e.member.name,"aria-describedby":`mx_SpotlightDialog_button_result_${e.member.userId}_details`},s.createElement(zI.N,{user:e.member,size:ST}),e.member instanceof r.YxN?e.member.rawDisplayName:e.member.name,s.createElement("div",{id:`mx_SpotlightDialog_button_result_${e.member.userId}_details`,className:"mx_SpotlightDialog_result_details"},e.member.userId));if(TT(e)){const t=l.getRoom(e.publicRoom.room_id),n=e.publicRoom.join_rule,i=(null==t?void 0:t.getMyMembership())===$n.O.Join||e.publicRoom.world_readable&&!FT(n)||l.isGuest(),o=t=>{var i;t.stopPropagation();const{publicRoom:s}=e;q({roomAlias:s.canonical_alias||(null===(i=s.aliases)||void 0===i?void 0:i[0]),roomId:s.room_id,autoJoin:!e.publicRoom.world_readable&&!l.isGuest(),shouldPeek:e.publicRoom.world_readable||l.isGuest(),viaServers:P?[P.roomServer]:void 0,joinRule:n},!0,"click"!==t.type)};let r;return r=i?(0,c._t)("action|view"):FT(n)?(0,c._t)("action|ask_to_join"):(0,c._t)("action|join"),s.createElement(sT,{id:`mx_SpotlightDialog_button_result_${e.publicRoom.room_id}`,className:"mx_SpotlightDialog_result_multiline",key:`${CT[e.section]}-${e.publicRoom.room_id}`,onClick:o,endAdornment:s.createElement(Ve.A,{kind:i?"primary_outline":"primary",onClick:o,tabIndex:-1},r),"aria-labelledby":`mx_SpotlightDialog_button_result_${e.publicRoom.room_id}_name`,"aria-describedby":`mx_SpotlightDialog_button_result_${e.publicRoom.room_id}_alias`,"aria-details":`mx_SpotlightDialog_button_result_${e.publicRoom.room_id}_details`},s.createElement(ms.A,{className:"mx_SearchResultAvatar",oobData:{roomId:e.publicRoom.room_id,name:e.publicRoom.name,avatarUrl:e.publicRoom.avatar_url,roomType:e.publicRoom.room_type},size:ST}),s.createElement(oT,{room:e.publicRoom,labelId:`mx_SpotlightDialog_button_result_${e.publicRoom.room_id}_name`,descriptionId:`mx_SpotlightDialog_button_result_${e.publicRoom.room_id}_alias`,detailsId:`mx_SpotlightDialog_button_result_${e.publicRoom.room_id}_details`}))}return s.createElement(sT,{id:`mx_SpotlightDialog_button_result_${e.name}`,key:`${CT[e.section]}-${e.name}`,onClick:null!==(t=e.onClick)&&void 0!==t?t:null},e.avatar,e.name,e.description)};let t,i,o,a,d,m,u,p,h;if(z[CT.People].length&&(t=s.createElement("div",{className:"mx_SpotlightDialog_section mx_SpotlightDialog_results",role:"group","aria-labelledby":"mx_SpotlightDialog_section_people"},s.createElement("h4",{id:"mx_SpotlightDialog_section_people"},(0,c._t)("invite|recents_section")),s.createElement("div",null,z[CT.People].slice(0,wT).map(e)))),z[CT.Suggestions].length&&g===ET.d.People&&(i=s.createElement("div",{className:"mx_SpotlightDialog_section mx_SpotlightDialog_results",role:"group","aria-labelledby":"mx_SpotlightDialog_section_suggestions"},s.createElement("h4",{id:"mx_SpotlightDialog_section_suggestions"},(0,c._t)("common|suggestions")),s.createElement("div",null,z[CT.Suggestions].slice(0,wT).map(e)))),z[CT.Rooms].length&&(o=s.createElement("div",{className:"mx_SpotlightDialog_section mx_SpotlightDialog_results",role:"group","aria-labelledby":"mx_SpotlightDialog_section_rooms"},s.createElement("h4",{id:"mx_SpotlightDialog_section_rooms"},(0,c._t)("common|rooms")),s.createElement("div",null,z[CT.Rooms].slice(0,wT).map(e)))),z[CT.Spaces].length&&(a=s.createElement("div",{className:"mx_SpotlightDialog_section mx_SpotlightDialog_results",role:"group","aria-labelledby":"mx_SpotlightDialog_section_spaces"},s.createElement("h4",{id:"mx_SpotlightDialog_section_spaces"},(0,c._t)("spotlight_dialog|spaces_title")),s.createElement("div",null,z[CT.Spaces].slice(0,wT).map(e)))),g===ET.d.PublicRooms||g===ET.d.PublicSpaces){let t;t=M?s.createElement("div",{className:"mx_SpotlightDialog_otherSearches_messageSearchText"},g===ET.d.PublicRooms?(0,c._t)("spotlight_dialog|failed_querying_public_rooms"):(0,c._t)("spotlight_dialog|failed_querying_public_spaces")):z[CT.PublicRoomsAndSpaces].slice(0,wT).map(e),d=s.createElement("div",{className:"mx_SpotlightDialog_section mx_SpotlightDialog_results",role:"group","aria-labelledby":"mx_SpotlightDialog_section_publicRooms"},s.createElement("div",{className:"mx_SpotlightDialog_sectionHeader"},s.createElement("h4",{id:"mx_SpotlightDialog_section_publicRooms"},(0,c._t)("common|suggestions")),s.createElement("div",{className:"mx_SpotlightDialog_options"},s.createElement(nT,{protocols:T,config:null!=P?P:null,setConfig:N}))),s.createElement("div",null,t))}J.length&&W&&null===g&&(m=s.createElement("div",{className:"mx_SpotlightDialog_section mx_SpotlightDialog_results",role:"group","aria-labelledby":"mx_SpotlightDialog_section_spaceRooms"},s.createElement("h4",{id:"mx_SpotlightDialog_section_spaceRooms"},(0,c._t)("spotlight_dialog|other_rooms_in_space",{spaceName:W.name})),s.createElement("div",null,J.slice(0,wT).map(e=>s.createElement(sT,{id:`mx_SpotlightDialog_button_result_${e.room_id}`,key:e.room_id,onClick:t=>{q({roomId:e.room_id},!0,"click"!==(null==t?void 0:t.type))}},s.createElement(ki.A,{name:e.name,idName:e.room_id,url:e.avatar_url?(0,Ci.l)(e.avatar_url).getSquareThumbnailHttp(parseInt(ST,10)):null,size:ST}),e.name||e.canonical_alias,e.name&&e.canonical_alias&&s.createElement("div",{className:"mx_SpotlightDialog_result_details"},e.canonical_alias))),G&&s.createElement(Be.A,null)))),!C.startsWith("#")||!C.includes(":")||(0,$d.K)(C)&&l.getRoom((0,$d.K)(C).roomId)||(u=s.createElement("div",{className:"mx_SpotlightDialog_section mx_SpotlightDialog_otherSearches",role:"group"},s.createElement("div",null,s.createElement(sT,{id:"mx_SpotlightDialog_button_joinRoomAlias",onClick:e=>{K.A.dispatch({action:$.r.ViewRoom,room_alias:C,auto_join:!0,metricsTrigger:"WebUnifiedSearch",metricsViaKeyboard:"click"!==(null==e?void 0:e.type)}),n()}},s.createElement(cu.A,null),(0,c._t)("spotlight_dialog|join_button_text",{roomAddress:C}))))),g===ET.d.People?p=s.createElement("div",{className:"mx_SpotlightDialog_section mx_SpotlightDialog_hiddenResults",role:"group"},s.createElement("h4",null,(0,c._t)("spotlight_dialog|result_may_be_hidden_privacy_warning")),s.createElement("div",{className:"mx_SpotlightDialog_otherSearches_messageSearchText"},(0,c._t)("spotlight_dialog|cant_find_person_helpful_hint")),s.createElement(yT,{id:"mx_SpotlightDialog_button_inviteLink",className:"mx_SpotlightDialog_inviteLink",onClick:()=>{A(!0),(0,ir.nC)(w)},onTooltipOpenChange:e=>{e||A(!1)},title:b?(0,c._t)("common|copied"):(0,c._t)("action|copy")},s.createElement("span",{className:"mx_AccessibleButton mx_AccessibleButton_hasKind mx_AccessibleButton_kind_primary_outline"},s.createElement(Op.A,null),(0,c._t)("spotlight_dialog|copy_link_text")))):!C||g!==ET.d.PublicRooms&&g!==ET.d.PublicSpaces||(p=s.createElement("div",{className:"mx_SpotlightDialog_section mx_SpotlightDialog_hiddenResults",role:"group"},s.createElement("h4",null,(0,c._t)("spotlight_dialog|result_may_be_hidden_warning")),s.createElement("div",{className:"mx_SpotlightDialog_otherSearches_messageSearchText"},(0,c._t)("spotlight_dialog|cant_find_room_helpful_hint")),s.createElement(sT,{id:"mx_SpotlightDialog_button_createNewRoom",className:"mx_SpotlightDialog_createRoom",onClick:()=>K.A.dispatch({action:$.r.CreateRoom,public:!0,defaultName:(0,RI.A)(C)})},s.createElement("span",{className:"mx_AccessibleButton mx_AccessibleButton_hasKind mx_AccessibleButton_kind_primary_outline"},s.createElement(cu.A,null),(0,c._t)("spotlight_dialog|create_new_room_button"))))),g===ET.d.People&&(h=s.createElement("div",{className:"mx_SpotlightDialog_section mx_SpotlightDialog_otherSearches",role:"group","aria-labelledby":"mx_SpotlightDialog_section_groupChat"},s.createElement("h4",{id:"mx_SpotlightDialog_section_groupChat"},(0,c._t)("spotlight_dialog|group_chat_section_title")),s.createElement(sT,{id:"mx_SpotlightDialog_button_startGroupChat",onClick:()=>(0,Vd.xZ)(C)},s.createElement(hn.A,null),(0,c._t)("spotlight_dialog|start_group_chat_button")))),X=s.createElement(s.Fragment,null,t,i,o,a,m,d,u,p,Y,h)}else{let e;p.length&&(e=s.createElement("div",{className:"mx_SpotlightDialog_section mx_SpotlightDialog_recentSearches",role:"group",tabIndex:-1,"aria-labelledby":"mx_SpotlightDialog_section_recentSearches"},s.createElement("h4",null,s.createElement("span",{id:"mx_SpotlightDialog_section_recentSearches"},(0,c._t)("spotlight_dialog|recent_searches_section_title")),s.createElement(Ve.A,{kind:"link",onClick:h},(0,c._t)("action|clear"))),s.createElement("div",null,p.map(e=>{const t=Em.n.instance.getRoomState(e),n=OT(0,t),i={"aria-label":n?`${e.name} ${n}`:e.name,"aria-describedby":`mx_SpotlightDialog_button_recentSearch_${e.roomId}_details`};return s.createElement(sT,(0,xn.A)({id:`mx_SpotlightDialog_button_recentSearch_${e.roomId}`,key:e.roomId,onClick:t=>{q({roomId:e.roomId},!0,"click"!==(null==t?void 0:t.type))},endAdornment:s.createElement(_T,{room:e})},i),s.createElement(tc.A,{room:e,size:ST,tooltipProps:{tabIndex:-1}}),e.name,s.createElement(kr.A,{notification:t}),s.createElement(cc,{id:`mx_SpotlightDialog_button_recentSearch_${e.roomId}_details`,className:"mx_SpotlightDialog_result_details",room:e}))})))),X=s.createElement(s.Fragment,null,s.createElement("div",{className:"mx_SpotlightDialog_section mx_SpotlightDialog_recentlyViewed",role:"group","aria-labelledby":"mx_SpotlightDialog_section_recentlyViewed"},s.createElement("h4",{id:"mx_SpotlightDialog_section_recentlyViewed"},(0,c._t)("spotlight_dialog|recently_viewed_section_title")),s.createElement("div",null,jI.Y.instance.rooms.filter(e=>e.roomId!==gs._.instance.roomViewStore.getRoomId()).map(e=>s.createElement(yT,{id:`mx_SpotlightDialog_button_recentlyViewed_${e.roomId}`,title:e.name,key:e.roomId,onClick:t=>{q({roomId:e.roomId},!1,"click"!==t.type)}},s.createElement(tc.A,{room:e,size:"32px",tooltipProps:{tabIndex:-1}}),e.name)))),e,Y)}const Z=null===(i=d.state.activeNode)||void 0===i?void 0:i.id;return s.createElement(s.Fragment,null,s.createElement("div",{id:"mx_SpotlightDialog_keyboardPrompt"},(0,c._t)("spotlight_dialog|keyboard_scroll_hint",{},{arrows:()=>s.createElement(s.Fragment,null,s.createElement("kbd",null,"↓"),s.createElement("kbd",null,"↑"),null===g&&!m&&s.createElement("kbd",null,"←"),null===g&&!m&&s.createElement("kbd",null,"→"))})),s.createElement(ke.A,{className:"mx_SpotlightDialog",onFinished:n,hasCancel:!1,onKeyDown:e=>{if((0,dc.zM)().getNavigationAction(e)===mc.bY.FilterRooms)e.stopPropagation(),e.preventDefault(),n();let t;const i=(0,dc.zM)().getAccessibilityAction(e);switch(i){case mc.bY.Escape:e.stopPropagation(),e.preventDefault(),n();break;case mc.bY.ArrowUp:case mc.bY.ArrowDown:if(e.stopPropagation(),e.preventDefault(),d.state.activeNode&&d.state.nodes.length>0){let e=d.state.nodes;if(!m&&null===g){const t=bT(d.state.activeNode)?d.state.activeNode:e.find(bT);e=e.filter(e=>e===t||!bT(e))}const n=e.indexOf(d.state.activeNode);t=(0,Pr.bR)(e,n+(i===mc.bY.ArrowUp?-1:1))}break;case mc.bY.ArrowLeft:case mc.bY.ArrowRight:if(!m&&null===g&&d.state.activeNode&&d.state.nodes.length>0&&bT(d.state.activeNode)){e.stopPropagation(),e.preventDefault();const n=d.state.nodes.filter(bT),s=n.indexOf(d.state.activeNode);t=(0,Pr.bR)(n,s+(i===mc.bY.ArrowLeft?-1:1))}}var s;t&&(d.dispatch({type:Pr.fG.SetFocus,payload:{node:t}}),null===(s=t)||void 0===s||s.scrollIntoView({block:"nearest"}))},screenName:"UnifiedSearch","aria-label":(0,c._t)("spotlight_dialog|search_dialog")},s.createElement("div",{className:"mx_SpotlightDialog_searchBox mx_textinput"},null!==g&&s.createElement("div",{className:"mx_SpotlightDialog_filter"},kT(g),s.createElement("span",null,xT(g)),s.createElement(Ve.A,{tabIndex:-1,title:(0,c._t)("spotlight_dialog|remove_filter",{filter:xT(g)}),className:"mx_SpotlightDialog_filter--close",onClick:()=>f(null)},s.createElement(ti.A,null))),s.createElement("input",{ref:o,autoFocus:!0,type:"text",autoComplete:"off",autoCapitalize:"off",autoCorrect:"off",spellCheck:"false",placeholder:(0,c._t)("action|search"),value:m,onChange:e=>{const t=function(e){var t;const n=(0,Ls.$N)(e);return null!==(t=null==n?void 0:n.primaryEntityId)&&void 0!==t?t:e}(e.currentTarget.value);u(t)},onKeyDown:e=>{var t;switch((0,dc.zM)().getAccessibilityAction(e)){case mc.bY.Backspace:m||null===g||(e.stopPropagation(),e.preventDefault(),f(null));break;case mc.bY.Enter:e.stopPropagation(),e.preventDefault(),null===(t=d.state.activeNode)||void 0===t||t.click()}},"aria-owns":"mx_SpotlightDialog_content","aria-activedescendant":Z,"aria-label":(0,c._t)("action|search"),"aria-describedby":"mx_SpotlightDialog_keyboardPrompt"}),(R||O||U)&&s.createElement(Be.A,{size:24})),s.createElement("div",{ref:a,id:"mx_SpotlightDialog_content",role:"listbox","aria-activedescendant":Z,"aria-describedby":"mx_SpotlightDialog_keyboardPrompt"},X)))},UT=e=>s.createElement(Pr.Se,null,()=>s.createElement(LT,e));var VT=n("./src/utils/dm/findDMForUser.ts");const BT=["children","className"];function jT(e){let{children:t,className:n}=e,i=(0,v.A)(e,BT);const o=un()(n,"mx_SplashPage");return s.createElement("main",(0,xn.A)({},i,{className:o}),t)}function HT(){const e=d.A.get().brand;return s.createElement(jT,{className:"mx_SessionLockStolenView"},s.createElement("h1",null,(0,c._t)("error_app_open_in_another_tab_title",{brand:e})),s.createElement("h2",null,(0,c._t)("error_app_open_in_another_tab",{brand:e})))}function zT(e){const t=d.A.get().brand;return s.createElement("div",{className:"mx_ConfirmSessionLockTheftView"},s.createElement("div",{className:"mx_ConfirmSessionLockTheftView_body"},s.createElement("p",null,(0,c._t)("error_app_opened_in_another_window",{brand:t,label:(0,c._t)("action|continue")})),s.createElement(Ve.A,{kind:"primary",onClick:e.onConfirm},(0,c._t)("action|continue"))))}function WT(e){const t=(0,mo.DY)(e.matrixClient,Ee.cr.LegacyCryptoStoreMigrationProgress,(e,t)=>({progress:null!=e?e:-1,totalSteps:null!=t?t:-1}));let n,i;return e.syncError&&(n=s.createElement("div",{className:"mx_LoginSplashView_syncError"},(0,qc.cQ)(e.syncError))),i=-1!==t.totalSteps?s.createElement("div",{className:"mx_LoginSplashView_migrationProgress"},s.createElement("p",null,(0,c._t)("migrating_crypto",{brand:d.A.get().brand})),s.createElement(R_.A,{value:t.progress,max:t.totalSteps})):s.createElement(Be.A,null),s.createElement("div",{className:"mx_MatrixChat_splash"},n,i,s.createElement("div",{className:"mx_LoginSplashView_splashButtons"},s.createElement(Ve.A,{kind:"link_inline",onClick:e.onLogoutClick},(0,c._t)("action|logout"))))}const JT="mx_draft_cleanup",GT=2592e6;function KT(){if(function(){try{const e=localStorage.getItem(JT);if(!e)return!0;const t=Number.parseInt(e||"",10);return!Number.isInteger(t)||Date.now()>t+GT}catch{return!0}}()){o.vF.debug("Cleaning up editor drafts..."),function(){for(let e=0;e<localStorage.length;e++){const t=localStorage.key(e);if(!t)continue;let n;if(t.startsWith(Xv)&&(n=t.slice(15).split("_$")[0]),t.startsWith(w_)&&(n=t.slice(17).split("_$")[0]),!n)continue;_.J.safeGet().getRoom(n)||(o.vF.debug(`Removing draft for unknown room with key ${t}`),localStorage.removeItem(t))}}();try{localStorage.setItem(JT,String(Date.now()))}catch(e){o.vF.error("Failed to persist draft cleanup key",e)}}}let qT=function(e){return e.Text="text",e.Html="html",e.Markdown="md",e}({});const $T=["secrets","deviceId"];function YT(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function QT(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?YT(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):YT(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}const XT=["register","mobile_register","login","forgot_password","start_sso","start_cas","welcome"],ZT=[$.r.ViewUserSettings,$.r.CreateChat,$.r.CreateRoom];class eP extends s.PureComponent{constructor(e){if(super(e),(0,i.A)(this,"firstSyncComplete",!1),(0,i.A)(this,"firstSyncPromise",void 0),(0,i.A)(this,"screenAfterLogin",void 0),(0,i.A)(this,"tokenLogin",void 0),(0,i.A)(this,"focusNext",void 0),(0,i.A)(this,"subTitleStatus",void 0),(0,i.A)(this,"prevWindowWidth",void 0),(0,i.A)(this,"loggedInView",(0,s.createRef)()),(0,i.A)(this,"dispatcherRef",void 0),(0,i.A)(this,"themeWatcher",void 0),(0,i.A)(this,"fontWatcher",void 0),(0,i.A)(this,"stores",void 0),(0,i.A)(this,"loadSessionAbortController",new AbortController),(0,i.A)(this,"sessionLoadStarted",!1),(0,i.A)(this,"startInitSession",()=>{this.initSession().catch(e=>{o.vF.error("Error initialising Matrix session",e)})}),(0,i.A)(this,"onWindowResized",()=>{this.warnInConsole()}),(0,i.A)(this,"warnInConsole",(0,Gn.A)(()=>{const e="15px",t=(0,c._t)("console_wait"),i=(0,c._t)("console_scam_warning"),s=(0,c._t)("console_dev_note");n.g.mx_rage_logger.bypassRageshake("log",`%c${t}\n%c${i}\n%c${s}`,"font-size:50px; color:blue;",`font-size:${e}; color:red;`,`font-size:${e};`)},1e3)),(0,i.A)(this,"onAction",e=>{var t;if(this.state.view!==xI.A.LOCK_STOLEN){if(e.action!=$.r.UserActivity&&o.vF.debug(`MatrixChat: handling action ${e.action}`),null!==(t=_.J.get())&&void 0!==t&&t.isGuest()&&ZT.includes(e.action))return K.A.dispatch({action:$.r.DoAfterSyncPrepared,deferred_action:e}),void K.A.dispatch({action:"require_registration"});switch(e.action){case"MatrixActions.accountData":if("m.identity_server"===e.event_type){const t=e.event_content?e.event_content.base_url:null;t?(_.J.safeGet().setIdentityServerUrl(t),localStorage.removeItem("mx_is_access_token"),localStorage.setItem("mx_is_url",t)):(_.J.safeGet().setIdentityServerUrl(void 0),localStorage.removeItem("mx_is_access_token"),localStorage.removeItem("mx_is_url")),K.A.dispatch({action:"id_server_changed"})}break;case"logout":this.stores.legacyCallHandler.hangupAllCalls(),Promise.all([...Am.e.instance.connectedCalls].map(e=>e.disconnect())).finally(()=>kd());break;case"require_registration":!async function(e={}){const t=X.Ay.createDialog(on.A,{hasCancelButton:!0,quitOnly:!0,title:S.A.getValue(as.f.Registration)?(0,c._t)("auth|sign_in_or_register"):(0,c._t)("action|sign_in"),description:S.A.getValue(as.f.Registration)?(0,c._t)("auth|sign_in_or_register_description"):(0,c._t)("auth|sign_in_description"),button:(0,c._t)("action|sign_in"),extraButtons:S.A.getValue(as.f.Registration)?[s.createElement("button",{key:"register",onClick:()=>{t.close(),K.A.dispatch({action:"start_registration",screenAfterLogin:e.screen_after})}},(0,c._t)("auth|register_action"))]:[]});t.finished.then(([t])=>{t?K.A.dispatch({action:"start_login",screenAfterLogin:e.screen_after}):e.go_home_on_cancel?K.A.dispatch({action:$.r.ViewHomePage}):e.go_welcome_on_cancel&&K.A.dispatch({action:"view_welcome_page"})})}(e);break;case"start_mobile_registration":this.startRegistration(e.params||{},!0);break;case"start_registration":if(Id()){this.onSoftLogout();break}e.screenAfterLogin&&(this.screenAfterLogin=e.screenAfterLogin),this.startRegistration(e.params||{});break;case"start_login":if(Id()){this.onSoftLogout();break}e.screenAfterLogin&&(this.screenAfterLogin=e.screenAfterLogin),this.viewLogin();break;case"start_password_recovery":S.A.getValue(as.f.PasswordReset)&&(this.setStateForNewView({view:xI.A.FORGOT_PASSWORD}),this.notifyNewScreen("forgot_password"));break;case"start_chat":(0,cs.Ay)(_.J.safeGet(),{dmUserId:e.user_id});break;case"leave_room":this.leaveRoom(e.room_id);break;case"forget_room":this.forgetRoom(e.room_id);break;case"copy_room":this.copyRoom(e.room_id);break;case"view_user_info":this.viewUser(e.userId,e.subAction);break;case"MatrixActions.RoomState.events":{const t=e.event;t.getType()===r.Bx4.RoomCanonicalAlias&&t.getRoomId()===this.state.currentRoomId&&this.viewRoom({action:$.r.ViewRoom,room_id:this.state.currentRoomId,metricsTrigger:void 0});break}case $.r.ViewRoom:{const t=this.viewRoom(e);e.deferred_action&&t.then(()=>{K.A.dispatch(e.deferred_action)});break}case $.r.ViewUserDeviceSettings:K.A.dispatch({action:$.r.ViewUserSettings,initialTabId:ct.v.SessionManager});break;case $.r.ViewUserSettings:{const t=e;X.Ay.createDialog(Bk,QT(QT({},e.props),{},{initialTabId:t.initialTabId,sdkContext:this.stores}),void 0,!1,!0),this.viewSomethingBehindModal();break}case $.r.CreateRoom:this.createRoom(e.public,e.defaultName,e.type),this.viewSomethingBehindModal();break;case $.r.ViewRoomDirectory:X.Ay.createDialog(UT,{initialText:e.initialText,initialFilter:ET.d.PublicRooms},"mx_SpotlightDialog_wrapper",!1,!0),this.viewSomethingBehindModal();break;case $.r.ViewQrLogin:this.isLoggedInViewPageDisplayed()?o.vF.warn("Ignoring payload due to unexpected call outside auth flows",e):(X.Ay.createDialog((0,s.lazy)(()=>n.e(8481).then(n.bind(n,"./src/async-components/views/dialogs/QrLoginDialog.tsx"))),{serverConfig:this.getServerProperties().serverConfig,onLoggedIn:this.onUserCompletedQrLoginFlow},"mx_LoginWithQR_dialog",!1,!0),this.viewSomethingBehindModal());break;case"view_welcome_page":this.viewWelcome();break;case $.r.ViewHomePage:this.viewHome(e.justRegistered);break;case $.r.Share:this.viewShare(e.format,e.msg);break;case $.r.ViewStartChatOrReuse:this.chatCreateOrReuse(e.user_id);break;case $.r.CreateChat:(0,Vd.xZ)(e.initialText||""),this.viewSomethingBehindModal();break;case"view_invite":{const t=_.J.safeGet().getRoom(e.roomId);null!=t&&t.isSpaceRoom()?(0,Gc.Lo)(t):(0,Vd._7)(e.roomId);break}case"hide_left_panel":case"show_left_panel":this.stores.resizeNotifier.notifyLeftHandleResized();break;case $.r.OpenDialPad:X.Ay.createDialog(LS,{},"mx_Dialog_dialPadWrapper");break;case $.r.OnLoggedIn:this.onLoggedIn();break;case $.r.ClientNotViable:this.onSoftLogout();break;case $.r.OnLoggedOut:this.onLoggedOut();break;case $.r.WillStartClient:this.setState({ready:!1},()=>{this.onWillStartClient()});break;case $.r.ClientStarted:this.onClientStarted().catch(e=>{o.vF.error("Exception in onClientStarted",e)});break;case"send_event":this.onSendEvent(e.room_id,e.event);break;case"aria_hide_main_app":this.setState({hideToSRUsers:!0});break;case"aria_unhide_main_app":this.setState({hideToSRUsers:!1});break;case $.r.PseudonymousAnalyticsAccept:OS(),S.A.setValue("pseudonymousAnalyticsOptIn",null,oe.p.ACCOUNT,!0);break;case $.r.PseudonymousAnalyticsReject:OS(),S.A.setValue("pseudonymousAnalyticsOptIn",null,oe.p.ACCOUNT,!1);break;case $.r.ShowThread:{const{rootEvent:t,initialEvent:n,highlighted:i,scrollIntoView:s,push:o}=e,r={phase:Wu.n.ThreadView,state:{threadHeadEvent:t,initialEvent:n,isInitialEventHighlighted:i,initialEventScrollIntoView:s}};null!=o&&o?Ip.A.instance.pushCard(r):Ip.A.instance.setCards([{phase:Wu.n.ThreadPanel},r]),K.A.dispatch({action:$.r.FocusSendMessageComposer,context:Qo.Ae.Thread});break}case $.r.OpenSpotlight:X.Ay.createDialog(UT,{initialText:e.initialText,initialFilter:e.initialFilter},"mx_SpotlightDialog_wrapper",!1,!0)}}else o.vF.warn(`MatrixChat: ignoring action ${e.action} as session lock has been stolen`)}),(0,i.A)(this,"handleResize",()=>{const e=1e3,t=Iu.A.instance.windowWidth;this.prevWindowWidth<e&&t>=e&&K.A.dispatch({action:"show_left_panel"}),this.prevWindowWidth>=e&&t<e&&K.A.dispatch({action:"hide_left_panel"}),this.prevWindowWidth=t,this.stores.resizeNotifier.notifyWindowResized()}),(0,i.A)(this,"onRegisterClick",()=>{this.showScreen("register")}),(0,i.A)(this,"onLoginClick",()=>{this.showScreen("login")}),(0,i.A)(this,"onForgotPasswordClick",()=>{this.showScreen("forgot_password")}),(0,i.A)(this,"onRegisterFlowComplete",e=>this.onUserCompletedLoginFlow(e)),(0,i.A)(this,"onUpdateStatusIndicator",(e,t)=>{const n=e.numUnreadStates;l.A.get()&&(l.A.get().setErrorStatus(t===r.Lmg.Error),l.A.get().setNotificationCount(n)),this.subTitleStatus="",t===r.Lmg.Error&&(this.subTitleStatus+=`[${(0,c._t)("common|offline")}] `),n>0?this.subTitleStatus+=`[${n}]`:e.level>=dr.S.Activity&&(this.subTitleStatus+="*"),this.setPageSubtitle()}),(0,i.A)(this,"onServerConfigChange",e=>{this.setState({serverConfig:e})}),(0,i.A)(this,"onUserCompletedLoginFlow",async e=>{await wd(e),await this.postLoginSetup(),wI.instance.stop(EI.LOGIN),wI.instance.stop(EI.REGISTER)}),(0,i.A)(this,"onUserCompletedQrLoginFlow",async e=>{let{secrets:t,deviceId:n}=e,i=(0,v.A)(e,$T);if(await pd(i),await Ed(),t){const e=_.J.safeGet().getCrypto();null!=e&&e.importSecretsBundle?await e.importSecretsBundle(t):o.vF.warn("Crypto not initialised or no importSecretsBundle() method, cannot import secrets from QR login")}else o.vF.warn("No secrets received from QR login");this.onShowPostLoginScreen()}),(0,i.A)(this,"onCompleteSecurityE2eSetupFinished",async()=>{if(await this.shouldForceVerification()){var e;if(!await(null===(e=_.J.safeGet().getCrypto())||void 0===e?void 0:e.isCrossSigningReady()))return}this.onShowPostLoginScreen()}),this.stores=gs._.instance,this.stores.constructEagerStores(),window.mxSdkContext=this.stores,this.state={view:xI.A.LOADING,currentRoomId:null,currentUserId:null,hideToSRUsers:!1,isMobileRegistration:!1,syncError:null,ready:!1},d.A.put(this.props.config),this.firstSyncComplete=!1,this.firstSyncPromise=Promise.withResolvers(),this.props.config.sync_timeline_limit&&(_.J.opts.initialSyncLimit=this.props.config.sync_timeline_limit),this.screenAfterLogin=this.props.initialScreenAfterLogin,this.screenAfterLogin){const e=this.screenAfterLogin.params||{};if(this.screenAfterLogin.screen.startsWith("room/")&&e.signurl&&e.email){const t=this.screenAfterLogin.screen.substring(5);tn.instance.storeInvite(t,e)}}this.prevWindowWidth=Iu.A.instance.windowWidth||1e3,this.subTitleStatus=""}async initSession(){const e=l.A.get();if(e&&!await e.getSessionLock(()=>this.onSessionLockStolen()))return;if(Id())return void dd({abortSignal:this.loadSessionAbortController.signal});const t=await ud(this.props.urlParams,this.props.defaultDeviceDisplayName,this.getFragmentAfterLogin());if((this.props.urlParams.legacy_sso||this.props.urlParams.oauth2)&&this.props.onTokenLoginCompleted(this.props.urlParams,this.getFragmentAfterLogin()),t)return this.tokenLogin=!0,await Ed({ignoreGuest:!0}),void await this.postLoginSetup();const n=this.screenAfterLogin?this.screenAfterLogin.screen:null;await this.loadSession()||null!==n&&XT.includes(n)&&this.showScreenAfterLogin()}async onSessionLockStolen(){await new Promise(e=>{this.setState({view:xI.A.LOCK_STOLEN},e)}),await async function(){ad=!0,Dd()}()}async postLoginSetup(){const e=_.J.safeGet(),t=Boolean(e.getCrypto());t||this.onShowPostLoginScreen();const n=[this.firstSyncPromise.promise];let i=!1;if(t&&n.push((async t=>{i=Boolean(await(null===(t=e.getCrypto())||void 0===t?void 0:t.userHasCrossSigningKeys()))})()),this.setState({pendingInitialSync:!0}),await Promise.all(n),t){if(i){0==f.r.instance.extensions.cryptoSetup.SHOW_ENCRYPTION_SETUP_UI?this.onShowPostLoginScreen():this.setStateForNewView({view:xI.A.COMPLETE_SECURITY})}else await(async e=>{const t=(0,ks.I)(e),n=e.getCrypto();return!n||t&&!await(0,Me.qM)(e.getRooms(),({roomId:e})=>n.isEncryptionEnabledInRoom(e))})(e)?this.onShowPostLoginScreen():(gR.sharedInstance().startInitialCryptoSetup(e,this.onCompleteSecurityE2eSetupFinished),this.setStateForNewView({view:xI.A.E2E_SETUP}));this.setState({pendingInitialSync:!1})}else this.setState({pendingInitialSync:!1})}setState(e,t){e&&"view"in e&&o.vF.debug(`MatrixChat: Queuing change of view from ${xI.A[this.state.view]} to ${xI.A[e.view]}`),this.shouldTrackPageChange(this.state,QT(QT({},this.state),e))&&this.startPageChangeTimer(),super.setState(e,t)}componentDidMount(){if(Iu.A.instance.on(Iu.x.Resize,this.handleResize),this.stores.resizeNotifier.on("middlePanelResized",this.dispatchTimelineResize),Em.n.instance.on(Em.N,this.onUpdateStatusIndicator),this.dispatcherRef=K.A.register(this.onAction),this.themeWatcher=new Kd.A,this.fontWatcher=new qd.g,this.themeWatcher.start(),this.themeWatcher.on(Kd.S.Change,Nu.Yl),this.fontWatcher.start(),(0,dn.ig)(d.A.get("sentry")),window.addEventListener("resize",this.onWindowResized),!this.sessionLoadStarted){this.sessionLoadStarted=!0;const e=l.A.get();e&&!e.checkSessionLockFree()?setTimeout(()=>this.setState({view:xI.A.CONFIRM_LOCK_THEFT}),0):this.startInitSession()}}componentDidUpdate(e,t){if(this.shouldTrackPageChange(t,this.state)){const e=this.stopPageChangeTimer();null!=e&&Gi.A.instance.trackPageChange(this.state.view,this.state.page_type,e)}"composer"===this.focusNext?(K.A.fire($.r.FocusSendMessageComposer),this.focusNext=void 0):"threadsPanel"===this.focusNext&&K.A.fire($.r.FocusThreadsPanel)}componentWillUnmount(){var e,t,n;Dd(),K.A.unregister(this.dispatcherRef),null===(e=this.themeWatcher)||void 0===e||e.off(Kd.S.Change,Nu.Yl),null===(t=this.themeWatcher)||void 0===t||t.stop(),null===(n=this.fontWatcher)||void 0===n||n.stop(),Iu.A.destroy(),this.stores.resizeNotifier.removeListener("middlePanelResized",this.dispatchTimelineResize),window.removeEventListener("resize",this.onWindowResized)}getFallbackHsUrl(){var e;if(null!==(e=this.getServerProperties().serverConfig)&&void 0!==e&&e.isDefault)return this.props.config.fallback_hs_url}getServerProperties(){return{serverConfig:this.state.serverConfig||d.A.get("validated_server_config")}}loadSession(){return Promise.resolve().then(()=>dd({urlParams:this.props.urlParams,enableGuest:this.props.enableGuest,guestHsUrl:this.getServerProperties().serverConfig.hsUrl,guestIsUrl:this.getServerProperties().serverConfig.isUrl,defaultDeviceDisplayName:this.props.defaultDeviceDisplayName,abortSignal:this.loadSessionAbortController.signal})).then(e=>(e||(tn.instance.pickBestInvite()&&S.A.getValue(as.f.Registration)?K.A.dispatch({action:"start_registration"}):K.A.dispatch({action:"view_welcome_page"})),e))}startPageChangeTimer(){wI.instance.start(EI.PAGE_CHANGE)}stopPageChangeTimer(){const e=wI.instance;e.stop(EI.PAGE_CHANGE);const t=e.getEntries({name:EI.PAGE_CHANGE}).pop();return t?t.duration:null}shouldTrackPageChange(e,t){return e.currentRoomId!==t.currentRoomId||e.view!==t.view||e.page_type!==t.page_type}isLoggedInViewPageDisplayed(){return null!==this.loggedInView.current&&void 0!==this.state.page_type}setStateForNewView(e){if(void 0===e.view)throw new Error("setStateForNewView with no view!");this.setState(QT({currentUserId:void 0,justRegistered:!1},e))}setPage(e){this.setState({page_type:e})}async startRegistration(e,t){if(!S.A.getValue(as.f.Registration)||t&&!S.A.getValue("Registration.mobileRegistrationHelper"))return void this.showScreen("welcome");const n={view:xI.A.REGISTER};if(t&&e.hs_url)try{const t=await g.validateServerConfigWithStaticUrls(e.hs_url);n.serverConfig=t}catch{o.vF.warn("Failed to load hs_url param:",e.hs_url)}else if(e.client_secret&&e.session_id&&e.hs_url&&e.is_url&&e.sid){n.serverConfig=await g.validateServerConfigWithStaticUrls(e.hs_url,e.is_url);const t=d.A.get("validated_server_config");t&&t.hsUrl===n.serverConfig.hsUrl&&(n.serverConfig.hsName=t.hsName,n.serverConfig.hsNameIsDifferent=t.hsNameIsDifferent,n.serverConfig.isDefault=t.isDefault,n.serverConfig.isNameResolvable=t.isNameResolvable),n.register_client_secret=e.client_secret,n.register_session_id=e.session_id,n.register_id_sid=e.sid}n.isMobileRegistration=t,this.setStateForNewView(n),this.notifyNewScreen(t?"mobile_register":"register")}async viewRoom(e){var t,n;this.focusNext=null!==(t=e.focusNext)&&void 0!==t?t:"composer",e.room_alias?o.vF.log(`Switching to room alias ${e.room_alias} at event ${e.event_id}`):o.vF.log(`Switching to room id ${e.room_id} at event ${e.event_id}`),this.firstSyncComplete||await this.firstSyncPromise.promise;let i=e.room_alias||e.room_id;const s=_.J.safeGet().getRoom(e.room_id);if(s){var r;s.decryptAllEvents();const e=Bd.zQ(s);e&&(i=e,(0,$d.i)(e,s.roomId,(0,Ls.Ex)(s))),null===(r=localStorage)||void 0===r||r.setItem("mx_last_room_id",s.roomId)}let a="#"===i[0]&&e.room_id===this.state.currentRoomId;var l,c,d,m;((0,Bl.F)(this.state.currentRoomId)&&(a=!0),e.room_id===this.state.currentRoomId)&&(e.threepid_invite=null!==(l=e.threepid_invite)&&void 0!==l?l:this.state.threepidInvite,e.oob_data=null!==(c=e.oob_data)&&void 0!==c?c:this.state.roomOobData,e.forceTimeline=null!==(d=e.forceTimeline)&&void 0!==d?d:this.state.forceTimeline,e.justCreatedOpts=null!==(m=e.justCreatedOpts)&&void 0!==m?m:this.state.roomJustCreatedOpts);e.event_id&&e.highlighted&&(i+="/"+e.event_id),this.setState({view:xI.A.LOGGED_IN,currentRoomId:null!==(n=e.room_id)&&void 0!==n?n:null,page_type:Jd.A.RoomView,threepidInvite:e.threepid_invite,roomOobData:e.oob_data,forceTimeline:e.forceTimeline,ready:!0,roomJustCreatedOpts:e.justCreatedOpts},()=>{this.notifyNewScreen("room/"+i,a)})}viewSomethingBehindModal(){this.state.view===xI.A.LOGGED_IN?this.state.currentRoomId||this.state.currentUserId||this.isLoggedInViewPageDisplayed()||this.viewHome():this.viewWelcome()}viewWelcome(e){if(function(e){const t=new Od.Q(e).get("embedded_pages");return!!t&&!0===new Od.Q(t).get("login_for_welcome")}(d.A.get()))return this.viewLogin(e);this.setStateForNewView(QT({view:xI.A.WELCOME},e)),this.notifyNewScreen("welcome")}viewLogin(e){this.setStateForNewView(QT({view:xI.A.LOGIN},e)),this.notifyNewScreen("login")}viewHome(e=!1){this.setStateForNewView({view:xI.A.LOGGED_IN,justRegistered:e,currentRoomId:null}),this.setPage(Jd.A.HomePage),this.notifyNewScreen("home")}viewUser(e,t){this.firstSyncPromise.promise.then(()=>{"chat"!==t?(this.notifyNewScreen("user/"+e),this.setState({currentUserId:e}),this.setPage(Jd.A.UserView)):this.chatCreateOrReuse(e)})}viewShare(e,t){this.firstSyncPromise.promise.then(()=>{let n;switch(this.notifyNewScreen("share"),e){case qT.Html:n={type:"m.room.message",content:{msgtype:r.Wrw.Text,body:(0,Us.hk)(t),format:"org.matrix.custom.html",formatted_body:Ud()(t,Pw.h4)},origin_server_ts:Date.now()};break;case qT.Markdown:{const e=new Cc.A(t).toHTML({externalLinks:!0});n={type:"m.room.message",content:{msgtype:r.Wrw.Text,body:t,format:"org.matrix.custom.html",formatted_body:e},origin_server_ts:Date.now()};break}default:n={type:"m.room.message",content:{msgtype:r.Wrw.Text,body:t},origin_server_ts:Date.now()}}const i=new r.klx(n);K.A.dispatch({action:$.r.OpenForwardDialog,event:i,permalinkCreator:null})})}async createRoom(e=!1,t,n){const i=X.Ay.createDialog(ds.A,{type:n,defaultPublic:e,defaultName:t}),[s,o]=await i.finished;s&&(0,cs.Ay)(_.J.safeGet(),o)}chatCreateOrReuse(e){if(_.J.safeGet().isGuest())return void K.A.dispatch({action:$.r.DoAfterSyncPrepared,deferred_action:{action:$.r.ViewStartChatOrReuse,user_id:e}});const t=_.J.safeGet(),n=(0,VT.D)(t,e);n?K.A.dispatch({action:$.r.ViewRoom,room_id:n.roomId,metricsTrigger:"MessageUser"}):K.A.dispatch({action:"start_chat",user_id:e})}leaveRoomWarnings(e){const t=_.J.safeGet().getRoom(e),n=null==t?void 0:t.isSpaceRoom(),i=[];if(1===(null==t?void 0:t.currentState.getJoinedMemberCount()))return i.push(s.createElement("strong",{className:"warning",key:"only_member_warning"}," ",(0,c._t)("leave_room_dialog|last_person_warning"))),i;const o=null==t?void 0:t.currentState.getStateEvents("m.room.join_rules","");if(o){"public"!==o.getContent().join_rule&&i.push(s.createElement("strong",{className:"warning",key:"non_public_warning"}," ",n?(0,c._t)("leave_room_dialog|space_rejoin_warning"):(0,c._t)("leave_room_dialog|room_rejoin_warning")))}if(_.J.get()&&t&&(0,wm.GR)(t)){const e=t.getJoinedMembers().map(e=>e.powerLevel),n=Math.max(...e)>=100?(0,c._t)("leave_room_dialog|room_leave_admin_warning"):(0,c._t)("leave_room_dialog|room_leave_mod_warning");i.push(s.createElement("strong",{className:"warning",key:"last_admin_warning"}," ",n))}return i}leaveRoom(e){var t,n;const i=_.J.safeGet(),o=i.getRoom(e),r=this.leaveRoomWarnings(e),a=null==o?void 0:o.isSpaceRoom(),{finished:l}=X.Ay.createDialog(on.A,{title:a?(0,c._t)("space|leave_dialog_action"):(0,c._t)("action|leave_room"),description:s.createElement("span",null,a?(0,c._t)("leave_room_dialog|leave_space_question",{spaceName:null!==(t=null==o?void 0:o.name)&&void 0!==t?t:(0,c._t)("common|unnamed_space")}):(0,c._t)("leave_room_dialog|leave_room_question",{roomName:null!==(n=null==o?void 0:o.name)&&void 0!==n?n:(0,c._t)("common|unnamed_room")}),r),button:(0,c._t)("action|leave"),danger:r.length>0});l.then(async([t])=>{t&&(await(0,Oc.U)(i,e),K.A.dispatch({action:$.r.AfterLeaveRoom,room_id:e}))})}forgetRoom(e){const t=_.J.safeGet().getRoom(e);_.J.safeGet().forget(e).then(()=>{this.state.currentRoomId===e&&K.A.dispatch({action:$.r.ViewHomePage}),t&&K.A.dispatch({action:$.r.AfterForgetRoom,room:t})}).catch(e=>{var t;const n=e.errcode||(0,c.AO)("error|unknown_error_code");X.Ay.createDialog(sn.A,{title:(0,c._t)("error_dialog|forget_room_failed",{errCode:n}),description:null!==(t=null==e?void 0:e.message)&&void 0!==t?t:(0,c._t)("invite|failed_generic")})})}async copyRoom(e){const t=(0,Ls.B4)(_.J.safeGet(),e);await(0,ir.nC)(t)||X.Ay.createDialog(sn.A,{title:(0,c._t)("error_dialog|copy_room_link_failed|title"),description:(0,c._t)("error_dialog|copy_room_link_failed|description")})}async shouldForceVerification(){if(!d.A.get("force_verification"))return!1;if(!localStorage.getItem("must_verify_device"))return!1;const e=_.J.safeGet();if(e.isGuest())return!1;const t=e.getCrypto();return!await(null==t?void 0:t.isCrossSigningReady())}onShowPostLoginScreen(){var e;if(o.vF.debug("onShowPostLoginScreen: Transitioning to logged in view."),this.setStateForNewView({view:xI.A.LOGGED_IN}),null!==(e=this.screenAfterLogin)&&void 0!==e&&e.screen)o.vF.debug(`onShowPostLoginScreen: showing screen ${this.screenAfterLogin.screen}`),this.showScreen(this.screenAfterLogin.screen,this.screenAfterLogin.params),this.screenAfterLogin=void 0;else if(_.J.currentUserIsJustRegistered())if(_.J.setJustRegisteredUserId(null),tn.instance.pickBestInvite()){const e=tn.instance.pickBestInvite();o.vF.debug(`onShowPostLoginScreen: showing room ${e.roomId} after registration`);const t=tn.instance.translateToWireFormat(e);this.showScreen(`room/${e.roomId}`,t)}else o.vF.debug("onShowPostLoginScreen: Showing home page after registration"),K.A.dispatch({action:$.r.ViewHomePage,justRegistered:!0});else o.vF.debug("onShowPostLoginScreen: showScreenAfterLogin"),this.showScreenAfterLogin();d.A.get("mobile_guide_toast")&&(()=>{const e=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,t=/Android/.test(navigator.userAgent),n=d.A.get().brand;(e||t)&&(document.cookie.includes("element_mobile_redirect_to_guide=false")||re.A.sharedInstance().addOrReplaceToast({key:BS,title:(0,c._t)("mobile_guide|toast_title"),props:{description:(0,c._t)("mobile_guide|toast_description",{brand:n}),primaryLabel:(0,c._t)("mobile_guide|toast_accept"),onPrimaryClick:US,secondaryLabel:(0,c._t)("action|dismiss"),onSecondaryClick:VS},component:lt.A,priority:99}))})();const t=d.A.get("user_notice");if(t){const e="user_notice_"+t.title;t.show_once&&localStorage.getItem(e)||re.A.sharedInstance().addOrReplaceToast({key:e,title:t.title,props:{description:s.createElement(Xe.fap,null,t.description),primaryLabel:(0,c._t)("action|ok"),onPrimaryClick:()=>{re.A.sharedInstance().dismissToast(e),localStorage.setItem(e,"1")}},component:lt.A,className:"mx_AnalyticsToast",priority:100})}}initPosthogAnalyticsToast(){null===S.A.getValue("pseudonymousAnalyticsOptIn")&&MS(),S.A.watchSetting("pseudonymousAnalyticsOptIn",null,(e,t,n,i,s)=>{null===s?MS():OS()})}showScreenAfterLogin(){this.screenAfterLogin&&this.screenAfterLogin.screen?(o.vF.debug(`showScreenAfterLogin: showing screen ${this.screenAfterLogin.screen}`),this.showScreen(this.screenAfterLogin.screen,this.screenAfterLogin.params),this.screenAfterLogin=void 0):localStorage&&localStorage.getItem("mx_last_room_id")?(o.vF.debug("showScreenAfterLogin: showing last room"),this.viewLastRoom()):_.J.safeGet().isGuest()?(o.vF.debug("showScreenAfterLogin: showing guest welcome page"),K.A.dispatch({action:"view_welcome_page"})):(o.vF.debug("showScreenAfterLogin: showing home page"),K.A.dispatch({action:$.r.ViewHomePage}))}viewLastRoom(){var e;K.A.dispatch({action:$.r.ViewRoom,room_id:null!==(e=localStorage.getItem("mx_last_room_id"))&&void 0!==e?e:void 0,metricsTrigger:void 0})}onLoggedIn(){se.ng(),(this.state.view!==xI.A.LOADING||Id()||this.tokenLogin)&&this.state.view!==xI.A.SOFT_LOGOUT||this.setStateForNewView({view:xI.A.PENDING_CLIENT_START})}onLoggedOut(){this.viewWelcome({ready:!1,currentRoomId:null}),this.subTitleStatus="",this.setPageSubtitle(),this.stores.onLoggedOut()}onSoftLogout(){this.notifyNewScreen("soft_logout"),this.setStateForNewView({view:xI.A.SOFT_LOGOUT,ready:!1,currentRoomId:null}),this.subTitleStatus="",this.setPageSubtitle()}onWillStartClient(){if(this.firstSyncComplete)this.firstSyncPromise=Promise.withResolvers();else{const e=Promise.withResolvers();this.firstSyncPromise.resolve(e.promise),this.firstSyncPromise=e}this.firstSyncComplete=!1;const e=_.J.safeGet();e.setCanResetTimelineCallback(e=>(o.vF.log("Request to reset timeline in room ",e," viewing:",this.state.currentRoomId),e!==this.state.currentRoomId||(!this.loggedInView.current||this.loggedInView.current.canResetTimelineInRoom(e)))),e.on(r.AUM.Sync,(e,t,n)=>{var i;e===r.Lmg.Error||e===r.Lmg.Reconnecting?this.setState({syncError:null!==(i=null==n?void 0:n.error)&&void 0!==i?i:null}):this.state.syncError&&this.setState({syncError:null});e!==r.Lmg.Syncing||t!==r.Lmg.Syncing?(o.vF.debug(`MatrixClient sync state => ${e}`),e===r.Lmg.Prepared&&((0,Nu.Yl)(),this.firstSyncComplete=!0,this.firstSyncPromise.resolve(),this.stores.notifier.shouldShowPrompt()&&!_.J.userRegisteredWithinLastHours(24)&&(0,pE.P)(this.stores.notifier,!1),K.A.fire($.r.FocusSendMessageComposer))):KT()}),e.on(r.XDo.SessionLoggedOut,e=>{var t;if(this.loadSessionAbortController.abort(e),this.loadSessionAbortController=new AbortController,!xd){if(X.Ay.forceCloseAllModals(),401===e.httpStatus&&null!==(t=e.data)&&void 0!==t&&t.soft_logout)return o.vF.warn("Soft logout issued by server - avoiding data deletion"),void Rd();K.A.dispatch({action:"logout"},!0),X.Ay.createDialog(sn.A,{title:(0,c._t)("auth|session_logged_out_title"),description:(0,c._t)("auth|session_logged_out_description")})}}),e.on(r.XDo.NoConsent,function(t,n){const{finished:i}=X.Ay.createDialog(on.A,{title:(0,c._t)("terms|tac_title"),description:s.createElement("div",null,s.createElement("p",null," ",(0,c._t)("terms|tac_description",{homeserverDomain:e.getDomain()}))),button:(0,c._t)("terms|tac_button"),cancelButton:(0,c._t)("action|dismiss")},void 0,!0);i.then(([e])=>{if(e){window.open(n,"_blank").opener=null}})}),cr.instance.start(e).catch(e=>o.vF.error("Unable to start DecryptionFailureTracker",e)),e.on(r.AUM.Room,t=>{if(e.getCrypto()){const e=S.A.getValueAt(oe.p.ROOM_DEVICE,"blacklistUnverifiedDevices",t.roomId,!0);t.setBlacklistUnverifiedDevices(e)}}),e.on(Ee.cr.KeyBackupFailed,async t=>{var i;let r,a=null;if(Boolean(e.getCrypto()&&null!==await(null===(i=e.getCrypto())||void 0===i?void 0:i.getActiveSessionBackupVersion())))r=!0;else try{var l,c;a=null!==(l=await(null===(c=e.getCrypto())||void 0===c?void 0:c.getKeyBackupInfo()))&&void 0!==l?l:null,null!==a&&(r=!0)}catch(e){return void o.vF.error("Saw key backup error but failed to check backup version!",e)}r?X.Ay.createDialog((0,s.lazy)(()=>n.e(7878).then(n.bind(n,"./src/async-components/views/dialogs/security/NewRecoveryMethodDialog.tsx")))):X.Ay.createDialog((0,s.lazy)(()=>n.e(4396).then(n.bind(n,"./src/async-components/views/dialogs/security/RecoveryMethodRemovedDialog.tsx"))))}),e.on(Ee.cr.VerificationRequestReceived,e=>{e.verifier?X.Ay.createDialog(Wk,{verifier:e.verifier},void 0,!1,!0):e.pending&&re.A.sharedInstance().addOrReplaceToast({key:"verifreq_"+e.transactionId,title:(0,c._t)("encryption|verification_requested_toast_title"),icon:s.createElement(Ce.A,{color:"var(--cpd-color-text-primary)"}),props:{request:e},component:yI,priority:90})})}async onClientStarted(){const e=_.J.safeGet(),t=await this.shouldForceVerification(),n=e.getCrypto();n&&(n.globalBlacklistUnverifiedDevices=S.A.getValueAt(oe.p.DEVICE,"blacklistUnverifiedDevices"),S.A.watchSetting("blacklistUnverifiedDevices",null,(e,t,i,s)=>{i==oe.p.DEVICE&&(n.globalBlacklistUnverifiedDevices=!!s)})),this.stores.posthogAnalytics.isEnabled()&&S.A.isLevelSupported(oe.p.ACCOUNT)&&this.initPosthogAnalyticsToast(),this.setState({ready:!0}),this.state.view===xI.A.PENDING_CLIENT_START&&(t?this.setStateForNewView({view:xI.A.COMPLETE_SECURITY}):this.onShowPostLoginScreen())}showScreen(e,t){o.vF.debug(`showScreen ${e}`);const n=_.J.get(),i=!n||n.isGuest();if(!i&&XT.includes(e))return o.vF.info(`showScreen: suppressing change to AuthScreen ${e} for logged-in user, and going to home screen instead`),void K.A.dispatch({action:$.r.ViewHomePage});if("register"===e)K.A.dispatch({action:"start_registration",params:t}),wI.instance.start(EI.REGISTER);else if("mobile_register"===e)K.A.dispatch({action:"start_mobile_registration",params:t});else if("login"===e)K.A.dispatch({action:"start_login",params:t}),wI.instance.start(EI.LOGIN);else if("qr_login"===e)K.A.fire($.r.ViewQrLogin);else if("forgot_password"===e)K.A.dispatch({action:"start_password_recovery",params:t});else if("soft_logout"===e)null!=n&&n.getUserId()&&!Id()?this.viewLastRoom():K.A.dispatch({action:"start_login",params:t});else if("new"===e)K.A.dispatch({action:$.r.CreateRoom});else if("dm"===e)K.A.dispatch({action:$.r.CreateChat});else if("share"===e)t&&void 0!==t.msg&&K.A.dispatch({action:$.r.Share,msg:t.msg,format:t.format}),this.state.currentRoomId||this.state.currentUserId||this.isLoggedInViewPageDisplayed()||this.viewHome();else if("settings"===e)K.A.fire($.r.ViewUserSettings);else if("welcome"===e)K.A.dispatch({action:"view_welcome_page"});else if("home"===e)K.A.dispatch({action:$.r.ViewHomePage});else if("directory"===e)K.A.fire($.r.ViewRoomDirectory);else if("start_sso"===e||"start_cas"===e){var s;let t=_.J.get();if(!t){const{hsUrl:e,isUrl:n}=this.getServerProperties().serverConfig;t=(0,r.UU6)({baseUrl:e,idBaseUrl:n})}const n="start_sso"===e?"sso":"cas";null===(s=l.A.get())||void 0===s||s.startSingleSignOn(t,n,this.getFragmentAfterLogin())}else if(0===e.indexOf("room/")){var a,c,d;const n=e.substring(5),i=n.indexOf(":")+1;let s=n.length;n.substring(i).indexOf("/")>-1&&(s=i+n.substring(i).indexOf("/"));const o=n.substring(0,s);let r,l=n.substring(s+1);if(l||(l=void 0),null!=t&&t.signurl&&null!=t&&t.email&&(r=tn.instance.storeInvite(o,t)),!r){r=tn.instance.getInvites().find(e=>e.roomId===o)}let m=[];null!=t&&t.via&&(m="string"==typeof t.via?[t.via]:t.via);const u={action:$.r.ViewRoom,event_id:l,via_servers:m,highlighted:Boolean(l),threepid_invite:r,oob_data:{name:null===(a=r)||void 0===a?void 0:a.roomName,avatarUrl:null===(c=r)||void 0===c?void 0:c.roomAvatarUrl,inviterName:null===(d=r)||void 0===d?void 0:d.inviterName},room_alias:void 0,room_id:void 0,metricsTrigger:void 0};"#"===o[0]?u.room_alias=o:u.room_id=o,K.A.dispatch(u)}else if(0===e.indexOf("user/")){const n=e.substring(5);K.A.dispatch({action:"view_user_info",userId:n,subAction:null==t?void 0:t.action})}else{if(!yl.r.instance.navigation.locationRenderers.get(e))return this.showScreen(i?"welcome":"home");this.setState({page_type:e})}}notifyNewScreen(e,t=!1){this.props.onNewScreen&&this.props.onNewScreen(e,t),this.setPageSubtitle()}onLogoutClick(e){K.A.dispatch({action:"logout"}),e.stopPropagation(),e.preventDefault()}dispatchTimelineResize(){K.A.dispatch({action:"timeline_resize"})}onRegistered(e){return wd(e)}onSendEvent(e,t){const n=_.J.get();n&&n.sendEvent(e,t.getType(),t.getContent()).then(()=>{K.A.dispatch({action:"message_sent"})})}setPageSubtitle(e=""){if(this.state.currentRoomId){const t=_.J.get(),n=null==t?void 0:t.getRoom(this.state.currentRoomId);n&&(e=`${this.subTitleStatus} | ${n.name} ${e}`)}else e=`${this.subTitleStatus} ${e}`;const t=`${d.A.get().brand} ${e}`;document.title!==t&&(document.title=t)}getFragmentAfterLogin(){let e="";const t=this.props.initialScreenAfterLogin;return t&&!["welcome","login","register","start_sso","start_cas"].includes(t.screen)&&(e=`/${t.screen}`),e}getView(){var e,t;const n=this.getFragmentAfterLogin();switch(this.state.view){case xI.A.LOADING:return s.createElement("div",{className:"mx_MatrixChat_splash"},s.createElement(Be.A,null));case xI.A.CONFIRM_LOCK_THEFT:return s.createElement(zT,{onConfirm:()=>{this.setState({view:xI.A.LOADING}),this.startInitSession()}});case xI.A.COMPLETE_SECURITY:return s.createElement($k,{onFinished:this.onCompleteSecurityE2eSetupFinished});case xI.A.E2E_SETUP:return s.createElement(_R,{onCancelled:this.onCompleteSecurityE2eSetupFinished});case xI.A.PENDING_CLIENT_START:return s.createElement(WT,{matrixClient:_.J.safeGet(),onLogoutClick:this.onLogoutClick,syncError:this.state.syncError});case xI.A.LOGGED_IN:return this.state.ready&&this.state.page_type?s.createElement(AS,(0,xn.A)({},this.props,this.state,{ref:this.loggedInView,matrixClient:_.J.safeGet(),onRegistered:this.onRegistered,currentRoomId:this.state.currentRoomId})):s.createElement(WT,{matrixClient:_.J.safeGet(),onLogoutClick:this.onLogoutClick,syncError:this.state.syncError});case xI.A.WELCOME:return s.createElement(tR,this.getServerProperties());case xI.A.REGISTER:return s.createElement(rI,(0,xn.A)({clientSecret:this.state.register_client_secret,sessionId:this.state.register_session_id,idSid:this.state.register_id_sid,email:null===(e=tn.instance.pickBestInvite())||void 0===e?void 0:e.toEmail,brand:this.props.config.brand,onLoggedIn:this.onRegisterFlowComplete,onLoginClick:this.onLoginClick,onServerConfigChange:this.onServerConfigChange,defaultDeviceDisplayName:this.props.defaultDeviceDisplayName,fragmentAfterLogin:n,mobileRegister:this.state.isMobileRegistration},this.getServerProperties()));case xI.A.FORGOT_PASSWORD:return s.createElement(hR,(0,xn.A)({onComplete:this.onLoginClick,onLoginClick:this.onLoginClick},this.getServerProperties()));case xI.A.LOGIN:return s.createElement(_I,(0,xn.A)({isSyncing:this.state.pendingInitialSync,onLoggedIn:this.onUserCompletedLoginFlow,onRegisterClick:this.onRegisterClick,fallbackHsUrl:this.getFallbackHsUrl(),defaultDeviceDisplayName:this.props.defaultDeviceDisplayName,onForgotPasswordClick:S.A.getValue(as.f.PasswordReset)?this.onForgotPasswordClick:void 0,onServerConfigChange:this.onServerConfigChange,fragmentAfterLogin:n,defaultUsername:null===(t=this.props.urlParams)||void 0===t||null===(t=t.defaults)||void 0===t?void 0:t.defaultUsername},this.getServerProperties()));case xI.A.SOFT_LOGOUT:return s.createElement(CI,{urlParams:this.props.urlParams,onTokenLoginCompleted:this.props.onTokenLoginCompleted,fragmentAfterLogin:n});case xI.A.LOCK_STOLEN:return s.createElement(HT,null)}}render(){const e=this.getView();return s.createElement(So,null,s.createElement(Xe.gJG.Provider,{value:yl.r.instance.i18n},s.createElement(Ro.A.Provider,{value:this.stores},s.createElement(Xe.QG4.Provider,{value:Pw.vW},s.createElement(Fd.B,null,e)))))}}(0,i.A)(eP,"displayName","MatrixChat");var tP=n("./src/vector/url_utils.ts");let nP=null;function iP(e){const t=(0,tP._u)(e);return{screen:t.location.substring(1),params:t.params?(0,tP.ko)(t.params):{}}}function sP(){decodeURIComponent(window.location.hash)!==nP&&function(e){if(!window.matrixChat)return;o.vF.log("Routing URL ",e.href);const t=iP(e);window.matrixChat.showScreen(t.screen,t.params)}(window.location)}function oP(e,t=!1){o.vF.log("newscreen "+e);const n="#/"+e;nP=n,e.startsWith("room/")&&window.location.hash.includes("/$")===n.includes("/$")&&window.location.hash.startsWith(n)&&(t=!0),t?window.location.replace(n):window.location.assign(n)}const rP="mx_screen_after_login";function aP(e){const t=iP(e);(t.screen||t.params)&&function(e){null!=e&&e.screen&&sessionStorage.setItem(rP,JSON.stringify(e))}(t);const n=function(){const e=sessionStorage.getItem(rP);return e?JSON.parse(e):void 0}();return n}var lP=n("../../node_modules/.pnpm/@vector-im+compound-design-tokens@10.2.1_@types+react@19.2.14_react@19.2.7/node_modules/@vector-im/compound-design-tokens/assets/web/icons/mention.js"),cP=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/ActivityMarker/UnreadCounter.js"),dP=n("../../node_modules/.pnpm/@vector-im+compound-web@9.8.0_@fontsource+inconsolata@5.2.8_@fontsource+inter@5.2.8_@ty_4f4ee9539afab4e70c94c1425596cfcf/node_modules/@vector-im/compound-web/dist/components/ActivityMarker/Unread.js");const mP=["notificationState","callType"];function uP(e){let{notificationState:t,callType:n}=e,i=(0,v.A)(e,mP);const{hasAnyNotificationOrActivity:o,isUnsentMessage:r,invited:a,isMention:l,isActivityNotification:c,isNotification:d,count:m,muted:u}=(0,mo.DY)(t,Cr.ce.Update,()=>({hasAnyNotificationOrActivity:t.hasAnyNotificationOrActivity,isUnsentMessage:t.isUnsentMessage,invited:t.invited,isMention:t.isMention,isActivityNotification:t.isActivityNotification,isNotification:t.isNotification,count:t.count,muted:t.muted}));return o||u||n?s.createElement(Xe.son,(0,xn.A)({align:"center",justify:"center",gap:"var(--cpd-space-1x)"},i),r&&s.createElement(dt.A,{width:"20px",height:"20px",fill:"var(--cpd-color-icon-critical-primary)"}),n===Kl.JG.Video&&s.createElement(om.A,{width:"20px",height:"20px",fill:"var(--cpd-color-icon-accent-primary)"}),n===Kl.JG.Voice&&s.createElement(wy.A,{width:"20px",height:"20px",fill:"var(--cpd-color-icon-accent-primary)"}),a&&s.createElement(Ef.A,{width:"20px",height:"20px",fill:"var(--cpd-color-icon-accent-primary)"}),l&&s.createElement(lP.A,{width:"20px",height:"20px",fill:"var(--cpd-color-icon-accent-primary)"}),(l||d)&&s.createElement(cP.A,{count:m||null}),c&&s.createElement(dP.I,null),u&&s.createElement(rT.A,{width:"20px",height:"20px",fill:"var(--cpd-color-icon-tertiary)"})):null}const pP=({room:e})=>{const t=(0,s.useMemo)(()=>Em.n.instance.getRoomState(e),[e]),n=(0,dE.Gc)(e.roomId);return s.createElement(uP,{notificationState:t,callType:null==n?void 0:n.callType})};function hP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function gP(e,t){const n=new URL(window.location.href);for(const t in function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hP(Object(n),!0).forEach(function(t){(0,i.A)(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hP(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},e.legacy_sso))n.searchParams.delete(t);n.searchParams.delete("no_universal_links"),n.hash=t,o.vF.log(`Redirecting to ${n.href} to drop authentication params from url`),window.history.replaceState(null,"",n.href)}async function vP(e,t){var n;yl.r.instance.builtins.setComponents({roomView:kw,roomAvatar:ms.A,notificationDecoration:pP}),window.addEventListener("hashchange",sP);const i=l.A.get(),m=window.location.protocol+"//"+window.location.host+window.location.pathname;o.vF.log("Vector starting at "+m),null==i||i.startUpdater();const u=await async function(){let e;try{o.vF.log("Verifying homeserver configuration");const t=d.A.get();let n=t.default_server_config;const i=t.default_server_name,s=t.default_hs_url,a=t.default_is_url,l=[n,i,s].filter(e=>!!e);if(s&&(n||i))throw new c.P7("error|invalid_configuration_mixed_server");if(l.length<1)throw new c.P7("error|invalid_configuration_no_server");let m;s&&(o.vF.log("Config uses a default_hs_url - constructing a default_server_config using this information"),o.vF.warn("DEPRECATED CONFIG OPTION: In the future, default_hs_url will not be accepted. Please use default_server_config instead."),n={"m.homeserver":{base_url:s}},a&&(n["m.identity_server"]={base_url:a})),!i&&n&&(o.vF.log("Config uses a default_server_config - validating object"),m=await r.MNj.fromDiscoveryConfig(n)),i&&(o.vF.log("Config uses a default_server_name - doing .well-known lookup"),o.vF.warn("DEPRECATED CONFIG OPTION: In the future, default_server_name will not be accepted. Please use default_server_config instead."),m=await r.MNj.findClientConfig(i),null===m["m.homeserver"].base_url&&n&&(o.vF.log("Finding base_url failed but a default_server_config was found - using it as a fallback"),m=await r.MNj.fromDiscoveryConfig(n))),e=await g.buildValidatedConfigFromDiscovery(i,m,!0)}catch(t){const{hsUrl:n,isUrl:i,userId:s}=await fd();if(!n||!s)throw t;o.vF.error(t),o.vF.warn("A session was found - suppressing config error and using the session's homeserver"),o.vF.log("Using pre-existing hsUrl and isUrl: ",{hsUrl:n,isUrl:i}),e=await g.validateServerConfigWithStaticUrls(n,i,!0)}return e.isDefault=!0,o.vF.log("Using homeserver config:",e),o.vF.log("Updating SdkConfig with validated discovery information"),d.A.add({validated_server_config:e}),d.A.get()}(),p=new Od.Q(u),[h]=await md(),v=!!h,_=!!e.legacy_sso||!!e.oauth2,y=u.sso_redirect_options||{};let E=!0===y.immediate;const w="#/welcome"===window.location.hash||"#"===window.location.hash||""===window.location.hash,S="#/login"===window.location.hash;!E&&y.on_welcome_page&&w&&(E=!0),!E&&y.on_login_page&&S&&(E=!0);const b=aP(window.location);if(!v&&!_&&E&&u.validated_server_config){const e=await async function(e){o.vF.log("Bypassing app load to redirect to SSO");try{const t=new te(e.hsUrl,e.isUrl,null,{delegatedAuthentication:e.delegatedAuthentication}),n=await t.getFlows(),i=n.find(e=>"clientId"in e);if(i&&e.delegatedAuthentication)return await Zc(e.delegatedAuthentication,i.clientId,e.hsUrl,e.isUrl),!0;const s=n.find(e=>"m.login.sso"===e.type||"m.login.cas"===e.type);return l.A.get().startSingleSignOn(t.createTemporaryClient(),"m.login.cas"===(null==s?void 0:s.type)?"cas":"sso",`/${iP(window.location).screen}`),!0}catch(e){console.error("Error encountered during sso redirect",e)}return!1}(u.validated_server_config);if(e)return s.createElement(s.Fragment,null)}const A=null!==(n=p.get("default_device_display_name"))&&void 0!==n?n:null==i?void 0:i.getDefaultDeviceDisplayName(),C={Wrapper:s.Fragment};return f.r.instance.invoke(a.m.Wrapper,C),s.createElement(C.Wrapper,null,s.createElement(s.StrictMode,null,s.createElement(eP,{ref:t,onNewScreen:oP,config:u,urlParams:e,enableGuest:!u.disable_guests,onTokenLoginCompleted:gP,initialScreenAfterLogin:b,defaultDeviceDisplayName:A})))}o.vF.log("Application is running in production mode"),window.matrixLogger=o.vF},"./res/img/stickerpack-placeholder.png"(e){e.exports="img/stickerpack-placeholder.877b5d0.png"},"?a2b6"(){}}]); 2 //# sourceMappingURL=element-web-app.js.map