(()=>{var e={"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/bookmark-views/styles/bookmarks.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/chatboxviews/styles/chats.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/chatview/styles/chat-bottom-panel.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/chatview/styles/chat-head.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/chatview/styles/index.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/controlbox/styles/_controlbox.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/controlbox/styles/buttons.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/controlbox/styles/loginform.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/disco-views/styles/disco-browser.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/fullscreen/styles/fullscreen.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/headlines-view/styles/headlines-head.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/headlines-view/styles/headlines.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/mam-views/styles/placeholder.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/minimize/styles/minimize.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/modal/styles/_modal.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/modal/styles/popover.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/modal/styles/toast.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/modals/styles/config.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/modals/styles/occupant.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/add-muc-modal.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/affiliation-form.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/index.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/moderator-tools.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/muc-bottom-panel.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/muc-chat-content.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/muc-details-modal.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/muc-head.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/muc-occupant.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/muc-occupants.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/muc-sidebar.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/nickname-form.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/occupant-bottom-panel.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/role-form.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/omemo-views/styles/omemo.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/profile/modals/styles/profile.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/profile/modals/styles/user-settings.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/profile/styles/profile.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/register/styles/register.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/roomslist/styles/roomsgroups.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/rootview/styles/background.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/rootview/styles/root.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/rosterview/modals/styles/add-contact.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/rosterview/styles/approval-alert.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/rosterview/styles/roster.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/singleton/singleton.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/autocomplete/styles/_autocomplete.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/avatar/avatar.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/chat/styles/chat-content.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/chat/styles/emoji.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/chat/styles/message-actions.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/chat/styles/message-body.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/chat/styles/retraction.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/chat/styles/toolbar.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/chat/styles/unfurl.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/components/styles/dropdown.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/components/styles/icon.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/components/styles/image-picker.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/components/styles/list-filter.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/components/styles/message-versions.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/components/styles/split-resize.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/gif/styles.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/modals/styles/image.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/modals/styles/user-details.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/qrcode/qrcode.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/styles/index.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/styles/status.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/texture/styles/audio.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/texture/styles/texture.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/templates/styles/spinner.scss":function(e,t,s){"use strict";s.d(t,{Z:()=>l});var r=s("./node_modules/css-loader/dist/runtime/sourceMaps.js"),i=s.n(r),o=s("./node_modules/css-loader/dist/runtime/api.js"),a=s.n(o)()(i());a.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);let l=a},"./node_modules/dayjs/locale lazy recursive ^\\.\\/.*\\.js$":function(e,t,s){var r={"./lv.js":["./node_modules/dayjs/locale/lv.js","2182"],"./sr-cyrl.js":["./node_modules/dayjs/locale/sr-cyrl.js","527"],"./bi.js":["./node_modules/dayjs/locale/bi.js","6218"],"./id.js":["./node_modules/dayjs/locale/id.js","5908"],"./he.js":["./node_modules/dayjs/locale/he.js","8408"],"./kk.js":["./node_modules/dayjs/locale/kk.js","4686"],"./ar-ly.js":["./node_modules/dayjs/locale/ar-ly.js","5557"],"./hr.js":["./node_modules/dayjs/locale/hr.js","7086"],"./ko.js":["./node_modules/dayjs/locale/ko.js","5990"],"./ar-dz.js":["./node_modules/dayjs/locale/ar-dz.js","2592"],"./nl.js":["./node_modules/dayjs/locale/nl.js","1296"],"./tet.js":["./node_modules/dayjs/locale/tet.js","9105"],"./lb.js":["./node_modules/dayjs/locale/lb.js","139"],"./de.js":["./node_modules/dayjs/locale/de.js","2368"],"./zh-tw.js":["./node_modules/dayjs/locale/zh-tw.js","3167"],"./de-at.js":["./node_modules/dayjs/locale/de-at.js","1868"],"./tg.js":["./node_modules/dayjs/locale/tg.js","6909"],"./am.js":["./node_modules/dayjs/locale/am.js","5348"],"./ky.js":["./node_modules/dayjs/locale/ky.js","2257"],"./kn.js":["./node_modules/dayjs/locale/kn.js","7327"],"./ss.js":["./node_modules/dayjs/locale/ss.js","5632"],"./hu.js":["./node_modules/dayjs/locale/hu.js","7433"],"./ar-iq.js":["./node_modules/dayjs/locale/ar-iq.js","8659"],"./uk.js":["./node_modules/dayjs/locale/uk.js","3337"],"./se.js":["./node_modules/dayjs/locale/se.js","9685"],"./pt-br.js":["./node_modules/dayjs/locale/pt-br.js","7721"],"./ar-sa.js":["./node_modules/dayjs/locale/ar-sa.js","9618"],"./en-il.js":["./node_modules/dayjs/locale/en-il.js","1940"],"./nb.js":["./node_modules/dayjs/locale/nb.js","6130"],"./hi.js":["./node_modules/dayjs/locale/hi.js","7842"],"./gl.js":["./node_modules/dayjs/locale/gl.js","6173"],"./mi.js":["./node_modules/dayjs/locale/mi.js","2030"],"./en-ie.js":["./node_modules/dayjs/locale/en-ie.js","6026"],"./ur.js":["./node_modules/dayjs/locale/ur.js","9079"],"./me.js":["./node_modules/dayjs/locale/me.js","4921"],"./fy.js":["./node_modules/dayjs/locale/fy.js","6116"],"./ar.js":["./node_modules/dayjs/locale/ar.js","3269"],"./ar-kw.js":["./node_modules/dayjs/locale/ar-kw.js","333"],"./fr-ca.js":["./node_modules/dayjs/locale/fr-ca.js","5062"],"./de-ch.js":["./node_modules/dayjs/locale/de-ch.js","7168"],"./pa-in.js":["./node_modules/dayjs/locale/pa-in.js","3290"],"./eo.js":["./node_modules/dayjs/locale/eo.js","106"],"./ro.js":["./node_modules/dayjs/locale/ro.js","4640"],"./te.js":["./node_modules/dayjs/locale/te.js","949"],"./tl-ph.js":["./node_modules/dayjs/locale/tl-ph.js","5617"],"./zh.js":["./node_modules/dayjs/locale/zh.js","4856"],"./es-mx.js":["./node_modules/dayjs/locale/es-mx.js","4644"],"./it.js":["./node_modules/dayjs/locale/it.js","7649"],"./zh-hk.js":["./node_modules/dayjs/locale/zh-hk.js","5687"],"./da.js":["./node_modules/dayjs/locale/da.js","6485"],"./fr-ch.js":["./node_modules/dayjs/locale/fr-ch.js","8284"],"./uz-latn.js":["./node_modules/dayjs/locale/uz-latn.js","8923"],"./bo.js":["./node_modules/dayjs/locale/bo.js","5118"],"./ht.js":["./node_modules/dayjs/locale/ht.js","9505"],"./lo.js":["./node_modules/dayjs/locale/lo.js","9986"],"./en-sg.js":["./node_modules/dayjs/locale/en-sg.js","7748"],"./ml.js":["./node_modules/dayjs/locale/ml.js","9117"],"./br.js":["./node_modules/dayjs/locale/br.js","2259"],"./my.js":["./node_modules/dayjs/locale/my.js","6117"],"./uz.js":["./node_modules/dayjs/locale/uz.js","3005"],"./tzm.js":["./node_modules/dayjs/locale/tzm.js","7697"],"./zh-cn.js":["./node_modules/dayjs/locale/zh-cn.js","9369"],"./ne.js":["./node_modules/dayjs/locale/ne.js","946"],"./gom-latn.js":["./node_modules/dayjs/locale/gom-latn.js","147"],"./az.js":["./node_modules/dayjs/locale/az.js","2668"],"./bg.js":["./node_modules/dayjs/locale/bg.js","6706"],"./en-au.js":["./node_modules/dayjs/locale/en-au.js","3382"],"./mr.js":["./node_modules/dayjs/locale/mr.js","3854"],"./gd.js":["./node_modules/dayjs/locale/gd.js","4915"],"./oc-lnc.js":["./node_modules/dayjs/locale/oc-lnc.js","6178"],"./yo.js":["./node_modules/dayjs/locale/yo.js","4278"],"./cv.js":["./node_modules/dayjs/locale/cv.js","6339"],"./lt.js":["./node_modules/dayjs/locale/lt.js","6252"],"./th.js":["./node_modules/dayjs/locale/th.js","8619"],"./cs.js":["./node_modules/dayjs/locale/cs.js","7289"],"./es.js":["./node_modules/dayjs/locale/es.js","457"],"./bn.js":["./node_modules/dayjs/locale/bn.js","804"],"./sr.js":["./node_modules/dayjs/locale/sr.js","7732"],"./sw.js":["./node_modules/dayjs/locale/sw.js","2044"],"./et.js":["./node_modules/dayjs/locale/et.js","7333"],"./sv-fi.js":["./node_modules/dayjs/locale/sv-fi.js","7132"],"./fa.js":["./node_modules/dayjs/locale/fa.js","1146"],"./gu.js":["./node_modules/dayjs/locale/gu.js","2637"],"./fo.js":["./node_modules/dayjs/locale/fo.js","5453"],"./bs.js":["./node_modules/dayjs/locale/bs.js","4078"],"./eu.js":["./node_modules/dayjs/locale/eu.js","8741"],"./ja.js":["./node_modules/dayjs/locale/ja.js","794"],"./es-do.js":["./node_modules/dayjs/locale/es-do.js","7195"],"./nl-be.js":["./node_modules/dayjs/locale/nl-be.js","1907"],"./tk.js":["./node_modules/dayjs/locale/tk.js","3859"],"./en-ca.js":["./node_modules/dayjs/locale/en-ca.js","2636"],"./tzm-latn.js":["./node_modules/dayjs/locale/tzm-latn.js","1526"],"./ug-cn.js":["./node_modules/dayjs/locale/ug-cn.js","2300"],"./mn.js":["./node_modules/dayjs/locale/mn.js","8535"],"./pt.js":["./node_modules/dayjs/locale/pt.js","1220"],"./cy.js":["./node_modules/dayjs/locale/cy.js","3847"],"./ru.js":["./node_modules/dayjs/locale/ru.js","7692"],"./sq.js":["./node_modules/dayjs/locale/sq.js","8086"],"./ga.js":["./node_modules/dayjs/locale/ga.js","4421"],"./km.js":["./node_modules/dayjs/locale/km.js","1418"],"./ku.js":["./node_modules/dayjs/locale/ku.js","2988"],"./tr.js":["./node_modules/dayjs/locale/tr.js","5442"],"./af.js":["./node_modules/dayjs/locale/af.js","974"],"./hy-am.js":["./node_modules/dayjs/locale/hy-am.js","4237"],"./x-pseudo.js":["./node_modules/dayjs/locale/x-pseudo.js","10"],"./tlh.js":["./node_modules/dayjs/locale/tlh.js","7420"],"./sd.js":["./node_modules/dayjs/locale/sd.js","6274"],"./is.js":["./node_modules/dayjs/locale/is.js","4449"],"./sl.js":["./node_modules/dayjs/locale/sl.js","313"],"./ms-my.js":["./node_modules/dayjs/locale/ms-my.js","9836"],"./jv.js":["./node_modules/dayjs/locale/jv.js","5556"],"./el.js":["./node_modules/dayjs/locale/el.js","924"],"./ka.js":["./node_modules/dayjs/locale/ka.js","6827"],"./bn-bd.js":["./node_modules/dayjs/locale/bn-bd.js","1919"],"./en-gb.js":["./node_modules/dayjs/locale/en-gb.js","9236"],"./mk.js":["./node_modules/dayjs/locale/mk.js","9763"],"./sv.js":["./node_modules/dayjs/locale/sv.js","3849"],"./be.js":["./node_modules/dayjs/locale/be.js","5105"],"./pl.js":["./node_modules/dayjs/locale/pl.js","4334"],"./rn.js":["./node_modules/dayjs/locale/rn.js","1793"],"./dv.js":["./node_modules/dayjs/locale/dv.js","4751"],"./si.js":["./node_modules/dayjs/locale/si.js","6684"],"./en.js":["./node_modules/dayjs/locale/en.js","9863"],"./vi.js":["./node_modules/dayjs/locale/vi.js","7143"],"./en-in.js":["./node_modules/dayjs/locale/en-in.js","6097"],"./es-us.js":["./node_modules/dayjs/locale/es-us.js","6201"],"./es-pr.js":["./node_modules/dayjs/locale/es-pr.js","1290"],"./fi.js":["./node_modules/dayjs/locale/fi.js","4976"],"./bm.js":["./node_modules/dayjs/locale/bm.js","3760"],"./ca.js":["./node_modules/dayjs/locale/ca.js","5305"],"./ar-ma.js":["./node_modules/dayjs/locale/ar-ma.js","5641"],"./ms.js":["./node_modules/dayjs/locale/ms.js","414"],"./nn.js":["./node_modules/dayjs/locale/nn.js","1727"],"./ta.js":["./node_modules/dayjs/locale/ta.js","6191"],"./ar-tn.js":["./node_modules/dayjs/locale/ar-tn.js","6402"],"./sk.js":["./node_modules/dayjs/locale/sk.js","8605"],"./rw.js":["./node_modules/dayjs/locale/rw.js","1767"],"./tzl.js":["./node_modules/dayjs/locale/tzl.js","9002"],"./en-nz.js":["./node_modules/dayjs/locale/en-nz.js","7464"],"./mt.js":["./node_modules/dayjs/locale/mt.js","8589"],"./en-tt.js":["./node_modules/dayjs/locale/en-tt.js","7896"],"./fr.js":["./node_modules/dayjs/locale/fr.js","978"],"./it-ch.js":["./node_modules/dayjs/locale/it-ch.js","7018"]};function i(e){if(!s.o(r,e))return Promise.resolve().then(function(){var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t});var t=r[e],i=t[0];return s.e(t[1]).then(function(){return s.t(i,23)})}i.keys=()=>Object.keys(r),i.id="./node_modules/dayjs/locale lazy recursive ^\\.\\/.*\\.js$",e.exports=i},"./node_modules/client-compress/dist/index.js":function(e){window,e.exports=function(){var e=[function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.loadImageElement=function(e,t){return new Promise(function(s,r){e.addEventListener("load",function(){s(e)},!1),e.addEventListener("error",function(e){r(e)},!1),e.src=t})},t.resize=function(e,t,s,r){if(!s&&!r)return{currentWidth:e,currentHeight:t};var i=e/t,o=void 0,a=void 0;return i>s/r?a=(o=Math.min(e,s))/i:o=(a=Math.min(t,r))*i,{width:o,height:a}}},function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.base64ToFile=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"image/jpeg",s=window.atob(e),r=[],i=0;i8)return o.drawImage(e,0,0,i.width,i.height),i;switch(r>4&&(i.width=s,i.height=t),r){case 2:o.translate(t,0),o.scale(-1,1);break;case 3:o.translate(t,s),o.rotate(Math.PI);break;case 4:o.translate(0,s),o.scale(1,-1);break;case 5:o.rotate(.5*Math.PI),o.scale(1,-1);break;case 6:o.rotate(.5*Math.PI),o.translate(0,-s);break;case 7:o.rotate(.5*Math.PI),o.translate(t,-s),o.scale(-1,1);break;case 8:o.rotate(-.5*Math.PI),o.translate(-t,0)}return r>4?o.drawImage(e,0,0,i.height,i.width):o.drawImage(e,0,0,i.width,i.height),i},t.canvasToBlob=function(e,t){return new Promise(function(s,r){e.toBlob(function(e){s(e)},"image/jpeg",t)})},t.size=function(e){return{kB:.001*e,MB:1e-6*e}},t.blobToBase64=function(e){return new Promise(function(t,s){var r=new window.FileReader;r.addEventListener("load",function(e){t(e.target.result)},!1),r.addEventListener("error",function(e){s(e)},!1),r.readAsDataURL(e)})}},function(e,t,s){e.exports=s(6)},function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.extractOrientation=function(e){return new Promise(function(t,s){var r=new window.FileReader;r.onload=function(e){var s=new DataView(e.target.result);65496!==s.getUint16(0,!1)&&t(-2);for(var r=s.byteLength,i=2;i=0;--o){var a=this.tryEntries[o],l=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var c=i.call(a,"catchLoc"),d=i.call(a,"finallyLoc");if(c&&d){if(this.prev=0;--s){var r=this.tryEntries[s];if(r.tryLoc<=this.prev&&i.call(r,"finallyLoc")&&this.prev=0;--t){var s=this.tryEntries[t];if(s.finallyLoc===e)return this.complete(s.completion,s.afterLoc),C(s),g}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var s=this.tryEntries[t];if(s.tryLoc===e){var r=s.completion;if("throw"===r.type){var i=r.arg;C(s)}return i}}throw Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:M(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=s),g}}}function w(e,t,r,i){var o,a=Object.create((t&&t.prototype instanceof S?t:S).prototype),l=new T(i||[]);return o=h,a._invoke=function(t,i){if(o===p)throw Error("Generator is already running");if(o===f){if("throw"===t)throw i;return O()}for(l.method=t,l.arg=i;;){var a=l.delegate;if(a){var c=function e(t,r){var i=t.iterator[r.method];if(i===s){if(r.delegate=null,"throw"===r.method){if(t.iterator.return&&(r.method="return",r.arg=s,e(t,r),"throw"===r.method))return g;r.method="throw",r.arg=TypeError("The iterator does not provide a 'throw' method")}return g}var o=j(i,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,g;var a=o.arg;return a?a.done?(r[t.resultName]=a.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=s),r.delegate=null,g):a:(r.method="throw",r.arg=TypeError("iterator result is not an object"),r.delegate=null,g)}(a,l);if(c){if(c===g)continue;return c}}if("next"===l.method)l.sent=l._sent=l.arg;else if("throw"===l.method){if(o===h)throw o=f,l.arg;l.dispatchException(l.arg)}else"return"===l.method&&l.abrupt("return",l.arg);o=p;var d=j(e,r,l);if("normal"===d.type){if(o=l.done?f:m,d.arg===g)continue;return{value:d.arg,done:l.done}}"throw"===d.type&&(o=f,l.method="throw",l.arg=d.arg)}},a}function j(e,t,s){try{return{type:"normal",arg:e.call(t,s)}}catch(e){return{type:"throw",arg:e}}}function S(){}function x(){}function A(){}function E(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function $(e){var t;this._invoke=function(s,r){function o(){return new Promise(function(t,o){!function t(s,r,o,a){var l=j(e[s],e,r);if("throw"!==l.type){var c=l.arg,d=c.value;return d&&"object"==typeof d&&i.call(d,"__await")?Promise.resolve(d.__await).then(function(e){t("next",e,o,a)},function(e){t("throw",e,o,a)}):Promise.resolve(d).then(function(e){c.value=e,o(c)},a)}a(l.arg)}(s,r,t,o)})}return t=t?t.then(o,o):o()}}function k(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function C(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function T(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(k,this),this.reset(!0)}function M(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function t(){for(;++r=0,o=i&&r.regeneratorRuntime;if(r.regeneratorRuntime=void 0,e.exports=s(5),i)r.regeneratorRuntime=o;else try{delete r.regeneratorRuntime}catch(e){r.regeneratorRuntime=void 0}},function(e,t,s){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=c(s(2)),i=function(){function e(e,t){for(var s=0;s0&&void 0!==arguments[0]?arguments[0]:{};!function(e,t){if(!(e instanceof t))throw TypeError("Cannot call a class as a function")}(this,p),this.setOptions(e)}return i(p,[{key:"setOptions",value:function(e){var t={targetSize:1/0,quality:.75,minQuality:.5,qualityStepSize:.1,maxWidth:1920,maxHeight:1920,resize:!0,throwIfSizeNotReached:!1,autoRotate:!0},s=new Proxy(e,{get:function(e,s){return s in e?e[s]:t[s]}});this.options=s}},{key:"_compressFile",value:(e=d(r.default.mark(function e(t){var s,i;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return s=new l.default(t),(i={}).start=window.performance.now(),i.quality=this.options.quality,i.startType=s.type,e.next=7,s.load();case 7:return e.next=9,this._compressImage(s,i);case 9:return e.abrupt("return",e.sent);case 10:case"end":return e.stop()}},e,this)})),function(t){return e.apply(this,arguments)})},{key:"_compressImage",value:(t=d(r.default.mark(function e(t,s){var i,l,c,d,u;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return s.startWidth=t.width,s.startHeight=t.height,i=void 0,l=void 0,this.options.resize?(i=(c=(0,a.resize)(t.width,t.height,this.options.maxWidth,this.options.maxHeight)).width,l=c.height):(i=t.width,l=t.height),s.endWidth=i,s.endHeight=l,d=this.doAutoRotation?void 0:1,u=t.getCanvas(i,l,d),s.iterations=0,s.startSizeMB=o.size(t.size).MB,e.next=12,this._loopCompression(u,t,s);case 12:return s.endSizeMB=o.size(t.size).MB,s.sizeReducedInPercent=(s.startSizeMB-s.endSizeMB)/s.startSizeMB*100,s.end=window.performance.now(),s.elapsedTimeInSeconds=(s.end-s.start)/1e3,s.endType=t.type,e.abrupt("return",{photo:t,info:s});case 18:case"end":return e.stop()}},e,this)})),function(e,s){return t.apply(this,arguments)})},{key:"_loopCompression",value:(s=d(r.default.mark(function e(t,s,i){var a;return r.default.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return i.iterations++,e.t0=s,e.next=4,o.canvasToBlob(t,i.quality);case 4:if(e.t1=e.sent,e.t0.setData.call(e.t0,e.t1),1==i.iterations&&(s.width=i.endWidth,s.height=i.endHeight),!(o.size(s.size).MB>this.options.targetSize)){e.next=24;break}if(!(i.quality.toFixed(10)-.10?" ".concat(t[5]):""," {")),s+=e(t),r&&(s+="}"),t[2]&&(s+="}"),t[4]&&(s+="}"),s}).join("")},t.i=function(e,s,r,i,o){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(r)for(var l=0;l0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=o),s&&(u[2]&&(u[1]="@media ".concat(u[2]," {").concat(u[1],"}")),u[2]=s),i&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=i):u[4]="".concat(i)),t.push(u))}},t}},"./node_modules/css-loader/dist/runtime/sourceMaps.js":function(e){"use strict";e.exports=function(e){var t=e[1],s=e[3];if(!s)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(s))));return[t].concat(["/*# ".concat("sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r)," */")]).join("\n")}return[t].join("\n")}},"./node_modules/favico.js-slevomat/favico.js":function(e){!function(){var t=function(e){"use strict";e=e||{};var t,s,r,i,o,a,l,c,d,u,h,m,p,f,g,v={bgColor:"#d00",textColor:"#fff",fontFamily:"sans-serif",fontStyle:"bold",type:"circle",position:"down",animation:"slide",elementId:!1,element:null,dataUrl:!1,win:window};(m={}).ff="undefined"!=typeof InstallTrigger,m.chrome=!!window.chrome,m.opera=!!window.opera||navigator.userAgent.indexOf("Opera")>=0,m.ie=!1,m.safari=Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor")>0,m.supported=m.chrome||m.ff||m.opera;var _=[];h=function(){},c=!1;var y={};y.ready=function(){c=!0,y.reset(),h()},y.reset=function(){c&&(_=[],d=!1,u=!1,a.clearRect(0,0,i,r),a.drawImage(l,0,0,i,r),j.setIcon(o),window.clearTimeout(p),window.clearTimeout(f))},y.start=function(){if(c&&!u){var e=function(){d=_[0],u=!1,_.length>0&&(_.shift(),y.start())};if(_.length>0){u=!0;var s=function(){["type","animation","bgColor","textColor","fontFamily","fontStyle"].forEach(function(e){e in _[0].options&&(t[e]=_[0].options[e])}),A.run(_[0].options,function(){e()},!1)};d?A.run(d.options,function(){s()},!0):s()}}};var b={},w=function(e){return e.n="number"==typeof e.n?Math.abs(0|e.n):e.n,e.x=i*e.x,e.y=r*e.y,e.w=i*e.w,e.h=r*e.h,e.len=(""+e.n).length,e};b.circle=function(e){e=w(e);var s=!1;2===e.len?(e.x=e.x-.4*e.w,e.w=1.4*e.w,s=!0):e.len>=3&&(e.x=e.x-.65*e.w,e.w=1.65*e.w,s=!0),a.clearRect(0,0,i,r),a.drawImage(l,0,0,i,r),a.beginPath(),a.font=t.fontStyle+" "+Math.floor(e.h*(e.n>99?.85:1))+"px "+t.fontFamily,a.textAlign="center",s?(a.moveTo(e.x+e.w/2,e.y),a.lineTo(e.x+e.w-e.h/2,e.y),a.quadraticCurveTo(e.x+e.w,e.y,e.x+e.w,e.y+e.h/2),a.lineTo(e.x+e.w,e.y+e.h-e.h/2),a.quadraticCurveTo(e.x+e.w,e.y+e.h,e.x+e.w-e.h/2,e.y+e.h),a.lineTo(e.x+e.h/2,e.y+e.h),a.quadraticCurveTo(e.x,e.y+e.h,e.x,e.y+e.h-e.h/2),a.lineTo(e.x,e.y+e.h/2),a.quadraticCurveTo(e.x,e.y,e.x+e.h/2,e.y)):a.arc(e.x+e.w/2,e.y+e.h/2,e.h/2,0,2*Math.PI),a.fillStyle="rgba("+t.bgColor.r+","+t.bgColor.g+","+t.bgColor.b+","+e.o+")",a.fill(),a.closePath(),a.beginPath(),a.stroke(),a.fillStyle="rgba("+t.textColor.r+","+t.textColor.g+","+t.textColor.b+","+e.o+")","number"==typeof e.n&&e.n>999?a.fillText((e.n>9999?9:Math.floor(e.n/1e3))+"k+",Math.floor(e.x+e.w/2),Math.floor(e.y+e.h-.2*e.h)):a.fillText(e.n,Math.floor(e.x+e.w/2),Math.floor(e.y+e.h-.15*e.h)),a.closePath()},b.rectangle=function(e){e=w(e);2===e.len?(e.x=e.x-.4*e.w,e.w=1.4*e.w):e.len>=3&&(e.x=e.x-.65*e.w,e.w=1.65*e.w),a.clearRect(0,0,i,r),a.drawImage(l,0,0,i,r),a.beginPath(),a.font=t.fontStyle+" "+Math.floor(e.h*(e.n>99?.9:1))+"px "+t.fontFamily,a.textAlign="center",a.fillStyle="rgba("+t.bgColor.r+","+t.bgColor.g+","+t.bgColor.b+","+e.o+")",a.fillRect(e.x,e.y,e.w,e.h),a.fillStyle="rgba("+t.textColor.r+","+t.textColor.g+","+t.textColor.b+","+e.o+")","number"==typeof e.n&&e.n>999?a.fillText((e.n>9999?9:Math.floor(e.n/1e3))+"k+",Math.floor(e.x+e.w/2),Math.floor(e.y+e.h-.2*e.h)):a.fillText(e.n,Math.floor(e.x+e.w/2),Math.floor(e.y+e.h-.15*e.h)),a.closePath()};var j={};function S(e){e=e.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(e,t,s,r){return t+t+s+s+r+r});var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return!!t&&{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}}function x(e,t){var s,r={};for(s in e)r[s]=e[s];for(s in t)r[s]=t[s];return r}j.getIcons=function(){var e=[];return t.element?e=[t.element]:t.elementId?(e=[g.getElementById(t.elementId)])[0].setAttribute("href",e[0].getAttribute("src")):0===(e=function(){for(var e=[],t=g.getElementsByTagName("head")[0].getElementsByTagName("link"),s=0;s=0))return void s();b[t.type](x(e,a[i])),p=setTimeout(function(){r?i-=1:i+=1,A.run(e,s,r,i)},A.duration),j.setIcon(o)},!function(){(t=x(v,e)).bgColor=S(t.bgColor),t.textColor=S(t.textColor),t.position=t.position.toLowerCase(),t.animation=A.types[""+t.animation]?t.animation:v.animation,g=t.win.document;var c=t.position.indexOf("up")>-1,d=t.position.indexOf("left")>-1;if(c||d)for(var u in A.types)for(var h=0;h0?l.height:32,i=l.width>0?l.width:32,o.height=r,o.width=i,a=o.getContext("2d"),y.ready()},l.setAttribute("src",p.getAttribute("href"))):(r=32,i=32,l.height=r,l.width=i,o.height=r,o.width=i,a=o.getContext("2d"),y.ready())}(),{badge:function(e,t){t=("string"==typeof t?{animation:t}:t)||{},h=function(){try{if("number"==typeof e?e>0:""!==e){var s={type:"badge",options:{n:e}};if("animation"in t&&A.types[""+t.animation]&&(s.options.animation=""+t.animation),"type"in t&&b[""+t.type]&&(s.options.type=""+t.type),["bgColor","textColor"].forEach(function(e){e in t&&(s.options[e]=S(t[e]))}),["fontStyle","fontFamily"].forEach(function(e){e in t&&(s.options[e]=t[e])}),_.push(s),_.length>100)throw Error("Too many badges requests in queue.");y.start()}else y.reset()}catch(e){throw Error("Error setting badge. Message: "+e.message)}},c&&h()},setOpt:function(e,s){var r=e;(null!=s||"[object Object]"!=Object.prototype.toString.call(e))&&((r={})[e]=s);for(var i=Object.keys(r),o=0;o>=a,p-=a,u>r||u==l)break;if(u==i){o=(1<<(a=e+1))-1,r=i+2,d=-1;continue}if(-1==d){j[g++]=w[u],d=u,f=u;continue}for(c=u,u==r&&(j[g++]=f,u=d);u>i;)j[g++]=w[u],u=b[u];f=255&w[u],j[g++]=f,r<4096&&(b[r]=d,w[r]=f,(++r&o)==0&&r<4096&&(a++,o+=r)),d=c}g--,y[v++]=j[g],h++}for(h=v;hl.length)?(c=l[o])?c:(c=[s,r])[f()(i)]:(this.options.missing_key_callback&&this.options.missing_key_callback(d,e),c=[s,r],!0===this.options.debug&&console.log(c[f(g)(i)]),c[f()(i)])}});var v=function(){function e(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}var t=function(){return t.cache.hasOwnProperty(arguments[0])||(t.cache[arguments[0]]=t.parse(arguments[0])),t.format.call(null,t.cache[arguments[0]],arguments)};return t.format=function(t,s){var r,i,o,a,l,c,d,u=1,h=t.length,m="",p=[];for(i=0;i=0?"+"+r:r,c=a[4]?"0"==a[4]?"0":a[4].charAt(1):" ",d=a[6]-String(r).length,l=a[6]?function(e,t){for(var s=[];t>0;s[--t]=e);return s.join("")}(c,d):"",p.push(a[5]?r+l:l+r)}return p.join("")},t.cache={},t.parse=function(e){for(var t=e,s=[],r=[],i=0;t;){if(null!==(s=/^[^\x25]+/.exec(t)))r.push(s[0]);else if(null!==(s=/^\x25{2}/.exec(t)))r.push("%");else if(null!==(s=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(t))){if(s[2]){i|=1;var o=[],a=s[2],l=[];if(null!==(l=/^([a-z_][a-z_\d]*)/i.exec(a)))for(o.push(l[1]);""!==(a=a.substring(l[0].length));)if(null!==(l=/^\.([a-z_][a-z_\d]*)/i.exec(a)))o.push(l[1]);else if(null!==(l=/^\[(\d+)\]/.exec(a)))o.push(l[1]);else throw"[sprintf] huh?";else throw"[sprintf] huh?";s[2]=o}else i|=2;if(3===i)throw"[sprintf] mixing positional and named placeholders is not (yet) supported";r.push(s)}else throw"[sprintf] huh?";t=t.substring(s[0].length)}return r},t}();p.parse_plural=function(e,t){return e=e.replace(/n/g,t),p.parse_expression(e)},p.sprintf=function(e,t){if("[object Array]"==({}).toString.call(t)){var s;return(s=[].slice.call(t)).unshift(e),v.apply(null,s)}return v.apply(this,[].slice.call(arguments))},p.prototype.sprintf=function(){return p.sprintf.apply(this,arguments)},p.PF={},p.PF.parse=function(e){var t=p.PF.extractPluralExpr(e);return p.PF.parser.parse.call(p.PF.parser,t)},p.PF.compile=function(e){var t=p.PF.parse(e);return function(e){var s;return!0===(s=p.PF.interpreter(t)(e))?1:s||0}},p.PF.interpreter=function(e){return function(t){switch(e.type){case"GROUP":return p.PF.interpreter(e.expr)(t);case"TERNARY":if(p.PF.interpreter(e.expr)(t))return p.PF.interpreter(e.truthy)(t);return p.PF.interpreter(e.falsey)(t);case"OR":return p.PF.interpreter(e.left)(t)||p.PF.interpreter(e.right)(t);case"AND":return p.PF.interpreter(e.left)(t)&&p.PF.interpreter(e.right)(t);case"LT":return p.PF.interpreter(e.left)(t)p.PF.interpreter(e.right)(t);case"LTE":return p.PF.interpreter(e.left)(t)<=p.PF.interpreter(e.right)(t);case"GTE":return p.PF.interpreter(e.left)(t)>=p.PF.interpreter(e.right)(t);case"EQ":return p.PF.interpreter(e.left)(t)==p.PF.interpreter(e.right)(t);case"NEQ":return p.PF.interpreter(e.left)(t)!=p.PF.interpreter(e.right)(t);case"MOD":return p.PF.interpreter(e.left)(t)%p.PF.interpreter(e.right)(t);case"VAR":return t;case"NUM":return e.val;default:throw Error("Invalid Token found.")}}},p.PF.extractPluralExpr=function(e){e=e.replace(/^\s\s*/,"").replace(/\s\s*$/,""),/;\s*$/.test(e)||(e=e.concat(";"));var t,s=/nplurals\=(\d+);/,r=e.match(s);if(r.length>1)r[1];else throw Error("nplurals not found in plural_forms string: "+e);if(!((t=(e=e.replace(s,"")).match(/plural\=(.*);/))&&t.length>1))throw Error("`plural` expression not found: "+e);return t[1]},p.PF.parser=((i={trace:function(){},yy:{},symbols_:{error:2,expressions:3,e:4,EOF:5,"?":6,":":7,"||":8,"&&":9,"<":10,"<=":11,">":12,">=":13,"!=":14,"==":15,"%":16,"(":17,")":18,n:19,NUMBER:20,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",6:"?",7:":",8:"||",9:"&&",10:"<",11:"<=",12:">",13:">=",14:"!=",15:"==",16:"%",17:"(",18:")",19:"n",20:"NUMBER"},productions_:[0,[3,2],[4,5],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,1],[4,1]],performAction:function(e,t,s,r,i,o,a){var l=o.length-1;switch(i){case 1:return{type:"GROUP",expr:o[l-1]};case 2:this.$={type:"TERNARY",expr:o[l-4],truthy:o[l-2],falsey:o[l]};break;case 3:this.$={type:"OR",left:o[l-2],right:o[l]};break;case 4:this.$={type:"AND",left:o[l-2],right:o[l]};break;case 5:this.$={type:"LT",left:o[l-2],right:o[l]};break;case 6:this.$={type:"LTE",left:o[l-2],right:o[l]};break;case 7:this.$={type:"GT",left:o[l-2],right:o[l]};break;case 8:this.$={type:"GTE",left:o[l-2],right:o[l]};break;case 9:this.$={type:"NEQ",left:o[l-2],right:o[l]};break;case 10:this.$={type:"EQ",left:o[l-2],right:o[l]};break;case 11:this.$={type:"MOD",left:o[l-2],right:o[l]};break;case 12:this.$={type:"GROUP",expr:o[l-1]};break;case 13:this.$={type:"VAR"};break;case 14:this.$={type:"NUM",val:Number(e)}}},table:[{3:1,4:2,17:[1,3],19:[1,4],20:[1,5]},{1:[3]},{5:[1,6],6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{4:17,17:[1,3],19:[1,4],20:[1,5]},{5:[2,13],6:[2,13],7:[2,13],8:[2,13],9:[2,13],10:[2,13],11:[2,13],12:[2,13],13:[2,13],14:[2,13],15:[2,13],16:[2,13],18:[2,13]},{5:[2,14],6:[2,14],7:[2,14],8:[2,14],9:[2,14],10:[2,14],11:[2,14],12:[2,14],13:[2,14],14:[2,14],15:[2,14],16:[2,14],18:[2,14]},{1:[2,1]},{4:18,17:[1,3],19:[1,4],20:[1,5]},{4:19,17:[1,3],19:[1,4],20:[1,5]},{4:20,17:[1,3],19:[1,4],20:[1,5]},{4:21,17:[1,3],19:[1,4],20:[1,5]},{4:22,17:[1,3],19:[1,4],20:[1,5]},{4:23,17:[1,3],19:[1,4],20:[1,5]},{4:24,17:[1,3],19:[1,4],20:[1,5]},{4:25,17:[1,3],19:[1,4],20:[1,5]},{4:26,17:[1,3],19:[1,4],20:[1,5]},{4:27,17:[1,3],19:[1,4],20:[1,5]},{6:[1,7],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[1,28]},{6:[1,7],7:[1,29],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16]},{5:[2,3],6:[2,3],7:[2,3],8:[2,3],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,3]},{5:[2,4],6:[2,4],7:[2,4],8:[2,4],9:[2,4],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,4]},{5:[2,5],6:[2,5],7:[2,5],8:[2,5],9:[2,5],10:[2,5],11:[2,5],12:[2,5],13:[2,5],14:[2,5],15:[2,5],16:[1,16],18:[2,5]},{5:[2,6],6:[2,6],7:[2,6],8:[2,6],9:[2,6],10:[2,6],11:[2,6],12:[2,6],13:[2,6],14:[2,6],15:[2,6],16:[1,16],18:[2,6]},{5:[2,7],6:[2,7],7:[2,7],8:[2,7],9:[2,7],10:[2,7],11:[2,7],12:[2,7],13:[2,7],14:[2,7],15:[2,7],16:[1,16],18:[2,7]},{5:[2,8],6:[2,8],7:[2,8],8:[2,8],9:[2,8],10:[2,8],11:[2,8],12:[2,8],13:[2,8],14:[2,8],15:[2,8],16:[1,16],18:[2,8]},{5:[2,9],6:[2,9],7:[2,9],8:[2,9],9:[2,9],10:[2,9],11:[2,9],12:[2,9],13:[2,9],14:[2,9],15:[2,9],16:[1,16],18:[2,9]},{5:[2,10],6:[2,10],7:[2,10],8:[2,10],9:[2,10],10:[2,10],11:[2,10],12:[2,10],13:[2,10],14:[2,10],15:[2,10],16:[1,16],18:[2,10]},{5:[2,11],6:[2,11],7:[2,11],8:[2,11],9:[2,11],10:[2,11],11:[2,11],12:[2,11],13:[2,11],14:[2,11],15:[2,11],16:[2,11],18:[2,11]},{5:[2,12],6:[2,12],7:[2,12],8:[2,12],9:[2,12],10:[2,12],11:[2,12],12:[2,12],13:[2,12],14:[2,12],15:[2,12],16:[2,12],18:[2,12]},{4:30,17:[1,3],19:[1,4],20:[1,5]},{5:[2,2],6:[1,7],7:[2,2],8:[1,8],9:[1,9],10:[1,10],11:[1,11],12:[1,12],13:[1,13],14:[1,14],15:[1,15],16:[1,16],18:[2,2]}],defaultActions:{6:[2,1]},parseError:function(e,t){throw Error(e)},parse:function(e){var t=this,s=[0],r=[null],i=[],o=this.table,a="",l=0,c=0,d=0;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,void 0===this.lexer.yylloc&&(this.lexer.yylloc={});var u=this.lexer.yylloc;function h(){var e;return"number"!=typeof(e=t.lexer.lex()||1)&&(e=t.symbols_[e]||e),e}i.push(u),"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var m,p,f,g,v,_,y,b,w,j={};;){if(f=s[s.length-1],this.defaultActions[f]?g=this.defaultActions[f]:(null==m&&(m=h()),g=o[f]&&o[f][m]),void 0===g||!g.length||!g[0]){if(!d){for(_ in w=[],o[f])this.terminals_[_]&&_>2&&w.push("'"+this.terminals_[_]+"'");var S="";S=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+w.join(", ")+", got '"+this.terminals_[m]+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==m?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(S,{text:this.lexer.match,token:this.terminals_[m]||m,line:this.lexer.yylineno,loc:u,expected:w})}if(3==d){if(1==m)throw Error(S||"Parsing halted.");c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,m=h()}for(;!("2"in o[f]);){;if(0==f)throw Error(S||"Parsing halted.");s.length=s.length-2,r.length=r.length-1,i.length=i.length-1,f=s[s.length-1]}p=m,m=2,g=o[f=s[s.length-1]]&&o[f][2],d=3}if(g[0]instanceof Array&&g.length>1)throw Error("Parse Error: multiple actions possible at state: "+f+", token: "+m);switch(g[0]){case 1:s.push(m),r.push(this.lexer.yytext),i.push(this.lexer.yylloc),s.push(g[1]),m=null,p?(m=p,p=null):(c=this.lexer.yyleng,a=this.lexer.yytext,l=this.lexer.yylineno,u=this.lexer.yylloc,d>0&&d--);break;case 2:if(y=this.productions_[g[1]][1],j.$=r[r.length-y],j._$={first_line:i[i.length-(y||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(y||1)].first_column,last_column:i[i.length-1].last_column},void 0!==(v=this.performAction.call(j,a,c,l,this.yy,g[1],r,i)))return v;y&&(s=s.slice(0,-1*y*2),r=r.slice(0,-1*y),i=i.slice(0,-1*y)),s.push(this.productions_[g[1]][0]),r.push(j.$),i.push(j._$),b=o[s[s.length-2]][s[s.length-1]],s.push(b);break;case 3:return!0}}return!0}}).lexer=((o={EOF:1,parseError:function(e,t){if(this.yy.parseError)this.yy.parseError(e,t);else throw Error(e)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.match+=e,this.matched+=e,e.match(/\n/)&&this.yylineno++,this._input=this._input.slice(1),e},unput:function(e){return this._input=e+this._input,this},more:function(){return this._more=!0,this},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var e,t,s,r=this._currentRules(),i=0;i=/,/^/,/^!=/,/^==/,/^%/,/^\(/,/^\)/,/^$/,/^./],o.conditions={INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],inclusive:!0}},o),i),e.exports&&(t=e.exports=p),t.Jed=p}(0)},"./node_modules/js-binary-schema-parser/lib/index.js":function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.loop=t.conditional=t.parse=void 0,t.parse=function e(t,s){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:r;if(Array.isArray(s))s.forEach(function(s){return e(t,s,r,i)});else if("function"==typeof s)s(t,r,i,e);else{var o=Object.keys(s)[0];Array.isArray(s[o])?(i[o]={},e(t,s[o],r,i[o])):i[o]=s[o](t,r,i,e)}return r},t.conditional=function(e,t){return function(s,r,i,o){t(s,r,i)&&o(s,e,r,i)}},t.loop=function(e,t){return function(s,r,i,o){for(var a=[],l=s.pos;t(s,r,i);){var c={};if(o(s,e,r,c),s.pos===l)break;l=s.pos,a.push(c)}return a}}},"./node_modules/js-binary-schema-parser/lib/parsers/uint8.js":function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.readBits=t.readArray=t.readUnsigned=t.readString=t.peekBytes=t.readBytes=t.peekByte=t.readByte=t.buildStream=void 0,t.buildStream=function(e){return{data:e,pos:0}};var s=function(){return function(e){return e.data[e.pos++]}};t.readByte=s,t.peekByte=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return function(t){return t.data[t.pos+e]}};var r=function(e){return function(t){return t.data.subarray(t.pos,t.pos+=e)}};t.readBytes=r,t.peekBytes=function(e){return function(t){return t.data.subarray(t.pos,t.pos+e)}},t.readString=function(e){return function(t){return Array.from(r(e)(t)).map(function(e){return String.fromCharCode(e)}).join("")}},t.readUnsigned=function(e){return function(t){var s=r(2)(t);return e?(s[1]<<8)+s[0]:(s[0]<<8)+s[1]}},t.readArray=function(e,t){return function(s,i,o){for(var a="function"==typeof t?t(s,i,o):t,l=r(e),c=Array(a),d=0;d=s){var a=s-e.pos;t.push((0,i.readBytes)(a)(e)),r+=a;break}t.push((0,i.readBytes)(o)(e)),r+=o}for(var l=new Uint8Array(r),c=0,d=0;dg,GB:()=>h,Hn:()=>p,NZ:()=>f,Qr:()=>w,R0:()=>j,Tk:()=>_,XB:()=>u,_G:()=>b,ag:()=>S,ax:()=>v,cM:()=>x,cX:()=>d,fQ:()=>A,h5:()=>l,hi:()=>y,lf:()=>m,u:()=>E,vp:()=>c}),e=s.hmd(e);var r={94:function(e,t,s){e=s.nmd(e),function(t){let r;var i,o,a,l,c,d,u,h,m,p,f="object"==typeof s.g&&s.g&&s.g.Object===Object&&s.g,g="object"==typeof self&&self&&self.Object===Object&&self,v=f||g||Function("return this")(),_=v.Symbol;function y(e,t){for(var s=-1,r=null==e?0:e.length,i=Array(r);++se}):void 0,z="$lit$",P=`lit$${Math.random().toFixed(9).slice(2)}$`,U="?"+P,B=`<${U}>`,F=document,q=()=>F.createComment(""),H=e=>null===e||"object"!=typeof e&&"function"!=typeof e,G=Array.isArray,W="[ \n\f\r]",Z=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,V=/-->/g,Q=/>/g,K=RegExp(`>|${W}(?:([^\\s"'>=/]+)(${W}*=${W}*(?:[^ \f\r"'\`<>=]|("|')|))|$)`,"g"),J=/'/g,Y=/"/g,X=/^(?:script|style|textarea|title)$/i,ee=Symbol.for("lit-noChange"),et=Symbol.for("lit-nothing"),es=new WeakMap,er=F.createTreeWalker(F,129);function ei(e,t){if(!G(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==L?L.createHTML(t):t}class en{constructor({strings:e,_$litType$:t},s){let r;this.parts=[];let i=0,o=0,a=e.length-1,l=this.parts,[c,d]=((e,t)=>{let s=e.length-1,r=[],i,o=2===t?"":3===t?"":"",a=Z;for(let t=0;t"===d[0]?(a=null!=(l=i)?l:Z,u=-1):void 0===d[1]?u=-2:(u=a.lastIndex-d[2].length,c=d[1],a=void 0===d[3]?K:'"'===d[3]?Y:J):a===Y||a===J?a=K:a===V||a===Q?a=Z:(a=K,i=void 0)}let m=a===K&&e[t+1].startsWith("/>")?" ":"";o+=a===Z?s+B:u>=0?(r.push(c),s.slice(0,u)+z+s.slice(u)+P+m):s+P+(-2===u?t:m)}return[ei(e,o+(e[s]||"")+(2===t?"":3===t?"":"")),r]})(e,t);if(this.el=en.createElement(c,s),er.currentNode=this.el.content,2===t||3===t){let e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(r=er.nextNode())&&l.length0){r.textContent=D?D.emptyScript:"";for(let s=0;s2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=et}_$AI(e,t=this,s,r){let i=this.strings,o=!1;if(void 0===i)(o=!H(e=eo(this,e,t,0))||e!==this._$AH&&e!==ee)&&(this._$AH=e);else{let r,l,c=e;for(e=i[0],r=0;r-1&&e%1==0&&e<=0x1fffffffffffff}function e0(e){return null!=e&&e1(e.length)&&!ej(e)}var e2="object"==typeof t&&t&&!t.nodeType&&t,e4=e2&&e&&!e.nodeType&&e,e3=e4&&e4.exports===e2?v.Buffer:void 0,e6=(e3?e3.isBuffer:void 0)||function(){return!1},e8={};function e5(e){return function(t){return e(t)}}e8["[object Float32Array]"]=e8["[object Float64Array]"]=e8["[object Int8Array]"]=e8["[object Int16Array]"]=e8["[object Int32Array]"]=e8["[object Uint8Array]"]=e8["[object Uint8ClampedArray]"]=e8["[object Uint16Array]"]=e8["[object Uint32Array]"]=!0,e8["[object Arguments]"]=e8["[object Array]"]=e8["[object ArrayBuffer]"]=e8["[object Boolean]"]=e8["[object DataView]"]=e8["[object Date]"]=e8["[object Error]"]=e8["[object Function]"]=e8["[object Map]"]=e8["[object Number]"]=e8["[object Object]"]=e8["[object RegExp]"]=e8["[object Set]"]=e8["[object String]"]=e8["[object WeakMap]"]=!1;var e9="object"==typeof t&&t&&!t.nodeType&&t,e7=e9&&e&&!e.nodeType&&e,te=e7&&e7.exports===e9&&f.process,tt=function(){try{var e=e7&&e7.require&&e7.require("util").types;if(e)return e;return te&&te.binding&&te.binding("util")}catch(e){}}(),ts=tt&&tt.isTypedArray,tr=ts?e5(ts):function(e){return k(e)&&e1(e.length)&&!!e8[$(e)]},ti=Object.prototype.hasOwnProperty;function tn(e){if(null==e)return!0;if(e0(e)&&(b(e)||"string"==typeof e||"function"==typeof e.splice||e6(e)||tr(e)||eX(e)))return!e.length;var t=eV(e);if("[object Map]"==t||"[object Set]"==t)return!e.size;if(eg(e))return!eb(e).length;for(var s in e)if(ti.call(e,s))return!1;return!0}var to=/^(?:0|[1-9]\d*)$/;function ta(e,t){var s=typeof e;return!!(t=null==t?0x1fffffffffffff:t)&&("number"==s||"symbol"!=s&&to.test(e))&&e>-1&&e%1==0&&e0&&(t=a.apply(this,arguments)),o<=1&&(a=void 0),t}}(function(){r(t,i),s.apply(this,arguments)});i._callback=s}return e}function tx(e,t,s,r){if(e){let s=e[t],i=e.all;s&&i&&(i=i.slice()),s&&tA(s,r),i&&tA(i,[t].concat(r))}return e}function tA(e,t){let s,r=-1,i=e.length,o=t[0],a=t[1],l=t[2];switch(t.length){case 0:for(;++r>4,i[a++]=(15&c)<<4|d>>2,i[a++]=(3&d)<<6|63&u}return r}function tN(e){for(var t=new Uint8Array(e),s="",r=0;r>2],s+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(3&t[r])<<4|t[r+1]>>4],s+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(15&t[r+1])<<2|t[r+2]>>6],s+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[63&t[r+2]];return t.length%3==2?s=s.substring(0,s.length-1)+"=":t.length%3==1&&(s=s.substring(0,s.length-2)+"=="),s}function tI(e,t){return(e.name||t.name)+"/"+(e.storeName||t.storeName)+"/"}function tR(e,t){t&&e.then(function(e){t(null,e)},function(e){t(e)})}function tD(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}function tL(e,t){var s=this;if(t=tD.apply(this,arguments),!(e="function"!=typeof e&&e||{}).name){var r=this.config();e.name=e.name||r.name,e.storeName=e.storeName||r.storeName}return{promise:e.name?new Promise(function(t){t(e.storeName?tI(e,s._defaultConfig):e.name+"/")}):Promise.reject("Invalid arguments"),callback:t}}function tz(e){return"string"!=typeof e&&(console.warn(e+" used as a key, but it is not a string."),e=String(e)),e}var tP={bufferToString:tN,deserialize:function(e){if("__lfsc__:"!==e.substring(0,9))return JSON.parse(e);var t,s=e.substring(13),r=e.substring(9,13);if("blob"===r&&tT.test(s)){var i=s.match(tT);t=i[1],s=s.substring(i[0].length)}var o=tO(s);switch(r){case"arbf":return o;case"blob":return function(e,t){e=e||[],t=t||{};try{return new Blob(e,t)}catch(i){if("TypeError"!==i.name)throw i;for(var s=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),r=0;r=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(Object.keys(t)),a=o.next();!a.done;a=o.next()){var l=a.value;Object.prototype.hasOwnProperty.call(t,l)&&(t.isActiveClone=null,i[l]=e(t[l]),delete t.isActiveClone)}}catch(e){s={error:e}}finally{try{a&&!a.done&&(r=o.return)&&r.call(o)}finally{if(s)throw s.error}}return i}(e):{},s=tI(t,this._defaultConfig),r=tF.resolve(s);return this._dbInfo=t,this._dbInfo.serializer=tP,this._dbInfo.keyPrefix=s,this._dbInfo.mStore=r,Promise.resolve()},_support:!0,clear:function(e){var t=this,s=this.ready().then(function(){t._dbInfo.mStore.clear()});return tR(s,e),s},dropInstance:function(e,t){var s=tL.apply(this,arguments),r=s.promise,i=s.callback;return tR(r.then(function(e){tF.resolve(e).drop()}),i),r},getItem:function(e,t){var s=this;e=tz(e);var r=this.ready().then(function(){var t=s._dbInfo.mStore.get(e);return null==t?null:s._dbInfo.serializer.deserialize(t)});return tR(r,t),r},iterate:function(e,t){var s=this,r=this.ready().then(function(){for(var t=s._dbInfo.mStore,r=t.keys(),i=0;i-1},tZ.prototype.set=function(e,t){var s=this.__data__,r=tG(s,e);return r<0?(++this.size,s.push([e,t])):s[r][1]=t,this};var tV=eO(Object,"create"),tQ=Object.prototype.hasOwnProperty,tK=Object.prototype.hasOwnProperty;function tJ(e){var t=-1,s=null==e?0:e.length;for(this.clear();++te.db.version;if(r&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),i||s){if(s){var o=e.db.version+1;o>e.version&&(e.version=o)}return!0}return!1}function S(e){return o([function(e){for(var t=e.length,s=new ArrayBuffer(t),r=new Uint8Array(s),i=0;i0&&(!e.db||"InvalidStateError"===i.name||"NotFoundError"===i.name))return a.resolve().then(function(){if(!e.db||"NotFoundError"===i.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),w(e,!0)}).then(function(){return(function(e){_(e);for(var t=p[e.name],s=t.forages,r=0;r=43)}}).catch(function(){return!1}).then(function(e){return m=e})).then(function(e){return e?t:new a(function(e,s){var r=new FileReader;r.onerror=s,r.onloadend=function(s){e({__local_forage_encoded_blob:!0,data:btoa(s.target.result||""),type:t.type})},r.readAsBinaryString(t)})}):t}).then(function(t){E(r._dbInfo,v,function(o,a){if(o)return i(o);try{var l=a.objectStore(r._dbInfo.storeName);null===t&&(t=void 0);var c=l.put(t,e);a.oncomplete=function(){void 0===t&&(t=null),s(t)},a.onabort=a.onerror=function(){var e=c.error?c.error:c.transaction.error;i(e)}}catch(e){i(e)}})}).catch(i)});return l(i,s),i},removeItem:function(e,t){var s=this;e=d(e);var r=new a(function(t,r){s.ready().then(function(){E(s._dbInfo,v,function(i,o){if(i)return r(i);try{var a=o.objectStore(s._dbInfo.storeName).delete(e);o.oncomplete=function(){t()},o.onerror=function(){r(a.error)},o.onabort=function(){var e=a.error?a.error:a.transaction.error;r(e)}}catch(e){r(e)}})}).catch(r)});return l(r,t),r},clear:function(e){var t=this,s=new a(function(e,s){t.ready().then(function(){E(t._dbInfo,v,function(r,i){if(r)return s(r);try{var o=i.objectStore(t._dbInfo.storeName).clear();i.oncomplete=function(){e()},i.onabort=i.onerror=function(){var e=o.error?o.error:o.transaction.error;s(e)}}catch(e){s(e)}})}).catch(s)});return l(s,e),s},length:function(e){var t=this,s=new a(function(e,s){t.ready().then(function(){E(t._dbInfo,g,function(r,i){if(r)return s(r);try{var o=i.objectStore(t._dbInfo.storeName).count();o.onsuccess=function(){e(o.result)},o.onerror=function(){s(o.error)}}catch(e){s(e)}})}).catch(s)});return l(s,e),s},key:function(e,t){var s=this,r=new a(function(t,r){if(e<0)return void t(null);s.ready().then(function(){E(s._dbInfo,g,function(i,o){if(i)return r(i);try{var a=o.objectStore(s._dbInfo.storeName),l=!1,c=a.openKeyCursor();c.onsuccess=function(){var s=c.result;if(!s)return void t(null);0===e||l?t(s.key):(l=!0,s.advance(e))},c.onerror=function(){r(c.error)}}catch(e){r(e)}})}).catch(r)});return l(r,t),r},keys:function(e){var t=this,s=new a(function(e,s){t.ready().then(function(){E(t._dbInfo,g,function(r,i){if(r)return s(r);try{var o=i.objectStore(t._dbInfo.storeName).openKeyCursor(),a=[];o.onsuccess=function(){var t=o.result;if(!t)return void e(a);a.push(t.key),t.continue()},o.onerror=function(){s(o.error)}}catch(e){s(e)}})}).catch(s)});return l(s,e),s},dropInstance:function(e,t){t=u.apply(this,arguments);var s,r=this.config();if((e="function"!=typeof e&&e||{}).name||(e.name=e.name||r.name,e.storeName=e.storeName||r.storeName),e.name){var o=e.name===r.name&&this._dbInfo.db?a.resolve(this._dbInfo.db):w(e,!1).then(function(t){var s=p[e.name],r=s.forages;s.db=t;for(var i=0;i>4,u[c++]=(15&r)<<4|i>>2,u[c++]=(3&i)<<6|63&o;return d}function Z(e){var t,s=new Uint8Array(e),r="";for(t=0;t>2],r+=C[(3&s[t])<<4|s[t+1]>>4],r+=C[(15&s[t+1])<<2|s[t+2]>>6],r+=C[63&s[t+2]];return s.length%3==2?r=r.substring(0,r.length-1)+"=":s.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}var V={serialize:function(e,t){var s="";if(e&&(s=G.call(e)),e&&("[object ArrayBuffer]"===s||e.buffer&&"[object ArrayBuffer]"===G.call(e.buffer))){var r,i=M;e instanceof ArrayBuffer?(r=e,i+=N):(r=e.buffer,"[object Int8Array]"===s?i+=R:"[object Uint8Array]"===s?i+=D:"[object Uint8ClampedArray]"===s?i+=L:"[object Int16Array]"===s?i+=z:"[object Uint16Array]"===s?i+=U:"[object Int32Array]"===s?i+=P:"[object Uint32Array]"===s?i+=B:"[object Float32Array]"===s?i+=F:"[object Float64Array]"===s?i+=q:t(Error("Failed to get type for BinaryArray"))),t(i+Z(r))}else if("[object Blob]"===s){var o=new FileReader;o.onload=function(){t(M+I+"~~local_forage_type~"+e.type+"~"+Z(this.result))},o.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(s){console.error("Couldn't convert value into a JSON string: ",e),t(null,s)}},deserialize:function(e){if(e.substring(0,O)!==M)return JSON.parse(e);var t,s=e.substring(H),r=e.substring(O,H);if(r===I&&T.test(s)){var i=s.match(T);t=i[1],s=s.substring(i[0].length)}var a=W(s);switch(r){case N:return a;case I:return o([a],{type:t});case R:return new Int8Array(a);case D:return new Uint8Array(a);case L:return new Uint8ClampedArray(a);case z:return new Int16Array(a);case U:return new Uint16Array(a);case P:return new Int32Array(a);case B:return new Uint32Array(a);case F:return new Float32Array(a);case q:return new Float64Array(a);default:throw Error("Unkown type: "+r)}},stringToBuffer:W,bufferToString:Z};function Q(e,t,s,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],s,r)}function K(e,t,s,r,i,o){e.executeSql(s,r,i,function(e,a){a.code===a.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],function(e,l){l.rows.length?o(e,a):Q(e,t,function(){e.executeSql(s,r,i,o)},o)},o):o(e,a)},o)}function J(e,t,s,r){var i=this;e=d(e);var o=new a(function(o,a){i.ready().then(function(){void 0===t&&(t=null);var l=t,c=i._dbInfo;c.serializer.serialize(t,function(t,d){d?a(d):c.db.transaction(function(s){K(s,c,"INSERT OR REPLACE INTO "+c.storeName+" (key, value) VALUES (?, ?)",[e,t],function(){o(l)},function(e,t){a(t)})},function(t){if(t.code===t.QUOTA_ERR){if(r>0)return void o(J.apply(i,[e,l,s,r-1]));a(t)}})})}).catch(a)});return l(o,s),o}var Y={_driver:"webSQLStorage",_initStorage:function(e){var t=this,s={db:null};if(e)for(var r in e)s[r]="string"!=typeof e[r]?e[r].toString():e[r];var i=new a(function(e,r){try{s.db=openDatabase(s.name,String(s.version),s.description,s.size)}catch(e){return r(e)}s.db.transaction(function(i){Q(i,s,function(){t._dbInfo=s,e()},function(e,t){r(t)})},r)});return s.serializer=V,i},_support:"function"==typeof openDatabase,iterate:function(e,t){var s=this,r=new a(function(t,r){s.ready().then(function(){var i=s._dbInfo;i.db.transaction(function(s){K(s,i,"SELECT * FROM "+i.storeName,[],function(s,r){for(var o=r.rows,a=o.length,l=0;l '__WebKitDatabaseInfoTable__'",[],function(t,r){for(var i=[],o=0;o0)?(this._dbInfo=t,t.serializer=V,a.resolve()):a.reject()},_support:function(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}(),iterate:function(e,t){var s=this,r=s.ready().then(function(){for(var t=s._dbInfo,r=t.keyPrefix,i=r.length,o=localStorage.length,a=1,l=0;l=0;s--){var r=localStorage.key(s);0===r.indexOf(e)&&localStorage.removeItem(r)}});return l(s,e),s},length:function(e){var t=this.keys().then(function(e){return e.length});return l(t,e),t},key:function(e,t){var s=this,r=s.ready().then(function(){var t,r=s._dbInfo;try{t=localStorage.key(e)}catch(e){t=null}return t&&(t=t.substring(r.keyPrefix.length)),t});return l(r,t),r},keys:function(e){var t=this,s=t.ready().then(function(){for(var e=t._dbInfo,s=localStorage.length,r=[],i=0;i=0;t--){var s=localStorage.key(t);0===s.indexOf(e)&&localStorage.removeItem(s)}}):a.reject("Invalid arguments"),t),s}},et=function(e,t){for(var s,r=e.length,i=0;i0){if(++a>=800)return arguments[0]}else a=0;return sY.apply(void 0,arguments)});function s0(e,t){return s1(sK(e,t,sV),e+"")}function s2(e,t,s){if(!ew(s))return!1;var r=typeof t;return("number"==r?!!(e0(s)&&ta(t,s.length)):"string"==r&&t in s)&&tH(s[t],e)}function s4(e){return s0(function(t,s){var r=-1,i=s.length,o=i>1?s[i-1]:void 0,a=i>2?s[2]:void 0;for(o=e.length>3&&"function"==typeof o?(i--,o):void 0,a&&s2(s[0],s[1],a)&&(o=i<3?void 0:o,i=1),t=Object(t);++r{},s=()=>{};if("function"==typeof Promise.withResolvers){let{promise:r,resolve:i,reject:o}=Promise.withResolvers();e=r,t=i,s=o}else e=new Promise((e,r)=>{t=e,s=r});return Object.assign(e,{isResolved:!1,isPending:!0,isRejected:!1,resolve:t,reject:s}),e.then(t=>(e.isResolved=!0,e.isPending=!1,e.isRejected=!1,t),t=>{throw e.isResolved=!1,e.isPending=!1,e.isRejected=!0,t}),e}let s5=Math.max,s9=Math.min;function s7(e){if("number"==typeof e)return e;if("string"==typeof e){let t=parseFloat(e);return isNaN(t)?0:t}return 0}function re(e,t,s={}){let r,i,o,a,l,c,d,u=0,h=!1,m=s.promise?s8():null;if("function"!=typeof e)throw TypeError("Expected a function");function p(t){let r=i,a=o,c=m;return i=o=void 0,u=t,l=e.apply(a,r),s.promise&&(c.resolve(l),m=s8()),s.promise?c:l}function f(e){let s=e-d,r=e-u;return void 0===d||s>=t||s<0||h&&r>=a}function g(){let e,s,r,i=Date.now();if(f(i))return v(i);c=setTimeout(g,(e=i-d,s=i-u,r=t-e,h?s9(r,a-s):r))}function v(e){return(c=void 0,i)?p(e):(i=o=void 0,s.promise?m:l)}function _(e,t){if(Array.isArray(e)&&Array.isArray(t))if(null!=s&&s.dedupeArrays)return e.concat(t.filter(t=>-1===e.indexOf(t)));else return e.concat(t)}function y(){var e,r;let a=Date.now(),v=f(a);if(e=Array.from(arguments),i=null!=(r=i)&&r.length?e.length?null!=s&&s.concatArrays||null!=s&&s.dedupeArrays?s6(i,e,_):s3(i,e):i:e||[],o=this,d=a,v){if(void 0===c)return u=d,c=setTimeout(g,t),s.promise?m:l;if(h)return clearTimeout(c),c=setTimeout(g,t),p(d)}return void 0===c&&(c=setTimeout(g,t)),s.promise?m:l}return t=s7(t)||0,r=typeof s,null!=s&&("object"===r||"function"===r)&&(a=(h="maxWait"in s)?s5(s7(s.maxWait)||0,t):a),y.cancel=function(){void 0!==c&&clearTimeout(c),u=0,i=d=o=c=void 0},y.flush=function(){return void 0===c?l:v(Date.now())},y}function rt(e,t){t&&e.then(function(e){t(null,e)},function(e){t(e)})}function rs(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}function rr(e){return"string"!=typeof e&&(console.warn(`${e} used as a key, but it is not a string.`),e=String(e)),e}var ri="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",rn=/^~~local_forage_type~([^~]+)~/,ro="__lfsc__:",ra=ro.length,rl="arbf",rc="blob",rd="si08",ru="ui08",rh="uic8",rm="si16",rp="si32",rf="ur16",rg="ui32",rv="fl32",r_="fl64",ry=ra+rl.length,rb=Object.prototype.toString;function rw(e){var t,s=new Uint8Array(e),r="";for(t=0;t>2],r+=ri[(3&s[t])<<4|s[t+1]>>4],r+=ri[(15&s[t+1])<<2|s[t+2]>>6],r+=ri[63&s[t+2]];return s.length%3==2?r=r.substring(0,r.length-1)+"=":s.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}function rj(e,t){let s=e.name+"/";return e.storeName!==t.storeName&&(s+=e.storeName+"/"),s}let rS={serializer:{serialize:function(e,t){var s="";if(e&&(s=rb.call(e)),e&&("[object ArrayBuffer]"===s||e.buffer&&"[object ArrayBuffer]"===rb.call(e.buffer))){var r,i=ro;e instanceof ArrayBuffer?(r=e,i+=rl):(r=e.buffer,"[object Int8Array]"===s?i+=rd:"[object Uint8Array]"===s?i+=ru:"[object Uint8ClampedArray]"===s?i+=rh:"[object Int16Array]"===s?i+=rm:"[object Uint16Array]"===s?i+=rf:"[object Int32Array]"===s?i+=rp:"[object Uint32Array]"===s?i+=rg:"[object Float32Array]"===s?i+=rv:"[object Float64Array]"===s?i+=r_:t(Error("Failed to get type for BinaryArray"))),t(i+rw(r))}else if("[object Blob]"===s){var o=new FileReader;o.onload=function(){t(ro+rc+"~~local_forage_type~"+e.type+"~"+rw(this.result))},o.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(s){console.error("Couldn't convert value into a JSON string: ",e),t(null,s)}},deserialize:function(e){if(e.substring(0,ra)!==ro)return JSON.parse(e);var t,s=e.substring(ry),r=e.substring(ra,ry);if(r===rc&&rn.test(s)){var i=s.match(rn);t=i[1],s=s.substring(i[0].length)}var o=function(e){var t,s,r,i,o,a=.75*e.length,l=e.length,c=0;"="===e[e.length-1]&&(a--,"="===e[e.length-2]&&a--);var d=new ArrayBuffer(a),u=new Uint8Array(d);for(t=0;t>4,u[c++]=(15&r)<<4|i>>2,u[c++]=(3&i)<<6|63&o;return d}(s);switch(r){case rl:return o;case rc:return function(e,t){e=e||[],t=t||{};try{return new Blob(e,t)}catch(i){if("TypeError"!==i.name)throw i;for(var s=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),r=0;r{if(r)throw r;try{sessionStorage.setItem(rS.keyPrefix+e,t),rt(Promise.resolve(i),s)}catch(e){throw("QuotaExceededError"===e.name||"NS_ERROR_DOM_QUOTA_REACHED"===e.name)&&console.error("Your sesionStorage capacity is used up."),e}}),t}let rA={_driver:"sessionStorageWrapper",_initStorage:function(e){if(rS.keyPrefix=rj(e,this._defaultConfig),e)for(let t in e)rS[t]=e[t]},_support:function(){try{if(sessionStorage&&"setItem"in sessionStorage)return!0}catch(e){console.log(e)}return!1}(),iterate:function(e,t){let s=this.ready().then(function(){let t=rS.keyPrefix,s=t.length,r=sessionStorage.length,i=1;for(let o=0;o=0;t--){let s=sessionStorage.key(t);0===s.indexOf(e)&&sessionStorage.removeItem(s)}});return rt(t,e),t},length:function(e){let t=this.keys().then(function(e){return e.length});return rt(t,e),t},key:function(e,t){let s=this.ready().then(function(){let t;try{t=sessionStorage.key(e)}catch(e){t=null}return t&&(t=t.substring(rS.keyPrefix.length)),t});return rt(s,t),s},keys:function(e){let t=this.ready().then(function(){let e=sessionStorage.length,t=[];for(let s=0;s=0;t--){let s=sessionStorage.key(t);0===s.indexOf(e)&&sessionStorage.removeItem(s)}}):Promise.reject(Error("Invalid arguments")),t),s}};var rE={},r$=(p||(p=1,function(e,t){function s(e){return s.result?s.result:e&&"function"==typeof e.getSerializer?(s.result=e.getSerializer(),s.result):Promise.reject(Error("localforage.getSerializer() was not available! localforage v1.4+ is required!"))}function r(e,t){t&&e.then(function(e){t(null,e)},function(e){t(e)})}function i(e,t,s,r){function i(e,t){var s=e||t;return e&&"function"==typeof e||"string"!=typeof s||(e=function(e){return e[s]}),e}var o=[];if("[object Array]"===Object.prototype.toString.call(e)){t=i(t,"key"),s=i(s,"value");for(var a=0,l=e.length;at)}return new Promise(function(r,i){t.ready().then(function(){var o,a=t._dbInfo,l=a.db.transaction(a.storeName,"readonly").objectStore(a.storeName),c=e.sort(s),d=rN.bound(e[0],e[e.length-1],!1,!1);if("getAll"in l)(o=l.getAll(d)).onsuccess=function(){var e=o.result;void 0===e&&(e=null),r(e)};else{o=l.openCursor(d);var u={},h=0;o.onsuccess=function(){var e=o.result;if(!e)return void r(u);for(var t=e.key;t>c[h];)if(++h===c.length)return void r(u);if(t===c[h]){var s=e.value;void 0===s&&(s=null),u[t]=s,e.continue()}else e.continue(c[h])}}o.onerror=function(){i(o.error)}}).catch(i)})}function rR(e){var t=this;return new Promise(function(s,r){t.ready().then(function(){return rk(t)}).then(function(i){var o=t._dbInfo;o.db.transaction(function(t){for(var a=Array(e.length),l=0,c=e.length;l{e.resolve=t,e.reject=s});return Object.assign(t,e),t.then(function(e){return t.isResolved=!0,t.isPending=!1,t.isRejected=!1,e},function(e){throw t.isResolved=!1,t.isPending=!1,t.isRejected=!0,e}),t}function rX(){throw Error('A "url" property or function must be specified')}function r1(e,t){let s=t.error;t.error=function(r){s&&s.call(t.context,e,r,t),e.trigger("error",e,r,t)}}let r0={create:"POST",update:"PUT",patch:"PATCH",delete:"DELETE",read:"GET"};function r2(e){let t=rK(e,"browserStorage")||rK(e.collection,"browserStorage");return t?t.sync():r4}function r4(e,t,s={}){let r=s.data;null==r&&t&&("create"===e||"update"===e||"patch"===e)&&(r=s.attrs||t.toJSON());let i={method:r0[e],body:r?JSON.stringify(r):"",success:s.success,error:s.error},o=s.url||rK(t,"url")||rX(),a=s.xhr=fetch(o,i);return t.trigger("request",t,a,{...i,xhr:a}),a}sz.defineDriver(tq),r$.extendPrototype(sz),rL(sz);class r3{constructor(e,t,s=!1){if("local"!==t||window.localStorage){if("session"===t&&!window.sessionStorage)throw Error("Skeletor.storage: Environment does not support sessionStorage.")}else throw Error("Skeletor.storage: Environment does not support localStorage.");sN(t)?this.storeInitialized=this.initStore(t,s):(this.store=t,s&&(this.store.debouncedSetItems=re(e=>this.store.setItems(e),50,{promise:!0})),this.storeInitialized=Promise.resolve()),this.name=e}async initStore(e,t){if("session"===e)await sz.setDriver(rA._driver);else if("local"===e)await sz.config({driver:sz.LOCALSTORAGE});else if("in_memory"===e)await sz.config({driver:tU});else if("indexed"!==e)throw Error("Skeletor.storage: No storage type was specified");this.store=sz,t&&(this.store.debouncedSetItems=re(e=>this.store.setItems(e),50,{promise:!0}))}flush(){var e;return null==(e=this.store.debouncedSetItems)?void 0:e.flush()}async clear(){await this.store.removeItem(this.name).catch(e=>console.error(e));let e=RegExp(`^${this.name}-`),t=(await this.store.keys()).filter(t=>e.test(t));await Promise.all(t.map(e=>this.store.removeItem(e).catch(e=>console.error(e))))}sync(){let e=this;async function t(t,s,r){let i,o,a,l,c=s.collection;["patch","update"].includes(t)&&(l=sO(s.attributes,5)),await e.storeInitialized;try{let o=s.attributes;switch(t){case"read":i=void 0!==s.id?await e.find(s):await e.findAll();break;case"create":i=await e.create(s,r);break;case"patch":case"update":r.wait&&(s.attributes=l),a=e.update(s),r.wait&&(s.attributes=o),i=await a;break;case"delete":i=await e.destroy(s,c)}}catch(t){o=22===t.code&&0===e.getStorageSize()?"Private browsing is unsupported":t.message}if(i){if(r&&r.success){let e="read"===t?i:null;r.success(e,r)}}else o=o||"Record Not Found",r&&r.error&&r.error(o)}return t.__name__="localSync",t}removeCollectionReference(e,t){if(!t)return;let s=t.filter(t=>t.id!==e.id).map(e=>this.getItemName(e.id));return this.store.setItem(this.name,s)}addCollectionReference(e,t){if(!t)return;let s=t.map(e=>this.getItemName(e.id)),r=this.getItemName(e.id);return s.includes(r)||s.push(r),this.store.setItem(this.name,s)}getCollectionReferenceData(e){if(!e.collection)return{};let t=e.collection.map(e=>this.getItemName(e.id)),s=this.getItemName(e.id);t.includes(s)||t.push(s);let r={};return r[this.name]=t,r}async save(e){if(this.store.setItems){let t={};return t[this.getItemName(e.id)]=e.toJSON(),Object.assign(t,this.getCollectionReferenceData(e)),this.store.debouncedSetItems?this.store.debouncedSetItems(t):this.store.setItems(t)}{let t=this.getItemName(e.id),s=await this.store.setItem(t,e.toJSON());return await this.addCollectionReference(e,e.collection),s}}create(e,t){return e.id||(e.id=rJ()+rJ()+"-"+rJ()+"-"+rJ()+"-"+rJ()+"-"+rJ()+rJ()+rJ(),e.set(e.idAttribute,e.id,t)),this.save(e)}update(e){return this.save(e)}find(e){return this.store.getItem(this.getItemName(e.id))}async findAll(){let e=await this.store.getItem(this.name);return null!=e&&e.length?Object.values(await this.store.getItems(e)):[]}async destroy(e,t){return await this.flush(),await this.store.removeItem(this.getItemName(e.id)),await this.removeCollectionReference(e,t),e}getStorageSize(){return this.store.length}getItemName(e){return this.name+"-"+e}}function r6(e){return sO(e,4)}r3.sessionStorageInitialized=sz.defineDriver(rA),r3.localForage=sz;var r8=Object.prototype,r5=r8.hasOwnProperty,r9=s0(function(e,t){e=Object(e);var s=-1,r=t.length,i=r>2?t[2]:void 0;for(i&&s2(t[0],t[1],i)&&(r=1);++sl))return!1;var d=o.get(e),u=o.get(t);if(d&&u)return d==t&&u==e;var h=-1,m=!0,p=2&s?new is:void 0;for(o.set(e,t),o.set(t,e);++h1),t}),t6(e,sm(e),s),r&&(s=sO(s,7,iw));for(var i=t.length;i--;)!function(e,t){var s,r,i,o;t=rZ(t,e),s=e,null==(e=(r=t).length<2?s:iv(s,function(e,t,s){var r=-1,i=e.length;t<0&&(t=-t>i?0:i+t),(s=s>i?i:s)<0&&(s+=i),i=t>s?0:s-t>>>0,t>>>=0;for(var o=Array(i);++r{let r=e.parse?this.parse(s,e):s;if(!this.set(r,e))return!1;t&&t.call(e.context,this,s,e),this.trigger("sync",this,s,e)},r1(this,e),this.sync("read",this,e)}save(e,t,s){let r;null==e||"object"==typeof e?(r=e,s=t):(r={})[e]=t;let i=(s=Object.assign({validate:!0,parse:!0},s)).wait,o=s.promise,a=o&&rY();if(r&&!i){if(!this.set(r,s))return!1}else if(!this._validate(r,s))return!1;let l=s.success,c=s.error,d=this.attributes;s.success=e=>{this.attributes=d;let t=s.parse?this.parse(e,s):e;if(i&&(t=Object.assign({},r,t)),t&&!this.set(t,s))return!1;l&&l.call(s.context,this,e,s),this.trigger("sync",this,e,s),o&&a.resolve()},s.error=(e,t,s)=>{c&&c.call(s.context,e,t,s),o&&a.reject(t)},r1(this,s),r&&i&&(this.attributes=Object.assign({},d,r));let u=this.isNew()?"create":s.patch?"patch":"update";"patch"!==u||s.attrs||(s.attrs=r);let h=this.sync(u,this,s);return(this.attributes=d,o)?a:h}destroy(e){let t=(e=e?r6(e):{}).success,s=e.wait,r=()=>{this.stopListening(),this.trigger("destroy",this,this.collection,e)};e.success=i=>{s&&r(),t&&t.call(e.context,this,i,e),this.isNew()||this.trigger("sync",this,i,e)};let i=!1;return this.isNew()?r7(e.success):(r1(this,e),i=this.sync("delete",this,e)),s||r(),i}url(){let e=rK(this,"urlRoot")||rK(this.collection,"url")||rX();if(this.isNew())return e;let t=this.get(this.idAttribute);return e.replace(/[^\/]$/,"$&/")+encodeURIComponent(t)}parse(e,t){return e}isNew(){return!this.has(this.idAttribute)}isValid(e){return this._validate({},Object.assign({},e,{validate:!0}))}_validate(e,t){if(!t.validate||!this.validate)return!0;e=Object.assign({},this.attributes,e);let s=this.validationError=this.validate(e,t)||null;return!s||(this.trigger("invalid",this,s,Object.assign(t,{validationError:s})),!1)}}var iT=function(e,t){if(null==e)return e;if(!e0(e))return e&&sU(e,t,td);for(var s=e.length,r=-1,i=Object(e);++r1&&s2(e,t[0],t[1])?t=[]:s>2&&s2(t[0],t[1],t[2])&&(t=[t[0]]),function(e,t,s){t=t.length?y(t,function(e){return b(e)?function(t){return iv(t,1===e.length?e[0]:e)}:e}):[sV];var r,i,o,a=-1;t=y(t,e5(ib));var l=(r=function(e,s,r){return{criteria:y(t,function(t){return t(e)}),index:++a,value:e}},i=-1,o=e0(e)?Array(e.length):[],iT(e,function(e,t,s){o[++i]=r(e,t,s)}),o),c=l.length;for(l.sort(function(e,t){return function(e,t,s){for(var r=-1,i=e.criteria,o=t.criteria,a=i.length,l=s.length;++rt||o&&a&&c&&!l&&!d||r&&a&&c||!s&&c||!i)return 1;if(!r&&!o&&!d&&e=l)return c;return c*("desc"==s[r]?-1:1)}}return e.index-t.index}(e,t,s)});c--;)l[c]=l[c].value;return l}(e,ix(t),[])});let iz=Array.prototype.slice,iP={add:!0,remove:!0,merge:!0},iU={add:!0,remove:!1};class iB extends t$(Object){constructor(e,t){super(),t||(t={}),this.preinitialize.apply(this,arguments),t.model&&(this._model=t.model),void 0!==t.comparator&&(this.comparator=t.comparator),this._reset(),this.initialize.apply(this,arguments),e&&this.reset(e,Object.assign({silent:!0},t)),this[Symbol.iterator]=this.values}set browserStorage(e){this._browserStorage=e}get browserStorage(){return this._browserStorage}get model(){var e;return null!=(e=this._model)?e:iC}set model(e){this._model=e}get length(){return this.models.length}preinitialize(){}initialize(){}toJSON(e){return this.map(function(t){return t.toJSON(e)})}sync(e,t,s){return r2(this)(e,t,s)}add(e,t){return this.set(e,Object.assign({merge:!1},t,iU))}remove(e,t){t=Object.assign({},t);let s=!Array.isArray(e),r=s?[e]:e.slice(),i=this._removeModels(r,t);return!t.silent&&i.length&&(t.changes={added:[],merged:[],removed:i},this.trigger("update",this,t)),s?i[0]:i}set(e,t){let s,r;if(null==e)return;(t=Object.assign({},iP,t)).parse&&!this._isModel(e)&&(e=this.parse(e,t)||[]);let i=!Array.isArray(e);e=i?[e]:e.slice();let o=t.at;null!=o&&(o*=1),o>this.length&&(o=this.length),o<0&&(o+=this.length+1);let a=[],l=[],c=[],d=[],u={},h=t.add,m=t.merge,p=t.remove,f=!1,g=this.comparator&&null==o&&!1!==t.sort,v=sN(this.comparator)?this.comparator:null;for(r=0;re!==a[t]),this.models.length=0,this.models.splice(0,0,...a);else if(l.length){g&&(f=!0);let e=null==o?this.length:o;e=Math.min(Math.max(e,0),this.models.length),this.models.splice(e,0,...l)}if(f&&this.sort({silent:!0}),!t.silent){for(r=0;re){await Promise.all(this.models.filter(t).map(t=>new Promise(s=>{t.destroy(Object.assign(e,{success:s,error:(e,t)=>{console.error(t),s()}}))}))),await this.browserStorage.clear(),this.reset()}reset(e,t){t=t?r6(t):{};for(let e=0;et.matches(e),t)}every(e){return ej(e)?this.models.map(e=>e.attributes).every(e):this.models.every(t=>t.matches(e))}difference(e){return this.models.filter(t=>!e.includes(t))}max(){return Math.max.apply(Math,this.models)}min(){return Math.min.apply(Math,this.models)}drop(e=1){return this.models.slice(e)}some(e){return ej(e)?this.models.map(e=>e.attributes).some(e):this.models.some(t=>t.matches(e))}sortBy(e){return iL(this.models,ej(e)?e:t=>sN(e)?t.get(e):t.matches(e))}isEmpty(){return!this.models.length}keyBy(e){return iD(this.models,e)}each(e,t){return this.forEach(e,t)}forEach(e,t){return this.models.forEach(e,t)}includes(e){return this.models.includes(e)}size(){return this.models.length}countBy(e){return iN(this.models,ej(e)?e:t=>sN(e)?t.get(e):t.matches(e))}groupBy(e){return iR(this.models,ej(e)?e:t=>sN(e)?t.get(e):t.matches(e))}indexOf(e){return this.models.indexOf(e)}findLastIndex(e,t){return this.models.findLastIndex(ej(e)?e:t=>sN(e)?t.get(e):t.matches(e),t)}lastIndexOf(e){return this.models.lastIndexOf(e)}findIndex(e){return this.models.findIndex(ej(e)?e:t=>sN(e)?t.get(e):t.matches(e))}last(){let e=null==this.models?0:this.models.length;return e?this.models[e-1]:void 0}head(){return this.models[0]}first(){return this.head()}map(e,t){return this.models.map(ej(e)?e:t=>sN(e)?t.get(e):t.matches(e),t)}reduce(e,t){return this.models.reduce(e,t||this.models[0])}reduceRight(e,t){return this.models.reduceRight(e,t||this.models[0])}toArray(){return Array.from(this.models)}get(e){if(null!=e)return this._byId[e]||this._byId[this.modelId(this._isModel(e)?e.attributes:e)]||e.cid&&this._byId[e.cid]}has(e){return null!=this.get(e)}at(e){return e<0&&(e+=this.length),this.models[e]}where(e,t){return this[t?"find":"filter"](e)}findWhere(e){return this.where(e,!0)}find(e,t){let s=ej(e)?e:t=>t.matches(e);return this.models.find(s,t)}sort(e){let t=this.comparator;if(!t)throw Error("Cannot sort a set without a comparator");e||(e={});let s=t.length;return ej(t)&&(t=t.bind(this)),1===s||sN(t)?this.models=this.sortBy(t):this.models.sort(t),e.silent||this.trigger("sort",this,e),this}pluck(e){return this.map(e+"")}fetch(e){let t=(e=Object.assign({parse:!0},e)).success,s=this,r=e.promise&&rY();return e.success=function(i){s[e.reset?"reset":"set"](i,e),t&&t.call(e.context,s,i,e),r&&r.resolve(),s.trigger("sync",s,i,e)},r1(this,e),r||this.sync("read",this,e)}create(e,t){let s=(t=t?r6(t):{}).wait,r=t.promise,i=r&&rY();if(!(e=this._prepareModel(e,t)))return!1;s||this.add(e,t);let o=this,a=t.success,l=t.error;return(t.success=function(e,t,l){s&&o.add(e,l),a&&a.call(l.context,e,t,l),r&&i.resolve(e)},t.error=function(e,t,s){l&&l.call(s.context,e,t,s),r&&i.reject(t)},e.save(null,Object.assign(t,{promise:!1})),r)?i:e}parse(e,t){return e}modelId(e){var t;return e[(null==(t=this.model.prototype)?void 0:t.idAttribute)||"id"]}values(){return new iG(this,iF)}keys(){return new iG(this,iq)}entries(){return new iG(this,iH)}_reset(){this.models=[],this._byId={}}createModel(e,t){return new this.model(e,t)}_prepareModel(e,t){if(this._isModel(e))return e.collection||(e.collection=this),e;(t=t?r6(t):{}).collection=this;let s=this.createModel(e,t);return s.validationError?(this.trigger("invalid",this,s.validationError,t),null):s}_removeModels(e,t){let s=[];for(let r=0;r=t?e:""+Array(t+1-r.length).join(s)+e},(p={})[m="en"]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],s=e%100;return"["+e+(t[(s-20)%10]||t[s]||t[0])+"]"}},f=function(e){return e instanceof y||!(!e||!e.$isDayjsObject)},g=function e(t,s,r){var i;if(!t)return m;if("string"==typeof t){var o=t.toLowerCase();p[o]&&(i=o),s&&(p[o]=s,i=o);var a=t.split("-");if(!i&&a.length>1)return e(a[0])}else{var l=t.name;p[l]=t,i=l}return!r&&i&&(m=i),i||!r&&m},v=function(e,t){if(f(e))return e.clone();var s="object"==typeof t?t:{};return s.date=e,s.args=arguments,new y(s)},(_={s:h,z:function(e){var t=-e.utcOffset(),s=Math.abs(t);return(t<=0?"+":"-")+h(Math.floor(s/60),2,"0")+":"+h(s%60,2,"0")},m:function e(t,s){if(t.date()>4,i[a++]=(15&c)<<4|d>>2,i[a++]=(3&d)<<6|63&u}return r}function i(e){for(var t=new Uint8Array(e),s="",r=0;r>2],s+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(3&t[r])<<4|t[r+1]>>4],s+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(15&t[r+1])<<2|t[r+2]>>6],s+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[63&t[r+2]];return t.length%3==2?s=s.substring(0,s.length-1)+"=":t.length%3==1&&(s=s.substring(0,s.length-2)+"=="),s}function o(e,t){return(e.name||t.name)+"/"+(e.storeName||t.storeName)+"/"}function a(e,t){t&&e.then(function(e){t(null,e)},function(e){t(e)})}function l(){for(var e=[],t=0;t=o.length&&(o=void 0),{value:o&&o[l++],done:!o}}}),d=c.next();!d.done;d=c.next()){var u=d.value;Object.prototype.hasOwnProperty.call(t,u)&&(t.isActiveClone=null,i[u]=e(t[u]),delete t.isActiveClone)}}catch(e){s={error:e}}finally{try{d&&!d.done&&(r=c.return)&&r.call(c)}finally{if(s)throw s.error}}return i}(e):{},s=o(t,this._defaultConfig),r=m.resolve(s);return this._dbInfo=t,this._dbInfo.serializer=u,this._dbInfo.keyPrefix=s,this._dbInfo.mStore=r,Promise.resolve()},e.clear=function(e){var t=this,s=this.ready().then(function(){t._dbInfo.mStore.clear()});return a(s,e),s},e.dropInstance=function(e,t){var s=c.apply(this,arguments),r=s.promise,i=s.callback;return a(r.then(function(e){m.resolve(e).drop()}),i),r},e.getItem=function(e,t){var s=this;e=d(e);var r=this.ready().then(function(){var t=s._dbInfo.mStore.get(e);return null==t?null:s._dbInfo.serializer.deserialize(t)});return a(r,t),r},e.iterate=function(e,t){var s=this,r=this.ready().then(function(){for(var t=s._dbInfo.mStore,r=t.keys(),i=0;ie.db.version;if(r&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),i||s){if(s){var o=e.db.version+1;o>e.version&&(e.version=o)}return!0}return!1}function S(e){return o([function(e){for(var t=e.length,s=new ArrayBuffer(t),r=new Uint8Array(s),i=0;i0&&(!e.db||"InvalidStateError"===i.name||"NotFoundError"===i.name))return a.resolve().then(function(){if(!e.db||"NotFoundError"===i.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),w(e,!0)}).then(function(){return(function(e){_(e);for(var t=p[e.name],s=t.forages,r=0;r=43)}}).catch(function(){return!1}).then(function(e){return m=e})).then(function(e){return e?t:new a(function(e,s){var r=new FileReader;r.onerror=s,r.onloadend=function(s){e({__local_forage_encoded_blob:!0,data:btoa(s.target.result||""),type:t.type})},r.readAsBinaryString(t)})}):t}).then(function(t){E(r._dbInfo,v,function(o,a){if(o)return i(o);try{var l=a.objectStore(r._dbInfo.storeName);null===t&&(t=void 0);var c=l.put(t,e);a.oncomplete=function(){void 0===t&&(t=null),s(t)},a.onabort=a.onerror=function(){var e=c.error?c.error:c.transaction.error;i(e)}}catch(e){i(e)}})}).catch(i)});return l(i,s),i},removeItem:function(e,t){var s=this;e=d(e);var r=new a(function(t,r){s.ready().then(function(){E(s._dbInfo,v,function(i,o){if(i)return r(i);try{var a=o.objectStore(s._dbInfo.storeName).delete(e);o.oncomplete=function(){t()},o.onerror=function(){r(a.error)},o.onabort=function(){var e=a.error?a.error:a.transaction.error;r(e)}}catch(e){r(e)}})}).catch(r)});return l(r,t),r},clear:function(e){var t=this,s=new a(function(e,s){t.ready().then(function(){E(t._dbInfo,v,function(r,i){if(r)return s(r);try{var o=i.objectStore(t._dbInfo.storeName).clear();i.oncomplete=function(){e()},i.onabort=i.onerror=function(){var e=o.error?o.error:o.transaction.error;s(e)}}catch(e){s(e)}})}).catch(s)});return l(s,e),s},length:function(e){var t=this,s=new a(function(e,s){t.ready().then(function(){E(t._dbInfo,g,function(r,i){if(r)return s(r);try{var o=i.objectStore(t._dbInfo.storeName).count();o.onsuccess=function(){e(o.result)},o.onerror=function(){s(o.error)}}catch(e){s(e)}})}).catch(s)});return l(s,e),s},key:function(e,t){var s=this,r=new a(function(t,r){if(e<0)return void t(null);s.ready().then(function(){E(s._dbInfo,g,function(i,o){if(i)return r(i);try{var a=o.objectStore(s._dbInfo.storeName),l=!1,c=a.openKeyCursor();c.onsuccess=function(){var s=c.result;if(!s)return void t(null);0===e||l?t(s.key):(l=!0,s.advance(e))},c.onerror=function(){r(c.error)}}catch(e){r(e)}})}).catch(r)});return l(r,t),r},keys:function(e){var t=this,s=new a(function(e,s){t.ready().then(function(){E(t._dbInfo,g,function(r,i){if(r)return s(r);try{var o=i.objectStore(t._dbInfo.storeName).openKeyCursor(),a=[];o.onsuccess=function(){var t=o.result;if(!t)return void e(a);a.push(t.key),t.continue()},o.onerror=function(){s(o.error)}}catch(e){s(e)}})}).catch(s)});return l(s,e),s},dropInstance:function(e,t){t=u.apply(this,arguments);var s,r=this.config();if((e="function"!=typeof e&&e||{}).name||(e.name=e.name||r.name,e.storeName=e.storeName||r.storeName),e.name){var o=e.name===r.name&&this._dbInfo.db?a.resolve(this._dbInfo.db):w(e,!1).then(function(t){var s=p[e.name],r=s.forages;s.db=t;for(var i=0;i>4,u[c++]=(15&r)<<4|i>>2,u[c++]=(3&i)<<6|63&o;return d}function Z(e){var t,s=new Uint8Array(e),r="";for(t=0;t>2],r+=C[(3&s[t])<<4|s[t+1]>>4],r+=C[(15&s[t+1])<<2|s[t+2]>>6],r+=C[63&s[t+2]];return s.length%3==2?r=r.substring(0,r.length-1)+"=":s.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}var V={serialize:function(e,t){var s="";if(e&&(s=G.call(e)),e&&("[object ArrayBuffer]"===s||e.buffer&&"[object ArrayBuffer]"===G.call(e.buffer))){var r,i=M;e instanceof ArrayBuffer?(r=e,i+=N):(r=e.buffer,"[object Int8Array]"===s?i+=R:"[object Uint8Array]"===s?i+=D:"[object Uint8ClampedArray]"===s?i+=L:"[object Int16Array]"===s?i+=z:"[object Uint16Array]"===s?i+=U:"[object Int32Array]"===s?i+=P:"[object Uint32Array]"===s?i+=B:"[object Float32Array]"===s?i+=F:"[object Float64Array]"===s?i+=q:t(Error("Failed to get type for BinaryArray"))),t(i+Z(r))}else if("[object Blob]"===s){var o=new FileReader;o.onload=function(){t(M+I+"~~local_forage_type~"+e.type+"~"+Z(this.result))},o.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(s){console.error("Couldn't convert value into a JSON string: ",e),t(null,s)}},deserialize:function(e){if(e.substring(0,O)!==M)return JSON.parse(e);var t,s=e.substring(H),r=e.substring(O,H);if(r===I&&T.test(s)){var i=s.match(T);t=i[1],s=s.substring(i[0].length)}var a=W(s);switch(r){case N:return a;case I:return o([a],{type:t});case R:return new Int8Array(a);case D:return new Uint8Array(a);case L:return new Uint8ClampedArray(a);case z:return new Int16Array(a);case U:return new Uint16Array(a);case P:return new Int32Array(a);case B:return new Uint32Array(a);case F:return new Float32Array(a);case q:return new Float64Array(a);default:throw Error("Unkown type: "+r)}},stringToBuffer:W,bufferToString:Z};function Q(e,t,s,r){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],s,r)}function K(e,t,s,r,i,o){e.executeSql(s,r,i,function(e,a){a.code===a.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],function(e,l){l.rows.length?o(e,a):Q(e,t,function(){e.executeSql(s,r,i,o)},o)},o):o(e,a)},o)}function J(e,t,s,r){var i=this;e=d(e);var o=new a(function(o,a){i.ready().then(function(){void 0===t&&(t=null);var l=t,c=i._dbInfo;c.serializer.serialize(t,function(t,d){d?a(d):c.db.transaction(function(s){K(s,c,"INSERT OR REPLACE INTO "+c.storeName+" (key, value) VALUES (?, ?)",[e,t],function(){o(l)},function(e,t){a(t)})},function(t){if(t.code===t.QUOTA_ERR){if(r>0)return void o(J.apply(i,[e,l,s,r-1]));a(t)}})})}).catch(a)});return l(o,s),o}var Y={_driver:"webSQLStorage",_initStorage:function(e){var t=this,s={db:null};if(e)for(var r in e)s[r]="string"!=typeof e[r]?e[r].toString():e[r];var i=new a(function(e,r){try{s.db=openDatabase(s.name,String(s.version),s.description,s.size)}catch(e){return r(e)}s.db.transaction(function(i){Q(i,s,function(){t._dbInfo=s,e()},function(e,t){r(t)})},r)});return s.serializer=V,i},_support:"function"==typeof openDatabase,iterate:function(e,t){var s=this,r=new a(function(t,r){s.ready().then(function(){var i=s._dbInfo;i.db.transaction(function(s){K(s,i,"SELECT * FROM "+i.storeName,[],function(s,r){for(var o=r.rows,a=o.length,l=0;l '__WebKitDatabaseInfoTable__'",[],function(t,r){for(var i=[],o=0;o0)?(this._dbInfo=t,t.serializer=V,a.resolve()):a.reject()},_support:function(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}(),iterate:function(e,t){var s=this,r=s.ready().then(function(){for(var t=s._dbInfo,r=t.keyPrefix,i=r.length,o=localStorage.length,a=1,l=0;l=0;s--){var r=localStorage.key(s);0===r.indexOf(e)&&localStorage.removeItem(r)}});return l(s,e),s},length:function(e){var t=this.keys().then(function(e){return e.length});return l(t,e),t},key:function(e,t){var s=this,r=s.ready().then(function(){var t,r=s._dbInfo;try{t=localStorage.key(e)}catch(e){t=null}return t&&(t=t.substring(r.keyPrefix.length)),t});return l(r,t),r},keys:function(e){var t=this,s=t.ready().then(function(){for(var e=t._dbInfo,s=localStorage.length,r=[],i=0;i=0;t--){var s=localStorage.key(t);0===s.indexOf(e)&&localStorage.removeItem(s)}}):a.reject("Invalid arguments"),t),s}},et=function(e,t){for(var s,r=e.length,i=0;i+~]|"+P+")"+P+"*"),Z=RegExp(P+"|>"),V=new RegExp(F),Q=RegExp("^"+U+"$"),K={ID:RegExp("^#("+U+")"),CLASS:RegExp("^\\.("+U+")"),TAG:RegExp("^("+U+"|[*])"),ATTR:RegExp("^"+B),PSEUDO:RegExp("^"+F),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+z+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},J=/HTML$/i,Y=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,ee=/^[^{]+\{\s*\[native \w/,et=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,es=/[+~]/,er=RegExp("\\\\[\\da-fA-F]{1,6}"+P+"?|\\\\([^\\r\\n\\f])","g"),ei=function(e,t){var s="0x"+e.slice(1)-65536;return t||(s<0?String.fromCharCode(s+65536):String.fromCharCode(s>>10|55296,1023&s|56320))},en=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,eo=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},ea=function(){p()},el=eb(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{R.apply(O=D.call(S.childNodes),S.childNodes),O[S.childNodes.length].nodeType}catch(e){R={apply:O.length?function(e,t){I.apply(e,D.call(t))}:function(e,t){for(var s=e.length,r=0;e[s++]=t[r++];);e.length=s-1}}}function ec(e,t,s,i){var o,a,c,u,h,m,g,y=t&&t.ownerDocument,b=t?t.nodeType:9;if(s=s||[],"string"!=typeof e||!e||1!==b&&9!==b&&11!==b)return s;if(!i&&(p(t),t=t||f,v)){if(11!==b&&(h=et.exec(e))){if(o=h[1]){if(9===b){if(!(c=t.getElementById(o)))return s;else if(c.id===o)return s.push(c),s}else if(y&&(c=y.getElementById(o))&&w(t,c)&&c.id===o)return s.push(c),s}else if(h[2])return R.apply(s,t.getElementsByTagName(e)),s;else if((o=h[3])&&r.getElementsByClassName&&t.getElementsByClassName)return R.apply(s,t.getElementsByClassName(o)),s}if(r.qsa&&!C[e+" "]&&(!_||!_.test(e))&&(1!==b||"object"!==t.nodeName.toLowerCase())){if(g=e,y=t,1===b&&(Z.test(e)||W.test(e))){for((y=es.test(e)&&ev(t.parentNode)||t)===t&&r.scope||((u=t.getAttribute("id"))?u=u.replace(en,eo):t.setAttribute("id",u=j)),a=(m=l(e)).length;a--;)m[a]=(u?"#"+u:":scope")+" "+ey(m[a]);g=m.join(",")}try{return R.apply(s,y.querySelectorAll(g)),s}catch(t){C(e,!0)}finally{u===j&&t.removeAttribute("id")}}}return d(e.replace(H,"$1"),t,s,i)}function ed(){var e=[];function t(s,r){return e.push(s+" ")>i.cacheLength&&delete t[e.shift()],t[s+" "]=r}return t}function eu(e){return e[j]=!0,e}function eh(e){var t=f.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function em(e,t){for(var s=e.split("|"),r=s.length;r--;)i.attrHandle[s[r]]=t}function ep(e,t){var s=t&&e,r=s&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(s){for(;s=s.nextSibling;)if(s===t)return -1}return e?1:-1}function ef(e){return function(t){if("form"in t){if(t.parentNode&&!1===t.disabled){if("label"in t)if("label"in t.parentNode)return t.parentNode.disabled===e;else return t.disabled===e;return t.isDisabled===e||!e!==t.isDisabled&&el(t)===e}return t.disabled===e}return"label"in t&&t.disabled===e}}function eg(e){return eu(function(t){return t*=1,eu(function(s,r){for(var i,o=e([],s.length,t),a=o.length;a--;)s[i=o[a]]&&(s[i]=!(r[i]=s[i]))})})}function ev(e){return e&&void 0!==e.getElementsByTagName&&e}for(s in r=ec.support={},a=ec.isXML=function(e){var t=e&&e.namespaceURI,s=e&&(e.ownerDocument||e).documentElement;return!J.test(t||s&&s.nodeName||"HTML")},p=ec.setDocument=function(e){var t,s,o=e?e.ownerDocument||e:S;return o!=f&&9===o.nodeType&&o.documentElement&&(g=(f=o).documentElement,v=!a(f),S!=f&&(s=f.defaultView)&&s.top!==s&&(s.addEventListener?s.addEventListener("unload",ea,!1):s.attachEvent&&s.attachEvent("onunload",ea)),r.scope=eh(function(e){return g.appendChild(e).appendChild(f.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),r.cssHas=eh(function(){try{return f.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),r.attributes=eh(function(e){return e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=eh(function(e){return e.appendChild(f.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ee.test(f.getElementsByClassName),r.getById=eh(function(e){return g.appendChild(e).id=j,!f.getElementsByName||!f.getElementsByName(j).length}),r.getById?(i.filter.ID=function(e){var t=e.replace(er,ei);return function(e){return e.getAttribute("id")===t}},i.find.ID=function(e,t){if(void 0!==t.getElementById&&v){var s=t.getElementById(e);return s?[s]:[]}}):(i.filter.ID=function(e){var t=e.replace(er,ei);return function(e){var s=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return s&&s.value===t}},i.find.ID=function(e,t){if(void 0!==t.getElementById&&v){var s,r,i,o=t.getElementById(e);if(o){if((s=o.getAttributeNode("id"))&&s.value===e)return[o];for(i=t.getElementsByName(e),r=0;o=i[r++];)if((s=o.getAttributeNode("id"))&&s.value===e)return[o]}return[]}}),i.find.TAG=r.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):r.qsa?t.querySelectorAll(e):void 0}:function(e,t){var s,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;s=o[i++];)1===s.nodeType&&r.push(s);return r}return o},i.find.CLASS=r.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&v)return t.getElementsByClassName(e)},y=[],_=[],(r.qsa=ee.test(f.querySelectorAll))&&(eh(function(e){var t;g.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&_.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||_.push("\\["+P+"*(?:value|"+z+")"),e.querySelectorAll("[id~="+j+"-]").length||_.push("~="),(t=f.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||_.push("\\["+P+"*name"+P+"*="+P+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||_.push(":checked"),e.querySelectorAll("a#"+j+"+*").length||_.push(".#.+[+~]"),e.querySelectorAll("\\\f"),_.push("[\\r\\n\\f]")}),eh(function(e){e.innerHTML="";var t=f.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&_.push("name"+P+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&_.push(":enabled",":disabled"),g.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&_.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),_.push(",.*:")})),(r.matchesSelector=ee.test(b=g.matches||g.webkitMatchesSelector||g.mozMatchesSelector||g.oMatchesSelector||g.msMatchesSelector))&&eh(function(e){r.disconnectedMatch=b.call(e,"*"),b.call(e,"[s!='']:x"),y.push("!=",F)}),r.cssHas||_.push(":has"),_=_.length&&new RegExp(_.join("|")),y=y.length&&new RegExp(y.join("|")),w=(t=ee.test(g.compareDocumentPosition))||ee.test(g.contains)?function(e,t){var s=9===e.nodeType&&e.documentElement||e,r=t&&t.parentNode;return e===r||!!(r&&1===r.nodeType&&(s.contains?s.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t){for(;t=t.parentNode;)if(t===e)return!0}return!1},T=t?function(e,t){if(e===t)return m=!0,0;var s=!e.compareDocumentPosition-!t.compareDocumentPosition;return s||(1&(s=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!r.sortDetached&&t.compareDocumentPosition(e)===s?e==f||e.ownerDocument==S&&w(S,e)?-1:t==f||t.ownerDocument==S&&w(S,t)?1:h?L(h,e)-L(h,t):0:4&s?-1:1)}:function(e,t){if(e===t)return m=!0,0;var s,r=0,i=e.parentNode,o=t.parentNode,a=[e],l=[t];if(!i||!o)return e==f?-1:t==f?1:i?-1:o?1:h?L(h,e)-L(h,t):0;if(i===o)return ep(e,t);for(s=e;s=s.parentNode;)a.unshift(s);for(s=t;s=s.parentNode;)l.unshift(s);for(;a[r]===l[r];)r++;return r?ep(a[r],l[r]):a[r]==S?-1:+(l[r]==S)}),f},ec.matches=function(e,t){return ec(e,null,null,t)},ec.matchesSelector=function(e,t){if(p(e),r.matchesSelector&&v&&!C[t+" "]&&(!y||!y.test(t))&&(!_||!_.test(t)))try{var s=b.call(e,t);if(s||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return s}catch(e){C(t,!0)}return ec(t,f,null,[e]).length>0},ec.contains=function(e,t){return(e.ownerDocument||e)!=f&&p(e),w(e,t)},ec.attr=function(e,t){(e.ownerDocument||e)!=f&&p(e);var s=i.attrHandle[t.toLowerCase()],o=s&&M.call(i.attrHandle,t.toLowerCase())?s(e,t,!v):void 0;return void 0!==o?o:r.attributes||!v?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},ec.escape=function(e){return(e+"").replace(en,eo)},ec.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},ec.uniqueSort=function(e){var t,s=[],i=0,o=0;if(m=!r.detectDuplicates,h=!r.sortStable&&e.slice(0),e.sort(T),m){for(;t=e[o++];)t===e[o]&&(i=s.push(o));for(;i--;)e.splice(s[i],1)}return h=null,e},o=ec.getText=function(e){var t,s="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i)if("string"==typeof e.textContent)return e.textContent;else for(e=e.firstChild;e;e=e.nextSibling)s+=o(e);else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)s+=o(t);return s},(i=ec.selectors={cacheLength:50,createPseudo:eu,match:K,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(er,ei),e[3]=(e[3]||e[4]||e[5]||"").replace(er,ei),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||ec.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&ec.error(e[0]),e},PSEUDO:function(e){var t,s=!e[6]&&e[2];return K.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":s&&V.test(s)&&(t=l(s,!0))&&(t=s.indexOf(")",s.length-t)-s.length)&&(e[0]=e[0].slice(0,t),e[2]=s.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(er,ei).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,s){return function(r){var i=ec.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===s:"!="===t?i!==s:"^="===t?s&&0===i.indexOf(s):"*="===t?s&&i.indexOf(s)>-1:"$="===t?s&&i.slice(-s.length)===s:"~="===t?(" "+i.replace(q," ")+" ").indexOf(s)>-1:"|="===t&&(i===s||i.slice(0,s.length+1)===s+"-"))}},CHILD:function(e,t,s,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),l="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,s,c){var d,u,h,m,p,f,g=o!==a?"nextSibling":"previousSibling",v=t.parentNode,_=l&&t.nodeName.toLowerCase(),y=!c&&!l,b=!1;if(v){if(o){for(;g;){for(m=t;m=m[g];)if(l?m.nodeName.toLowerCase()===_:1===m.nodeType)return!1;f=g="only"===e&&!f&&"nextSibling"}return!0}if(f=[a?v.firstChild:v.lastChild],a&&y){for(b=(p=(d=(u=(h=(m=v)[j]||(m[j]={}))[m.uniqueID]||(h[m.uniqueID]={}))[e]||[])[0]===x&&d[1])&&d[2],m=p&&v.childNodes[p];m=++p&&m&&m[g]||(b=p=0)||f.pop();)if(1===m.nodeType&&++b&&m===t){u[e]=[x,p,b];break}}else if(y&&(b=p=(d=(u=(h=(m=t)[j]||(m[j]={}))[m.uniqueID]||(h[m.uniqueID]={}))[e]||[])[0]===x&&d[1]),!1===b)for(;(m=++p&&m&&m[g]||(b=p=0)||f.pop())&&(!((l?m.nodeName.toLowerCase()===_:1===m.nodeType)&&++b)||(y&&((u=(h=m[j]||(m[j]={}))[m.uniqueID]||(h[m.uniqueID]={}))[e]=[x,b]),m!==t)););return(b-=i)===r||b%r==0&&b/r>=0}}},PSEUDO:function(e,t){var s,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||ec.error("unsupported pseudo: "+e);return r[j]?r(t):r.length>1?(s=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?eu(function(e,s){for(var i,o=r(e,t),a=o.length;a--;)i=L(e,o[a]),e[i]=!(s[i]=o[a])}):function(e){return r(e,0,s)}):r}},pseudos:{not:eu(function(e){var t=[],s=[],r=c(e.replace(H,"$1"));return r[j]?eu(function(e,t,s,i){for(var o,a=r(e,null,i,[]),l=e.length;l--;)(o=a[l])&&(e[l]=!(t[l]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,s),t[0]=null,!s.pop()}}),has:eu(function(e){return function(t){return ec(e,t).length>0}}),contains:eu(function(e){return e=e.replace(er,ei),function(t){return(t.textContent||o(t)).indexOf(e)>-1}}),lang:eu(function(e){return Q.test(e||"")||ec.error("unsupported lang: "+e),e=e.replace(er,ei).toLowerCase(),function(t){var s;do if(s=v?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(s=s.toLowerCase())===e||0===s.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(e){var s=t.location&&t.location.hash;return s&&s.slice(1)===e.id},root:function(e){return e===g},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ef(!1),disabled:ef(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return X.test(e.nodeName)},input:function(e){return Y.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:eg(function(){return[0]}),last:eg(function(e,t){return[t-1]}),eq:eg(function(e,t,s){return[s<0?s+t:s]}),even:eg(function(e,t){for(var s=0;st?t:s;--r>=0;)e.push(r);return e}),gt:eg(function(e,t,s){for(var r=s<0?s+t:s;++r1?function(t,s,r){for(var i=e.length;i--;)if(!e[i](t,s,r))return!1;return!0}:e[0]}function ej(e,t,s,r,i){for(var o,a=[],l=0,c=e.length,d=null!=t;l-1},c,!0),p=[function(e,t,r){var i=!l&&(r||t!==u)||((s=t).nodeType?h(e,t,r):m(e,t,r));return s=null,i}];d-1&&(e[d]=!(a[d]=h))}}else _=ej(_===a?_.splice(f,_.length):_),o?o(null,a,_,c):R.apply(a,_)})}(d>1&&ew(p),d>1&&ey(t.slice(0,d-1).concat({value:" "===t[d-2].type?"*":""})).replace(H,"$1"),r,d0,r=d.length>0,o=function(e,t,o,a,l){var h,m,g,_=0,y="0",b=e&&[],w=[],j=u,S=e||r&&i.find.TAG("*",l),A=x+=null==j?1:Math.random()||.1,E=S.length;for(l&&(u=t==f||t||l);y!==E&&null!=(h=S[y]);y++){if(r&&h){for(m=0,t||h.ownerDocument==f||(p(h),o=!v);g=d[m++];)if(g(h,t||f,o)){a.push(h);break}l&&(x=A)}s&&((h=!g&&h)&&_--,e&&b.push(h))}if(_+=y,s&&y!==_){for(m=0;g=c[m++];)g(b,w,t,o);if(e){if(_>0)for(;y--;)b[y]||w[y]||(w[y]=N.call(a));w=ej(w)}R.apply(a,w),l&&!e&&w.length>0&&_+c.length>1&&ec.uniqueSort(a)}return l&&(x=A,u=j),b},s?eu(o):o))).selector=e}return h},d=ec.select=function(e,t,s,r){var o,a,d,u,h,m="function"==typeof e&&e,p=!r&&l(e=m.selector||e);if(s=s||[],1===p.length){if((a=p[0]=p[0].slice(0)).length>2&&"ID"===(d=a[0]).type&&9===t.nodeType&&v&&i.relative[a[1].type]){if(!(t=(i.find.ID(d.matches[0].replace(er,ei),t)||[])[0]))return s;m&&(t=t.parentNode),e=e.slice(a.shift().value.length)}for(o=K.needsContext.test(e)?0:a.length;o--&&(d=a[o],!i.relative[u=d.type]);)if((h=i.find[u])&&(r=h(d.matches[0].replace(er,ei),es.test(a[0].type)&&ev(t.parentNode)||t))){if(a.splice(o,1),!(e=r.length&&ey(a)))return R.apply(s,r),s;break}}return(m||c(e,p))(r,t,!v,s,!t||es.test(e)&&ev(t.parentNode)||t),s},r.sortStable=j.split("").sort(T).join("")===j,r.detectDuplicates=!!m,p(),r.sortDetached=eh(function(e){return 1&e.compareDocumentPosition(f.createElement("fieldset"))}),eh(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||em("type|href|height|width",function(e,t,s){if(!s)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),r.attributes&&eh(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||em("value",function(e,t,s){if(!s&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),eh(function(e){return null==e.getAttribute("disabled")})||em(z,function(e,t,s){var r;if(!s)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null});var eS=t.Sizzle;ec.noConflict=function(){return t.Sizzle===ec&&(t.Sizzle=eS),ec},"function"==typeof define&&define.amd?define(function(){return ec}):e.exports?e.exports=ec:t.Sizzle=ec}(window)},975:function(e,t){!function(){var e=/[^T]/,s=/[^v]/,r=/[diefg]/,i=/[bcdiefguxX]/,o=/[j]/,a=/^[^\x25]+/,l=/^\x25{2}/,c=/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,d=/^([a-z_][a-z_\d]*)/i,u=/^\.([a-z_][a-z_\d]*)/i,h=/^\[(\d+)\]/,m=/^[+-]/;function p(t){return function(t,a){var l,c,d,u,h,f,g,v,_,y=1,b=t.length,w="";for(c=0;c=0),u.type){case"b":l=parseInt(l,10).toString(2);break;case"c":l=String.fromCharCode(parseInt(l,10));break;case"d":case"i":l=parseInt(l,10);break;case"j":l=JSON.stringify(l,null,u.width?parseInt(u.width):0);break;case"e":l=u.precision?parseFloat(l).toExponential(u.precision):parseFloat(l).toExponential();break;case"f":l=u.precision?parseFloat(l).toFixed(u.precision):parseFloat(l);break;case"g":l=u.precision?String(Number(l.toPrecision(u.precision))):parseFloat(l);break;case"o":l=(parseInt(l,10)>>>0).toString(8);break;case"s":l=String(l),l=u.precision?l.substring(0,u.precision):l;break;case"t":l=String(!!l),l=u.precision?l.substring(0,u.precision):l;break;case"T":l=Object.prototype.toString.call(l).slice(8,-1).toLowerCase(),l=u.precision?l.substring(0,u.precision):l;break;case"u":l=parseInt(l,10)>>>0;break;case"v":l=l.valueOf(),l=u.precision?l.substring(0,u.precision):l;break;case"x":l=(parseInt(l,10)>>>0).toString(16);break;case"X":l=(parseInt(l,10)>>>0).toString(16).toUpperCase()}o.test(u.type)?w+=l:(r.test(u.type)&&(!v||u.sign)?(_=v?"+":"-",l=l.toString().replace(m,"")):_="",f=u.pad_char?"0"===u.pad_char?"0":u.pad_char.charAt(1):" ",g=u.width-(_+l).length,h=u.width&&g>0?f.repeat(g):"",w+=u.align?_+l+h:"0"===f?_+h+l:h+_+l)}return w}(function(e){if(g[e])return g[e];for(var t,s=e,r=[],i=0;s;){if(null!==(t=a.exec(s)))r.push(t[0]);else if(null!==(t=l.exec(s)))r.push("%");else if(null!==(t=c.exec(s))){if(t[2]){i|=1;var o=[],m=t[2],p=[];if(null!==(p=d.exec(m)))for(o.push(p[1]);""!==(m=m.substring(p[0].length));)if(null!==(p=u.exec(m)))o.push(p[1]);else if(null!==(p=h.exec(m)))o.push(p[1]);else throw SyntaxError("[sprintf] failed to parse named argument key");else throw SyntaxError("[sprintf] failed to parse named argument key");t[2]=o}else i|=2;if(3===i)throw Error("[sprintf] mixing positional and named placeholders is not (yet) supported");r.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}else throw SyntaxError("[sprintf] unexpected placeholder");s=s.substring(t[0].length)}return g[e]=r}(t),arguments)}function f(e,t){return p.apply(null,[e].concat(t||[]))}var g=Object.create(null);t.sprintf=p,"undefined"!=typeof window&&(window.sprintf=p,window.vsprintf=f,"function"==typeof define&&define.amd&&define(function(){return{sprintf:p,vsprintf:f}}))}()},807:function(e){e.exports=function(e,t){this.v=e,this.k=t},e.exports.__esModule=!0,e.exports.default=e.exports},7:function(e){function t(e,t,s,r,i,o,a){try{var l=e[o](a),c=l.value}catch(e){return void s(e)}l.done?t(c):Promise.resolve(c).then(r,i)}e.exports=function(e){return function(){var s=this,r=arguments;return new Promise(function(i,o){var a=e.apply(s,r);function l(e){t(a,i,o,l,c,"next",e)}function c(e){t(a,i,o,l,c,"throw",e)}l(void 0)})}},e.exports.__esModule=!0,e.exports.default=e.exports},512:function(e,t,s){var r=s(892);e.exports=function(e,t,s){return(t=r(t))in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e},e.exports.__esModule=!0,e.exports.default=e.exports},751:function(e){e.exports=function(e){return e&&e.__esModule?e:{default:e}},e.exports.__esModule=!0,e.exports.default=e.exports},785:function(e,t,s){var r=s(113);function i(){var t,s,o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",l=o.toStringTag||"@@toStringTag";function c(e,i,o,a){var l=Object.create((i&&i.prototype instanceof u?i:u).prototype);return r(l,"_invoke",function(e,r,i){var o,a,l,c=0,u=i||[],h=!1,m={p:0,n:0,v:t,a:p,f:p.bind(t,4),d:function(e,s){return o=e,a=0,l=t,m.n=s,d}};function p(e,r){for(a=e,l=r,s=0;!h&&c&&!i&&s3?(i=f===r)&&(l=o[(a=o[4])?5:(a=3,3)],o[4]=o[5]=t):o[0]<=p&&((i=e<2&&pr||r>f)&&(o[4]=e,o[5]=r,m.n=f,a=0))}if(i||e>1)return d;throw h=!0,r}return function(i,u,f){if(c>1)throw TypeError("Generator is already running");for(h&&1===u&&p(u,f),a=u,l=f;(s=a<2?t:l)||!h;){o||(a?a<3?(a>1&&(m.n=-1),p(a,l)):m.n=l:m.v=l);try{if(c=2,o){if(a||(i="next"),s=o[i]){if(!(s=s.call(o,l)))throw TypeError("iterator result is not an object");if(!s.done)return s;l=s.value,a<2&&(a=0)}else 1===a&&(s=o.return)&&s.call(o),a<2&&(l=TypeError("The iterator does not provide a '"+i+"' method"),a=1);o=t}else if((s=(h=m.n<0)?l:e.call(r,m))!==d)break}catch(e){o=t,a=1,l=e}finally{c=1}}return{value:s,done:h}}}(e,o,a),!0),l}var d={};function u(){}function h(){}function m(){}s=Object.getPrototypeOf;var p=m.prototype=u.prototype=Object.create([][a]?s(s([][a]())):(r(s={},a,function(){return this}),s));function f(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,r(e,l,"GeneratorFunction")),e.prototype=Object.create(p),e}return h.prototype=m,r(p,"constructor",m),r(m,"constructor",h),h.displayName="GeneratorFunction",r(m,l,"GeneratorFunction"),r(p),r(p,l,"Generator"),r(p,a,function(){return this}),r(p,"toString",function(){return"[object Generator]"}),(e.exports=i=function(){return{w:c,m:f}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=i,e.exports.__esModule=!0,e.exports.default=e.exports},192:function(e,t,s){var r=s(456);e.exports=function(e,t,s,i,o){var a=r(e,t,s,i,o);return a.next().then(function(e){return e.done?e.value:a.next()})},e.exports.__esModule=!0,e.exports.default=e.exports},456:function(e,t,s){var r=s(785),i=s(175);e.exports=function(e,t,s,o,a){return new i(r().w(e,t,s,o),a||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports},175:function(e,t,s){var r=s(807),i=s(113);e.exports=function e(t,s){var o;this.next||(i(e.prototype),i(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),i(this,"_invoke",function(e,i,a){function l(){return new s(function(i,o){!function e(i,o,a,l){try{var c=t[i](o),d=c.value;return d instanceof r?s.resolve(d.v).then(function(t){e("next",t,a,l)},function(t){e("throw",t,a,l)}):s.resolve(d).then(function(e){c.value=e,a(c)},function(t){return e("throw",t,a,l)})}catch(e){l(e)}}(e,a,i,o)})}return o=o?o.then(l,l):l()},!0)},e.exports.__esModule=!0,e.exports.default=e.exports},113:function(e){function t(s,r,i,o){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}e.exports=t=function(e,s,r,i){function o(s,r){t(e,s,function(e){return this._invoke(s,r,e)})}s?a?a(e,s,{value:r,enumerable:!i,configurable:!i,writable:!i}):e[s]=r:(o("next",0),o("throw",1),o("return",2))},e.exports.__esModule=!0,e.exports.default=e.exports,t(s,r,i,o)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},917:function(e){e.exports=function(e){var t=Object(e),s=[];for(var r in t)s.unshift(r);return function e(){for(;s.length;)if((r=s.pop())in t)return e.value=r,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports},604:function(e,t,s){var r=s(807),i=s(785),o=s(192),a=s(456),l=s(175),c=s(917),d=s(68);function u(){var t=i(),s=t.m(u),h=(Object.getPrototypeOf?Object.getPrototypeOf(s):s.__proto__).constructor;function m(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===h||"GeneratorFunction"===(t.displayName||t.name))}var p={throw:1,return:2,break:3,continue:3};function f(e){var t,s;return function(r){t||(t={stop:function(){return s(r.a,2)},catch:function(){return r.v},abrupt:function(e,t){return s(r.a,p[e],t)},delegateYield:function(e,i,o){return t.resultName=i,s(r.d,d(e),o)},finish:function(e){return s(r.f,e)}},s=function(e,s,i){r.p=t.prev,r.n=t.next;try{return e(s,i)}finally{t.next=r.n}}),t.resultName&&(t[t.resultName]=r.v,t.resultName=void 0),t.sent=r.v,t.next=r.n;try{return e.call(this,t)}finally{r.p=t.prev,r.n=t.next}}}return(e.exports=u=function(){return{wrap:function(e,s,r,i){return t.w(f(e),s,r,i&&i.reverse())},isGeneratorFunction:m,mark:t.m,awrap:function(e,t){return new r(e,t)},AsyncIterator:l,async:function(e,t,s,r,i){return(m(t)?a:o)(f(e),t,s,r,i)},keys:c,values:d}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=u,e.exports.__esModule=!0,e.exports.default=e.exports},68:function(e,t,s){var r=s(201).default;e.exports=function(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],s=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&s>=e.length&&(e=void 0),{value:e&&e[s++],done:!e}}}}throw TypeError(r(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports},513:function(e,t,s){var r=s(201).default;e.exports=function(e,t){if("object"!=r(e)||!e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var i=s.call(e,t||"default");if("object"!=r(i))return i;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},892:function(e,t,s){var r=s(201).default,i=s(513);e.exports=function(e){var t=i(e,"string");return"symbol"==r(t)?t:t+""},e.exports.__esModule=!0,e.exports.default=e.exports},201:function(e){function t(s){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(s)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},434:function(e,t,s){var r=s(604)();e.exports=r;try{regeneratorRuntime=r}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=r:Function("r","regeneratorRuntime = r")(r)}}},i={};function o(e){var t=i[e];if(void 0!==t)return t.exports;var s=i[e]={id:e,loaded:!1,exports:{}};return r[e].call(s.exports,s,s.exports,o),s.loaded=!0,s.exports}o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var s in t)o.o(t,s)&&!o.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},o.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return Function("return this")()}catch(e){if("object"==typeof window)return window}})(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);var a={};(()=>{let t,r,i,l,c,d,u,h,m;o.d(a,{GB:()=>hF,uv:()=>p9,Ib:()=>rv,FE:()=>es.Collection,ZV:()=>p_,NZ:()=>gx,ax:()=>mk,zc:()=>uI,Tk:()=>iw,_W:()=>gW,hi:()=>ax,u:()=>dd,Hn:()=>es.Model,Vm:()=>hY,KY:()=>uD,rW:()=>hQ,vp:()=>es.EventEmitter,fQ:()=>z,sS:()=>gV,h5:()=>uf,pS:()=>um,xg:()=>md,AS:()=>p8,Qr:()=>dh,zA:()=>gn,Rn:()=>rG,cX:()=>fl,Dn:()=>f0,ZP:()=>g2,MW:()=>f9,cM:()=>Q,rp:()=>uT,v0:()=>hK,ku:()=>d9,ct:()=>ga,_G:()=>g0,ag:()=>X,XB:()=>hz,R0:()=>C,UV:()=>pg,lf:()=>hG});var p,f,g,v,_,y,b,w,j={};o.r(j),o.d(j,{isError:()=>sS,isErrorObject:()=>sE,isFunction:()=>sx,isPersistableModel:()=>s$,isUndefined:()=>sA,merge:()=>sj});var S={};o.r(S),o.d(S,{clearSession:()=>sL,getUnloadEvent:()=>sN,isTestEnv:()=>sO,isUniView:()=>sM,replacePromise:()=>sI,shouldClearCache:()=>sR,tearDown:()=>sD});var x={};o.r(x),o.d(x,{ACTIVE:()=>it,ANONYMOUS:()=>r0,BOSH_WAIT:()=>rQ,CHATROOMS_TYPE:()=>ia,CHAT_STATES:()=>ih,CLOSED:()=>r2,COMPOSING:()=>is,CONNECTION_STATUS:()=>id,CONTROLBOX_TYPE:()=>ic,CORE_PLUGINS:()=>iu,EXTERNAL:()=>r4,FAILURE:()=>r7,GONE:()=>ii,HEADLINES_TYPE:()=>il,INACTIVE:()=>ie,KEYCODES:()=>ip,LOGIN:()=>r3,LOGOUT:()=>r6,MARKER_TYPES:()=>im,METADATA_ATTRIBUTES:()=>r1,OPENED:()=>r8,PAUSED:()=>ir,PREBIND:()=>r5,PRES_SHOW_VALUES:()=>rJ,PRES_TYPE_VALUES:()=>rY,PRIVATE_CHAT_TYPE:()=>io,STATUS_WEIGHTS:()=>rX,SUCCESS:()=>r9,VERSION_NAME:()=>rK,XFORM_TYPE_MAP:()=>ig,XFORM_VALIDATE_TYPE_MAP:()=>iv});var A={};o.r(A),o.d(A,{createStore:()=>od,getDefaultStorageType:()=>ol,initStorage:()=>ou});var E={};o.r(E),o.d(E,{getJIDFromURI:()=>ov,isOwnJID:()=>o_,isSameBareJID:()=>of,isSameDomain:()=>og,isValidJID:()=>om,isValidMUCJID:()=>op});var $={};o.r($),o.d($,{attemptNonPreboundSession:()=>oM,cleanup:()=>o$,initClientConfig:()=>ob,initPersistentStorage:()=>oj,initPlugins:()=>oy,initSession:()=>oA,initSessionStorage:()=>ow,registerGlobalEventHandlers:()=>oE,safeSave:()=>oI,savedLoginInfo:()=>oO,setUserJID:()=>ox});var k={};o.r(k),o.d(k,{debounce:()=>oU,getOpenPromise:()=>er,waitUntil:()=>oF});var C={};o.r(C),o.d(C,{BadRequestError:()=>oK,ConflictError:()=>oJ,FeatureNotImplementedError:()=>oY,ForbiddenError:()=>oX,GoneError:()=>o1,IQError:()=>oW,InternalServerError:()=>o0,ItemNotFoundError:()=>o2,JIDMalformedError:()=>o4,MethodNotImplementedError:()=>oH,NotAcceptableError:()=>o3,NotAllowedError:()=>o6,NotAuthorizedError:()=>o8,PaymentRequiredError:()=>o5,RecipientUnavailableError:()=>o9,RedirectError:()=>o7,RegistrationRequiredError:()=>ae,RemoteServerNotFoundError:()=>at,RemoteServerTimeoutError:()=>as,ResourceConstraintError:()=>ar,ServiceUnavailableError:()=>ai,StanzaError:()=>oV,StanzaParseError:()=>oQ,SubscriptionRequiredError:()=>an,TimeoutError:()=>oZ,UndefinedConditionError:()=>ao,UnexpectedRequestError:()=>aa,UserFacingError:()=>oG});var T={};o.r(T),o.d(T,{decodeHTMLEntities:()=>lw,isElement:()=>lm,isEqualNode:()=>lg,isTagEqual:()=>function e(t,s){if(t instanceof rZ.Builder)return e(t.tree(),s);if(t instanceof Element)return rZ.isTagEqual(t,s);throw Error("isTagEqual called with value which isn't an element or Strophe.Builder instance")},queryChildren:()=>l_,siblingIndex:()=>ly,stringToElement:()=>lv});var M={};o.r(M),o.d(M,{getAttributes:()=>lA,isErrorStanza:()=>lj,isForbiddenError:()=>lS,isServiceUnavailableError:()=>lx,toStanza:()=>rV});var O={};o.r(O),o.d(O,{unique:()=>cC});var N={};o.r(N),o.d(N,{appendArrayBuffer:()=>cT,arrayBufferToBase64:()=>cI,arrayBufferToHex:()=>cM,arrayBufferToString:()=>cO,base64ToArrayBuffer:()=>cR,hexToArrayBuffer:()=>cD,stringToArrayBuffer:()=>cN});var I={};o.r(I),o.d(I,{colorize:()=>cP});var R={};o.r(R),o.d(R,{getCurrentWord:()=>cq,getSelectValues:()=>cB,isMentionBoundary:()=>cH,placeCaretAtEnd:()=>cW,replaceCurrentWord:()=>cG,webForm2xForm:()=>cF});var D={};o.r(D),o.d(D,{firstCharToUpperCase:()=>cZ,getLongestSubstring:()=>cV,isString:()=>cQ});var L={};o.r(L),o.d(L,{addMediaURLsOffset:()=>di,checkFileTypes:()=>c2,getHeaders:()=>de,getMediaURLs:()=>dr,getMediaURLsMetadata:()=>ds,getMetadataForURL:()=>dt,getURL:()=>c0,isAudioURL:()=>c6,isEncryptedFileURL:()=>c9,isGIFURL:()=>c3,isImageURL:()=>c5,isURLWithImageExtension:()=>c4,isValidURL:()=>c1,isVideoURL:()=>c8,withinString:()=>c7});var z={};o.r(z),o.d(z,{getChatMarker:()=>dD,getChatState:()=>dN,getCorrectionAttributes:()=>dA,getDeprecatedRetractionAttributes:()=>dS,getEncryptionAttributes:()=>dj,getErrorAttributes:()=>dC,getInputType:()=>dF,getOpenGraphMetadata:()=>dE,getOutOfBandAttributes:()=>dk,getReceiptId:()=>dM,getReferences:()=>dT,getRetractionAttributes:()=>dx,getSpoilerAttributes:()=>d$,getStanzaIDs:()=>dw,isArchived:()=>dU,isCarbon:()=>dO,isHeadline:()=>dL,isMUCPrivateMessage:()=>dz,isServerMessage:()=>dP,isValidReceiptRequest:()=>dI,parseErrorStanza:()=>db,parseXForm:()=>dq,throwErrorIfInvalidForward:()=>dR});var P={};o.r(P),o.d(P,{ACTION_INFO_CODES:()=>uU,ADMIN_COMMANDS:()=>uF,AFFILIATIONS:()=>uq,AFFILIATION_CHANGES:()=>uJ,AFFILIATION_CHANGES_LIST:()=>uY,DISCONNECT_CODES:()=>uH,INFO_CODES:()=>u4,MODERATOR_COMMANDS:()=>uG,MUC_NICK_CHANGED_CODE:()=>u8,MUC_ROLE_CHANGES:()=>u0,MUC_ROLE_CHANGES_LIST:()=>u2,MUC_ROLE_WEIGHTS:()=>uK,MUC_TRAFFIC_STATES:()=>uX,MUC_TRAFFIC_STATES_LIST:()=>u1,NEW_NICK_CODES:()=>uB,OWNER_COMMANDS:()=>uW,ROLES:()=>uZ,ROOMSTATUS:()=>u3,ROOM_FEATURES:()=>u6,STATUS_CODE_STANZAS:()=>uQ,VISITOR_COMMANDS:()=>uV});var U={};o.r(U),o.d(U,{KEY_ALGO:()=>pd,TAG_LENGTH:()=>pc,TRUSTED:()=>pa,UNDECIDED:()=>po,UNTRUSTED:()=>pl});var B=o(484),F=o.n(B),q=o(734),H=o.n(q),G=o(176),W=o.n(G);let Z={debug:0,info:1,warn:2,error:3,fatal:4},V=Object.assign({debug:console?.log?console.log.bind(console):function(){},error:console?.log?console.log.bind(console):function(){},info:console?.log?console.log.bind(console):function(){},warn:console?.log?console.log.bind(console):function(){}},console),Q={loglevel:"info",setLogLevel(e){if(!["debug","info","warn","error","fatal"].includes(e))throw Error(`Invalid loglevel: ${e}`);this.loglevel=e},log(e,t,s=""){var r;if(Z[t](0,Y.sprintf)(...e)};function ee(e,t,s,r,...i){return"function"==typeof s&&(void 0===this.__super__&&(this.__super__=r),this.__super__[e]=s.bind(this)),t.apply(this,i)}class et{constructor(e,t){this.name=t,this.plugged=e,void 0===this.plugged.__super__?this.plugged.__super__={}:"string"==typeof this.plugged.__super__&&(this.plugged.__super__={__string__:this.plugged.__super__}),this.plugged.__super__[t]=this.plugged,this.plugins={},this.initialized_plugins=[]}_overrideAttribute(e,t){let s=t.overrides[e];if("function"==typeof s){let t={};t[this.name]=this.plugged;let r=this.plugged[e];this.plugged[e]=function(...i){return ee.apply(this,[e,s,r,t,...i])}}else this.plugged[e]=s}_extendObject(e,t){for(let[s,r]of(e.prototype.__super__||(e.prototype.__super__={},e.prototype.__super__[this.name]=this.plugged),Object.entries(t)))if("events"===s)e.prototype[s]=Object.assign(r,e.prototype[s]);else if("function"==typeof r){let t={};t[this.name]=this.plugged;let i=e.prototype[s];e.prototype[s]=function(...e){return ee.apply(this,[s,r,i,t,...e])}}else e.prototype[s]=r}loadPluginDependencies(e){e.dependencies?.forEach(t=>{let s=this.plugins[t];if(s){if(s.dependencies?.includes(e.__name__))throw'Found a circular dependency between the plugins "'+e.__name__+'" and "'+t+'"';this.initializePlugin(s)}else this.throwUndefinedDependencyError('Could not find dependency "'+t+'" for the plugin "'+e.__name__+"\". If it's needed, make sure it's loaded by require.js")})}throwUndefinedDependencyError(e){if(this.plugged.strict_plugin_dependencies)throw e;console.warn?console.warn(e):console.log(e)}applyOverrides(e){Object.keys(e.overrides||{}).forEach(t=>{let s=e.overrides[t];"object"==typeof s?void 0===this.plugged[t]?this.throwUndefinedDependencyError(`Plugin "${e.__name__}" tried to override "${t}" but it's not found.`):this._extendObject(this.plugged[t],s):this._overrideAttribute(t,e)})}initializePlugin(e){Object.keys(this.allowed_plugins).includes(e.__name__)&&!this.initialized_plugins.includes(e.__name__)&&("boolean"==typeof e.enabled&&e.enabled||e.enabled?.(this.plugged)||null==e.enabled)&&(Object.assign(e,this.properties),e.dependencies&&this.loadPluginDependencies(e),this.applyOverrides(e),"function"==typeof e.initialize&&e.initialize.bind(e)(this),this.initialized_plugins.push(e.__name__))}registerPlugin(e,t){if(e in this.plugins)throw Error("Error: Plugin name "+e+" is already taken");t.__name__=e,this.plugins[e]=t}initializePlugins(e={},t=[],s=[]){if(Object.keys(this.plugins).length){for(let[r,i]of(this.properties=e,this.allowed_plugins={},Object.entries(this.plugins)))(!t.length||t.includes(r))&&!s.includes(r)&&(this.allowed_plugins[r]=i);Object.values(this.allowed_plugins).forEach(e=>this.initializePlugin(e))}}}var es=o(94);function er(){let e,t=()=>{},s=()=>{};if("function"==typeof Promise.withResolvers){let{promise:r,resolve:i,reject:o}=Promise.withResolvers();e=r,t=i,s=o}else e=new Promise((e,r)=>{t=e,s=r});return Object.assign(e,{isResolved:!1,isPending:!0,isRejected:!1,resolve:t,reject:s}),e.then(t=>(e.isResolved=!0,e.isPending=!1,e.isRejected=!1,t),t=>{throw e.isResolved=!1,e.isPending=!1,e.isRejected=!0,t}),e}let ei=function(e,t){return e===t||e!=e&&t!=t},en=function(e,t){for(var s=e.length;s--;)if(ei(e[s][0],t))return s;return -1};var eo=Array.prototype.splice;function ea(e){var t=-1,s=null==e?0:e.length;for(this.clear();++t-1},ea.prototype.set=function(e,t){var s=this.__data__,r=en(s,e);return r<0?(++this.size,s.push([e,t])):s[r][1]=t,this};var el="object"==typeof s.g&&s.g&&s.g.Object===Object&&s.g,ec="object"==typeof self&&self&&self.Object===Object&&self,ed=el||ec||Function("return this")(),eu=ed.Symbol,eh=Object.prototype,em=eh.hasOwnProperty,ep=eh.toString,ef=eu?eu.toStringTag:void 0;let eg=function(e){var t=em.call(e,ef),s=e[ef];try{e[ef]=void 0;var r=!0}catch(e){}var i=ep.call(e);return r&&(t?e[ef]=s:delete e[ef]),i};var ev=Object.prototype.toString,e_=eu?eu.toStringTag:void 0;let ey=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":e_&&e_ in Object(e)?eg(e):ev.call(e)},eb=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},ew=function(e){if(!eb(e))return!1;var t=ey(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t};var ej=ed["__core-js_shared__"],eS=(f=/[^.]+$/.exec(ej&&ej.keys&&ej.keys.IE_PROTO||""))?"Symbol(src)_1."+f:"",ex=Function.prototype.toString;let eA=function(e){if(null!=e){try{return ex.call(e)}catch(e){}try{return e+""}catch(e){}}return""};var eE=/^\[object .+?Constructor\]$/,e$=Object.prototype,ek=Function.prototype.toString,eC=e$.hasOwnProperty,eT=RegExp("^"+ek.call(eC).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");let eM=function(e,t){var s=null==e?void 0:e[t];return eb(s)&&(!eS||!(eS in s))&&(ew(s)?eT:eE).test(eA(s))?s:void 0};var eO=eM(ed,"Map"),eN=eM(Object,"create"),eI=Object.prototype.hasOwnProperty,eR=Object.prototype.hasOwnProperty;function eD(e){var t=-1,s=null==e?0:e.length;for(this.clear();++tl))return!1;var d=o.get(e),u=o.get(t);if(d&&u)return d==t&&u==e;var h=-1,m=!0,p=2&s?new eB:void 0;for(o.set(e,t),o.set(t,e);++h-1&&e%1==0&&e-1&&e%1==0&&e<=0x1fffffffffffff};var tl={};tl["[object Float32Array]"]=tl["[object Float64Array]"]=tl["[object Int8Array]"]=tl["[object Int16Array]"]=tl["[object Int32Array]"]=tl["[object Uint8Array]"]=tl["[object Uint8ClampedArray]"]=tl["[object Uint16Array]"]=tl["[object Uint32Array]"]=!0,tl["[object Arguments]"]=tl["[object Array]"]=tl["[object ArrayBuffer]"]=tl["[object Boolean]"]=tl["[object DataView]"]=tl["[object Date]"]=tl["[object Error]"]=tl["[object Function]"]=tl["[object Map]"]=tl["[object Number]"]=tl["[object Object]"]=tl["[object RegExp]"]=tl["[object Set]"]=tl["[object String]"]=tl["[object WeakMap]"]=!1;let tc=function(e){return function(t){return e(t)}};var td="object"==typeof exports&&exports&&!exports.nodeType&&exports,tu=td&&e&&!e.nodeType&&e,th=tu&&tu.exports===td&&el.process,tm=function(){try{var e=tu&&tu.require&&tu.require("util").types;if(e)return e;return th&&th.binding&&th.binding("util")}catch(e){}}(),tp=tm&&tm.isTypedArray,tf=tp?tc(tp):function(e){return e6(e)&&ta(e.length)&&!!tl[ey(e)]},tg=Object.prototype.hasOwnProperty;let tv=function(e,t){var s=eJ(e),r=!s&&te(e),i=!s&&!r&&ti(e),o=!s&&!r&&!i&&tf(e),a=s||r||i||o,l=a?e3(e.length,String):[],c=l.length;for(var d in e)(t||tg.call(e,d))&&!(a&&("length"==d||i&&("offset"==d||"parent"==d)||o&&("buffer"==d||"byteLength"==d||"byteOffset"==d)||to(d,c)))&&l.push(d);return l};var t_=Object.prototype;let ty=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||t_)},tb=function(e,t){return function(s){return e(t(s))}};var tw=tb(Object.keys,Object),tj=Object.prototype.hasOwnProperty;let tS=function(e){if(!ty(e))return tw(e);var t=[];for(var s in Object(e))tj.call(e,s)&&"constructor"!=s&&t.push(s);return t},tx=function(e){return null!=e&&ta(e.length)&&!ew(e)},tA=function(e){return tx(e)?tv(e):tS(e)},tE=function(e){return eY(e,tA,e4)};var t$=Object.prototype.hasOwnProperty;let tk=function(e,t,s,r,i,o){var a=1&s,l=tE(e),c=l.length;if(c!=tE(t).length&&!a)return!1;for(var d=c;d--;){var u=l[d];if(!(a?u in t:t$.call(t,u)))return!1}var h=o.get(e),m=o.get(t);if(h&&m)return h==t&&m==e;var p=!0;o.set(e,t),o.set(t,e);for(var f=a;++d0&&r(c)?s>1?e(c,s-1,r,i,o):eK(o,c):i||(o[o.length]=c)}return o},sp=function(e,t,s){switch(s.length){case 0:return e.call(t);case 1:return e.call(t,s[0]);case 2:return e.call(t,s[0],s[1]);case 3:return e.call(t,s[0],s[1],s[2])}return e.apply(t,s)};var sf=Math.max;let sg=function(e,t,s){return t=sf(void 0===t?e.length-1:t,0),function(){for(var r=arguments,i=-1,o=sf(r.length-t,0),a=Array(o);++i0){if(++y>=800)return arguments[0]}else y=0;return _.apply(void 0,arguments)}),sb=sy(sg(w=function(e,t){return null==e?{}:sl(e,t,function(t,s){return null!=e&&sd(e,s,sc)})},void 0,function(e){return(null==e?0:e.length)?sm(e,1):[]}),w+"");let sw={allow_non_roster_messaging:!0,allow_url_history_change:!0,assets_path:"/dist",authentication:"login",auto_login:!1,auto_reconnect:!0,blacklisted_plugins:[],clear_cache_on_logout:!1,connection_options:{},credentials_url:null,disable_effects:!1,discover_connection_methods:!0,embed_3rd_party_media_players:!0,geouri_regex:/https\:\/\/www.openstreetmap.org\/.*#map=[0-9]+\/([\-0-9.]+)\/([\-0-9.]+)\S*/g,geouri_replacement:"https://www.openstreetmap.org/?mlat=$1&mlon=$2#map=18/$1/$2",i18n:void 0,jid:void 0,reuse_scram_keys:!0,keepalive:!0,loglevel:"info",locales:["af","ar","bg","ca","cs","da","de","el","en","eo","es","eu","fa","fi","fr","gl","he","hi","hu","id","it","ja","lt","mn","mr","nb","nl","oc","pl","pt","pt_BR","ro","ru","sv","ta","th","tr","ug","uk","vi","zh_CN","zh_TW"],nickname:void 0,password:void 0,persistent_store:"IndexedDB",rid:void 0,root:window.document,sid:void 0,singleton:!1,strict_plugin_dependencies:!1,stanza_timeout:6e4,view_mode:"fullscreen",websocket_url:void 0,whitelisted_plugins:[]};function sj(e,t){for(let s in t)Object.prototype.hasOwnProperty.call(t,s)&&"__proto__"!==s&&"constructor"!==s&&(e[s]instanceof Object?sj(e[s],t[s]):e[s]=t[s])}function sS(e){return"[object Error]"===Object.prototype.toString.call(e)}function sx(e){return"function"==typeof e}function sA(e){return void 0===e}function sE(e){return e instanceof Error}function s$(e){return e.browserStorage||e.collection?.browserStorage}let sk={};class sC extends(0,es.EventEmitter)(Object){}let sT={extend:e=>{let s,r,i;return sj(sw,e),s=Object.keys(e).filter(e=>e in sw),r=sb(sk,s),i=Object.assign(sb(e,s),r),void sj(t,i)},get:e=>e?function(e){if(Object.keys(sw).includes(e))return t[e]}(e):t,set(e,s){!function(e,s){let r;if(null==e)return;e instanceof Object?r=e:"string"==typeof e&&((r={})[e]=s);let i=Object.keys(r).filter(e=>e in sw),o={};i.forEach(e=>{let s=r[e];!function e(t,s,r,i,o){return t===s||(null!=t&&null!=s&&(e6(t)||e6(s))?tQ(t,s,r,i,e,o):t!=t&&s!=s)}(t[e],s)&&(o[e]=s,t[e]=s)}),Object.keys(o).forEach(e=>t.trigger("change:"+e,o[e])),t.trigger("change",o)}(e,s)},listen:{on(e,s,r){t.on(e,s,r)},not(e,s){t.off(e,s)}}};function sM(){return["fullscreen","embedded"].includes(sT.get("view_mode"))}function sO(){return"montague.lit/http-bind"===sk.bosh_service_url}function sN(){return"onpagehide"in window?"pagehide":"onbeforeunload"in window?"beforeunload":"unload"}function sI(e,t){let s=e.promises[t];if(!s)throw Error(`Tried to replace non-existing promise: ${t}`);if(s.replace){let r=er();r.replace=s.replace,e.promises[t]=r}else Q.debug(`Not replacing promise "${t}"`)}function sR(e){let{api:t}=e;return!e.state.config.get("trusted")||t.settings.get("clear_cache_on_logout")||sO()}async function sD(e){let{api:t}=e;return await t.trigger("beforeTearDown",{synchronous:!0}),t.trigger("afterTearDown"),e}function sL(e){return sR(e)&&(e.api.user.settings.clear(),e.state.login_info?.destroy()),e.initSession(),e.api.trigger("clearSession",{synchronous:!0})}let sz={HTTPBIND:"http://jabber.org/protocol/httpbind",BOSH:"urn:xmpp:xbosh",CLIENT:"jabber:client",SERVER:"jabber:server",AUTH:"jabber:iq:auth",ROSTER:"jabber:iq:roster",PROFILE:"jabber:iq:profile",DISCO_INFO:"http://jabber.org/protocol/disco#info",DISCO_ITEMS:"http://jabber.org/protocol/disco#items",MUC:"http://jabber.org/protocol/muc",SASL:"urn:ietf:params:xml:ns:xmpp-sasl",STREAM:"http://etherx.jabber.org/streams",FRAMING:"urn:ietf:params:xml:ns:xmpp-framing",BIND:"urn:ietf:params:xml:ns:xmpp-bind",SESSION:"urn:ietf:params:xml:ns:xmpp-session",VERSION:"jabber:iq:version",STANZAS:"urn:ietf:params:xml:ns:xmpp-stanzas",XHTML_IM:"http://jabber.org/protocol/xhtml-im",XHTML:"http://www.w3.org/1999/xhtml"},sP={tags:["a","blockquote","br","cite","em","img","li","ol","p","span","strong","ul","body"],attributes:{a:["href"],blockquote:["style"],br:[],cite:["style"],em:[],img:["src","alt","style","height","width"],li:["style"],ol:["style"],p:["style"],span:["style"],strong:[],ul:["style"],body:[]},css:["background-color","color","font-family","font-size","font-style","font-weight","margin-left","margin-right","text-align","text-decoration"]},sU={ERROR:0,CONNECTING:1,CONNFAIL:2,AUTHENTICATING:3,AUTHFAIL:4,CONNECTED:5,DISCONNECTED:6,DISCONNECTING:7,ATTACHED:8,REDIRECT:9,CONNTIMEOUT:10,BINDREQUIRED:11,ATTACHFAIL:12,RECONNECTING:13},sB={BAD_FORMAT:"bad-format",CONFLICT:"conflict",MISSING_JID_NODE:"x-strophe-bad-non-anon-jid",NO_AUTH_MECH:"no-auth-mech",UNKNOWN_REASON:"unknown"},sF={DEBUG:0,INFO:1,WARN:2,ERROR:3,FATAL:4},sq={NORMAL:1,TEXT:3,CDATA:4,FRAGMENT:11},sH=sF.DEBUG,sG={setLogLevel(e){if(esF.FATAL)throw Error("Invalid log level supplied to setLogLevel");sH=e},log(e,t){var s,r,i,o;e=sF.ERROR?null==(s=console)||s.error(t):e===sF.INFO?null==(r=console)||r.info(t):e===sF.WARN?null==(i=console)||i.warn(t):e===sF.DEBUG&&(null==(o=console)||o.debug(t)))},debug(e){this.log(sF.DEBUG,e)},info(e){this.log(sF.INFO,e)},warn(e){this.log(sF.WARN,e)},error(e){this.log(sF.ERROR,e)},fatal(e){this.log(sF.FATAL,e)}};function sW(e,t){let s=s3(e),r=s6(s);if(r)throw Error(`Parser Error: ${r}`);let i=s8(s);if(["message","iq","presence"].includes(i.nodeName.toLowerCase())&&"jabber:client"!==i.namespaceURI&&"jabber:server"!==i.namespaceURI){let e=`Invalid namespaceURI ${i.namespaceURI}`;if(t)throw Error(e);sG.error(e)}return i}function sZ(e){void 0!==e.stack&&sG.fatal(e.stack),sG.fatal("error: "+e.message)}function sV(e){let t="",s=e.length;for(let r=0;r=0&&s<=127?t+=e.charAt(r):(s>2047?(t+=String.fromCharCode(224|s>>12&15),t+=String.fromCharCode(128|s>>6&63)):t+=String.fromCharCode(192|s>>6&31),t+=String.fromCharCode(128|(0|s)&63))}return t}function sQ(e,t){let s=new Uint8Array(e),r=new Uint8Array(t),i=new Uint8Array(e.byteLength);for(let t=0;te.charCodeAt(0)))?void 0:t.buffer}function sY(e){return new TextEncoder().encode(e).buffer}function sX(e){for(let t in"undefined"==typeof document&&sG.error("addCookies: not adding any cookies, since there's no document object"),e=e||{})if(Object.prototype.hasOwnProperty.call(e,t)){let s="",r="",i="",o=e[t],a="object"==typeof o,l=escape(unescape(a?o.value:o));a&&(s=o.expires?";expires="+o.expires:"",r=o.domain?";domain="+o.domain:"",i=o.path?";path="+o.path:""),document.cookie=t+"="+l+s+r+i}}let s1=null;function s0(){return s1||(s1=document.implementation.createDocument("jabber:client","strophe",null)),s1}function s2(e){return s0().createTextNode(e)}function s4(e){let t=Array.from(e.childNodes);return 1===t.length&&t[0].nodeType===sq.TEXT||t.forEach(t=>{"body"!==t.nodeName.toLowerCase()&&(t.nodeType!==sq.TEXT||/\S/.test(t.nodeValue)?t.nodeType===sq.NORMAL&&s4(t):e.removeChild(t))}),e}function s3(e){return new DOMParser().parseFromString(e,"text/xml")}function s6(e){var t;let s=(null==(t=e.firstElementChild)?void 0:t.nodeName)==="parsererror"?e.firstElementChild:e.getElementsByTagNameNS("http://www.w3.org/1999/xhtml","parsererror")[0];return(null==s?void 0:s.nodeName)==="parsererror"?null==s?void 0:s.textContent:null}function s8(e){if(e.firstElementChild)return e.firstElementChild;let t,s=0,r=e.childNodes;for(;t=r[s++];)if(1===t.nodeType)return t;return null}function s5(e,t,s){if(!e)return null;let r=s0().createElement(e);if(s&&("string"==typeof s||"number"==typeof s))r.appendChild(s2(s.toString()));else if("string"==typeof t||"number"==typeof t)return r.appendChild(s2(t.toString())),r;if(t){if(Array.isArray(t))for(let e of t)Array.isArray(e)&&null!=e[0]&&null!=e[1]&&r.setAttribute(e[0],e[1]);else if("object"==typeof t)for(let e of Object.keys(t))e&&null!=t[e]&&r.setAttribute(e,t[e].toString())}return r}function s9(e){for(let t=0;t0){for(let e=0;e0&&(a=e.join("; "),t.setAttribute(o,a))}else t.setAttribute(o,a)}}for(let s=0;s/g,">")).replace(/'/g,"'")).replace(/"/g,""")}function ri(e,t,s){for(let r=0;re.indexOf("@")?null:e.split("@")[0]}function rl(e){let t=rd(e);if(0>t.indexOf("@"))return t;{let e=t.split("@");return e.splice(0,1),e.join("@")}}function rc(e){if(!e)return null;let t=e.split("/");return t.length<2?null:(t.splice(0,1),t.join("/"))}function rd(e){return e?e.split("/")[0]:null}let ru={utf16to8:sV,xorArrayBuffers:sQ,arrayBufToBase64:sK,base64ToArrayBuf:sJ,stringToArrayBuf:sY,addCookies:sX};var rh=Object.freeze({__proto__:null,toElement:sW,handleError:sZ,utf16to8:sV,xorArrayBuffers:sQ,arrayBufToBase64:sK,base64ToArrayBuf:sJ,stringToArrayBuf:sY,addCookies:sX,xmlGenerator:s0,xmlTextNode:s2,stripWhitespace:s4,xmlHtmlNode:s3,getParserError:s6,getFirstElementChild:s8,xmlElement:s5,validTag:s9,validAttribute:s7,validCSS:re,createHtml:rt,copyElement:rs,xmlescape:rr,xmlunescape:function(e){return e=(e=(e=(e=(e=e.replace(/\&/g,"&")).replace(/</g,"<")).replace(/>/g,">")).replace(/'/g,"'")).replace(/"/g,'"')},forEachChild:ri,isTagEqual:rn,getText:ro,escapeNode:function(e){return"string"!=typeof e?e:e.replace(/^\s+|\s+$/g,"").replace(/\\/g,"\\5c").replace(/ /g,"\\20").replace(/\"/g,"\\22").replace(/\&/g,"\\26").replace(/\'/g,"\\27").replace(/\//g,"\\2f").replace(/:/g,"\\3a").replace(//g,"\\3e").replace(/@/g,"\\40")},unescapeNode:function(e){return"string"!=typeof e?e:e.replace(/\\20/g," ").replace(/\\22/g,'"').replace(/\\26/g,"&").replace(/\\27/g,"'").replace(/\\2f/g,"/").replace(/\\3a/g,":").replace(/\\3c/g,"<").replace(/\\3e/g,">").replace(/\\40/g,"@").replace(/\\5c/g,"\\")},getNodeFromJid:ra,getDomainFromJid:rl,getResourceFromJid:rc,getBareJidFromJid:rd,default:ru});function rm(e,t){return new rv(e,t)}function rp(e){return new rv("message",e)}function rf(e){return new rv("iq",e)}function rg(e){return new rv("presence",e)}class rv{#e;#t;#s;#r;constructor(e,t){("presence"===e||"message"===e||"iq"===e)&&(t&&!t.xmlns?t.xmlns=sz.CLIENT:t||(t={xmlns:sz.CLIENT})),this.#s=e,this.#r=t}static fromString(e){let t=sW(e,!0),s=new rv("");return s.#e=t,s}buildTree(){return s5(this.#s,this.#r)}get nodeTree(){return this.#e||(this.#e=this.buildTree()),this.#e}get node(){return this.#t||(this.#t=this.tree()),this.#t}set node(e){this.#t=e}static serialize(e){if(!e)return null;let t=e instanceof rv?e.tree():e,s=[...Array(t.attributes.length).keys()].map(e=>t.attributes[e].nodeName);s.sort();let r=s.reduce((e,s)=>`${e} ${s}="${rr(t.attributes.getNamedItem(s).value)}"`,`<${t.nodeName}`);if(t.childNodes.length>0){r+=">";for(let e=0;e"}}r+=""}else r+="/>";return r}tree(){return this.nodeTree}toString(){return rv.serialize(this.tree())}up(){return this.node=this.node.parentElement?this.node.parentElement:this.node.parentNode,this}root(){return this.node=this.tree(),this}attrs(e){for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(null!=e[t]?this.node.setAttribute(t,e[t].toString()):this.node.removeAttribute(t));return this}c(e,t,s){let r=s5(e,t,s);return this.node.appendChild(r),"string"!=typeof s&&"number"!=typeof s&&(this.node=r),this}cnode(e){let t;e instanceof rv&&(e=e.tree());let s=s0();try{t=void 0!==s.importNode}catch(e){t=!1}let r=t?s.importNode(e,!0):rs(e);return this.node.appendChild(r),this.node=r,this}t(e){let t=s2(e);return this.node.appendChild(t),this}h(e){let t=s0().createElement("body");t.innerHTML=e;let s=rt(t);for(;s.childNodes.length>0;)this.node.appendChild(s.childNodes[0]);return this}}let r_=0;class ry{constructor(e,t,s,r=0){this.id=++r_,this.xmlData=e,this.data=rv.serialize(e),this.origFunc=t,this.func=t,this.rid=s,this.date=NaN,this.sends=r,this.abort=!1,this.dead=null,this.age=()=>this.date?(new Date().valueOf()-this.date.valueOf())/1e3:0,this.timeDead=()=>this.dead?(new Date().valueOf()-this.dead.valueOf())/1e3:0,this.xhr=this._newXHR()}getResponse(){var e;let t=null==(e=this.xhr.responseXML)?void 0:e.documentElement;if(t){if("parsererror"===t.tagName)throw sG.error("invalid response received"),sG.error("responseText: "+this.xhr.responseText),sG.error("responseXML: "+rv.serialize(t)),Error("parsererror")}else if(this.xhr.responseText){sG.debug("Got responseText but no responseXML; attempting to parse it with DOMParser...");let e=s3(this.xhr.responseText),t=s6(e);if(!e||t){t&&(sG.error("invalid response received: "+t),sG.error("responseText: "+this.xhr.responseText));let e=Error();throw e.name=sB.BAD_FORMAT,e}}return t}_newXHR(){let e=new XMLHttpRequest;return e.overrideMimeType&&e.overrideMimeType("text/xml; charset=utf-8"),e.onreadystatechange=this.func.bind(null,this),e}}let rb=1.1,rw=.1;class rj{constructor(e){var t;this._conn=e,this.rid=Math.floor(0xffffffff*Math.random()),this.sid=null,this.hold=1,this.wait=60,this.window=5,this.errors=0,this.inactivity=null,this.strip=null!=(t=rj.prototype.strip)&&t,this.lastResponseHeaders=null,this._requests=[]}static setTimeoutMultiplier(e){rb=e}static getTimeoutMultplier(){return rb}static setSecondaryTimeoutMultiplier(e){rw=e}static getSecondaryTimeoutMultplier(){return rw}_buildBody(){let e=rm("body",{rid:this.rid++,xmlns:sz.HTTPBIND});return null!==this.sid&&e.attrs({sid:this.sid}),this._conn.options.keepalive&&this._conn._sessionCachingSupported()&&this._cacheSession(),e}_reset(){this.rid=Math.floor(0xffffffff*Math.random()),this.sid=null,this.errors=0,this._conn._sessionCachingSupported()&&sessionStorage.removeItem("strophe-bosh-session"),this._conn.nextValidRid(this.rid)}_connect(e,t,s){this.wait=e||this.wait,this.hold=t||this.hold,this.errors=0;let r=this._buildBody().attrs({to:this._conn.domain,"xml:lang":"en",wait:this.wait,hold:this.hold,content:"text/xml; charset=utf-8",ver:"1.6","xmpp:version":"1.0","xmlns:xmpp":sz.BOSH});s&&r.attrs({route:s});let i=this._conn._connect_cb;this._requests.push(new ry(r.tree(),this._onRequestStateChange.bind(this,i.bind(this._conn)),Number(r.tree().getAttribute("rid")))),this._throttledRequestHandler()}_attach(e,t,s,r,i,o,a){this._conn.jid=e,this.sid=t,this.rid=s,this._conn.connect_callback=r,this._conn.domain=rl(this._conn.jid),this._conn.authenticated=!0,this._conn.connected=!0,this.wait=i||this.wait,this.hold=o||this.hold,this.window=a||this.window,this._conn._changeConnectStatus(sU.ATTACHED,null)}_restore(e,t,s,r,i){let o=JSON.parse(sessionStorage.getItem("strophe-bosh-session"));if(null!=o&&o.rid&&o.sid&&o.jid&&(null==e||rd(o.jid)===rd(e)||null===ra(e)&&rl(o.jid)===e))this._conn.restored=!0,this._attach(o.jid,o.sid,o.rid,t,s,r,i);else{let e=Error("_restore: no restoreable session.");throw e.name="StropheSessionError",e}}_cacheSession(){this._conn.authenticated?this._conn.jid&&this.rid&&this.sid&&sessionStorage.setItem("strophe-bosh-session",JSON.stringify({jid:this._conn.jid,rid:this.rid,sid:this.sid})):sessionStorage.removeItem("strophe-bosh-session")}_connect_cb(e){let t=e.getAttribute("type");if(null!==t&&"terminate"===t){let t=e.getAttribute("condition");sG.error("BOSH-Connection failed: "+t);let s=e.getElementsByTagName("conflict");return null!==t?("remote-stream-error"===t&&s.length>0&&(t="conflict"),this._conn._changeConnectStatus(sU.CONNFAIL,t)):this._conn._changeConnectStatus(sU.CONNFAIL,"unknown"),this._conn._doDisconnect(t),sU.CONNFAIL}this.sid||(this.sid=e.getAttribute("sid"));let s=e.getAttribute("requests");s&&(this.window=parseInt(s,10));let r=e.getAttribute("hold");r&&(this.hold=parseInt(r,10));let i=e.getAttribute("wait");i&&(this.wait=parseInt(i,10));let o=e.getAttribute("inactivity");o&&(this.inactivity=parseInt(o,10))}_disconnect(e){this._sendTerminate(e)}_doDisconnect(){this.sid=null,this.rid=Math.floor(0xffffffff*Math.random()),this._conn._sessionCachingSupported()&&sessionStorage.removeItem("strophe-bosh-session"),this._conn.nextValidRid(this.rid)}_emptyQueue(){return 0===this._requests.length}_callProtocolErrorHandlers(e){let t=rj._getRequestStatus(e),s=this._conn.protocolErrorHandlers.HTTP[t];s&&s.call(this,t)}_hitError(e){this.errors++,sG.warn("request errored, status: "+e+", number of errors: "+this.errors),this.errors>4&&this._conn._onDisconnectTimeout()}_no_auth_received(e){sG.warn("Server did not yet offer a supported authentication mechanism. Sending a blank poll request."),e=e?e.bind(this._conn):this._conn._connect_cb.bind(this._conn);let t=this._buildBody();this._requests.push(new ry(t.tree(),this._onRequestStateChange.bind(this,e),Number(t.tree().getAttribute("rid")))),this._throttledRequestHandler()}_onDisconnectTimeout(){this._abortAllRequests()}_abortAllRequests(){for(;this._requests.length>0;){let e=this._requests.pop();e.abort=!0,e.xhr.abort(),e.xhr.onreadystatechange=function(){}}}_onIdle(){let e=this._conn._data;if(this._conn.authenticated&&0===this._requests.length&&0===e.length&&!this._conn.disconnecting&&(sG.debug("no requests during idle cycle, sending blank request"),e.push(null)),!this._conn.paused){if(this._requests.length<2&&e.length>0){let t=this._buildBody();for(let s=0;s0){let e=this._requests[0].age();null!==this._requests[0].dead&&this._requests[0].timeDead()>Math.floor(rb*this.wait)&&this._throttledRequestHandler(),e>Math.floor(rb*this.wait)&&(sG.warn("Request "+this._requests[0].id+" timed out, over "+Math.floor(rb*this.wait)+" seconds since last activity"),this._throttledRequestHandler())}}}static _getRequestStatus(e,t){let s;if(4===e.xhr.readyState)try{s=e.xhr.status}catch(e){sG.error(`Caught an error while retrieving a request's status, reqStatus: ${s}, message: ${e.message}`)}return void 0===s&&(s="number"==typeof t?t:0),s}_onRequestStateChange(e,t){if(sG.debug("request id "+t.id+"."+t.sends+" state changed to "+t.xhr.readyState),t.abort){t.abort=!1;return}if(4!==t.xhr.readyState)return;let s=rj._getRequestStatus(t);if(this.lastResponseHeaders=t.xhr.getAllResponseHeaders(),this._conn.disconnecting&&s>=400){this._hitError(s),this._callProtocolErrorHandlers(t);return}let r=this._requests[0]===t,i=this._requests[1]===t,o=s>0&&s<500,a=t.sends>this._conn.maxRetries;(o||a)&&(this._removeRequest(t),sG.debug("request id "+t.id+" should now be removed")),200===s?((i||r&&this._requests.length>0&&this._requests[0].age()>Math.floor(rb*this.wait))&&this._restartRequest(0),this._conn.nextValidRid(t.rid+1),sG.debug("request id "+t.id+"."+t.sends+" got 200"),e(t),this.errors=0):0===s||s>=400&&s<600||s>=12e3?(sG.error("request id "+t.id+"."+t.sends+" error "+s+" happened"),this._hitError(s),this._callProtocolErrorHandlers(t),s>=400&&s<500&&(this._conn._changeConnectStatus(sU.DISCONNECTING,null),this._conn._doDisconnect())):sG.error("request id "+t.id+"."+t.sends+" error "+s+" happened"),o||a?a&&!this._conn.connected&&this._conn._changeConnectStatus(sU.CONNFAIL,"giving-up"):this._throttledRequestHandler()}_processRequest(e){let t=this._requests[e],s=rj._getRequestStatus(t,-1);if(t.sends>this._conn.maxRetries)return void this._conn._onDisconnectTimeout();let r=t.age(),i=!isNaN(r)&&r>Math.floor(rb*this.wait),o=null!==t.dead&&t.timeDead()>Math.floor(rw*this.wait),a=4===t.xhr.readyState&&(s<1||s>=500);if((i||o||a)&&(o&&sG.error(`Request ${this._requests[e].id} timed out (secondary), restarting`),t.abort=!0,t.xhr.abort(),t.xhr.onreadystatechange=function(){},this._requests[e]=new ry(t.xmlData,t.origFunc,t.rid,t.sends),t=this._requests[e]),0===t.xhr.readyState){var l,c,d,u,h,m;sG.debug("request id "+t.id+"."+t.sends+" posting");try{let e=this._conn.options.contentType||"text/xml; charset=utf-8";t.xhr.open("POST",this._conn.service,!this._conn.options.sync),void 0!==t.xhr.setRequestHeader&&t.xhr.setRequestHeader("Content-Type",e),this._conn.options.withCredentials&&(t.xhr.withCredentials=!0)}catch(e){sG.error("XHR open failed: "+e.toString()),this._conn.connected||this._conn._changeConnectStatus(sU.CONNFAIL,"bad-service"),this._conn.disconnect();return}let e=()=>{if(t.date=new Date().valueOf(),this._conn.options.customHeaders){let e=this._conn.options.customHeaders;for(let s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.xhr.setRequestHeader(s,e[s])}t.xhr.send(t.data)};t.sends>1?setTimeout(function(){e()},1e3*Math.min(Math.floor(rb*this.wait),Math.pow(t.sends,3))):e(),t.sends++,this.strip&&"body"===t.xmlData.nodeName&&t.xmlData.childNodes.length?null==(d=(u=this._conn).xmlOutput)||d.call(u,t.xmlData.children[0]):null==(h=(m=this._conn).xmlOutput)||h.call(m,t.xmlData),null==(l=(c=this._conn).rawOutput)||l.call(c,t.data)}else sG.debug("_processRequest: "+(0===e?"first":"second")+" request has readyState of "+t.xhr.readyState)}_removeRequest(e){sG.debug("removing request");for(let t=this._requests.length-1;t>=0;t--)e===this._requests[t]&&this._requests.splice(t,1);e.xhr.onreadystatechange=function(){},this._throttledRequestHandler()}_restartRequest(e){let t=this._requests[e];null===t.dead&&(t.dead=new Date),this._processRequest(e)}_reqToData(e){try{return e.getResponse()}catch(e){if("parsererror"!==e.message)throw e;this._conn.disconnect("strophe-parsererror")}}_sendTerminate(e){sG.debug("_sendTerminate was called");let t=this._buildBody().attrs({type:"terminate"}),s=e instanceof rv?e.tree():e;e&&t.cnode(s);let r=new ry(t.tree(),this._onRequestStateChange.bind(this,this._conn._dataRecv.bind(this._conn)),Number(t.tree().getAttribute("rid")));this._requests.push(r),this._throttledRequestHandler()}_send(){clearTimeout(this._conn._idleTimeout),this._throttledRequestHandler(),this._conn._idleTimeout=setTimeout(()=>this._conn._onIdle(),100)}_sendRestart(){this._throttledRequestHandler(),clearTimeout(this._conn._idleTimeout)}_throttledRequestHandler(){this._requests?sG.debug("_throttledRequestHandler called with "+this._requests.length+" requests"):sG.debug("_throttledRequestHandler called with undefined requests"),this._requests&&0!==this._requests.length&&(this._requests.length>0&&this._processRequest(0),this._requests.length>1&&Math.abs(this._requests[0].rid-this._requests[1].rid)this._onOpen(),this.socket.onerror=e=>this._onError(e),this.socket.onclose=e=>this._onClose(e),this.socket.onmessage=e=>this._onInitialMessage(e)}_connect_cb(e){if(this._checkStreamError(e,sU.CONNFAIL))return sU.CONNFAIL}_handleStreamStart(e){let t=null,s=e.getAttribute("xmlns");"string"!=typeof s?t="Missing xmlns in ":s!==sz.FRAMING&&(t="Wrong xmlns in : "+s);let r=e.getAttribute("version");return"string"!=typeof r?t="Missing version in ":"1.0"!==r&&(t="Wrong version in : "+r),!t||(this._conn._changeConnectStatus(sU.CONNFAIL,t),this._conn._doDisconnect(),!1)}_onInitialMessage(e){if(0===e.data.indexOf("\s*)*/,"");if(""===t)return;let s=new DOMParser().parseFromString(t,"text/xml").documentElement;this._conn.xmlInput(s),this._conn.rawInput(e.data),this._handleStreamStart(s)&&this._connect_cb(s)}else if(0===e.data.indexOf("=0&&s.indexOf("wss:")>=0||e.indexOf("ws:")>=0)&&(this._conn._changeConnectStatus(sU.REDIRECT,"Received see-other-uri, resetting connection"),this._conn.reset(),this._conn.service=s,this._connect())}else this._conn._changeConnectStatus(sU.CONNFAIL,"Received closing stream"),this._conn._doDisconnect()}else{this._replaceMessageHandler();let t=this._streamWrap(e.data),s=new DOMParser().parseFromString(t,"text/xml").documentElement;this._conn._connect_cb(s,null,e.data)}}_replaceMessageHandler(){this.socket.onmessage=e=>this._onMessage(e)}_disconnect(e){if(this.socket&&this.socket.readyState!==WebSocket.CLOSED){e&&this._conn.send(e);let t=rm("close",{xmlns:sz.FRAMING});this._conn.xmlOutput(t.tree());let s=rv.serialize(t);this._conn.rawOutput(s);try{this.socket.send(s)}catch(e){sG.warn(`Couldn't send tag. "${e.message}"`)}}setTimeout(()=>this._conn._doDisconnect(),0)}_doDisconnect(){sG.debug("WebSockets _doDisconnect was called"),this._closeSocket()}_streamWrap(e){return""+e+""}_closeSocket(){if(this.socket)try{this.socket.onclose=null,this.socket.onerror=null,this.socket.onmessage=null,this.socket.close()}catch(e){sG.debug(e.message)}this.socket=null}_emptyQueue(){return!0}_onClose(e){this._conn.connected&&!this._conn.disconnecting?(sG.error("Websocket closed unexpectedly"),this._conn._doDisconnect()):e&&1006===e.code&&!this._conn.connected&&this.socket?(sG.error("Websocket closed unexcectedly"),this._conn._changeConnectStatus(sU.CONNFAIL,"The WebSocket connection could not be established or was disconnected."),this._conn._doDisconnect()):sG.debug("Websocket closed")}_no_auth_received(e){sG.error("Server did not offer a supported authentication mechanism"),this._conn._changeConnectStatus(sU.CONNFAIL,sB.NO_AUTH_MECH),null==e||e.call(this._conn),this._conn._doDisconnect()}_onDisconnectTimeout(){}_abortAllRequests(){}_onError(e){sG.error("Websocket error "+JSON.stringify(e)),this._conn._changeConnectStatus(sU.CONNFAIL,"The WebSocket connection could not be established or was disconnected."),this._disconnect()}_onIdle(){let e=this._conn._data;if(e.length>0&&!this._conn.paused){for(let t=0;t{var t;null==(t=console)||t.error(e),sG.error(`Shared Worker Error: ${e}`)}}_setSocket(){this.socket={send:e=>this.worker.port.postMessage(["send",e]),close:()=>this.worker.port.postMessage(["_closeSocket"]),onopen:()=>{},onerror:e=>this._onError(e),onclose:e=>this._onClose(e),onmessage:()=>{},readyState:null}}_connect(){this._setSocket(),this._messageHandler=e=>this._onInitialMessage(e),this.worker.port.start(),this.worker.port.onmessage=e=>this._onWorkerMessage(e),this.worker.port.postMessage(["_connect",this._conn.service,this._conn.jid])}_attach(e){this._setSocket(),this._messageHandler=e=>this._onMessage(e),this._conn.connect_callback=e,this.worker.port.start(),this.worker.port.onmessage=e=>this._onWorkerMessage(e),this.worker.port.postMessage(["_attach",this._conn.service])}_attachCallback(e,t){e===sU.ATTACHED?(this._conn.jid=t,this._conn.authenticated=!0,this._conn.connected=!0,this._conn.restored=!0,this._conn._changeConnectStatus(sU.ATTACHED)):e===sU.ATTACHFAIL&&(this._conn.authenticated=!1,this._conn.connected=!1,this._conn.restored=!1,this._conn._changeConnectStatus(sU.ATTACHFAIL))}_disconnect(e){e&&this._conn.send(e);let t=rm("close",{xmlns:sz.FRAMING});this._conn.xmlOutput(t.tree());let s=rv.serialize(t);this._conn.rawOutput(s),this.worker.port.postMessage(["send",s]),this._conn._doDisconnect()}_closeSocket(){this.socket.close()}_replaceMessageHandler(){this._messageHandler=e=>this._onMessage(e)}_onWorkerMessage(e){let{data:t}=e,s=t[0];if("_onMessage"===s)this._messageHandler(t[1]);else if(s in this)try{this[s].apply(this,e.data.slice(1))}catch(e){sG.error(e)}else if("log"===s){let e={debug:sF.DEBUG,info:sF.INFO,warn:sF.WARN,error:sF.ERROR,fatal:sF.FATAL},s=t[1],r=t[2];sG.log(e[s],r)}else sG.error(`Found unhandled service worker message: ${t}`)}}let rF={};class rq{constructor(e,t={}){for(let s in this.service=e,this.options=t,this.setProtocol(),this.jid="",this.domain=null,this.features=null,this._sasl_data={},this.do_bind=!1,this.do_session=!1,this.mechanisms={},this.timedHandlers=[],this.handlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this.protocolErrorHandlers={HTTP:{},websocket:{}},this._idleTimeout=null,this._disconnectTimeout=null,this.authenticated=!1,this.connected=!1,this.disconnecting=!1,this.do_authentication=!0,this.paused=!1,this.restored=!1,this._data=[],this._uniqueId=0,this._sasl_success_handler=null,this._sasl_failure_handler=null,this._sasl_challenge_handler=null,this.maxRetries=5,this._idleTimeout=setTimeout(()=>this._onIdle(),100),sX(this.options.cookies),this.registerSASLMechanisms(this.options.mechanisms),this.iqFallbackHandler=new rS(e=>this.send(rf({type:"error",id:e.getAttribute("id")}).c("error",{type:"cancel"}).c("service-unavailable",{xmlns:sz.STANZAS})),null,"iq",["get","set"]),rF)if(Object.prototype.hasOwnProperty.call(rF,s)){let e=function(){};e.prototype=rF[s],this[s]=new e,this[s].init(this)}}static addConnectionPlugin(e,t){rF[e]=t}setProtocol(){let e=this.options.protocol||"";this.options.worker?this._proto=new rB(this):0===this.service.indexOf("ws:")||0===this.service.indexOf("wss:")||0===e.indexOf("ws")?this._proto=new rU(this):this._proto=new rj(this)}reset(){this._proto._reset(),this.do_session=!1,this.do_bind=!1,this.timedHandlers=[],this.handlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this.authenticated=!1,this.connected=!1,this.disconnecting=!1,this.restored=!1,this._data=[],this._requests=[],this._uniqueId=0}pause(){this.paused=!0}resume(){this.paused=!1}getUniqueId(e){let t="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){let t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)});return"string"==typeof e||"number"==typeof e?t+":"+e:t+""}addProtocolErrorHandler(e,t,s){this.protocolErrorHandlers[e][t]=s}connect(e,t,s,r,i,o,a,l=3e3){this.jid=e,this.authzid=rd(this.jid),this.authcid=a||ra(this.jid),this.pass=t,this.scram_keys=null,this.connect_callback=s,this.disconnecting=!1,this.connected=!1,this.authenticated=!1,this.restored=!1,this.disconnection_timeout=l,this.domain=rl(this.jid),this._changeConnectStatus(sU.CONNECTING,null),this._proto._connect(r,i,o)}attach(e,t,s,r,i,o,a){if(this._proto instanceof rj&&"string"==typeof e)return this._proto._attach(e,t,s,r,i,o,a);if(this._proto instanceof rB&&"function"==typeof e)return this._proto._attach(e);throw new rP('The "attach" method is not available for your connection protocol')}restore(e,t,s,r,i){if(!(this._proto instanceof rj)||!this._sessionCachingSupported())throw new rP('The "restore" method can only be used with a BOSH connection.');this._sessionCachingSupported()&&this._proto._restore(e,t,s,r,i)}_sessionCachingSupported(){if(this._proto instanceof rj){if(!JSON)return!1;try{sessionStorage.setItem("_strophe_","_strophe_"),sessionStorage.removeItem("_strophe_")}catch(e){return!1}return!0}return!1}xmlInput(e){}xmlOutput(e){}rawInput(e){}rawOutput(e){}nextValidRid(e){}send(e){if(null!==e){if(Array.isArray(e))e.forEach(e=>this._queueData(e instanceof rv?e.tree():e));else{let t=e instanceof rv?e.tree():e;this._queueData(t)}this._proto._send()}}flush(){clearTimeout(this._idleTimeout),this._onIdle()}sendPresence(e,t,s,r){let i=null,o=e instanceof rv?e.tree():e,a=o.getAttribute("id");if(a||(a=this.getUniqueId("sendPresence"),o.setAttribute("id",a)),"function"==typeof t||"function"==typeof s){let e=this.addHandler(e=>{i&&this.deleteTimedHandler(i),"error"===e.getAttribute("type")?null==s||s(e):t&&t(e)},null,"presence",null,a);r&&(i=this.addTimedHandler(r,()=>(this.deleteHandler(e),null==s||s(null),!1)))}return this.send(o),a}sendIQ(e,t,s,r){let i=null,o=e instanceof rv?e.tree():e,a=o.getAttribute("id");if(a||(a=this.getUniqueId("sendIQ"),o.setAttribute("id",a)),"function"==typeof t||"function"==typeof s){let e=this.addHandler(e=>{i&&this.deleteTimedHandler(i);let r=e.getAttribute("type");if("result"===r)null==t||t(e);else if("error"===r)null==s||s(e);else{let e=Error(`Got bad IQ type of ${r}`);throw e.name="StropheError",e}},null,"iq",["error","result"],a);r&&(i=this.addTimedHandler(r,()=>(this.deleteHandler(e),null==s||s(null),!1)))}return this.send(o),a}_queueData(e){if(null===e||!e.tagName||!e.childNodes){let e=Error("Cannot queue non-DOMElement.");throw e.name="StropheError",e}this._data.push(e)}_sendRestart(){this._data.push("restart"),this._proto._sendRestart(),this._idleTimeout=setTimeout(()=>this._onIdle(),100)}addTimedHandler(e,t){let s=new rx(e,t);return this.addTimeds.push(s),s}deleteTimedHandler(e){this.removeTimeds.push(e)}addHandler(e,t,s,r,i,o,a){let l=new rS(e,t,s,r,i,o,a);return this.addHandlers.push(l),l}deleteHandler(e){this.removeHandlers.push(e);let t=this.addHandlers.indexOf(e);t>=0&&this.addHandlers.splice(t,1)}registerSASLMechanisms(e){this.mechanisms={},(e||[rE,r$,rk,rz,rC,rI,rR,rD,rL]).forEach(e=>this.registerSASLMechanism(e))}registerSASLMechanism(e){let t=new e;this.mechanisms[t.mechname]=t}disconnect(e){if(this._changeConnectStatus(sU.DISCONNECTING,e),e?sG.info("Disconnect was called because: "+e):sG.debug("Disconnect was called"),this.connected){let e=null;this.disconnecting=!0,this.authenticated&&(e=rg({xmlns:sz.CLIENT,type:"unavailable"})),this._disconnectTimeout=this._addSysTimedHandler(this.disconnection_timeout,this._onDisconnectTimeout.bind(this)),this._proto._disconnect(e)}else sG.debug("Disconnect was called before Strophe connected to the server"),this._proto._abortAllRequests(),this._doDisconnect()}_changeConnectStatus(e,t,s){for(let s in rF)if(Object.prototype.hasOwnProperty.call(rF,s)){let r=this[s];if(r.statusChanged)try{r.statusChanged(e,t)}catch(e){sG.error(`${s} plugin caused an exception changing status: ${e}`)}}if(this.connect_callback)try{this.connect_callback(e,t,s)}catch(e){sZ(e),sG.error(`User connection callback caused an exception: ${e}`)}}_doDisconnect(e){"number"==typeof this._idleTimeout&&clearTimeout(this._idleTimeout),null!==this._disconnectTimeout&&(this.deleteTimedHandler(this._disconnectTimeout),this._disconnectTimeout=null),sG.debug("_doDisconnect was called"),this._proto._doDisconnect(),this.authenticated=!1,this.disconnecting=!1,this.restored=!1,this.handlers=[],this.timedHandlers=[],this.removeTimeds=[],this.removeHandlers=[],this.addTimeds=[],this.addHandlers=[],this._changeConnectStatus(sU.DISCONNECTED,e),this.connected=!1}_dataRecv(e,t){let s="_reqToData"in this._proto?this._proto._reqToData(e):e;if(null===s)return;for(this.xmlInput!==rq.prototype.xmlInput&&(s.nodeName===this._proto.strip&&s.childNodes.length?this.xmlInput(s.childNodes[0]):this.xmlInput(s)),this.rawInput!==rq.prototype.rawInput&&(t?this.rawInput(t):this.rawInput(rv.serialize(s)));this.removeHandlers.length>0;){let e=this.removeHandlers.pop(),t=this.handlers.indexOf(e);t>=0&&this.handlers.splice(t,1)}for(;this.addHandlers.length>0;)this.handlers.push(this.addHandlers.pop());if(this.disconnecting&&this._proto._emptyQueue())return void this._doDisconnect();let r=s.getAttribute("type");if(null!==r&&"terminate"===r){if(this.disconnecting)return;let e=s.getAttribute("condition"),t=s.getElementsByTagName("conflict");null!==e?("remote-stream-error"===e&&t.length>0&&(e="conflict"),this._changeConnectStatus(sU.CONNFAIL,e)):this._changeConnectStatus(sU.CONNFAIL,sB.UNKNOWN_REASON),this._doDisconnect(e);return}ri(s,null,e=>{let t=[];this.handlers=this.handlers.reduce((s,r)=>{try{r.isMatch(e)&&(this.authenticated||!r.user)?(r.run(e)&&s.push(r),t.push(r)):s.push(r)}catch(e){sG.warn("Removing Strophe handlers due to uncaught exception: "+e.message)}return s},[]),!t.length&&this.iqFallbackHandler.isMatch(e)&&this.iqFallbackHandler.run(e)})}_connect_cb(e,t,s){let r;sG.debug("_connect_cb was called"),this.connected=!0;try{r="_reqToData"in this._proto?this._proto._reqToData(e):e}catch(e){if(e.name!==sB.BAD_FORMAT)throw e;this._changeConnectStatus(sU.CONNFAIL,sB.BAD_FORMAT),this._doDisconnect(sB.BAD_FORMAT)}if(!r||(this.xmlInput!==rq.prototype.xmlInput&&(r.nodeName===this._proto.strip&&r.childNodes.length?this.xmlInput(r.childNodes[0]):this.xmlInput(r)),this.rawInput!==rq.prototype.rawInput&&(s?this.rawInput(s):this.rawInput(rv.serialize(r))),this._proto._connect_cb(r)===sU.CONNFAIL))return;if(!(r.getElementsByTagNameNS?r.getElementsByTagNameNS(sz.STREAM,"features").length>0:r.getElementsByTagName("stream:features").length>0||r.getElementsByTagName("features").length>0))return void this._proto._no_auth_received(t);let i=Array.from(r.getElementsByTagName("mechanism")).map(e=>this.mechanisms[e.textContent]).filter(e=>e);if(0===i.length&&0===r.getElementsByTagName("auth").length)return void this._proto._no_auth_received(t);!1!==this.do_authentication&&this.authenticate(i)}sortMechanismsByPriority(e){for(let t=0;te[s].priority&&(s=r);if(s!==t){let r=e[t];e[t]=e[s],e[s]=r}}return e}authenticate(e){this._attemptSASLAuth(e)||this._attemptLegacyAuth()}_attemptSASLAuth(e){e=this.sortMechanismsByPriority(e||[]);let t=!1;for(let s=0;s{for(;e.length;)this.deleteHandler(e.pop());return this._onStreamFeaturesAfterSASL(t),!1};return t.push(this._addSysHandler(e=>s(t,e),null,"stream:features",null,null)),t.push(this._addSysHandler(e=>s(t,e),sz.STREAM,"features",null,null)),this._sendRestart(),!1}_onStreamFeaturesAfterSASL(e){this.features=e;for(let t=0;t0&&(t=sB.CONFLICT),this._changeConnectStatus(sU.AUTHFAIL,t,e),!1}let t=e.getElementsByTagName("bind");if(!(t.length>0))return sG.warn("Resource binding failed."),this._changeConnectStatus(sU.AUTHFAIL,null,e),!1;{let e=t[0].getElementsByTagName("jid");e.length>0&&(this.authenticated=!0,this.jid=ro(e[0]),this.do_session?this._establishSession():this._changeConnectStatus(sU.CONNECTED,null))}}_establishSession(){if(!this.do_session)throw Error(`Connection.prototype._establishSession called but apparently ${sz.SESSION} wasn't advertised by the server`);this._addSysHandler(this._onSessionResultIQ.bind(this),null,null,null,"_session_auth_2"),this.send(rf({type:"set",id:"_session_auth_2"}).c("session",{xmlns:sz.SESSION}).tree())}_onSessionResultIQ(e){return"result"===e.getAttribute("type")?(this.authenticated=!0,this._changeConnectStatus(sU.CONNECTED,null)):"error"===e.getAttribute("type")&&(this.authenticated=!1,sG.warn("Session creation failed."),this._changeConnectStatus(sU.AUTHFAIL,null,e)),!1}_sasl_failure_cb(e){return this._sasl_success_handler&&(this.deleteHandler(this._sasl_success_handler),this._sasl_success_handler=null),this._sasl_challenge_handler&&(this.deleteHandler(this._sasl_challenge_handler),this._sasl_challenge_handler=null),this._sasl_mechanism&&this._sasl_mechanism.onFailure(),this._changeConnectStatus(sU.AUTHFAIL,null,e),!1}_auth2_cb(e){return"result"===e.getAttribute("type")?(this.authenticated=!0,this._changeConnectStatus(sU.CONNECTED,null)):"error"===e.getAttribute("type")&&(this._changeConnectStatus(sU.AUTHFAIL,null,e),this.disconnect("authentication failed")),!1}_addSysTimedHandler(e,t){let s=new rx(e,t);return s.user=!1,this.addTimeds.push(s),s}_addSysHandler(e,t,s,r,i){let o=new rS(e,t,s,r,i);return o.user=!1,this.addHandlers.push(o),o}_onDisconnectTimeout(){return sG.debug("_onDisconnectTimeout was called"),this._changeConnectStatus(sU.CONNTIMEOUT,null),this._proto._onDisconnectTimeout(),this._doDisconnect(),!1}_onIdle(){for(;this.addTimeds.length>0;)this.timedHandlers.push(this.addTimeds.pop());for(;this.removeTimeds.length>0;){let e=this.removeTimeds.pop(),t=this.timedHandlers.indexOf(e);t>=0&&this.timedHandlers.splice(t,1)}let e=new Date().getTime(),t=[];for(let s=0;sthis._onIdle(),100))}}class rH extends String{}class rG extends rv{#i;#n;#o;constructor(e,t){super("stanza"),this.#n=e,this.#o=t}static unsafeXML(e){return new rH(e)}static toElement(e,t){let s=s3(e),r=s6(s);if(r)throw Error(`Parser Error: ${r}`);let i=s4(s8(s));if(["message","iq","presence"].includes(i.nodeName.toLowerCase())&&"jabber:client"!==i.namespaceURI&&"jabber:server"!==i.namespaceURI){let e=`Invalid namespaceURI ${i.namespaceURI}`;if(t)throw Error(e);sG.error(e)}return i}buildTree(){return rG.toElement(this.toString(),!0)}toString(){return this.#i=this.#i||this.#n.reduce((e,t,s)=>{let r=this.#o.length>s?this.#o[s]:"";return e+t+(Array.isArray(r)?r.map(e=>e instanceof rH||e instanceof rv?e:rr(e.toString())).join(""):r instanceof rH||r instanceof rv?r:rr((null!=r?r:"").toString()))},"").trim(),this.#i}}function rW(e,...t){return new rG(e,t)}let rZ={VERSION:"3.0.0",get TIMEOUT(){return rj.getTimeoutMultplier()},set TIMEOUT(n){rj.setTimeoutMultiplier(n)},get SECONDARY_TIMEOUT(){return rj.getSecondaryTimeoutMultplier()},set SECONDARY_TIMEOUT(n){rj.setSecondaryTimeoutMultiplier(n)},...rh,...sG,Request:ry,Bosh:rj,Websocket:rU,WorkerWebsocket:rB,Connection:rq,Handler:rS,SASLAnonymous:rE,SASLPlain:rC,SASLSHA1:rI,SASLSHA256:rR,SASLSHA384:rD,SASLSHA512:rL,SASLOAuthBearer:rk,SASLExternal:r$,SASLXOAuth2:rz,Stanza:rG,Builder:rv,ElementType:sq,ErrorCondition:sB,LogLevel:sF,NS:sz,SASLMechanism:rA,Status:sU,TimedHandler:rx,XHTML:{...sP,validTag:s9,validCSS:re,validAttribute:s7},serialize:e=>rv.serialize(e),setLogLevel(e){sG.setLogLevel(e)},addNamespace(e,t){rZ.NS[e]=t},addConnectionPlugin(e,t){rq.addConnectionPlugin(e,t)}};globalThis.$build=rm,globalThis.$iq=rf,globalThis.$msg=rp,globalThis.$pres=rg,globalThis.Strophe=rZ,globalThis.stx=rW;let rV=rG.toElement;globalThis.toStanza=rG.toElement;let rQ=59,rK="v12.0.0",rJ=["chat","dnd","away","xa"],rY=["available","unavailable","error","probe","subscribe","subscribed","unsubscribe","unsubscribed"],rX={offline:6,unavailable:5,xa:4,away:3,dnd:2,chat:1,online:1},r1=["og:article:author","og:article:published_time","og:description","og:image","og:image:height","og:image:width","og:site_name","og:title","og:type","og:url","og:video:height","og:video:secure_url","og:video:tag","og:video:type","og:video:url","og:video:width"],r0="anonymous",r2="closed",r4="external",r3="login",r6="logout",r8="opened",r5="prebind",r9="success",r7="failure",ie="inactive",it="active",is="composing",ir="paused",ii="gone",io="chatbox",ia="chatroom",il="headline",ic="controlbox",id={};id[rZ.Status.ATTACHED]="ATTACHED",id[rZ.Status.AUTHENTICATING]="AUTHENTICATING",id[rZ.Status.AUTHFAIL]="AUTHFAIL",id[rZ.Status.CONNECTED]="CONNECTED",id[rZ.Status.CONNECTING]="CONNECTING",id[rZ.Status.CONNFAIL]="CONNFAIL",id[rZ.Status.DISCONNECTED]="DISCONNECTED",id[rZ.Status.DISCONNECTING]="DISCONNECTING",id[rZ.Status.ERROR]="ERROR",id[rZ.Status.RECONNECTING]="RECONNECTING",id[rZ.Status.REDIRECT]="REDIRECT",rZ.addNamespace("ACTIVITY","http://jabber.org/protocol/activity"),rZ.addNamespace("CARBONS","urn:xmpp:carbons:2"),rZ.addNamespace("CHATSTATES","http://jabber.org/protocol/chatstates"),rZ.addNamespace("CSI","urn:xmpp:csi:0"),rZ.addNamespace("DELAY","urn:xmpp:delay"),rZ.addNamespace("EME","urn:xmpp:eme:0"),rZ.addNamespace("FALLBACK","urn:xmpp:fallback:0"),rZ.addNamespace("FASTEN","urn:xmpp:fasten:0"),rZ.addNamespace("FORWARD","urn:xmpp:forward:0"),rZ.addNamespace("HINTS","urn:xmpp:hints"),rZ.addNamespace("HTTPUPLOAD","urn:xmpp:http:upload:0"),rZ.addNamespace("MAM","urn:xmpp:mam:2"),rZ.addNamespace("MARKERS","urn:xmpp:chat-markers:0"),rZ.addNamespace("MENTIONS","urn:xmpp:mmn:0"),rZ.addNamespace("MESSAGE_CORRECT","urn:xmpp:message-correct:0"),rZ.addNamespace("MODERATE","urn:xmpp:message-moderate:1"),rZ.addNamespace("MODERATE0","urn:xmpp:message-moderate:0"),rZ.addNamespace("NICK","http://jabber.org/protocol/nick"),rZ.addNamespace("OCCUPANTID","urn:xmpp:occupant-id:0"),rZ.addNamespace("OMEMO","eu.siacs.conversations.axolotl"),rZ.addNamespace("OUTOFBAND","jabber:x:oob"),rZ.addNamespace("PUBSUB","http://jabber.org/protocol/pubsub"),rZ.addNamespace("RAI","urn:xmpp:rai:0"),rZ.addNamespace("RECEIPTS","urn:xmpp:receipts"),rZ.addNamespace("REFERENCE","urn:xmpp:reference:0"),rZ.addNamespace("REGISTER","jabber:iq:register"),rZ.addNamespace("RETRACT","urn:xmpp:message-retract:1"),rZ.addNamespace("RETRACT0","urn:xmpp:message-retract:0"),rZ.addNamespace("ROSTERX","http://jabber.org/protocol/rosterx"),rZ.addNamespace("RSM","http://jabber.org/protocol/rsm"),rZ.addNamespace("SID","urn:xmpp:sid:0"),rZ.addNamespace("SPOILER","urn:xmpp:spoiler:0"),rZ.addNamespace("STANZAS","urn:ietf:params:xml:ns:xmpp-stanzas"),rZ.addNamespace("STYLING","urn:xmpp:styling:0"),rZ.addNamespace("VCARD","vcard-temp"),rZ.addNamespace("VCARDUPDATE","vcard-temp:x:update"),rZ.addNamespace("XFORM","jabber:x:data"),rZ.addNamespace("XHTML","http://www.w3.org/1999/xhtml");let iu=["converse-adhoc","converse-bookmarks","converse-blocklist","converse-bosh","converse-caps","converse-chat","converse-chatboxes","converse-disco","converse-emoji","converse-headlines","converse-mam","converse-muc","converse-ping","converse-pubsub","converse-roster","converse-smacks","converse-status","converse-vcard","converse-omemo"],ih=["active","composing","gone","inactive","paused"],im=["displayed","received","acknowledged"],ip={TAB:"Tab",ENTER:"Enter",SHIFT:"Shift",CTRL:"Control",ALT:"Alt",ESCAPE:"Escape",LEFT_ARROW:"ArrowLeft",UP_ARROW:"ArrowUp",RIGHT_ARROW:"ArrowRight",DOWN_ARROW:"ArrowDown",FORWARD_SLASH:"Divide",AT:"Alt",META:"Meta"},ig={"text-private":"password","text-single":"text",fixed:"label",boolean:"checkbox",hidden:"hidden","jid-multi":"textarea","list-single":"dropdown","list-multi":"dropdown"},iv={"xs:anyURI":"url","xs:byte":"number","xs:date":"date","xs:dateTime":"datetime","xs:int":"number","xs:integer":"number","xs:time":"time"},i_={chatboxes:null,bookmarks:null,ANONYMOUS:r0,CLOSED:r2,EXTERNAL:r4,LOGIN:r3,LOGOUT:r6,OPENED:r8,PREBIND:r5,SUCCESS:r9,FAILURE:r7,INACTIVE:ie,ACTIVE:it,COMPOSING:is,PAUSED:ir,GONE:ii};class iy extends(0,es.EventEmitter)(Object){constructor(){super();let e=new Proxy(this,{get:(e,t)=>(!sO()&&"string"==typeof t&&Object.keys(i_).includes(t)&&Q.warn(`Accessing ${t} on _converse is DEPRECATED`),Reflect.get(e,t))});return e.initialize(),e}initialize(){this.VERSION_NAME=rK,this.strict_plugin_dependencies=!1,this.pluggable=null,this.templates={},this.storage={},this.promises={initialized:er()},this.NUM_PREKEYS=100,this.TIMEOUTS={PAUSED:1e4,INACTIVE:9e4},Object.assign(this,i_),this.api=null,this.labels={},this.exports={},this.constants={},this.env={},this.state={},this.initSession()}initSession(){this.session?.destroy(),this.session=new es.Model,Object.assign(this,{jid:void 0,bare_jid:void 0,domain:void 0,resource:void 0})}__(...e){return X.__(...e)}___(e){return e}}let ib=new iy;({enable:function(e,t,s){return void 0===s&&(s="pluginSocket"),void 0===t&&(t="plugged"),e[s]=new et(e,t),e}}).enable(ib,"_converse","pluggable");let iw=ib,ij={async trigger(e){if(!iw._events)return;let t=Array.from(arguments),s=t.pop();if(s&&s.synchronous){let s=iw._events[e]||[],r=t.splice(1);await Promise.all(s.map(e=>e.callback.apply(e.ctx,r)))}else iw.trigger.apply(iw,arguments);let r=iw.promises[e];void 0!==r&&r.resolve(arguments[1])},hook(e,t,s){let r=iw._events[e]||[];return r.length?r.reduce((e,s)=>e.then(e=>s.callback(t,e)),Promise.resolve(s)):s},listen:{once:iw.once.bind(iw),on:iw.on.bind(iw),not:iw.off.bind(iw),stanza(e,t,s){sx(t)?(s=t,t={}):t=t||{},iw.api.connection.get().addHandler(s,t.ns,e,t.type,t.id,t.from,t)}}},iS=function(){return ed.Date.now()};var ix=/\s/;let iA=function(e){for(var t=e.length;t--&&ix.test(e.charAt(t)););return t};var iE=/^\s+/,i$=0/0,ik=/^[-+]0x[0-9a-f]+$/i,iC=/^0b[01]+$/i,iT=/^0o[0-7]+$/i,iM=parseInt;let iO=function(e){if("number"==typeof e)return e;if(tK(e))return i$;if(eb(e)){var t,s="function"==typeof e.valueOf?e.valueOf():e;e=eb(s)?s+"":s}if("string"!=typeof e)return 0===e?e:+e;e=(t=e)?t.slice(0,iA(t)+1).replace(iE,""):t;var r=iC.test(e);return r||iT.test(e)?iM(e.slice(2),r?2:8):ik.test(e)?i$:+e};var iN=Math.max,iI=Math.min;let iR=function(e,t,s){var r,i,o,a,l,c,d=0,u=!1,h=!1,m=!0;if("function"!=typeof e)throw TypeError("Expected a function");function p(t){var s=r,o=i;return r=i=void 0,d=t,a=e.apply(o,s)}function f(e){var s=e-c,r=e-d;return void 0===c||s>=t||s<0||h&&r>=o}function g(){var e,s,r,i=iS();if(f(i))return v(i);l=setTimeout(g,(e=i-c,s=i-d,r=t-e,h?iI(r,o-s):r))}function v(e){return(l=void 0,m&&r)?p(e):(r=i=void 0,a)}function _(){var e,s=iS(),o=f(s);if(r=arguments,i=this,c=s,o){if(void 0===l)return d=e=c,l=setTimeout(g,t),u?p(e):a;if(h)return clearTimeout(l),l=setTimeout(g,t),p(c)}return void 0===l&&(l=setTimeout(g,t)),a}return t=iO(t)||0,eb(s)&&(u=!!s.leading,o=(h="maxWait"in s)?iN(iO(s.maxWait)||0,t):o,m="trailing"in s?!!s.trailing:m),_.cancel=function(){void 0!==l&&clearTimeout(l),d=0,r=c=i=l=void 0},_.flush=function(){return void 0===l?a:v(iS())},_};var iD=o(245);let iL=function(e,t){for(var s=-1,r=null==e?0:e.length;++s1?s[i-1]:void 0,a=i>2?s[2]:void 0;for(o=e.length>3&&"function"==typeof o?(i--,o):void 0,a&&nj(s[0],s[1],a)&&(o=i<3?void 0:o,i=1),t=Object(t);++r=t||s<0||h&&r>=a}function g(){let e,s,r,i=Date.now();if(f(i))return v(i);c=setTimeout(g,(e=i-d,s=i-u,r=t-e,h?n$(r,a-s):r))}function v(e){return(c=void 0,i)?p(e):(i=o=void 0,s.promise?m:l)}function _(e,t){if(Array.isArray(e)&&Array.isArray(t))if(s?.dedupeArrays)return e.concat(t.filter(t=>-1===e.indexOf(t)));else return e.concat(t)}function y(){var e;let r=Date.now(),a=f(r);if(e=Array.from(arguments),i=i?.length?e.length?s?.concatArrays||s?.dedupeArrays?nA(i,e,_):nx(i,e):i:e||[],o=this,d=r,a){if(void 0===c)return u=d,c=setTimeout(g,t),s.promise?m:l;if(h)return clearTimeout(c),c=setTimeout(g,t),p(d)}return void 0===c&&(c=setTimeout(g,t)),s.promise?m:l}return t=nk(t)||0,r=typeof s,null!=s&&("object"===r||"function"===r)&&(a=(h="maxWait"in s)?nE(nk(s.maxWait)||0,t):a),y.cancel=function(){void 0!==c&&clearTimeout(c),u=0,i=d=o=c=void 0},y.flush=function(){return void 0===c?l:v(Date.now())},y},nT=function(e,t){t&&e.then(function(e){t(null,e)},function(e){t(e)})};function nM(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}function nO(e){return"string"!=typeof e&&(console.warn(`${e} used as a key, but it is not a string.`),e=String(e)),e}let nN=function(e,t){e=e||[],t=t||{};try{return new Blob(e,t)}catch(i){if("TypeError"!==i.name)throw i;for(var s=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),r=0;r>2],r+=nI[(3&s[t])<<4|s[t+1]>>4],r+=nI[(15&s[t+1])<<2|s[t+2]>>6],r+=nI[63&s[t+2]];return s.length%3==2?r=r.substring(0,r.length-1)+"=":s.length%3==1&&(r=r.substring(0,r.length-2)+"=="),r}function nY(e,t){let s=e.name+"/";return e.storeName!==t.storeName&&(s+=e.storeName+"/"),s}let nX={serializer:{serialize:function(e,t){var s="";if(e&&(s=nK.call(e)),e&&("[object ArrayBuffer]"===s||e.buffer&&"[object ArrayBuffer]"===nK.call(e.buffer))){var r,i=nD;e instanceof ArrayBuffer?(r=e,i+=nz):(r=e.buffer,"[object Int8Array]"===s?i+=nU:"[object Uint8Array]"===s?i+=nB:"[object Uint8ClampedArray]"===s?i+=nF:"[object Int16Array]"===s?i+=nq:"[object Uint16Array]"===s?i+=nG:"[object Int32Array]"===s?i+=nH:"[object Uint32Array]"===s?i+=nW:"[object Float32Array]"===s?i+=nZ:"[object Float64Array]"===s?i+=nV:t(Error("Failed to get type for BinaryArray"))),t(i+nJ(r))}else if("[object Blob]"===s){var o=new FileReader;o.onload=function(){t(nD+nP+"~~local_forage_type~"+e.type+"~"+nJ(this.result))},o.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(s){console.error("Couldn't convert value into a JSON string: ",e),t(null,s)}},deserialize:function(e){if(e.substring(0,nL)!==nD)return JSON.parse(e);var t,s=e.substring(nQ),r=e.substring(nL,nQ);if(r===nP&&nR.test(s)){var i=s.match(nR);t=i[1],s=s.substring(i[0].length)}var o=function(e){var t,s,r,i,o,a=.75*e.length,l=e.length,c=0;"="===e[e.length-1]&&(a--,"="===e[e.length-2]&&a--);var d=new ArrayBuffer(a),u=new Uint8Array(d);for(t=0;t>4,u[c++]=(15&r)<<4|i>>2,u[c++]=(3&i)<<6|63&o;return d}(s);switch(r){case nz:return o;case nP:return nN([o],{type:t});case nU:return new Int8Array(o);case nB:return new Uint8Array(o);case nF:return new Uint8ClampedArray(o);case nq:return new Int16Array(o);case nG:return new Uint16Array(o);case nH:return new Int32Array(o);case nW:return new Uint32Array(o);case nZ:return new Float32Array(o);case nV:return new Float64Array(o);default:throw Error("Unkown type: "+r)}}}};async function n1(e,t,s){e=nO(e),await this.ready();let r=t=t??null;return nX.serializer.serialize(t,(t,i)=>{if(i)throw i;try{sessionStorage.setItem(nX.keyPrefix+e,t),nT(Promise.resolve(r),s)}catch(e){throw("QuotaExceededError"===e.name||"NS_ERROR_DOM_QUOTA_REACHED"===e.name)&&console.error("Your sesionStorage capacity is used up."),e}}),t}let n0={_driver:"sessionStorageWrapper",_initStorage:function(e){if(nX.keyPrefix=nY(e,this._defaultConfig),e)for(let t in e)nX[t]=e[t]},_support:function(){try{if(sessionStorage&&"setItem"in sessionStorage)return!0}catch(e){console.log(e)}return!1}(),iterate:function(e,t){let s=this.ready().then(function(){let t=nX.keyPrefix,s=t.length,r=sessionStorage.length,i=1;for(let o=0;o=0;t--){let s=sessionStorage.key(t);0===s.indexOf(e)&&sessionStorage.removeItem(s)}});return nT(t,e),t},length:function(e){let t=this.keys().then(function(e){return e.length});return nT(t,e),t},key:function(e,t){let s=this.ready().then(function(){let t;try{t=sessionStorage.key(e)}catch(e){t=null}return t&&(t=t.substring(nX.keyPrefix.length)),t});return nT(s,t),s},keys:function(e){let t=this.ready().then(function(){let e=sessionStorage.length,t=[];for(let s=0;s=0;t--){let s=sessionStorage.key(t);0===s.indexOf(e)&&sessionStorage.removeItem(s)}}):Promise.reject(Error("Invalid arguments")),t),s}};var n2=o(459);function n4(e){return n4.result?n4.result:e&&"function"==typeof e.getSerializer?(n4.result=e.getSerializer(),n4.result):Promise.reject(Error("localforage.getSerializer() was not available! localforage v1.4+ is required!"))}function n3(e,t){return t&&e.then(function(e){t(null,e)},function(e){t(e)}),e}function n6(e,t){var s=this.getItem(e).then(function(t){return{key:e,value:t}});return n3(s,t),s}function n8(e){var t=this;return new Promise(function(s,r){for(var i=[],o=0,a=e.length;ot)}return new Promise(function(r,i){t.ready().then(function(){var o,a=t._dbInfo,l=a.db.transaction(a.storeName,"readonly").objectStore(a.storeName),c=e.sort(s),d=n9.bound(e[0],e[e.length-1],!1,!1);if("getAll"in l)(o=l.getAll(d)).onsuccess=function(){var e=o.result;void 0===e&&(e=null),r(e)};else{o=l.openCursor(d);var u={},h=0;o.onsuccess=function(){var e=o.result;if(!e)return void r(u);for(var t=e.key;t>c[h];)if(++h===c.length)return void r(u);if(t===c[h]){var s=e.value;void 0===s&&(s=null),u[t]=s,e.continue()}else e.continue(c[h])}}o.onerror=function(){i(o.error)}}).catch(i)})}function oe(e){var t=this;return new Promise(function(s,r){t.ready().then(function(){return n4(t)}).then(function(i){var o=t._dbInfo;o.db.transaction(function(t){for(var a=Array(e.length),l=0,c=e.length;lthis.store.setItems(e),50,{promise:!0})),this.storeInitialized=Promise.resolve()),this.name=e}async initStore(e,t){if("session"===e)await nu().setDriver(n0._driver);else if("local"===e)await nu().config({driver:nu().LOCALSTORAGE});else if("in_memory"===e)await nu().config({driver:oi});else if("indexed"!==e)throw Error("Skeletor.storage: No storage type was specified");this.store=nu(),t&&(this.store.debouncedSetItems=nC(e=>this.store.setItems(e),50,{promise:!0}))}flush(){return this.store.debouncedSetItems?.flush()}async clear(){await this.store.removeItem(this.name).catch(e=>console.error(e));let e=RegExp(`^${this.name}-`),t=(await this.store.keys()).filter(t=>e.test(t));await Promise.all(t.map(e=>this.store.removeItem(e).catch(e=>console.error(e))))}sync(){let e=this;async function t(t,s,r){let i,o,a,l,c=s.collection;["patch","update"].includes(t)&&(l=nc(s.attributes,5)),await e.storeInitialized;try{let o=s.attributes;switch(t){case"read":i=void 0!==s.id?await e.find(s):await e.findAll();break;case"create":i=await e.create(s,r);break;case"patch":case"update":r.wait&&(s.attributes=l),a=e.update(s),r.wait&&(s.attributes=o),i=await a;break;case"delete":i=await e.destroy(s,c)}}catch(t){o=22===t.code&&0===e.getStorageSize()?"Private browsing is unsupported":t.message}if(i){if(r&&r.success){let e="read"===t?i:null;r.success(e,r)}}else o=o||"Record Not Found",r&&r.error&&r.error(o)}return t.__name__="localSync",t}removeCollectionReference(e,t){if(!t)return;let s=t.filter(t=>t.id!==e.id).map(e=>this.getItemName(e.id));return this.store.setItem(this.name,s)}addCollectionReference(e,t){if(!t)return;let s=t.map(e=>this.getItemName(e.id)),r=this.getItemName(e.id);return s.includes(r)||s.push(r),this.store.setItem(this.name,s)}getCollectionReferenceData(e){if(!e.collection)return{};let t=e.collection.map(e=>this.getItemName(e.id)),s=this.getItemName(e.id);t.includes(s)||t.push(s);let r={};return r[this.name]=t,r}async save(e){if(this.store.setItems){let t={};return t[this.getItemName(e.id)]=e.toJSON(),Object.assign(t,this.getCollectionReferenceData(e)),this.store.debouncedSetItems?this.store.debouncedSetItems(t):this.store.setItems(t)}{let t=this.getItemName(e.id),s=await this.store.setItem(t,e.toJSON());return await this.addCollectionReference(e,e.collection),s}}create(e,t){return e.id||(e.id=or()+or()+"-"+or()+"-"+or()+"-"+or()+"-"+or()+or()+or(),e.set(e.idAttribute,e.id,t)),this.save(e)}update(e){return this.save(e)}find(e){return this.store.getItem(this.getItemName(e.id))}async findAll(){let e=await this.store.getItem(this.name);return e?.length?Object.values(await this.store.getItems(e)):[]}async destroy(e,t){return await this.flush(),await this.store.removeItem(this.getItemName(e.id)),await this.removeCollectionReference(e,t),e}getStorageSize(){return this.store.length}getItemName(e){return this.name+"-"+e}}on.sessionStorageInitialized=nu().defineDriver(n0),on.localForage=nu();var oo=o(2),oa=o(63);function ol(){return iw.state.config.get("trusted")?"sessionStorage"===sT.get("persistent_store")?"session":"persistent":"session"}function oc(e){return"persistent"===e&&"IndexedDB"===sT.get("persistent_store")}function od(e,t){let s=t||ol(),r=iw.storage[s];if(void 0===r)throw TypeError(`createStore: Could not find store for ${e}`);return new on(e,r,oc(t))}function ou(e,t,s){if(e.browserStorage=od(t,s=s||ol()),oc(s)){let t=()=>e.browserStorage.flush(),s=sN();window.addEventListener(s,t),e.on("destroy",()=>window.removeEventListener(s,t)),e.listenTo(iw,"beforeLogout",t)}}function oh(){return("WebSocket"in window||"MozWebSocket"in window)&&sT.get("websocket_url")?sT.get("websocket_url"):sT.get("bosh_service_url")?sT.get("bosh_service_url"):""}function om(e){return"string"==typeof e&&!(e.split("/").length-1>1)&&2===e.split("@").filter(e=>!!e).length&&!e.startsWith("@")&&!e.endsWith("@")}function op(e){return!e.startsWith("@")&&!e.endsWith("@")}function of(e,t){return"string"==typeof e&&"string"==typeof t&&rZ.getBareJidFromJid(e).toLowerCase()===rZ.getBareJidFromJid(t).toLowerCase()}function og(e,t){return"string"==typeof e&&"string"==typeof t&&rZ.getDomainFromJid(e).toLowerCase()===rZ.getDomainFromJid(t).toLowerCase()}function ov(e){return e.startsWith("xmpp:")&&e.endsWith("?join")?e.replace(/^xmpp:/,"").replace(/\?join$/,""):e}function o_(e,t=!1){return t?e===iw.session.get("full_jid"):rZ.getBareJidFromJid(e)===iw.session.get("bare_jid")}function oy(e){e.pluggable.initialized_plugins=[];let t=iu.concat(e.api.settings.get("whitelisted_plugins"));e.api.settings.get("singleton")&&["converse-bookmarks","converse-controlbox","converse-headline","converse-register"].forEach(t=>e.api.settings.get("blacklisted_plugins").push(t)),e.pluggable.initializePlugins({_converse:e},t,e.api.settings.get("blacklisted_plugins")),e.api.trigger("pluginsInitialized")}async function ob(e){let t="converse.client-config",s=new es.Model({id:t,trusted:!0});s.browserStorage=od(t,"session"),Object.assign(e,{config:s}),Object.assign(e.state,{config:s}),await new Promise(e=>s.fetch({success:e,error:e})),e.api.trigger("clientConfigInitialized")}async function ow(e){await on.sessionStorageInitialized,e.storage.session=on.localForage.createInstance({name:sO()?"converse-test-session":"converse-session",description:"sessionStorage instance",driver:["sessionStorageWrapper"]})}function oj(e,t,s="persistent"){let{api:r}=e;if("sessionStorage"===r.settings.get("persistent_store")){e.storage[s]=e.storage.session;return}if("BrowserExtLocal"===r.settings.get("persistent_store")){on.localForage.defineDriver(oo.default).then(()=>on.localForage.setDriver("webExtensionLocalStorage")),e.storage[s]=on.localForage;return}if("BrowserExtSync"===r.settings.get("persistent_store")){on.localForage.defineDriver(oa.default).then(()=>on.localForage.setDriver("webExtensionSyncStorage")),e.storage[s]=on.localForage;return}let i={name:sO()?"converse-test-persistent":"converse-persistent",storeName:t};"localStorage"===r.settings.get("persistent_store")?(i.description="localStorage instance",i.driver=[on.localForage.LOCALSTORAGE]):"IndexedDB"===r.settings.get("persistent_store")&&(i.description="indexedDB instance",i.driver=[on.localForage.INDEXEDDB]),e.storage[s]=on.localForage.createInstance(i)}function oS(e,t){let{api:s,session:r}=e;s.settings.get("authentication")===r0||rZ.getResourceFromJid(t)||(t=t.toLowerCase()+`/converse.js-${Math.floor(0x8546898*Math.random()).toString()}`);let i=rZ.getBareJidFromJid(t),o=rZ.getResourceFromJid(t),a=rZ.getDomainFromJid(t);Object.assign(e,{jid:t,bare_jid:i,resource:o,domain:a}),r.save({jid:t,bare_jid:i,resource:o,domain:a,active:!0}),s.connection.get().jid=t}async function ox(e){return await oA(iw,e),iw.api.trigger("setUserJID"),e}async function oA(e,t){let s=e.api.settings.get("connection_options").worker,r=rZ.getBareJidFromJid(t).toLowerCase(),i=`converse.session-${r}`;e.session?.get("id")!==i?(oj(e,r),e.session.set({id:i}),ou(e.session,i,s?"persistent":"session"),await new Promise(t=>e.session.fetch({success:t,error:t})),!s&&e.session.get("active")&&(e.session.clear(),e.session.save({id:i})),oS(e,t),window.addEventListener(sN(),()=>oI(e.session,{active:!1})),e.api.trigger("userSessionInitialized")):oS(e,t)}function oE(e){e.api.trigger("registeredGlobalEventHandlers")}async function o$(e){let{api:t}=e;await t.trigger("cleanup",{synchronous:!0}),e.api.trigger("unregisteredGlobalEventHandlers"),t.connection.get()?.reset(),e.stopListening(),e.off(),e.promises.initialized.isResolved&&t.promises.add("initialized")}async function ok(){let e,t=0;for(;!e;){try{e=await function(e=0){return new Promise(iR(async(e,t)=>{let s=new XMLHttpRequest;s.open("GET",iw.api.settings.get("credentials_url"),!0),s.setRequestHeader("Accept","application/json, text/javascript"),s.onload=()=>{if(s.status>=200&&s.status<400){let t=JSON.parse(s.responseText);ox(t.jid).then(()=>{e({jid:t.jid,password:t.password})})}else t(Error(`${s.status}: ${s.responseText}`))},s.onerror=t,(s=await iw.api.hook("beforeFetchLoginCredentials",this,s)).send()},e))}(t)}catch(e){Q.error("Could not fetch login credentials"),Q.error(e)}t=2e3}return e}async function oC(){if(!localStorage.getItem("conversejs-session-jid"))return null;try{let e=await navigator.credentials.get({password:!0});if(e&&"password"==e.type&&om(e.id))return await ox(e.id),{jid:e.id,password:e.password}}catch(e){return Q.error(e),null}}async function oT(){let e=localStorage.getItem("conversejs-session-jid");if(!e)return null;await ox(e);let t=(await oO(e)).get("scram_keys");return t?{jid:e,password:t}:null}async function oM(e,t){let{api:s}=iw,{credentials:r}=await s.hook("beforeAttemptNonPreboundSession",this,{credentials:e,automatic:t});if(r)return oN(r);if(s.settings.get("authentication")===r3){let t=iw.session.get("jid");if(e)return oN(e);if(s.settings.get("credentials_url"))return oN(await ok());if(t&&(s.settings.get("password")||s.connection.get().pass))return oN();if(s.settings.get("reuse_scram_keys")){let e=await oT();if(e)return oN(e)}if(!sO()&&"credentials"in navigator){let e=await oC();if(e)return oN(e)}sO()||Q.debug("attemptNonPreboundSession: Couldn't find credentials to log in with")}else[r0,r4].includes(s.settings.get("authentication"))&&(!t||s.settings.get("auto_login"))&&oN()}async function oO(e){let t=`converse.scram-keys-${rZ.getBareJidFromJid(e)}`;if(iw.state.login_info?.get("id")===t)return iw.state.login_info;let s=new es.Model({id:t});return iw.state.login_info=s,ou(s,t,"persistent"),await new Promise(e=>s.fetch({success:e,error:e})),s}async function oN(e){let{api:t}=iw,s=iw.session.get("jid"),r=t.connection.get();if([r0,r4].includes(t.settings.get("authentication"))){if(!s)throw Error("Config Error: when using anonymous login you need to provide the server's domain via the 'jid' option. Either when calling converse.initialize, or when calling _converse.api.user.login.");r.reconnecting||r.reset(),r.connect(s.toLowerCase())}else if(t.settings.get("authentication")===r3){let i,o=e?.password??(r?.pass||t.settings.get("password"));if(!o){if(t.settings.get("auto_login"))throw Error("autoLogin: If you use auto_login and authentication='login' then you also need to provide a password.");r.setDisconnectionCause(rZ.Status.AUTHFAIL,void 0,!0),t.connection.disconnect();return}if(r.reconnecting||(r.reset(),r.service=oh()),iw.state.config.get("trusted")&&s&&t.settings.get("reuse_scram_keys")&&!o?.ck){let e=await oO(s);i=(t,s)=>{let{scram_keys:i}=r;i&&e.save({scram_keys:i}),r.onConnectStatusChanged(t,s)}}r.connect(s,o,i)}}function oI(e,t,s){s$(e)?e.save(t,s):e.set(t,s)}let oR=Object.keys(rZ.Status).reduce((e,t)=>Math.max(e,rZ.Status[t]),0);rZ.Status.RECONNECTING=oR+1;class oD extends rZ.Connection{constructor(e,t){super(e,t),this.send_initial_presence=!0,this.debouncedReconnect=iR(this.reconnect,3e3)}xmlInput(e){Q.debug(e.outerHTML,"color: darkgoldenrod")}xmlOutput(e){Q.debug(e.outerHTML,"color: darkcyan")}async bind(){let{api:e}=iw;await e.trigger("beforeResourceBinding",{synchronous:!0}),super.bind()}async onDomainDiscovered(e){let{api:t}=iw,s=await e.text(),r=new DOMParser().parseFromString(s,"text/xml").firstElementChild;if("XRD"!=r.nodeName||"http://docs.oasis-open.org/ns/xri/xrd-1.0"!=r.namespaceURI)return Q.info("Could not discover XEP-0156 connection methods");let i=J()('Link[rel="urn:xmpp:alt-connections:xbosh"]',r),o=J()('Link[rel="urn:xmpp:alt-connections:websocket"]',r),a=i.map(e=>e.getAttribute("href")).filter(e=>e.startsWith("https:")),l=o.map(e=>e.getAttribute("href")).filter(e=>e.startsWith("wss:"));0===a.length&&0===l.length?Q.info("Neither BOSH nor WebSocket connection methods have been specified with XEP-0156."):(t.settings.set("websocket_url",l.pop()),t.settings.set("bosh_service_url",a.pop()),this.service=t.settings.get("websocket_url")||t.settings.get("bosh_service_url"),this.setProtocol())}async discoverConnectionMethods(e){let t,s=`https://${e}/.well-known/host-meta`;try{t=await fetch(s,{mode:"cors",headers:{Accept:"application/xrd+xml, text/xml"}})}catch(e){Q.info(`Failed to discover alternative connection methods at ${s}`),Q.error(e);return}t.status>=200&&t.status<400?await this.onDomainDiscovered(t):Q.info("Could not discover XEP-0156 connection methods")}async connect(e,t,s){let{__:r,api:i}=iw;if(i.settings.get("discover_connection_methods")){let t=rZ.getDomainFromJid(e);await this.discoverConnectionMethods(t)}if(!i.settings.get("bosh_service_url")&&!i.settings.get("websocket_url")){i.settings.set("show_connection_url_input",!0),(s||this.onConnectStatusChanged.bind(this))(rZ.Status.DISCONNECTED,r("Could not automatically determine a connection URL"));return}super.connect(e,t,s||this.onConnectStatusChanged,rQ)}disconnect(e){super.disconnect(e),this.send_initial_presence=!0}async switchTransport(){let{api:e}=iw,t=iw.session.get("bare_jid");e.connection.isType("websocket")&&e.settings.get("bosh_service_url")?(await ox(t),this._proto._doDisconnect(),this._proto=new rZ.Bosh(this),this.service=e.settings.get("bosh_service_url")):e.connection.isType("bosh")&&e.settings.get("websocket_url")&&(e.settings.get("authentication")===r0?await ox(e.settings.get("jid")):await ox(t),this._proto._doDisconnect(),this._proto=new rZ.Websocket(this),this.service=e.settings.get("websocket_url"))}async reconnect(){let{api:e}=iw;Q.debug("RECONNECTING: the connection has dropped, attempting to reconnect."),this.reconnecting=!0,await sD(iw);let t=iw.state.connfeedback.get("connection_status");t===rZ.Status.CONNFAIL?this.switchTransport():t===rZ.Status.AUTHFAIL&&e.settings.get("authentication")===r0&&await ox(e.settings.get("jid")),e.trigger("will-reconnect"),e.settings.get("authentication")===r0&&await sL(iw);let s=iw.session.get("jid");return e.user.login(s)}async onConnected(e){let{api:t}=iw;if(delete this.reconnecting,this.flush(),await ox(this.jid),iw.state.config.get("trusted")){let e=iw.session.get("bare_jid");localStorage.setItem("conversejs-session-jid",e)}await t.trigger("afterResourceBinding",e,{synchronous:!0}),e?t.trigger("reconnected"):t.trigger("connected")}setDisconnectionCause(e,t,s){void 0===e?(delete this.disconnection_cause,delete this.disconnection_reason):(void 0===this.disconnection_cause||s)&&(this.disconnection_cause=e,this.disconnection_reason=t)}setConnectionStatus(e,t){this.status=e,iw.state.connfeedback.set({connection_status:e,message:t})}async finishDisconnection(){this.setConnectionStatus(rZ.Status.DISCONNECTED,this.disconnection_reason);let{api:e}=iw;Q.debug("DISCONNECTED"),delete this.reconnecting,this.reset(),sD(iw),await sL(iw),e.connection.destroy(),e.trigger("disconnected")}onDisconnected(){let{api:e}=iw;if(!e.settings.get("auto_reconnect"))return this.finishDisconnection();{let t=this.disconnection_reason;if(this.disconnection_cause===rZ.Status.AUTHFAIL)if(e.settings.get("credentials_url")||e.settings.get("authentication")===r0)return e.connection.reconnect();else return this.finishDisconnection();if(this.status===rZ.Status.CONNECTING){let{__:e}=iw;return this.setConnectionStatus(rZ.Status.CONNFAIL,e("An error occurred while connecting to the chat server.")),this.finishDisconnection()}if(this.disconnection_cause===r6||t===rZ.ErrorCondition.NO_AUTH_MECH||"host-unknown"===t||"remote-connection-failed"===t)return this.finishDisconnection();e.connection.reconnect()}}onConnectStatusChanged(e,t){let{__:s}=iw;if(Q.debug(`Status changed to: ${id[e]}`),e===rZ.Status.ATTACHFAIL)this.setConnectionStatus(e),this.worker_attach_promise?.resolve(!1);else if(e===rZ.Status.CONNECTED||e===rZ.Status.ATTACHED){if(this.worker_attach_promise?.isResolved&&this.status===rZ.Status.ATTACHED)return;this.setConnectionStatus(e),this.worker_attach_promise?.resolve(!0),this.setDisconnectionCause(),this.reconnecting?(Q.debug(e===rZ.Status.CONNECTED?"Reconnected":"Reattached"),this.onConnected(!0)):(Q.debug(e===rZ.Status.CONNECTED?"Connected":"Attached"),this.restored&&(this.send_initial_presence=!1),this.onConnected())}else if(e===rZ.Status.DISCONNECTED)this.setDisconnectionCause(e,t),this.onDisconnected();else if(e===rZ.Status.BINDREQUIRED)this.bind();else if(e===rZ.Status.ERROR)this.setConnectionStatus(e,s("An error occurred while connecting to the chat server."));else if(e===rZ.Status.CONNECTING)this.setConnectionStatus(e);else if(e===rZ.Status.AUTHENTICATING)this.setConnectionStatus(e);else if(e===rZ.Status.AUTHFAIL)t||(t=s("Your XMPP address and/or password is incorrect. Please try again.")),this.setConnectionStatus(e,t),this.setDisconnectionCause(e,t,!0),this.onDisconnected();else if(e===rZ.Status.CONNFAIL){let r=t;"host-unknown"===t||"remote-connection-failed"==t?r=s("We could not connect to %1$s, is your XMPP address correct?",rZ.getDomainFromJid(this.jid)):"policy-violation"===t?r=s("The XMPP server rejected the connection because of a policy violation"):void 0!==t&&t===rZ?.ErrorCondition?.NO_AUTH_MECH&&(r=s("The XMPP server did not offer a supported authentication mechanism")),this.setConnectionStatus(e,r),this.setDisconnectionCause(e,t)}else e===rZ.Status.DISCONNECTING&&(this.setConnectionStatus(e),this.setDisconnectionCause(e,t))}isType(e){return"websocket"===e.toLowerCase()?this._proto instanceof rZ.Websocket:"bosh"===e.toLowerCase()?rZ.Bosh&&this._proto instanceof rZ.Bosh:void 0}hasResumed(){let{api:e}=iw;return e.settings.get("connection_options")?.worker||this.isType("bosh")?iw.state.connfeedback.get("connection_status")===rZ.Status.ATTACHED:!this.do_bind}restoreWorkerSession(){return this.attach(this.onConnectStatusChanged),this.worker_attach_promise=er(),this.worker_attach_promise}}class oL extends oD{constructor(e,t){super(e,t),this.sent_stanzas=[],this.IQ_stanzas=[],this.IQ_ids=[],this.features=rZ.xmlHtmlNode('').firstElementChild,this._proto._processRequest=()=>{},this._proto._disconnect=()=>this._onDisconnectTimeout(),this._proto._onDisconnectTimeout=()=>{},this._proto._connect=()=>{this.connected=!0,this.mock=!0,this.jid="romeo@montague.lit/orchard",this._changeConnectStatus(rZ.Status.BINDREQUIRED)}}get _sasl_mechanism(){return new rZ.SASLSHA256}_processRequest(){}sendIQ(e,t,s){e=e.tree?.()??e,this.IQ_stanzas.push(e);let r=super.sendIQ(e,t,s);return this.IQ_ids.push(r),r}send(e){return e=e.tree?.()??e,this.sent_stanzas.push(e),super.send(e)}async bind(){let{api:e}=iw;await e.trigger("beforeResourceBinding",{synchronous:!0}),this.authenticated=!0,this._changeConnectStatus(rZ.Status.CONNECTED)}}let oz={explicitResourceBinding:!0},oP={init(e){if(e&&r?.jid&&og(r.jid,e))return r;if(!sT.get("bosh_service_url")&&sT.get("authentication")===r5)throw Error("authentication is set to 'prebind' but we don't have a BOSH connection");r=new(sO()?oL:oD)(oh(),Object.assign(oz,sT.get("connection_options"),{keepalive:sT.get("keepalive")}));let t=sT.get("loglevel");rZ.setLogLevel(rZ.LogLevel[t.toUpperCase()]);let s={};return s[rZ.LogLevel.DEBUG]="debug",s[rZ.LogLevel.INFO]="info",s[rZ.LogLevel.WARN]="warn",s[rZ.LogLevel.ERROR]="error",s[rZ.LogLevel.FATAL]="fatal",rZ.log=(e,t)=>Q.log(t,s[e]),rZ.error=e=>Q.error(e),ij.trigger("connectionInitialized"),r},get:()=>r,destroy(){this.disconnect(),r?.disconnect(),r=void 0},authenticated:()=>r?.authenticated&&!0,connected:()=>r?.connected&&!0,disconnect(){r?.disconnect()},reconnect:()=>(r.setConnectionStatus(rZ.Status.RECONNECTING,"The connection has dropped, attempting to reconnect."),r?.reconnecting)?r.debouncedReconnect():r.reconnect(),isType:e=>r.isType(e)};function oU(e,t){let s;return function(...r){clearTimeout(s),s=setTimeout(()=>{e.apply(this,r)},t)}}function oB(e,t){clearTimeout(e),clearInterval(t)}function oF(e,t=300,s=3){try{let t=e();if(t)return Promise.resolve(t)}catch(e){return Promise.reject(e)}let r=er(),i=Error(),o=setInterval(function(){try{let t=e();t&&(oB(a,o),r.resolve(t))}catch(e){oB(a,o),r.reject(e)}},s),a=setTimeout(function(){oB(a,o);let e=`Wait until promise timed out: ${i.stack}`;console.trace(),Q.error(e),r.reject(Error(e))},t);return r}let oq={promises:{add(e,t=!0){(e=Array.isArray(e)?e:[e]).forEach(e=>{let s=er();s.replace=t,iw.promises[e]=s})}},waitUntil(e){if(sx(e))return oF(e);{let t=iw.promises[e];return void 0===t?null:t}}};class oH extends Error{}class oG extends Error{constructor(e){super(e),this.name="UserFacingError",this.user_facing=!0}}class oW extends Error{constructor(e,t){super(e),this.name="IQError",this.iq=t}}class oZ extends Error{constructor(e){super(e),this.retry_event_id=null}}class oV extends Error{constructor(e,t,s){super(t.querySelector("text")?.textContent??""),this.name=e,this.message=e,this.type=t.getAttribute("type"),this.el=t,this.extra=s}}class oQ extends Error{constructor(e,t){super(t),this.name="StanzaParseError",this.stanza=e}}class oK extends oV{}class oJ extends oV{}class oY extends oV{}class oX extends oV{}class o1 extends oV{}class o0 extends oV{}class o2 extends oV{}class o4 extends oV{}class o3 extends oV{}class o6 extends oV{}class o8 extends oV{}class o5 extends oV{}class o9 extends oV{}class o7 extends oV{}class ae extends oV{}class at extends oV{}class as extends oV{}class ar extends oV{}class ai extends oV{}class an extends oV{}class ao extends oV{}class aa extends oV{}let al={send(e){let{api:t}=iw;if(!t.connection.connected()){Q.warn("Not sending stanza because we're not connected!"),Q.warn(rZ.serialize(e));return}let s=e instanceof Element?e:e.tree();if("iq"===s.tagName)return t.sendIQ(s);t.connection.get().send(s),t.trigger("send",s)},sendIQ(e,t,s=!0){let r,{api:i}=iw;if(!i.connection.connected())throw Error("Not sending IQ stanza because we're not connected!");let o=i.connection.get(),a=e instanceof Element?e:e.tree();return["get","set"].includes(a.getAttribute("type"))?(t=t||i.settings.get("stanza_timeout"),s?(r=new Promise((e,s)=>o.sendIQ(a,e,s,t))).catch(e=>{if(null===e)throw new oZ(`Timeout error after ${t}ms for the following IQ stanza: ${rZ.serialize(a)}`)}):r=new Promise(e=>o.sendIQ(a,e,e,t))):(o.sendIQ(a),r=Promise.resolve()),i.trigger("send",a),r}};async function ac(){if(sR(iw)){let{chatboxes:e}=iw.state;await Promise.all(e.map(e=>e.messages?.clearStore({silent:!0}))),e.clearStore({silent:!0},e=>e.get("type")!==ic)}}async function ad(e,t,s){let r;Object.assign(t,{jid:e=rZ.getBareJidFromJid(e.toLowerCase()),id:e});try{r=new s(t,{collection:iw.state.chatboxes})}catch(e){return Q.error(e),null}return(await r.initialized,r.isValid())?(iw.state.chatboxes.add(r),r):(r.destroy(),null)}let{waitUntil:au}=oq,ah={},am={create:async(e=[],t={},s)=>(await au("chatBoxesFetched"),"string"==typeof e)?ad(e,t,s):Promise.all(e.map(e=>ad(e,t,s))),async get(e){await au("chatBoxesFetched");let{chatboxes:t}=iw.state;return void 0===e?t.models:"string"==typeof e?t.get(e.toLowerCase()):(e=e.map(e=>e.toLowerCase()),t.models.filter(t=>e.includes(t.get("jid"))))},registry:{add(e,t){ah[e]=t},get:e=>ah[e]}},{waitUntil:ap}=oq,af={create(e,t={}){if(!(t="string"==typeof t?{nick:t}:t||{}).nick&&sT.get("muc_nickname_from_jid")){let e=iw.session.get("bare_jid");t.nick=rZ.getNodeFromJid(e)}if(void 0===e)throw TypeError("rooms.create: You need to provide at least one JID");return"string"==typeof e?af.get(ov(e),t,!0):Promise.all(e.map(e=>af.get(ov(e),t,!0)))},async open(e,t={},s=!1){if(await ap("chatBoxesFetched"),void 0===e){let e="rooms.open: You need to provide at least one JID";throw Q.error(e),TypeError(e)}if("string"==typeof e){let r=await af.get(e,t,!0);return t.hidden||r?.maybeShow(s),r}{let r=await Promise.all(e.map(e=>r.get(e,t,!0)));return r.forEach(e=>!t.hidden&&e.maybeShow(s)),r}},async get(e,t={},s=!1){async function r(e){e=ov(e);let r=await am.get(e);return!r&&s?r=await am.create(e,t,iw.exports.MUC):(r=r&&r.get("type")===ia?r:null)&&Object.keys(t).length&&r.save(t),r}return(await ap("chatBoxesFetched"),void 0===e)?(await am.get()).filter(e=>e.get("type")===ia):"string"==typeof e?r(e):Promise.all(e.map(e=>r(e)))}},ag={rooms:af},{waitUntil:av}=oq,{send:a_}=al,{rooms:ay}=ag;function ab(){let e=iw.session.get("bare_jid");if(!e){let e="No JID to fetch user settings for";throw Q.error(e),Error(e)}let t=`converse.user-settings.${e}`;if(i?.get("id")!==t)return ou(i=new es.Model({id:t}),t),i.fetch({promise:!0})}async function aw(){return await ab(),i}async function aj(e,t){return await ab(),i.save(e,t)}async function aS(){if(iw.session.get("bare_jid"))return await ab(),i.clear();i=void 0}let ax={connection:oP,settings:sT,...al,user:{settings:{getModel:()=>aw(),async get(e,t){let s=await aw();return void 0===s.get(e)?t:s.get(e)},set(e,t){if(e instanceof Object)return aj(e,{promise:!0});{let s={};return s[e]=t,aj(s,{promise:!0})}},clear:()=>aS()},presence:{async send(e,t){await av("statusInitialized");let s=[];t&&(s=Array.isArray(t)?t:[t]);let r=iw.state.profile,i=await r.constructPresence(e);s.map(e=>e?.tree()??e).forEach(e=>i.cnode(e).up()),a_(i);let{show:o,type:a}=e||{};(o||!a)&&(await ay.get()).forEach(t=>t.sendStatusPresence(e,s))}},jid:()=>oP.get()?.jid,async login(e,t,s=!1){let{api:r}=iw;e=e||r.settings.get("jid");let i=oP.init(e);if(r.settings.get("connection_options")?.worker&&await i.restoreWorkerSession())return;e&&(e=await ox(e));let{success:o}=await iw.api.hook("login",this,{jid:e,password:t,automatic:s});if(o)return;t=t||r.settings.get("password");let a=e&&t?{jid:e,password:t}:null;await oM(a,s)},async logout(){let{api:e}=iw;await e.trigger("beforeLogout",{synchronous:!0});let t=er(),s=()=>{Object.keys(iw.promises).forEach(e=>sI(iw,e)),localStorage.removeItem("conversejs-session-jid"),e.trigger("logout"),t.resolve()},r=oP.get();return r?(r.setDisconnectionCause(r6,void 0,!0),e.listen.once("disconnected",()=>s()),r.disconnect()):s(),t}},...ij,...oq,disco:null,elements:null,contacts:null},{entries:aA,setPrototypeOf:aE,isFrozen:a$,getPrototypeOf:ak,getOwnPropertyDescriptor:aC}=Object,{freeze:aT,seal:aM,create:aO}=Object,{apply:aN,construct:aI}="undefined"!=typeof Reflect&&Reflect;aT||(aT=function(e){return e}),aM||(aM=function(e){return e}),aN||(aN=function(e,t,s){return e.apply(t,s)}),aI||(aI=function(e,t){return new e(...t)});let aR=aQ(Array.prototype.forEach),aD=aQ(Array.prototype.lastIndexOf),aL=aQ(Array.prototype.pop),az=aQ(Array.prototype.push),aP=aQ(Array.prototype.splice),aU=aQ(String.prototype.toLowerCase),aB=aQ(String.prototype.toString),aF=aQ(String.prototype.match),aq=aQ(String.prototype.replace),aH=aQ(String.prototype.indexOf),aG=aQ(String.prototype.trim),aW=aQ(Object.prototype.hasOwnProperty),aZ=aQ(RegExp.prototype.test),aV=(p=TypeError,function(){for(var e=arguments.length,t=Array(e),s=0;s1?s-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:aU;aE&&aE(e,null);let r=t.length;for(;r--;){let i=t[r];if("string"==typeof i){let e=s(i);e!==i&&(a$(t)||(t[r]=e),i=e)}e[i]=!0}return e}function aJ(e){let t=aO(null);for(let[s,r]of aA(e))aW(e,s)&&(Array.isArray(r)?t[s]=function(e){for(let t=0;t/gm),ls=aM(/\$\{[\w\W]*/gm),lr=aM(/^data-[\-\w.\u00B7-\uFFFF]+$/),li=aM(/^aria-[\-\w]+$/),ln=aM(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),lo=aM(/^(?:\w+script|data):/i),la=aM(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),ll=aM(/^html$/i);var lc=Object.freeze({__proto__:null,ARIA_ATTR:li,ATTR_WHITESPACE:la,CUSTOM_ELEMENT:aM(/^[a-z][.\w]*(-[.\w]+)+$/i),DATA_ATTR:lr,DOCTYPE_NAME:ll,ERB_EXPR:lt,IS_ALLOWED_URI:ln,IS_SCRIPT_OR_DATA:lo,MUSTACHE_EXPR:le,TMPLIT_EXPR:ls});let ld=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let s=null,r="data-tt-policy-suffix";t&&t.hasAttribute(r)&&(s=t.getAttribute(r));let i="dompurify"+(s?"#"+s:"");try{return e.createPolicy(i,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+i+" could not be created."),null}},lu=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};var lh=function e(){let t,s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"undefined"==typeof window?null:window,r=t=>e(t);if(r.version="3.2.6",r.removed=[],!s||!s.document||9!==s.document.nodeType||!s.Element)return r.isSupported=!1,r;let{document:i}=s,o=i,a=o.currentScript,{DocumentFragment:l,HTMLTemplateElement:c,Node:d,Element:u,NodeFilter:h,NamedNodeMap:m=s.NamedNodeMap||s.MozNamedAttrMap,HTMLFormElement:p,DOMParser:f,trustedTypes:g}=s,v=u.prototype,_=aY(v,"cloneNode"),y=aY(v,"remove"),b=aY(v,"nextSibling"),w=aY(v,"childNodes"),j=aY(v,"parentNode");if("function"==typeof c){let e=i.createElement("template");e.content&&e.content.ownerDocument&&(i=e.content.ownerDocument)}let S="",{implementation:x,createNodeIterator:A,createDocumentFragment:E,getElementsByTagName:$}=i,{importNode:k}=o,C=lu();r.isSupported="function"==typeof aA&&"function"==typeof j&&x&&void 0!==x.createHTMLDocument;let{MUSTACHE_EXPR:T,ERB_EXPR:M,TMPLIT_EXPR:O,DATA_ATTR:N,ARIA_ATTR:I,IS_SCRIPT_OR_DATA:R,ATTR_WHITESPACE:D,CUSTOM_ELEMENT:L}=lc,{IS_ALLOWED_URI:z}=lc,P=null,U=aK({},[...aX,...a1,...a0,...a4,...a6]),B=null,F=aK({},[...a8,...a5,...a9,...a7]),q=Object.seal(aO(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),H=null,G=null,W=!0,Z=!0,V=!1,Q=!0,K=!1,J=!0,Y=!1,X=!1,ee=!1,et=!1,es=!1,er=!1,ei=!0,en=!1,eo=!0,ea=!1,el={},ec=null,ed=aK({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),eu=null,eh=aK({},["audio","video","img","source","image","track"]),em=null,ep=aK({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),ef="http://www.w3.org/1998/Math/MathML",eg="http://www.w3.org/2000/svg",ev="http://www.w3.org/1999/xhtml",e_=ev,ey=!1,eb=null,ew=aK({},[ef,eg,ev],aB),ej=aK({},["mi","mo","mn","ms","mtext"]),eS=aK({},["annotation-xml"]),ex=aK({},["title","style","font","a","script"]),eA=null,eE=["application/xhtml+xml","text/html"],e$=null,ek=null,eC=i.createElement("form"),eT=function(e){return e instanceof RegExp||e instanceof Function},eM=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ek||ek!==e){if(e&&"object"==typeof e||(e={}),e=aJ(e),e$="application/xhtml+xml"===(eA=-1===eE.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE)?aB:aU,P=aW(e,"ALLOWED_TAGS")?aK({},e.ALLOWED_TAGS,e$):U,B=aW(e,"ALLOWED_ATTR")?aK({},e.ALLOWED_ATTR,e$):F,eb=aW(e,"ALLOWED_NAMESPACES")?aK({},e.ALLOWED_NAMESPACES,aB):ew,em=aW(e,"ADD_URI_SAFE_ATTR")?aK(aJ(ep),e.ADD_URI_SAFE_ATTR,e$):ep,eu=aW(e,"ADD_DATA_URI_TAGS")?aK(aJ(eh),e.ADD_DATA_URI_TAGS,e$):eh,ec=aW(e,"FORBID_CONTENTS")?aK({},e.FORBID_CONTENTS,e$):ed,H=aW(e,"FORBID_TAGS")?aK({},e.FORBID_TAGS,e$):aJ({}),G=aW(e,"FORBID_ATTR")?aK({},e.FORBID_ATTR,e$):aJ({}),el=!!aW(e,"USE_PROFILES")&&e.USE_PROFILES,W=!1!==e.ALLOW_ARIA_ATTR,Z=!1!==e.ALLOW_DATA_ATTR,V=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Q=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,K=e.SAFE_FOR_TEMPLATES||!1,J=!1!==e.SAFE_FOR_XML,Y=e.WHOLE_DOCUMENT||!1,et=e.RETURN_DOM||!1,es=e.RETURN_DOM_FRAGMENT||!1,er=e.RETURN_TRUSTED_TYPE||!1,ee=e.FORCE_BODY||!1,ei=!1!==e.SANITIZE_DOM,en=e.SANITIZE_NAMED_PROPS||!1,eo=!1!==e.KEEP_CONTENT,ea=e.IN_PLACE||!1,z=e.ALLOWED_URI_REGEXP||ln,e_=e.NAMESPACE||ev,ej=e.MATHML_TEXT_INTEGRATION_POINTS||ej,eS=e.HTML_INTEGRATION_POINTS||eS,q=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&eT(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(q.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&eT(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(q.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(q.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),K&&(Z=!1),es&&(et=!0),el&&(P=aK({},a6),B=[],!0===el.html&&(aK(P,aX),aK(B,a8)),!0===el.svg&&(aK(P,a1),aK(B,a5),aK(B,a7)),!0===el.svgFilters&&(aK(P,a0),aK(B,a5),aK(B,a7)),!0===el.mathMl&&(aK(P,a4),aK(B,a9),aK(B,a7))),e.ADD_TAGS&&(P===U&&(P=aJ(P)),aK(P,e.ADD_TAGS,e$)),e.ADD_ATTR&&(B===F&&(B=aJ(B)),aK(B,e.ADD_ATTR,e$)),e.ADD_URI_SAFE_ATTR&&aK(em,e.ADD_URI_SAFE_ATTR,e$),e.FORBID_CONTENTS&&(ec===ed&&(ec=aJ(ec)),aK(ec,e.FORBID_CONTENTS,e$)),eo&&(P["#text"]=!0),Y&&aK(P,["html","head","body"]),P.table&&(aK(P,["tbody"]),delete H.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw aV('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw aV('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');S=(t=e.TRUSTED_TYPES_POLICY).createHTML("")}else void 0===t&&(t=ld(g,a)),null!==t&&"string"==typeof S&&(S=t.createHTML(""));aT&&aT(e),ek=e}},eO=aK({},[...a1,...a0,...a2]),eN=aK({},[...a4,...a3]),eI=function(e){let t=j(e);t&&t.tagName||(t={namespaceURI:e_,tagName:"template"});let s=aU(e.tagName),r=aU(t.tagName);return!!eb[e.namespaceURI]&&(e.namespaceURI===eg?t.namespaceURI===ev?"svg"===s:t.namespaceURI===ef?"svg"===s&&("annotation-xml"===r||ej[r]):!!eO[s]:e.namespaceURI===ef?t.namespaceURI===ev?"math"===s:t.namespaceURI===eg?"math"===s&&eS[r]:!!eN[s]:e.namespaceURI===ev?(t.namespaceURI!==eg||!!eS[r])&&(t.namespaceURI!==ef||!!ej[r])&&!eN[s]&&(ex[s]||!eO[s]):"application/xhtml+xml"===eA&&!!eb[e.namespaceURI])},eR=function(e){az(r.removed,{element:e});try{j(e).removeChild(e)}catch(t){y(e)}},eD=function(e,t){try{az(r.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){az(r.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e)if(et||es)try{eR(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},eL=function(e){let s=null,r=null;if(ee)e=""+e;else{let t=aF(e,/^[\r\n\t ]+/);r=t&&t[0]}"application/xhtml+xml"===eA&&e_===ev&&(e=''+e+"");let o=t?t.createHTML(e):e;if(e_===ev)try{s=new f().parseFromString(o,eA)}catch(e){}if(!s||!s.documentElement){s=x.createDocument(e_,"template",null);try{s.documentElement.innerHTML=ey?S:o}catch(e){}}let a=s.body||s.documentElement;return(e&&r&&a.insertBefore(i.createTextNode(r),a.childNodes[0]||null),e_===ev)?$.call(s,Y?"html":"body")[0]:Y?s.documentElement:a},ez=function(e){return A.call(e.ownerDocument||e,e,h.SHOW_ELEMENT|h.SHOW_COMMENT|h.SHOW_TEXT|h.SHOW_PROCESSING_INSTRUCTION|h.SHOW_CDATA_SECTION,null)},eP=function(e){return e instanceof p&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof m)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},eU=function(e){return"function"==typeof d&&e instanceof d};function eB(e,t,s){aR(e,e=>{e.call(r,t,s,ek)})}let eF=function(e){let t=null;if(eB(C.beforeSanitizeElements,e,null),eP(e))return eR(e),!0;let s=e$(e.nodeName);if(eB(C.uponSanitizeElement,e,{tagName:s,allowedTags:P}),J&&e.hasChildNodes()&&!eU(e.firstElementChild)&&aZ(/<[/\w!]/g,e.innerHTML)&&aZ(/<[/\w!]/g,e.textContent)||7===e.nodeType||J&&8===e.nodeType&&aZ(/<[/\w]/g,e.data))return eR(e),!0;if(!P[s]||H[s]){if(!H[s]&&eH(s)&&(q.tagNameCheck instanceof RegExp&&aZ(q.tagNameCheck,s)||q.tagNameCheck instanceof Function&&q.tagNameCheck(s)))return!1;if(eo&&!ec[s]){let t=j(e)||e.parentNode,s=w(e)||e.childNodes;if(s&&t){let r=s.length;for(let i=r-1;i>=0;--i){let r=_(s[i],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,b(e))}}}return eR(e),!0}return e instanceof u&&!eI(e)||("noscript"===s||"noembed"===s||"noframes"===s)&&aZ(/<\/no(script|embed|frames)/i,e.innerHTML)?(eR(e),!0):(K&&3===e.nodeType&&(t=e.textContent,aR([T,M,O],e=>{t=aq(t,e," ")}),e.textContent!==t&&(az(r.removed,{element:e.cloneNode()}),e.textContent=t)),eB(C.afterSanitizeElements,e,null),!1)},eq=function(e,t,s){if(ei&&("id"===t||"name"===t)&&(s in i||s in eC))return!1;if(Z&&!G[t]&&aZ(N,t));else if(W&&aZ(I,t));else if(!B[t]||G[t]){if(!(eH(e)&&(q.tagNameCheck instanceof RegExp&&aZ(q.tagNameCheck,e)||q.tagNameCheck instanceof Function&&q.tagNameCheck(e))&&(q.attributeNameCheck instanceof RegExp&&aZ(q.attributeNameCheck,t)||q.attributeNameCheck instanceof Function&&q.attributeNameCheck(t))||"is"===t&&q.allowCustomizedBuiltInElements&&(q.tagNameCheck instanceof RegExp&&aZ(q.tagNameCheck,s)||q.tagNameCheck instanceof Function&&q.tagNameCheck(s))))return!1}else if(em[t]);else if(aZ(z,aq(s,D,"")));else if(("src"===t||"xlink:href"===t||"href"===t)&&"script"!==e&&0===aH(s,"data:")&&eu[e]);else if(V&&!aZ(R,aq(s,D,"")));else if(s)return!1;return!0},eH=function(e){return"annotation-xml"!==e&&aF(e,L)},eG=function(e){eB(C.beforeSanitizeAttributes,e,null);let{attributes:s}=e;if(!s||eP(e))return;let i={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:B,forceKeepAttr:void 0},o=s.length;for(;o--;){let{name:a,namespaceURI:l,value:c}=s[o],d=e$(a),u="value"===a?c:aG(c);if(i.attrName=d,i.attrValue=u,i.keepAttr=!0,i.forceKeepAttr=void 0,eB(C.uponSanitizeAttribute,e,i),u=i.attrValue,en&&("id"===d||"name"===d)&&(eD(a,e),u="user-content-"+u),J&&aZ(/((--!?|])>)|<\/(style|title)/i,u)){eD(a,e);continue}if(i.forceKeepAttr)continue;if(!i.keepAttr||!Q&&aZ(/\/>/i,u)){eD(a,e);continue}K&&aR([T,M,O],e=>{u=aq(u,e," ")});let h=e$(e.nodeName);if(!eq(h,d,u)){eD(a,e);continue}if(t&&"object"==typeof g&&"function"==typeof g.getAttributeType)if(l);else switch(g.getAttributeType(h,d)){case"TrustedHTML":u=t.createHTML(u);break;case"TrustedScriptURL":u=t.createScriptURL(u)}if(u!==c)try{l?e.setAttributeNS(l,a,u):e.setAttribute(a,u),eP(e)?eR(e):aL(r.removed)}catch(t){eD(a,e)}}eB(C.afterSanitizeAttributes,e,null)},eW=function e(t){let s=null,r=ez(t);for(eB(C.beforeSanitizeShadowDOM,t,null);s=r.nextNode();)eB(C.uponSanitizeShadowNode,s,null),eF(s),eG(s),s.content instanceof l&&e(s.content);eB(C.afterSanitizeShadowDOM,t,null)};return r.sanitize=function(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=null,a=null,c=null,u=null;if((ey=!e)&&(e="\x3c!--\x3e"),"string"!=typeof e&&!eU(e))if("function"==typeof e.toString){if("string"!=typeof(e=e.toString()))throw aV("dirty is not a string, aborting")}else throw aV("toString is not a function");if(!r.isSupported)return e;if(X||eM(s),r.removed=[],"string"==typeof e&&(ea=!1),ea){if(e.nodeName){let t=e$(e.nodeName);if(!P[t]||H[t])throw aV("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof d)1===(a=(i=eL("\x3c!----\x3e")).ownerDocument.importNode(e,!0)).nodeType&&"BODY"===a.nodeName||"HTML"===a.nodeName?i=a:i.appendChild(a);else{if(!et&&!K&&!Y&&-1===e.indexOf("<"))return t&&er?t.createHTML(e):e;if(!(i=eL(e)))return et?null:er?S:""}i&&ee&&eR(i.firstChild);let h=ez(ea?e:i);for(;c=h.nextNode();)eF(c),eG(c),c.content instanceof l&&eW(c.content);if(ea)return e;if(et){if(es)for(u=E.call(i.ownerDocument);i.firstChild;)u.appendChild(i.firstChild);else u=i;return(B.shadowroot||B.shadowrootmode)&&(u=k.call(o,u,!0)),u}let m=Y?i.outerHTML:i.innerHTML;return Y&&P["!doctype"]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&aZ(ll,i.ownerDocument.doctype.name)&&(m="\n"+m),K&&aR([T,M,O],e=>{m=aq(m,e," ")}),t&&er?t.createHTML(m):m},r.setConfig=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};eM(e),X=!0},r.clearConfig=function(){ek=null,X=!1},r.isValidAttribute=function(e,t,s){return ek||eM({}),eq(e$(e),e$(t),s)},r.addHook=function(e,t){"function"==typeof t&&az(C[e],t)},r.removeHook=function(e,t){if(void 0!==t){let s=aD(C[e],t);return -1===s?void 0:aP(C[e],s,1)[0]}return aL(C[e])},r.removeHooks=function(e){C[e]=[]},r.removeAllHooks=function(){C=lu()},r}();function lm(e){return e instanceof Element||e instanceof HTMLDocument}let lp=/\s*\n\s*/;function lf(e){let t;(e instanceof rv||e instanceof rG)&&(e=e.tree());let s=[],r=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,e=>"body"===e.parentElement.nodeName.toLowerCase()?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT);for(;t=r.nextNode();)s.push(t);return s.forEach(e=>lp.test(e.data)&&e.parentElement.removeChild(e)),e}function lg(e,t){if(!lm(e))throw Error("Element being compared must be an Element!");t=lf(t);let s=(e=lf(e)).isEqualNode(t);if(!s){let{xmlHtmlNode:r}=rZ,i=rZ.serialize(e),o=rZ.serialize(t);s=i===o||r(i).isEqualNode(r(o))}return s}function lv(e){var t=document.createElement("div");return t.innerHTML=e,t.firstElementChild}function l_(e,t){return Array.from(e.childNodes).filter(e=>e instanceof Element&&e.matches(t))}function ly(e){for(var t=0;e=e.previousElementSibling;t++);return t}let lb=document.createElement("div");function lw(e){return e&&"string"==typeof e&&(lb.innerHTML=lh.sanitize(e),e=lb.textContent,lb.textContent=""),e}function lj(e){return!!lm(e)&&"error"===e.getAttribute("type")}function lS(e){return!!lm(e)&&J()(`error[type="auth"] forbidden[xmlns="${rZ.NS.STANZAS}"]`,e).length>0}function lx(e){return!!lm(e)&&J()(`error[type="cancel"] service-unavailable[xmlns="${rZ.NS.STANZAS}"]`,e).length>0}function lA(e){return e.getAttributeNames().reduce((t,s)=>(t[s]=rZ.xmlunescape(e.getAttribute(s)),t),{})}let lE="bits",l$="bytes",lk="jedec",lC={iec:{bits:["bit","Kibit","Mibit","Gibit","Tibit","Pibit","Eibit","Zibit","Yibit"],bytes:["B","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"]},jedec:{bits:["bit","Kbit","Mbit","Gbit","Tbit","Pbit","Ebit","Zbit","Ybit"],bytes:["B","KB","MB","GB","TB","PB","EB","ZB","YB"]}},lT={iec:["","kibi","mebi","gibi","tebi","pebi","exbi","zebi","yobi"],jedec:["","kilo","mega","giga","tera","peta","exa","zetta","yotta"]};function lM(e,{bits:t=!1,pad:s=!1,base:r=-1,round:i=2,locale:o="",localeOptions:a={},separator:l="",spacer:c=" ",symbols:d={},standard:u="",output:h="string",fullform:m=!1,fullforms:p=[],exponent:f=-1,roundingMethod:g="round",precision:v=0}={}){let _=f,y=Number(e),b=[],w=0,j="";"si"===u?(r=10,u=lk):"iec"===u||u===lk?r=2:2===r?u="iec":(r=10,u=lk);let S=10===r?1e3:1024,x=y<0,A=Math[g];if("bigint"!=typeof e&&isNaN(e))throw TypeError("Invalid number");if("function"!=typeof A)throw TypeError("Invalid rounding method");if(x&&(y=-y),(-1===_||isNaN(_))&&(_=Math.floor(Math.log(y)/Math.log(S)))<0&&(_=0),_>8&&(v>0&&(v+=8-_),_=8),"exponent"===h)return _;if(0===y)b[0]=0,j=b[1]=lC[u][t?lE:l$][_];else{w=y/(2===r?Math.pow(2,10*_):Math.pow(1e3,_)),t&&(w*=8)>=S&&_<8&&(w/=S,_++);let e=Math.pow(10,_>0?i:0);b[0]=A(w*e)/e,b[0]===S&&_<8&&-1===f&&(b[0]=1,_++),j=b[1]=10===r&&1===_?t?"kbit":"kB":lC[u][t?lE:l$][_]}if(x&&(b[0]=-b[0]),v>0&&(b[0]=b[0].toPrecision(v)),b[1]=d[b[1]]||b[1],!0===o?b[0]=b[0].toLocaleString():o.length>0?b[0]=b[0].toLocaleString(o,a):l.length>0&&(b[0]=b[0].toString().replace(".",l)),s&&i>0){let e=b[0].toString(),t=l||(e.match(/(\D)/g)||[]).pop()||".",s=e.toString().split(t),r=s[1]||"",o=r.length;b[0]=`${s[0]}${t}${r.padEnd(o+(i-o),"0")}`}return!0===m&&(b[1]=p[_]?p[_]:lT[u][_]+(t?"bit":"byte")+(1===b[0]?"":"s")),"array"===h?b:"object"===h?{value:b[0],symbol:b[1],exponent:_,unit:j}:b.join(c)}let lO=globalThis,lN=lO.ShadowRoot&&(void 0===lO.ShadyCSS||lO.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,lI=Symbol(),lR=new WeakMap;class lD{constructor(e,t,s){if(this._$cssResult$=!0,s!==lI)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o,t=this.t;if(lN&&void 0===e){let s=void 0!==t&&1===t.length;s&&(e=lR.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),s&&lR.set(t,e))}return e}toString(){return this.cssText}}let lL=lN?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t,s="";for(let t of e.cssRules)s+=t.cssText;return new lD("string"==typeof(t=s)?t:t+"",void 0,lI)})(e):e,{is:lz,defineProperty:lP,getOwnPropertyDescriptor:lU,getOwnPropertyNames:lB,getOwnPropertySymbols:lF,getPrototypeOf:lq}=Object,lH=globalThis,lG=lH.trustedTypes,lW=lG?lG.emptyScript:"",lZ=lH.reactiveElementPolyfillSupport,lV={toAttribute(e,t){switch(t){case Boolean:e=e?lW:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let s=e;switch(t){case Boolean:s=null!==e;break;case Number:s=null===e?null:Number(e);break;case Object:case Array:try{s=JSON.parse(e)}catch(e){s=null}}return s}},lQ=(e,t)=>!lz(e,t),lK={attribute:!0,type:String,converter:lV,reflect:!1,useDefault:!1,hasChanged:lQ};Symbol.metadata??=Symbol("metadata"),lH.litPropertyMetadata??=new WeakMap;class lJ extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=lK){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){let s=Symbol(),r=this.getPropertyDescriptor(e,s,t);void 0!==r&&lP(this.prototype,e,r)}}static getPropertyDescriptor(e,t,s){let{get:r,set:i}=lU(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get:r,set(t){let o=r?.call(this);i?.call(this,t),this.requestUpdate(e,o,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??lK}static _$Ei(){if(this.hasOwnProperty("elementProperties"))return;let e=lq(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty("finalized"))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty("properties")){let e=this.properties;for(let t of[...lB(e),...lF(e)])this.createProperty(t,e[t])}let e=this[Symbol.metadata];if(null!==e){let t=litPropertyMetadata.get(e);if(void 0!==t)for(let[e,s]of t)this.elementProperties.set(e,s)}for(let[e,t]of(this._$Eh=new Map,this.elementProperties)){let s=this._$Eu(e,t);void 0!==s&&this._$Eh.set(s,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){let t=[];if(Array.isArray(e))for(let s of new Set(e.flat(1/0).reverse()))t.unshift(lL(s));else void 0!==e&&t.push(lL(e));return t}static _$Eu(e,t){let s=t.attribute;return!1===s?void 0:"string"==typeof s?s:"string"==typeof e?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(e=>e(this))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){let e=new Map;for(let t of this.constructor.elementProperties.keys())this.hasOwnProperty(t)&&(e.set(t,this[t]),delete this[t]);e.size>0&&(this._$Ep=e)}createRenderRoot(){let e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return((e,t)=>{if(lN)e.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(let s of t){let t=document.createElement("style"),r=lO.litNonce;void 0!==r&&t.setAttribute("nonce",r),t.textContent=s.cssText,e.appendChild(t)}})(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(e=>e.hostConnected?.())}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach(e=>e.hostDisconnected?.())}attributeChangedCallback(e,t,s){this._$AK(e,s)}_$ET(e,t){let s=this.constructor.elementProperties.get(e),r=this.constructor._$Eu(e,s);if(void 0!==r&&!0===s.reflect){let i=(void 0!==s.converter?.toAttribute?s.converter:lV).toAttribute(t,s.type);this._$Em=e,null==i?this.removeAttribute(r):this.setAttribute(r,i),this._$Em=null}}_$AK(e,t){let s=this.constructor,r=s._$Eh.get(e);if(void 0!==r&&this._$Em!==r){let e=s.getPropertyOptions(r),i="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:lV;this._$Em=r;let o=i.fromAttribute(t,e.type);this[r]=o??this._$Ej?.get(r)??o,this._$Em=null}}requestUpdate(e,t,s){if(void 0!==e){let r=this.constructor,i=this[e];if(!(((s??=r.getPropertyOptions(e)).hasChanged??lQ)(i,t)||s.useDefault&&s.reflect&&i===this._$Ej?.get(e)&&!this.hasAttribute(r._$Eu(e,s))))return;this.C(e,t,s)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(e,t,{useDefault:s,reflect:r,wrapped:i},o){s&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,o??t??this[e]),!0!==i||void 0!==o)||(this._$AL.has(e)||(this.hasUpdated||s||(t=void 0),this._$AL.set(e,t)),!0===r&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}let e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}let e=this.constructor.elementProperties;if(e.size>0)for(let[t,s]of e){let{wrapped:e}=s,r=this[t];!0!==e||this._$AL.has(t)||void 0===r||this.C(t,void 0,s,r)}}let e=!1,t=this._$AL;try{(e=this.shouldUpdate(t))?(this.willUpdate(t),this._$EO?.forEach(e=>e.hostUpdate?.()),this.update(t)):this._$EM()}catch(t){throw e=!1,this._$EM(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(e){}firstUpdated(e){}}lJ.elementStyles=[],lJ.shadowRootOptions={mode:"open"},lJ.elementProperties=new Map,lJ.finalized=new Map,lZ?.({ReactiveElement:lJ}),(lH.reactiveElementVersions??=[]).push("2.1.1");let lY=globalThis,lX=lY.trustedTypes,l1=lX?lX.createPolicy("lit-html",{createHTML:e=>e}):void 0,l0="$lit$",l2=`lit$${Math.random().toFixed(9).slice(2)}$`,l4="?"+l2,l3=`<${l4}>`,l6=document,l8=()=>l6.createComment(""),l5=e=>null===e||"object"!=typeof e&&"function"!=typeof e,l9=Array.isArray,l7="[ \n\f\r]",ce=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,ct=/-->/g,cs=/>/g,cr=RegExp(`>|${l7}(?:([^\\s"'>=/]+)(${l7}*=${l7}*(?:[^ \f\r"'\`<>=]|("|')|))|$)`,"g"),ci=/'/g,cn=/"/g,co=/^(?:script|style|textarea|title)$/i,ca=e=>(t,...s)=>({_$litType$:e,strings:t,values:s}),cl=ca(1),cc=(ca(2),ca(3),Symbol.for("lit-noChange")),cd=Symbol.for("lit-nothing"),cu=new WeakMap,ch=l6.createTreeWalker(l6,129);function cm(e,t){if(!l9(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==l1?l1.createHTML(t):t}class cp{constructor({strings:e,_$litType$:t},s){let r;this.parts=[];let i=0,o=0,a=e.length-1,l=this.parts,[c,d]=((e,t)=>{let s=e.length-1,r=[],i,o=2===t?"":3===t?"":"",a=ce;for(let t=0;t"===c[0]?(a=i??ce,d=-1):void 0===c[1]?d=-2:(d=a.lastIndex-c[2].length,l=c[1],a=void 0===c[3]?cr:'"'===c[3]?cn:ci):a===cn||a===ci?a=cr:a===ct||a===cs?a=ce:(a=cr,i=void 0);let h=a===cr&&e[t+1].startsWith("/>")?" ":"";o+=a===ce?s+l3:d>=0?(r.push(l),s.slice(0,d)+l0+s.slice(d)+l2+h):s+l2+(-2===d?t:h)}return[cm(e,o+(e[s]||"")+(2===t?"":3===t?"":"")),r]})(e,t);if(this.el=cp.createElement(c,s),ch.currentNode=this.el.content,2===t||3===t){let e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(r=ch.nextNode())&&l.length0){r.textContent=lX?lX.emptyScript:"";for(let s=0;s2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=cd}_$AI(e,t=this,s,r){let i=this.strings,o=!1;if(void 0===i)(o=!l5(e=cf(this,e,t,0))||e!==this._$AH&&e!==cc)&&(this._$AH=e);else{let r,a,l=e;for(e=i[0],r=0;r{let r=s?.renderBefore??t,i=r._$litPart$;if(void 0===i){let e=s?.renderBefore??null;r._$litPart$=i=new cv(t.insertBefore(l8(),e),e,void 0,s??{})}return i._$AI(e),i},cA=globalThis;class cE extends lJ{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){let t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=cx(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return cc}}cE._$litElement$=!0,cE.finalized=!0,cA.litElementHydrateSupport?.({LitElement:cE});let c$=cA.litElementPolyfillSupport;c$?.({LitElement:cE}),(cA.litElementVersions??=[]).push("4.2.1");class ck extends es.Model{defaults(){return{connection_status:rZ.Status.DISCONNECTED,message:""}}initialize(){super.initialize();let{api:e}=iw;this.on("change",()=>e.trigger("connfeedback",iw.state.connfeedback))}}function cC(e){return[...new Set(e)]}function cT(e,t){let s=new Uint8Array(e.byteLength+t.byteLength);return s.set(new Uint8Array(e),0),s.set(new Uint8Array(t),e.byteLength),s.buffer}function cM(e){return Array.prototype.map.call(new Uint8Array(e),e=>("00"+e.toString(16)).slice(-2)).join("")}function cO(e){return new TextDecoder("utf-8").decode(e)}function cN(e){return new TextEncoder().encode(e).buffer}function cI(e){return btoa(new Uint8Array(e).reduce((e,t)=>e+String.fromCharCode(t),""))}function cR(e){let t=atob(e),s=t.length,r=new Uint8Array(s);for(let e=0;eparseInt(e,16))).buffer}class cL{constructor(){this.hex="#000000",this.rgb_r=0,this.rgb_g=0,this.rgb_b=0,this.xyz_x=0,this.xyz_y=0,this.xyz_z=0,this.luv_l=0,this.luv_u=0,this.luv_v=0,this.lch_l=0,this.lch_c=0,this.lch_h=0,this.hsluv_h=0,this.hsluv_s=0,this.hsluv_l=0,this.hpluv_h=0,this.hpluv_p=0,this.hpluv_l=0,this.r0s=0,this.r0i=0,this.r1s=0,this.r1i=0,this.g0s=0,this.g0i=0,this.g1s=0,this.g1i=0,this.b0s=0,this.b0i=0,this.b1s=0,this.b1i=0}static fromLinear(e){return e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055}static toLinear(e){return e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92}static yToL(e){return e<=cL.epsilon?e/cL.refY*cL.kappa:116*Math.pow(e/cL.refY,1/3)-16}static lToY(e){return e<=8?cL.refY*e/cL.kappa:cL.refY*Math.pow((e+16)/116,3)}static rgbChannelToHex(e){let t=Math.round(255*e),s=t%16;return cL.hexChars.charAt((t-s)/16|0)+cL.hexChars.charAt(s)}static hexToRgbChannel(e,t){return(16*cL.hexChars.indexOf(e.charAt(t))+cL.hexChars.indexOf(e.charAt(t+1)))/255}static distanceFromOriginAngle(e,t,s){let r=t/(Math.sin(s)-e*Math.cos(s));return r<0?1/0:r}static distanceFromOrigin(e,t){return Math.abs(t)/Math.sqrt(Math.pow(e,2)+1)}static min6(e,t,s,r,i,o){return Math.min(e,Math.min(t,Math.min(s,Math.min(r,Math.min(i,o)))))}rgbToHex(){this.hex="#",this.hex+=cL.rgbChannelToHex(this.rgb_r),this.hex+=cL.rgbChannelToHex(this.rgb_g),this.hex+=cL.rgbChannelToHex(this.rgb_b)}hexToRgb(){this.hex=this.hex.toLowerCase(),this.rgb_r=cL.hexToRgbChannel(this.hex,1),this.rgb_g=cL.hexToRgbChannel(this.hex,3),this.rgb_b=cL.hexToRgbChannel(this.hex,5)}xyzToRgb(){this.rgb_r=cL.fromLinear(cL.m_r0*this.xyz_x+cL.m_r1*this.xyz_y+cL.m_r2*this.xyz_z),this.rgb_g=cL.fromLinear(cL.m_g0*this.xyz_x+cL.m_g1*this.xyz_y+cL.m_g2*this.xyz_z),this.rgb_b=cL.fromLinear(cL.m_b0*this.xyz_x+cL.m_b1*this.xyz_y+cL.m_b2*this.xyz_z)}rgbToXyz(){let e=cL.toLinear(this.rgb_r),t=cL.toLinear(this.rgb_g),s=cL.toLinear(this.rgb_b);this.xyz_x=.41239079926595*e+.35758433938387*t+.18048078840183*s,this.xyz_y=.21263900587151*e+.71516867876775*t+.072192315360733*s,this.xyz_z=.019330818715591*e+.11919477979462*t+.95053215224966*s}xyzToLuv(){let e=this.xyz_x+15*this.xyz_y+3*this.xyz_z,t=4*this.xyz_x,s=9*this.xyz_y;0!==e?(t/=e,s/=e):(t=NaN,s=NaN),this.luv_l=cL.yToL(this.xyz_y),0===this.luv_l?(this.luv_u=0,this.luv_v=0):(this.luv_u=13*this.luv_l*(t-cL.refU),this.luv_v=13*this.luv_l*(s-cL.refV))}luvToXyz(){if(0===this.luv_l){this.xyz_x=0,this.xyz_y=0,this.xyz_z=0;return}let e=this.luv_u/(13*this.luv_l)+cL.refU,t=this.luv_v/(13*this.luv_l)+cL.refV;this.xyz_y=cL.lToY(this.luv_l),this.xyz_x=0-9*this.xyz_y*e/((e-4)*t-e*t),this.xyz_z=(9*this.xyz_y-15*t*this.xyz_y-t*this.xyz_x)/(3*t)}luvToLch(){if(this.lch_l=this.luv_l,this.lch_c=Math.sqrt(this.luv_u*this.luv_u+this.luv_v*this.luv_v),this.lch_c<1e-8)this.lch_h=0;else{let e=Math.atan2(this.luv_v,this.luv_u);this.lch_h=180*e/Math.PI,this.lch_h<0&&(this.lch_h=360+this.lch_h)}}lchToLuv(){let e=this.lch_h/180*Math.PI;this.luv_l=this.lch_l,this.luv_u=Math.cos(e)*this.lch_c,this.luv_v=Math.sin(e)*this.lch_c}calculateBoundingLines(e){let t=Math.pow(e+16,3)/1560896,s=t>cL.epsilon?t:e/cL.kappa,r=s*(284517*cL.m_r0-94839*cL.m_r2),i=s*(838422*cL.m_r2+769860*cL.m_r1+731718*cL.m_r0),o=s*(632260*cL.m_r2-126452*cL.m_r1),a=s*(284517*cL.m_g0-94839*cL.m_g2),l=s*(838422*cL.m_g2+769860*cL.m_g1+731718*cL.m_g0),c=s*(632260*cL.m_g2-126452*cL.m_g1),d=s*(284517*cL.m_b0-94839*cL.m_b2),u=s*(838422*cL.m_b2+769860*cL.m_b1+731718*cL.m_b0),h=s*(632260*cL.m_b2-126452*cL.m_b1);this.r0s=r/o,this.r0i=i*e/o,this.r1s=r/(o+126452),this.r1i=(i-769860)*e/(o+126452),this.g0s=a/c,this.g0i=l*e/c,this.g1s=a/(c+126452),this.g1i=(l-769860)*e/(c+126452),this.b0s=d/h,this.b0i=u*e/h,this.b1s=d/(h+126452),this.b1i=(u-769860)*e/(h+126452)}calcMaxChromaHpluv(){let e=cL.distanceFromOrigin(this.r0s,this.r0i),t=cL.distanceFromOrigin(this.r1s,this.r1i),s=cL.distanceFromOrigin(this.g0s,this.g0i),r=cL.distanceFromOrigin(this.g1s,this.g1i),i=cL.distanceFromOrigin(this.b0s,this.b0i),o=cL.distanceFromOrigin(this.b1s,this.b1i);return cL.min6(e,t,s,r,i,o)}calcMaxChromaHsluv(e){let t=e/360*Math.PI*2,s=cL.distanceFromOriginAngle(this.r0s,this.r0i,t),r=cL.distanceFromOriginAngle(this.r1s,this.r1i,t),i=cL.distanceFromOriginAngle(this.g0s,this.g0i,t),o=cL.distanceFromOriginAngle(this.g1s,this.g1i,t),a=cL.distanceFromOriginAngle(this.b0s,this.b0i,t),l=cL.distanceFromOriginAngle(this.b1s,this.b1i,t);return cL.min6(s,r,i,o,a,l)}hsluvToLch(){if(this.hsluv_l>99.9999999)this.lch_l=100,this.lch_c=0;else if(this.hsluv_l<1e-8)this.lch_l=0,this.lch_c=0;else{this.lch_l=this.hsluv_l,this.calculateBoundingLines(this.hsluv_l);let e=this.calcMaxChromaHsluv(this.hsluv_h);this.lch_c=e/100*this.hsluv_s}this.lch_h=this.hsluv_h}lchToHsluv(){if(this.lch_l>99.9999999)this.hsluv_s=0,this.hsluv_l=100;else if(this.lch_l<1e-8)this.hsluv_s=0,this.hsluv_l=0;else{this.calculateBoundingLines(this.lch_l);let e=this.calcMaxChromaHsluv(this.lch_h);this.hsluv_s=this.lch_c/e*100,this.hsluv_l=this.lch_l}this.hsluv_h=this.lch_h}hpluvToLch(){if(this.hpluv_l>99.9999999)this.lch_l=100,this.lch_c=0;else if(this.hpluv_l<1e-8)this.lch_l=0,this.lch_c=0;else{this.lch_l=this.hpluv_l,this.calculateBoundingLines(this.hpluv_l);let e=this.calcMaxChromaHpluv();this.lch_c=e/100*this.hpluv_p}this.lch_h=this.hpluv_h}lchToHpluv(){if(this.lch_l>99.9999999)this.hpluv_p=0,this.hpluv_l=100;else if(this.lch_l<1e-8)this.hpluv_p=0,this.hpluv_l=0;else{this.calculateBoundingLines(this.lch_l);let e=this.calcMaxChromaHpluv();this.hpluv_p=this.lch_c/e*100,this.hpluv_l=this.lch_l}this.hpluv_h=this.lch_h}hsluvToRgb(){this.hsluvToLch(),this.lchToLuv(),this.luvToXyz(),this.xyzToRgb()}hpluvToRgb(){this.hpluvToLch(),this.lchToLuv(),this.luvToXyz(),this.xyzToRgb()}hsluvToHex(){this.hsluvToRgb(),this.rgbToHex()}hpluvToHex(){this.hpluvToRgb(),this.rgbToHex()}rgbToHsluv(){this.rgbToXyz(),this.xyzToLuv(),this.luvToLch(),this.lchToHpluv(),this.lchToHsluv()}rgbToHpluv(){this.rgbToXyz(),this.xyzToLuv(),this.luvToLch(),this.lchToHpluv(),this.lchToHpluv()}hexToHsluv(){this.hexToRgb(),this.rgbToHsluv()}hexToHpluv(){this.hexToRgb(),this.rgbToHpluv()}}cL.hexChars="0123456789abcdef",cL.refY=1,cL.refU=.19783000664283,cL.refV=.46831999493879,cL.kappa=903.2962962,cL.epsilon=.0088564516,cL.m_r0=3.240969941904521,cL.m_r1=-1.537383177570093,cL.m_r2=-.498610760293,cL.m_g0=-.96924363628087,cL.m_g1=1.87596750150772,cL.m_g2=.041555057407175,cL.m_b0=.055630079696993,cL.m_b1=-.20397695888897,cL.m_b2=1.056971514242878;let cz=new Map;async function cP(e){let t=cz.get(e);if(t)return t;let s=Array.from(new Uint8Array(await crypto.subtle.digest("SHA-1",new TextEncoder().encode(e)))),r=(s[0]+256*s[1])/65536*360,i=new cL;return i.hsluv_h=r,i.hsluv_s=100,i.hsluv_l=50,i.hsluvToHex(),cz.set(e,i.hex),i.hex}let cU=e=>`${rZ.xmlescape(e)}`;function cB(e){let t=[],s=e?.options;for(let e=0,r=s.length;ee.trim()):"SELECT"==e.tagName?cB(e):e.value)?t.map(cU):cU(t),`${s}`)):null}function cq(e,t,s){t||(t=e.selectionEnd||void 0);let[r]=e.value.slice(0,t).split(/\s/).slice(-1);return s&&([r]=r.split(s).slice(-1)),r}function cH(e){return"@"!==e&&RegExp("(\\p{Z}|\\p{P})","u").test(e)}function cG(e,t){let s=e.selectionEnd||void 0,r=e.value.slice(0,s).split(/\s/).pop(),i=e.value,o=cH(r[0])?r[0]:"";e.value=i.slice(0,s-r.length)+o+`${t} `+i.slice(s);let a=s-r.length+t.length+1;e.selectionEnd=o?a+1:a}function cW(e){e!==document.activeElement&&e.focus();let t=2*e.value.length;setTimeout(()=>e.setSelectionRange(t,t),1),e.scrollTop=999999}function cZ(e){if(!e)return"";let t=e.codePointAt(0);return String.fromCodePoint(t).toLocaleUpperCase()+e.substring(t>65535?2:1)}function cV(e,t){return t.reduce(function(t,s){return e.startsWith(s)&&s.length>t.length?s:t},"")}function cQ(e){return"string"==typeof e||e instanceof String}let cK=/(\b|_)(?:([a-z][a-z0-9.+-]*:\/\/)|xmpp:|mailto:|www\.)/gi,cJ=/[\s\r\n]|$/,cY=/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,cX=/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g;function c1(e){try{if(e.startsWith("www."))return!!c0(`http://${e}`);return!!c0(e)}catch{return!1}}function c0(e){return e instanceof URL?e:e.toLowerCase().startsWith("www.")?c0(`http://${e}`):new URL(e)}function c2(e,t){let s;try{s=c0(t)}catch(e){throw Error(`checkFileTypes: could not parse url ${t}`)}let r=s.pathname.split("/").pop().toLowerCase();return!!e.filter(e=>r.endsWith(e)).length}function c4(e){return c2([".jpg",".jpeg",".png",".gif",".bmp",".tiff",".svg"],e)}function c3(e){return c2([".gif"],e)}function c6(e,t){return!!t?.get("content-type")?.startsWith("audio")||c2([".ogg",".mp3",".m4a"],e)}function c8(e,t){return!!t?.get("content-type")?.startsWith("video")||c2([".mp4",".webm"],e)}function c5(e,t){if(t?.get("content-type")?.startsWith("video"))return!0;let s=sT.get("image_urls_regex");return s?.test(e)||c4(e)}function c9(e){return c0(e).href.startsWith("aesgcm://")}function c7(e,t,s){let r=(s=s||{}).start||cK,i=s.end||cJ,o=s.trim||cY,a=s.parens||cX,l=/[a-z0-9-]=["']?$/i;for(r.lastIndex=0;;){let c=r.exec(e);if(!c)break;let d=c.index;if(s.ignoreHtml){let t=e.slice(Math.max(d-3,0),d);if(t&&l.test(t))continue}let u=d+e.slice(d).search(i),h=e.slice(d,u),m=-1;for(;;){let e=a.exec(h);if(!e)break;m=Math.max(m,e.index+e[0].length)}if((h=m>-1?h.slice(0,m)+h.slice(m).replace(o,""):h.replace(o,"")).length<=c[0].length||s.ignore&&s.ignore.test(h))continue;u=d+h.length;let p=t(h,d,u);if(void 0===p){r.lastIndex=u;continue}e=e.slice(0,d)+String(p)+e.slice(u),r.lastIndex=d+String(p).length}return r.lastIndex=0,e}async function de(e){try{return(await fetch(e,{method:"HEAD"})).headers}catch(t){return console.debug(`Error calling HEAD on url ${e}: ${t}`),null}}async function dt(e){let t=sT.get("fetch_url_headers")?await de(e.url):null;return{...e,is_gif:c3(e.url),is_audio:c6(e.url,t),is_image:c5(e.url,t),is_video:c8(e.url,t),is_encrypted:c9(e.url)}}async function ds(e,t=0){let s=[];if(!e)return{};try{c7(e,(e,r,i)=>(e.startsWith("_")&&(e=e.slice(1),r+=1),e.endsWith("_")&&(e=e.slice(0,e.length-1),i-=1),c1(e)&&s.push({url:e,start:r+t,end:i+t}),e))}catch(e){Q.debug(e)}let r=await Promise.all(s.map(dt));return r.length?{media_urls:r}:{}}function dr(e,t){return e.map(e=>{if(e.start<0||e.start>=t.length)return null;let s=t.substring(e.start,e.end);return{...e,url:s}}).filter(e=>e)}function di(e,t,s=0){return e.map(e=>{let r=e.start-s,i=e.end-s;return r<0||r>=t.length?null:Object.assign({},e,{start:r,end:i,url:t.substring(e.start-s,e.end-s)})}).filter(e=>e)}function dn(e){if(location.hash.startsWith("#converse?loglevel=")){e?.preventDefault();let t=location.hash.split("=").pop();Object.keys(Z).includes(t)?Q.setLogLevel(t):Q.error(`Could not set loglevel of ${t}`)}}function da(e){return e instanceof es.Model&&(e=e.attributes),!e.oob_url&&!e.file&&!(e.is_encrypted&&e.plaintext)&&!e.message&&!e.body}function dl(e){return Math.random()*e|0}function dc(e){let t=crypto.randomUUID?.()??"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=dl(16);return("x"===e?t:3&t|8).toString(16)});return"string"==typeof e||"number"==typeof e?t+":"+e:t}let dd=Object.assign({...O,...N,...I,...R,...T,...$,...E,...j,...k,...S,...M,...A,...D,...L,getRandomInt:dl,getUniqueId:dc,isEmptyMessage:da,onMultipleEvents:function(e=[],t){let s=[];function r(r){s.push(r),e.length===s.length&&(t(s),s=[])}e.forEach(e=>e.object.on(e.event,r))},prefixMentions:function(e){let t=e.getMessageText();return(e.get("references")||[]).sort((e,t)=>t.begin-e.begin).forEach(e=>{t=`${t.slice(0,e.begin)}@${t.slice(e.begin)}`}),t},shouldCreateMessage:function(e){return e.retracted||!da(e)},triggerEvent:function(e,t,s="Event",r=!0,i=!0){let o=document.createEvent(s);o.initEvent(t,r,i),e.dispatchEvent(o)}},{muc:null,mam:null,roster:null,omemo:null});iw.api=ax;let du={$build:rm,$iq:rf,$msg:rp,$pres:rg,Collection:es.Collection,Model:es.Model,Stanza:rG,Strophe:rZ,TimeoutError:oZ,VERSION_NAME:rK,css:(e,...t)=>new lD(1===e.length?e[0]:t.reduce((t,s,r)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+e[r+1],e[0]),e,lI),dayjs:F(),errors:C,filesize:lM,html:cl,log:Q,nothing:cd,render:cx,sizzle:J(),sprintf:Y.sprintf,stx:rW,u:dd,utils:dd},dh=Object.assign(window.converse||{},{CHAT_STATES:ih,keycodes:ip,async initialize(e){let{api:s}=iw;await o$(iw),sk=e,t=new sC;let r=sb(e,Object.keys(sw));if(Object.assign(t,sw,r),iw.strict_plugin_dependencies=e.strict_plugin_dependencies,Q.setLogLevel(s.settings.get("loglevel")),s.settings.get("authentication")===r0&&s.settings.get("auto_login")&&!s.settings.get("jid"))throw Error("Config Error: you need to provide the server's domain via the 'jid' option when using anonymous authentication with auto_login.");dn(),addEventListener("hashchange",dn);let i=new ck;Object.assign(iw,{connfeedback:i}),Object.assign(iw.state,{connfeedback:i}),iw.env=du,await ow(iw),await ob(iw),await X.initialize(),oy(iw),s.elements?.register(),oE(iw);let o=iw.pluggable.plugins;if((s.settings.get("auto_login")||s.settings.get("keepalive")&&o["converse-bosh"]?.enabled())&&await s.user.login(null,null,!0),s.trigger("initialized"),sO())return iw},plugins:{add(e,t){if(t.__name__=e,void 0!==iw.pluggable.plugins[e])throw TypeError(`Error: plugin with name "${e}" has already been registered!`);iw.pluggable.plugins[e]=t}},env:du}),{u:dm,stx:dp,Stanza:df}=dh.env;function dg(e,t){ax.send(dp` ${t} `),Q.warn(`Rejecting message stanza with the following reason: ${t}`),Q.warn(e)}function dv(e,t,s,r){if(!im.includes(s))return void Q.error(`Invalid marker type: ${s}`);let i=dp` <${df.unsafeXML(s)} xmlns="${rZ.NS.MARKERS}" id="${t}"/> `;ax.send(i)}function d_(e,t){if(!e)return void Q.error("sendChatState called with no JID");if(!ih.includes(t))return void Q.error(`Invalid chat state: ${t}`);if(ax.settings.get("send_chat_state_notifications")&&t){let s=ax.settings.get("send_chat_state_notifications");if(Array.isArray(s)&&!s.includes(t))return;ax.send(dp` <${df.unsafeXML(t)} xmlns="${rZ.NS.CHATSTATES}"/> `)}}let{NS:dy}=rZ;async function db(e){if(null===e)return null;if(e instanceof Error)return e;if("error"!==e.getAttribute("type"))return null;let t=e.querySelector("error");if(!t)return null;let s=J()(`[xmlns="${rZ.NS.STANZAS}"]`,t),r=s.filter(e=>e.nodeName&&"text"!==e.nodeName).pop()?.nodeName,i=await ax.hook("parseErrorStanza",e,{});if("bad-request"===r)return new oK(r,t,i);if("conflict"===r)return new oJ(r,t,i);if("feature-not-implemented"===r)return new oY(r,t,i);if("forbidden"===r)return new oX(r,t,i);if("gone"===r)return new o1(r,t,i);if("internal-server-error"===r)return new o0(r,t,i);if("item-not-found"===r)return new o2(r,t,i);if("jid-malformed"===r)return new o4(r,t,i);if("not-acceptable"===r)return new o3(r,t,i);else if("not-allowed"===r)return new o6(r,t,i);else if("not-authorized"===r)return new o8(r,t,i);else if("payment-required"===r)return new o5(r,t,i);else if("recipient-unavailable"===r)return new o9(r,t,i);else if("redirect"===r)return new o7(r,t,i);else if("registration-required"===r)return new ae(r,t,i);else if("remote-server-not-found"===r)return new at(r,t,i);else if("remote-server-timeout"===r)return new as(r,t,i);else if("resource-constraint"===r)return new ar(r,t,i);else if("service-unavailable"===r)return new ai(r,t,i);else if("subscription-required"===r)return new an(r,t,i);else if("undefined-condition"===r)return new ao(r,t,i);else if("unexpected-request"===r)return new aa(r,t,i);return new oV("unknown",t)}function dw(e,t){let s=J()(`stanza-id[xmlns="${rZ.NS.SID}"]`,e).reduce((e,t)=>(e[`stanza_id ${t.getAttribute("by")}`]=t.getAttribute("id"),e),{}),r={origin_id:J()(`origin-id[xmlns="${rZ.NS.SID}"]`,e).pop()?.getAttribute("id"),msgid:e.getAttribute("id")||t.getAttribute("id"),...s},i=J()(`message > result[xmlns="${rZ.NS.MAM}"]`,t).pop();if(i){let e=iw.session.get("bare_jid"),s=t.getAttribute("from")||e;r[`stanza_id ${s}`]=i.getAttribute("id")}return r}function dj(e){let t=J()(`encryption[xmlns="${rZ.NS.EME}"]`,e).pop(),s=t?.getAttribute("namespace"),r={};return s?(r.is_encrypted=!0,r.encryption_namespace=s):J()(`encrypted[xmlns="${rZ.NS.OMEMO}"]`,e).pop()&&(r.is_encrypted=!0,r.encryption_namespace=rZ.NS.OMEMO),r}function dS(e,t){let s=J()(`> apply-to[xmlns="${rZ.NS.FASTEN}"]`,e).pop();if(s){let e=s.getAttribute("id");if(J()(`> retract[xmlns="${rZ.NS.RETRACT0}"]`,s).pop()){let s=J()(`delay[xmlns="${rZ.NS.DELAY}"]`,t).pop();return{editable:!1,retracted:s?F()(s.getAttribute("stamp")).toISOString():new Date().toISOString(),retracted_id:e}}}return{}}function dx(e,t){let s=J()(`> retract[xmlns="${rZ.NS.RETRACT}"]`,e).pop();if(s){let e=J()(`> delay[xmlns="${rZ.NS.DELAY}"]`,t).pop();return{editable:!1,retracted:e?F()(e.getAttribute("stamp")).toISOString():new Date().toISOString(),retracted_id:s.getAttribute("id")}}{let t=J()(`> retracted[xmlns="${rZ.NS.RETRACT}"]`,e).pop()||J()(`> retracted[xmlns="${rZ.NS.RETRACT0}"]`,e).pop();if(t)return{editable:!1,is_tombstone:!0,retracted:t.getAttribute("stamp"),retraction_id:t.getAttribute("id")}}return dS(e,t)}function dA(e,t){let s=J()(`replace[xmlns="${rZ.NS.MESSAGE_CORRECT}"]`,e).pop();if(s){let e=s.getAttribute("id");if(e){let s=J()(`delay[xmlns="${rZ.NS.DELAY}"]`,t).pop();return{replace_id:e,edited:s?F()(s.getAttribute("stamp")).toISOString():new Date().toISOString()}}}return{}}function dE(e){let t=J()(`> apply-to[xmlns="${rZ.NS.FASTEN}"]`,e).pop();if(t){let e=t.getAttribute("id"),s=J()(`> meta[xmlns="${rZ.NS.XHTML}"]`,t);if(s.length){let t=ax.settings.get("message_limit"),r=s.reduce((e,s)=>{let r=s.getAttribute("property");if(r){let i=lw(s.getAttribute("content")||"");t&&"og:description"===r&&i.length>=t&&(i=`${i.slice(0,t)}${lw("…")}`),e[r]=i}return e},{ogp_for_id:e}),i=r["og:url"];if(i?.startsWith("/")&&r["og:site_name"]?.toLowerCase()==="github"&&(r["og:url"]=`https://github.com${i}`),"og:description"in r||"og:title"in r||"og:image"in r)return r}}return{}}function d$(e){let t=J()(`spoiler[xmlns="${rZ.NS.SPOILER}"]`,e).pop();return{is_spoiler:!!t,spoiler_hint:t?.textContent}}function dk(e){let t=J()(`x[xmlns="${rZ.NS.OUTOFBAND}"]`,e).pop();return t?{oob_url:t.querySelector("url")?.textContent,oob_desc:t.querySelector("desc")?.textContent}:{}}function dC(e){if("error"===e.getAttribute("type")){let t=e.querySelector("error"),s=J()(`text[xmlns="${rZ.NS.STANZAS}"]`,t).pop();return{is_error:!0,error_text:s?.textContent,error_type:t.getAttribute("type"),error_condition:t.firstElementChild.nodeName,errors:Array.from(t.children).map(e=>({name:e.nodeName,xmlns:e.getAttribute("xmlns")}))}}return{}}function dT(e){return J()(`reference[xmlns="${rZ.NS.REFERENCE}"]`,e).map(t=>{let s=t.getAttribute("anchor"),r=e.querySelector(s?`#${s}`:"body")?.textContent;if(!r)return Q.warn(`Could not find referenced text for ${t}`),null;let i=Number(t.getAttribute("begin")),o=Number(t.getAttribute("end"));return{begin:i,end:o,type:t.getAttribute("type"),value:r.slice(i,o),uri:t.getAttribute("uri")}}).filter(e=>e)}function dM(e){let t=J()(`received[xmlns="${rZ.NS.RECEIPTS}"]`,e).pop();return t?.getAttribute("id")}function dO(e){let t=rZ.NS.CARBONS;return J()(`message > received[xmlns="${t}"]`,e).length>0||J()(`message > sent[xmlns="${t}"]`,e).length>0}function dN(e){return J()(` composing[xmlns="${dy.CHATSTATES}"], paused[xmlns="${dy.CHATSTATES}"], inactive[xmlns="${dy.CHATSTATES}"], active[xmlns="${dy.CHATSTATES}"], gone[xmlns="${dy.CHATSTATES}"]`,e).pop()?.nodeName}function dI(e,t){return"me"!==t.sender&&!t.is_carbon&&!t.is_archived&&J()(`request[xmlns="${rZ.NS.RECEIPTS}"]`,e).length}function dR(e){if(J()(`message > forwarded[xmlns="${rZ.NS.FORWARD}"]`,e).length){dg(e,"Forwarded messages not part of an encapsulating protocol are not supported");let t=e.getAttribute("from");throw new oQ(e,`Ignoring unencapsulated forwarded message from ${t}`)}}function dD(e){return J()(` acknowledged[xmlns="${rZ.NS.MARKERS}"], displayed[xmlns="${rZ.NS.MARKERS}"], received[xmlns="${rZ.NS.MARKERS}"]`,e).pop()}function dL(e){return"headline"===e.getAttribute("type")}async function dz(e){let t=rZ.getBareJidFromJid(e.getAttribute("from"));return!!await ax.rooms.get(t)}function dP(e){if(J()(`mentions[xmlns="${rZ.NS.MENTIONS}"]`,e).pop())return!1;let t=e.getAttribute("from");return!("error"===e.getAttribute("type")||!t||t.includes("@"))}function dU(e){return!!J()(`message > result[xmlns="${rZ.NS.MAM}"]`,e).pop()}function dB(e,t,s){let r=e.getAttribute("var"),i=e.getAttribute("label")||"",o=e.getAttribute("type"),a={readonly:t,desc:e.querySelector("desc")?.textContent};if("list-single"===o||"list-multi"===o){let t=Array.from(e.querySelectorAll(":scope > value")).map(e=>e?.textContent);return{type:o,options:Array.from(e.querySelectorAll(":scope > option")).map(s=>{let r=s.querySelector("value")?.textContent;return{value:r,label:s.getAttribute("label"),selected:t.includes(r),required:!!e.querySelector("required"),...a}}),label:e.getAttribute("label"),var:r,required:!!e.querySelector("required"),...a}}if("fixed"===o)return{text:e.querySelector("value")?.textContent,label:i,type:o,var:r,...a};if("jid-multi"===o)return{type:o,var:r,label:i,value:e.querySelector("value")?.textContent,required:!!e.querySelector("required"),...a};if("boolean"===o){let t=e.querySelector("value")?.textContent;return{type:o,var:r,label:i,checked:"1"===t||"true"===t,...a}}{if("url"===r)return{var:r,label:i,value:e.querySelector("value")?.textContent,...a};if("username"===r)return{var:r,label:i,value:e.querySelector("value")?.textContent,required:!!e.querySelector("required"),type:dF(e),...a};if("password"===r)return{var:r,label:i,value:e.querySelector("value")?.textContent,required:!!e.querySelector("required"),...a};if("ocr"!==r)return{label:i,var:r,required:!!e.querySelector("required"),value:e.querySelector("value")?.textContent,type:dF(e),...a};let t=e.querySelector("uri"),o=J()('data[cid="'+t.textContent.replace(/^cid:/,"")+'"]',s)[0];return{label:e.getAttribute("label"),var:r,uri:{type:t.getAttribute("type"),data:o?.textContent},required:!!e.querySelector("required"),...a}}}function dF(e){let t=ig[e.getAttribute("type")];if("text"==t){let s=e.getElementsByTagNameNS("http://jabber.org/protocol/xdata-validate","validate");if(1===s.length)return iv[s[0].getAttribute("datatype")]||t}return t}function dq(e){let t=J()(`x[xmlns="${rZ.NS.XFORM}"]`,e);if(t.length>1)throw Q.error(e),Error("Invalid stanza");if(0===t.length)return null;let s=t[0],r=s.getAttribute("type"),i={type:r,title:s.querySelector("title")?.textContent};if("result"===r){let t=s.querySelector(":scope > reported");if(t){let e=t?Array.from(t.querySelectorAll(":scope > field")):[],r=Array.from(s.querySelectorAll(":scope > item"));return{...i,reported:e.map(lA),items:r.map(e=>Array.from(e.querySelectorAll("field")).map(e=>({...lA(e),value:e.querySelector("value")?.textContent??""})))}}return{...i,fields:Array.from(s.querySelectorAll("field")).map(t=>dB(t,!0,e))}}if("form"===r)return{...i,instructions:s.querySelector("instructions")?.textContent,fields:Array.from(s.querySelectorAll("field")).map(t=>dB(t,!1,e))};throw Error(`Invalid type in XForm response stanza: ${r}`)}let{safeSave:dH,colorize:dG}=dd;function dW(e){return class extends e{async setColor(){dH(this,{color:await dG(this.getIdentifier())})}getIdentifier(){return this.get("type")===ia?this.get("jid"):"groupchat"===this.get("type")?this.get("from_real_jid")||this.get("from"):this.get("occupant_id")||this.get("jid")||this.get("from")||this.get("nick")}async getColor(){return this.get("color")||await this.setColor(),this.get("color")}async getAvatarStyle(e=""){try{let t=await this.getColor();return`background-color: ${t} !important; ${e}`}catch{return`background-color: gray !important; ${e}`}}}}function dZ(e){return class extends e{initialize(){super.initialize(),this.rosterContactAdded=er(),this.onClosedChanged=()=>this.setModelContact(this.get("jid")),this.contact=null}async setModelContact(e){let t;if(this.contact?.get("jid")===e)return;if(this.get("closed")){this.off("change:closed",this.onClosedChanged),this.on("change:closed",this.onClosedChanged);return}let{session:s,state:r}=iw;rZ.getBareJidFromJid(e)===s.get("bare_jid")?t=r.profile:(t=await ax.contacts.get(e))||(await ax.blocklist.get()).get(e)||(t=await ax.contacts.add({jid:e},!1,!1)),t&&(this.contact=t,this.set("nickname",t.get("nickname")),this.listenTo(this.contact,"vcard:add",e=>{this.trigger("contact:change",e)}),this.listenTo(this.contact,"vcard:change",e=>{this.trigger("contact:change",e)}),this.listenTo(this.contact,"change",e=>{e.nickname&&this.set("nickname",e.nickname),this.trigger("contact:change",e)}),this.listenTo(this.contact,"destroy",()=>{delete this.contact,this.trigger("contact:destroy")}),this.rosterContactAdded.resolve(),this.trigger("contact:add",this.contact))}}}let{u:dV}=dh.env;async function dQ(e){let t={email:e.querySelector(":scope > vCard EMAIL USERID")?.textContent,fullname:e.querySelector(":scope > vCard FN")?.textContent,image:e.querySelector(":scope > vCard PHOTO BINVAL")?.textContent,image_type:e.querySelector(":scope > vCard PHOTO TYPE")?.textContent,nickname:e.querySelector(":scope > vCard NICKNAME")?.textContent,role:e.querySelector(":scope > vCard ROLE")?.textContent,stanza:e,url:e.querySelector(":scope > vCard URL")?.textContent,vcard_updated:new Date().toISOString(),error:void 0,vcard_error:void 0,image_hash:void 0};if(t.image){let e=dV.base64ToArrayBuffer(t.image),s=await crypto.subtle.digest("SHA-1",e);t.image_hash=dV.arrayBufferToHex(s)}return t}let{Strophe:dK,$iq:dJ,sizzle:dY,stx:dX}=dh.env;function d1(e,t,s){let r=dJ(t?{type:e,to:t}:{type:e});return s?r.cnode(s):r.c("vCard",{xmlns:dK.NS.VCARD}),r}async function d0(e,t=!1){let s;if(await ax.waitUntil("VCardsInitialized"),e instanceof iw.exports.MUCOccupant)s=await d2(e,t);else if(e instanceof iw.exports.MUCMessage)s=await d4(e,t);else{let r;if(e instanceof iw.exports.Message){if(["error","info"].includes(e.get("type")))return;r=dK.getBareJidFromJid(e.get("from"))}else r=e.get("jid");if(!r)return Q.warn("Could not set VCard on model because no JID found!"),null;let{vcards:i}=iw.state;s=i.get(r)||i.create({jid:r},{lazy_load:t})}return s&&s.on("change",()=>e.trigger("vcard:change")),s}async function d2(e,t=!0){await ax.waitUntil("VCardsInitialized");let{vcards:s,profile:r}=iw.state,i=e?.collection?.chatroom,o=e.get("nick");if(o&&i?.get("nick")===o)return r.vcard;{let r=e.get("jid")||e.get("from");return r?s.get(r)||s.create({jid:r},{lazy_load:t}):(Q.debug("Could not get VCard for occupant because no JID found!"),null)}}async function d4(e,t=!0){if(["error","info"].includes(e.get("type")))return;await ax.waitUntil("VCardsInitialized");let{vcards:s,profile:r}=iw.state,i=e?.collection?.chatbox,o=dK.getResourceFromJid(e.get("from"));if(o&&i?.get("nick")===o)return r.vcard;{let r=e.occupant?.get("jid")||e.get("from");return r?s.get(r)||s.create({jid:r},{lazy_load:t}):(Q.warn(`Could not get VCard for message because no JID found! msgid: ${e.get("msgid")}`),null)}}async function d3(e){let t,s=iw.session.get("bare_jid"),r=dK.getBareJidFromJid(e)===s?null:e;try{t=await ax.sendIQ(d1("get",r))}catch(r){let t=lm(r)?await db(r):r,s=t?.message;return{jid:e,stanza:lm(r)?r:null,error:s,vcard_error:new Date().toISOString()}}return dQ(t)}async function d6(e){await ax.waitUntil("VCardsInitialized");let t=dY(`x[xmlns="${dK.NS.VCARD_UPDATE}"] photo`,e).pop();if(t){let s=t.textContent,r=dK.getBareJidFromJid(e.getAttribute("from")),i=await iw.state.vcards.get(r);i?.get("image_hash")!==s&&ax.vcard.update(r,!0).catch(e=>Q.error(e))}}function d8(e){return class extends e{constructor(...e){super(...e),this._vcard=null,this.lazy_load_vcard=!1}initialize(){super.initialize(),this.getVCard()}get vcard(){return this._vcard}async getVCard(){let{pluggable:e}=iw;return e.plugins["converse-vcard"]?.enabled(iw)?(this._vcard||(this._vcard=await d0(this,this.lazy_load_vcard),this.trigger("vcard:add",{vcard:this._vcard})),this._vcard):null}}}dK.addNamespace("VCARD_UPDATE","vcard-temp:x:update");class d5 extends d8(dZ(dW(es.Model))){defaults(){return{msgid:dc(),time:new Date().toISOString(),is_ephemeral:!1}}constructor(e,t){super(e,t),this.file=null,this.attributes}initialize(){this.lazy_load_vcard=!0,super.initialize(),this.chatbox=this.collection?.chatbox,this.checkValidity()&&(this.get("file")&&this.on("change:put",()=>this.uploadFile()),this.on("change:is_ephemeral",()=>this.setTimerForEphemeralMessage()),this.setTimerForEphemeralMessage())}checkValidity(){return 3!==Object.keys(this.attributes).length||(this.validationError="Empty message",this.safeDestroy(),!1)}safeDestroy(){try{this.destroy()}catch(e){Q.warn(`safeDestroy: ${e}`)}}setTimerForEphemeralMessage(){this.ephemeral_timer&&clearTimeout(this.ephemeral_timer);let e=this.isEphemeral();e&&(this.ephemeral_timer=setTimeout(()=>this.safeDestroy(),"number"==typeof e?e:1e4))}isEphemeral(){return this.get("is_ephemeral")}isMeCommand(){let e=this.getMessageText();return!!e&&e.startsWith("/me ")}isRetracted(){return this.get("retracted")||"retracted"===this.get("moderated")}isFollowup(){let e=this.collection?.models;if(!e)return!1;let t=e.indexOf(this),s=t?e[t-1]:null;if(null===s)return!1;let r=F()(this.get("time"));return this.get("from")===s.get("from")&&!this.isRetracted()&&!s.isRetracted()&&!this.isMeCommand()&&!s.isMeCommand()&&!!this.get("is_encrypted")==!!s.get("is_encrypted")&&this.get("type")===s.get("type")&&"info"!==this.get("type")&&r.isBefore(F()(s.get("time")).add(10,"minutes"))&&("groupchat"!==this.get("type")||this.get("occupant_id")===s.get("occupant_id"))}mayBeRetracted(){let e="me"===this.get("sender"),t="cancel"!==this.get("error_type");return e&&t&&["all","own"].includes(ax.settings.get("allow_message_retraction"))}getMessageText(){if(this.get("is_encrypted")){let{__:e}=iw;return this.get("plaintext")||this.get("body")||e("Undecryptable OMEMO message")}return["groupchat","chat","normal"].includes(this.get("type"))?this.get("body"):this.get("message")}sendSlotRequestStanza(){if(!this.file)return Promise.reject(Error("file is undefined"));let e=rf({from:iw.session.get("jid"),to:this.get("slot_request_url"),type:"get"}).c("request",{xmlns:rZ.NS.HTTPUPLOAD,filename:this.file.name,size:this.file.size,"content-type":this.file.type});return ax.sendIQ(e)}getUploadRequestMetadata(e){return{headers:J()(`slot[xmlns="${rZ.NS.HTTPUPLOAD}"] put header`,e).map(e=>({name:e.getAttribute("name"),value:e.textContent})).filter(e=>["Authorization","Expires"].includes(e.name))}}async getRequestSlotURL(){let e,{__:t}=iw;try{e=await this.sendSlotRequestStanza()}catch(e){return Q.error(e),this.save({is_ephemeral:!0,message:t("Sorry, could not determine upload URL."),type:"error"})}let s=J()(`slot[xmlns="${rZ.NS.HTTPUPLOAD}"]`,e).pop();if(!s)return this.save({is_ephemeral:!0,message:t("Sorry, could not determine file upload URL."),type:"error"});this.upload_metadata=this.getUploadRequestMetadata(e),this.save({get:s.querySelector("get").getAttribute("url"),put:s.querySelector("put").getAttribute("url")})}uploadFile(){let e=new XMLHttpRequest;e.onreadystatechange=async t=>{if(e.readyState===XMLHttpRequest.DONE)if(Q.info("Status: "+e.status),200===e.status||201===e.status){let e={body:this.get("get"),message:this.get("get"),oob_url:this.get("get"),upload:r9};e=await ax.hook("afterFileUploaded",this,e),this.save(e)}else Q.error(t),e.onerror(new ProgressEvent(`Response status: ${e.status}`))},e.upload.addEventListener("progress",e=>{e.lengthComputable&&this.set("progress",e.loaded/e.total)},!1),e.onerror=()=>{let t,{__:s}=iw;t=e.responseText?s('Sorry, could not succesfully upload your file. Your server’s response: "%1$s"',e.responseText):s("Sorry, could not succesfully upload your file."),this.save({is_ephemeral:!0,message:t,type:"error",upload:r7})},e.open("PUT",this.get("put"),!0),e.setRequestHeader("Content-type",this.file.type),this.upload_metadata.headers?.forEach(t=>e.setRequestHeader(t.name,t.value)),e.send(this.file)}}let d9=d5,{Strophe:d7,sizzle:ue}=dh.env;async function ut(e){let t,s;dR(e);let r=e.getAttribute("to"),i=d7.getResourceFromJid(r),o=iw.session.get("resource");if(ax.settings.get("filter_by_resource")&&i&&i!==o)return new oQ(e,`Ignoring incoming message intended for a different resource: ${r}`);let a=iw.session.get("bare_jid"),l=e,c=e.getAttribute("from")||a;if(dO(e))if(c!==a)return dg(e,"Rejecting carbon from invalid JID"),new oQ(e,`Rejecting carbon from invalid JID ${r}`);else r=(e=ue(`[xmlns="${d7.NS.CARBONS}"] > forwarded[xmlns="${d7.NS.FORWARD}"] > message`,e).pop()).getAttribute("to"),c=e.getAttribute("from");let d=dU(e);if(d)if(c!==a)return new oQ(e,`Invalid Stanza: alleged MAM message from ${e.getAttribute("from")}`);else r=(e=ue(`[xmlns="${d7.NS.MAM}"] > forwarded[xmlns="${d7.NS.FORWARD}"] > message`,e).pop()).getAttribute("to"),c=e.getAttribute("from");let u=d7.getBareJidFromJid(c),h=u===a;if(h&&null===r)return new oQ(e,`Don't know how to handle message stanza without 'to' attribute. ${e.outerHTML}`);let m=dL(e),p=dP(e);if(!m&&!p&&(s=h?d7.getBareJidFromJid(r):u,void 0===(t=await ax.contacts.get(s))&&!ax.settings.get("allow_non_roster_messaging")))return Q.error(e),new oQ(e,"Blocking messaging with a JID not in our roster because allow_non_roster_messaging is false.");let f=ue(`delay[xmlns="${d7.NS.DELAY}"]`,l).pop(),g=dD(e),v=new Date().toISOString(),_=Object.assign({contact_jid:s,is_archived:d,is_headline:m,is_server_message:p,body:e.querySelector("body")?.textContent?.trim(),chat_state:dN(e),from:e.getAttribute("from"),is_carbon:dO(l),is_delayed:!!f,is_markable:!!ue(`markable[xmlns="${d7.NS.MARKERS}"]`,e).length,is_marker:!!g,is_unstyled:!!ue(`unstyled[xmlns="${d7.NS.STYLING}"]`,e).length,marker_id:g&&g.getAttribute("id"),nick:t?.attributes?.nickname,receipt_id:dM(e),received:new Date().toISOString(),references:dT(e),sender:h?"me":"them",subject:e.querySelector("subject")?.textContent,thread:e.querySelector("thread")?.textContent,time:f?F()(f.getAttribute("stamp")).toISOString():v,to:e.getAttribute("to"),type:e.getAttribute("type")||"normal"},dC(e),dk(e),d$(e),dA(e,l),dw(e,l),dx(e,l),dj(e));if(_.is_archived){let t=l.getAttribute("from");if(t&&t!==a)return new oQ(e,`Invalid Stanza: Forged MAM message from ${t}`)}(_=Object.assign({message:_.body||_.error,is_valid_receipt_request:dI(e,_)},_)).id=_.origin_id||_[`stanza_id ${_.from}`]||dd.getUniqueId(),_=await ax.hook("parseMessage",e,_);let y=await dd.getMediaURLsMetadata(_.is_encrypted?_.plaintext:_.body);return Object.assign(_,y)}let{Strophe:us,u:ur}=dh.env;function ui(e){if(!location.hash.startsWith("#converse/chat?jid="))return;e?.preventDefault();let t=location.hash.split("=").pop();if(!ur.isValidJID(t))return Q.warn(`Invalid JID "${t}" provided in URL fragment`);ax.chats.open(t)}async function un(e){let t=us.getBareJidFromJid(e.getAttribute("from")),s=iw.session.get("bare_jid");if(ur.isSameBareJID(t,s))return;let r=await ax.chatboxes.get(t);r?.get("type")===io&&r?.handleErrorMessageStanza(e)}function uo(){ax.settings.get("auto_join_private_chats").forEach(e=>{iw.state.chatboxes.where({jid:e}).length||("string"==typeof e?ax.chats.open(e):Q.error('Invalid jid criteria specified for "auto_join_private_chats"'))}),ax.trigger("privateChatsAutoJoined")}function ua(){ax.connection.get().addHandler(e=>!!(["groupchat","error"].includes(e.getAttribute("type"))||dL(e)||dP(e)||dU(e))||iw.exports.handleMessageStanza(e)||!0,null,"message"),ax.connection.get().addHandler(e=>(un(e),!0),null,"message","error")}async function ul(e){let t;if(dP(e=e instanceof Element?e:e.tree())){let t=e.getAttribute("from");return Q.info(`handleMessageStanza: Ignoring incoming server message from JID: ${t}`)}if(await dz(e))return!0;try{t=await ut(e)}catch(e){return Q.error(e)}if(ur.isErrorObject(t)){let{stanza:e,message:s}=t;return e&&Q.error(e),Q.error(s)}let{body:s,plaintext:r,contact_jid:i,nick:o}=t,a=await ax.chats.get(i,{nickname:o},!!(s||r));await a?.queueMessage(t);let l={stanza:e,attrs:t,chatbox:a};ax.trigger("message",l)}async function uc(){let e=iw.session.get("bare_jid"),t=us.getDomainFromJid(e);if(!await ax.disco.supports(us.NS.CARBONS,t))return void Q.warn("Not enabling carbons because it's not supported!");let s=new us.Builder("iq",{from:ax.connection.get().jid,type:"set"}).c("enable",{xmlns:us.NS.CARBONS}),r=await ax.sendIQ(s,null,!1);null===r?Q.warn("A timeout occurred while trying to enable carbons"):ur.isErrorStanza(r)?(Q.warn("An error occurred while trying to enable message carbons."),Q.error(r)):Q.debug("Message carbons have been enabled.")}let{Strophe:ud,stx:uu,u:uh}=dh.env;function um(e){return class extends e{constructor(...e){super(e[0],e[1]),this.disable_mam=!1}async initialize(){super.initialize(),this.initUI(),this.initMessages(),this.initNotifications(),this.ui.on("change:scrolled",()=>this.onScrolledChanged())}initNotifications(){this.notifications=new es.Model}initUI(){this.ui=new es.Model}getDisplayName(){return this.get("jid")}canPostMessages(){return!0}async createMessage(e,t){return e.time=e.time||new Date().toISOString(),await this.messages.fetched,this.messages.create(e,t)}getMessagesCacheKey(){return`converse.messages-${this.get("jid")}-${iw.session.get("bare_jid")}`}getMessagesCollection(){return new iw.exports.Messages}getNotificationsText(){let{__:e}=iw;return this.notifications?.get("chat_state")===is?e("%1$s is typing",this.getDisplayName()):this.notifications?.get("chat_state")===ir?e("%1$s has stopped typing",this.getDisplayName()):this.notifications?.get("chat_state")===ii?e("%1$s has gone away",this.getDisplayName()):""}initMessages(){this.messages=this.getMessagesCollection(),this.messages.fetched=er(),this.messages.chatbox=this,ou(this.messages,this.getMessagesCacheKey()),this.listenTo(this.messages,"add",e=>this.onMessageAdded(e)),this.listenTo(this.messages,"change:upload",e=>this.onMessageUploadChanged(e)),this.listenTo(this.messages,"change:correcting",e=>this.onMessageCorrecting(e))}fetchMessages(){if(this.messages.fetched_flag)return void Q.info(`Not re-fetching messages for ${this.get("jid")}`);this.messages.fetched_flag=!0;let e=this.messages.fetched.resolve;return this.messages.fetch({add:!0,success:()=>{this.afterMessagesFetched(),e()},error:()=>{this.afterMessagesFetched(),e()}}),this.messages.fetched}afterMessagesFetched(){this.pruneHistoryWhenScrolledDown(),ax.trigger("afterMessagesFetched",this)}async onMessage(e){throw new oH("onMessage is not implemented")}getUpdatedMessageAttributes(e,t){return t.error_type||"Decryption"!==e.get("error_type")?{is_archived:t.is_archived,time:t.time?t.time:e.get("time")}:Object.assign({},t,{error_condition:void 0,error_message:void 0,error_text:void 0,error_type:void 0,is_archived:t.is_archived,is_ephemeral:!1,is_error:!1})}updateMessage(e,t){let s=this.getUpdatedMessageAttributes(e,t);s&&e.save(s)}async handleCorrection(e){let t;if(!e.replace_id||!e.from)return;if("groupchat"===e.type){let{occupant_id:s,replace_id:r}=e;t=s?({attributes:e})=>e.msgid===r&&e.occupant_id==s:({attributes:t})=>t.msgid===e.replace_id&&t.from===e.from&&null==t.occupant_id}else t=({attributes:t})=>t.msgid===e.replace_id&&t.from===e.from&&null==t.occupant_id;let s=this.messages.models.find(t);if(!s)return e.older_versions={},await this.createMessage(e);let r=s.get("older_versions")||{};return e.timethis.onMessage(e)).catch(e=>Q.error(e)),this.msg_chain}async getOutgoingMessageAttributes(e){throw new oH("getOutgoingMessageAttributes is not implemented")}async sendMessage(e){if(await ax.emojis.initialize(),!this.canPostMessages())return void Q.warn("sendMessage was called but canPostMessages is false");e=await this.getOutgoingMessageAttributes(e);let t=this.messages.findWhere("correcting");if(t){let s=t.get("older_versions")||{};s[t.get("edited")||t.get("time")]=t.getMessageText(),t.save({...["body","is_only_emojis","media_urls","references","is_encrypted"].reduce((t,s)=>(e.hasOwnProperty(s)&&(t[s]=e[s]),t),{}),...{correcting:!1,edited:new Date().toISOString(),message:e.body,ogp_metadata:[],older_versions:s,origin_id:uh.getUniqueId(),plaintext:e.is_encrypted?e.message:void 0,received:void 0}})}else this.setEditable(e,new Date().toISOString()),t=await this.createMessage(e);try{let e=await this.createMessageStanza(t);ax.send(e)}catch(e){t.destroy(),Q.error(e);return}return ax.trigger("sendMessage",{chatbox:this,message:t}),t}retractOwnMessage(e){let t=uh.getUniqueId();!function(e,t,s){let r=t.get("origin_id");if(!r)throw Error("Can't retract message without a XEP-0359 Origin ID");let i=dp` /me retracted a message `;ax.connection.get().send(i)}(this.get("jid"),e,t),e.save({retracted:new Date().toISOString(),retracted_id:e.get("origin_id"),retraction_id:t,is_ephemeral:!0,editable:!1})}async sendFiles(e){let{__:t,session:s}=iw,r=(await ax.disco.features.get(ud.NS.HTTPUPLOAD,s.get("domain"))).pop();if(!r)return void this.createMessage({message:t("Sorry, looks like file upload is not supported by your server."),type:"error",is_ephemeral:!0});let i=r.dataforms.where({FORM_TYPE:{value:ud.NS.HTTPUPLOAD,type:"hidden"}}).pop(),o=parseInt((i?.attributes||{})["max-file-size"]?.value,10),a=r?.id;if(!a)return void this.createMessage({message:t("Sorry, looks like file upload is not supported by your server."),type:"error",is_ephemeral:!0});Array.from(e).forEach(async e=>{if(e=await ax.hook("beforeFileUpload",this,e),!isNaN(o)&&e.size>o){let s=lM(o),r=Array.isArray(s)?t("The size of your file, %1$s, exceeds the maximum allowed by your server.",e.name):t("The size of your file, %1$s, exceeds the maximum allowed by your server, which is %2$s.",e.name,s);return this.createMessage({message:r,type:"error",is_ephemeral:!0})}{let t=Object.assign(await this.getOutgoingMessageAttributes(),{file:!0,progress:0,slot_request_url:a});this.setEditable(t,new Date().toISOString());let s=await this.createMessage(t,{silent:!0});s.file=e,this.messages.trigger("add",s),s.getRequestSlotURL()}})}setEditable(e,t){!(e.is_headline||uh.isEmptyMessage(e))&&"me"===e.sender&&("all"===ax.settings.get("allow_message_corrections")?e.editable=!(e.file||e.retracted||"oob_url"in e):"last"===ax.settings.get("allow_message_corrections")&&t>this.get("time_sent")&&(this.set({time_sent:t}),this.messages.findWhere({editable:!0})?.save({editable:!1}),e.editable=!(e.file||e.retracted||"oob_url"in e)))}setChatState(e,t){return void 0!==this.chat_state_timeout&&(clearTimeout(this.chat_state_timeout),delete this.chat_state_timeout),e===is?this.chat_state_timeout=setTimeout(this.setChatState.bind(this),iw.TIMEOUTS.PAUSED,ir):e===ir&&(this.chat_state_timeout=setTimeout(this.setChatState.bind(this),iw.TIMEOUTS.INACTIVE,ie)),this.set("chat_state",e,t),this}onMessageAdded(e){!ax.settings.get("prune_messages_above")||"scrolled"!==ax.settings.get("pruning_behavior")&&this.ui.get("scrolled")||uh.isEmptyMessage(e)||this.debouncedPruneHistory()}async onMessageUploadChanged(e){if(e.get("upload")===r9){let t={body:e.get("body"),spoiler_hint:e.get("spoiler_hint"),oob_url:e.get("oob_url")};await this.sendMessage(t),e.destroy()}}onMessageCorrecting(e){e.get("correcting")?this.save({correcting:e.get("id"),draft:uh.prefixMentions(e)}):this.save({correcting:void 0,draft:void 0})}onScrolledChanged(){this.ui.get("scrolled")||(this.clearUnreadMsgCounter(),this.pruneHistoryWhenScrolledDown())}pruneHistoryWhenScrolledDown(){ax.settings.get("prune_messages_above")&&"unscrolled"===ax.settings.get("pruning_behavior")&&!this.ui.get("scrolled")&&this.debouncedPruneHistory()}shouldShowErrorMessage(e){if(this.getMessageReferencedByError(e)||!e.chat_state)return Promise.resolve(!0)}async clearMessages(){try{await this.messages.clearStore()}catch(e){this.messages.trigger("reset"),Q.error(e)}finally{this.messages.fetched.resolve()}}editEarlierMessage(){let e,t=this.messages.findLastIndex("correcting");if(t>=0)for(this.messages.at(t).save("correcting",!1);t>0;){t-=1;let s=this.messages.at(t);if(s.get("editable")){e=s;break}}e=e||this.messages.filter({sender:"me"}).reverse().find(e=>e.get("editable")),e?.save("correcting",!0)}editLaterMessage(){let e,t=this.messages.findLastIndex("correcting");if(t>=0)for(this.messages.at(t).save("correcting",!1);t=0;e--){let t=this.messages.at(e);if(this.isChatMessage(t))return t}}getMessageReferencedByError(e){let t=e.msgid;return t&&this.messages.models.find(e=>[e.get("msgid"),e.get("retraction_id")].includes(t))}findDanglingRetraction(e){if(!e.origin_id||!this.messages.length)return null;if(this.messages.last().get("time")>e.time){let t=Array.from(this.messages.models);return t.reverse(),t.find(({attributes:t})=>t.retracted_id===e.origin_id&&t.from===e.from&&!t.moderated_by)}return null}getDuplicateMessage(e){let t=[...this.getStanzaIdQueryAttrs(e),this.getOriginIdQueryAttrs(e),this.getMessageBodyQueryAttrs(e)].filter(e=>e);return this.messages.models.find(e=>t.find(t=>Object.keys(t).every(s=>e.get(s)===t[s])))}getOriginIdQueryAttrs(e){return e.origin_id&&{origin_id:e.origin_id,from:e.from}}getStanzaIdQueryAttrs(e){return Object.keys(e).filter(e=>e.startsWith("stanza_id ")).map(t=>{let s=t.replace(/^stanza_id /,""),r={};return r[`stanza_id ${s}`]=e[t],r})}getMessageBodyQueryAttrs(e){if(e.msgid){let t={from:e.from,msgid:e.msgid};return!e.is_encrypted&&e.body&&(t.body=e.body),t}}async sendMarkerForMessage(e,t="displayed",s=!1){if(!e||e?.get("type")==="groupchat"||!ax.settings.get("send_chat_markers").includes(t))return;let r=await ax.contacts.get(this.get("jid")),i=r?.get("subscription");r&&"none"!==i&&"to"!==i&&(e?.get("is_markable")||s)&&dv(ud.getBareJidFromJid(e.get("from")),e.get("msgid"),t,e.get("type"))}handleUnreadMessage(e){if(e?.get("body")){var t;((t=e)instanceof Element?J()(`result[xmlns="${us.NS.MAM}"]`,t).length&&J()(`delay[xmlns="${us.NS.DELAY}"]`,t).length:(t instanceof es.Model&&(t=t.attributes),t.is_delayed&&t.is_archived))||("me"===e.get("sender")?this.ui.set("scrolled",!1):this.isHidden()?this.incrementUnreadMsgsCounter(e):this.sendMarkerForMessage(e))}}async getErrorAttributesForMessage(e,t){let{__:s}=iw,r={editable:!1,error:t.error,error_condition:t.error_condition,error_text:t.error_text,error_type:t.error_type,is_error:!0};return t.msgid===e.get("retraction_id")?(r.retraction_id=void 0,t.error||("forbidden"===t.error_condition?r.error=s("You're not allowed to retract your message."):r.error=s("Sorry, an error occurred while trying to retract your message."))):t.error||("forbidden"===t.error_condition?r.error=s("You're not allowed to send a message."):r.error=s("Sorry, an error occurred while trying to send your message.")),await ax.hook("getErrorAttributesForMessage",t,r)}async handleErrorMessageStanza(e){let t=await ut(e);if(uh.isErrorObject(t)){let{stanza:e,message:s}=t;return e&&Q.error(e),Q.error(s)}if(!await this.shouldShowErrorMessage(t))return;let s=this.getMessageReferencedByError(t);if(s){let e=await this.getErrorAttributesForMessage(s,t);s.save(e)}else this.createMessage(t)}incrementUnreadMsgsCounter(e){let t={num_unread:this.get("num_unread")+1};0===this.get("num_unread")&&(t.first_unread_id=e.get("id")),this.save(t)}clearUnreadMsgCounter(){this.get("num_unread")>0&&this.sendMarkerForMessage(this.messages.last()),uh.safeSave(this,{num_unread:0})}async handleRetraction(e){let t=["retracted","retracted_id","editable"];if(e.retracted){if(e.is_tombstone)return!1;for(let s of this.messages.models)if(s.get("from")===e.from&&(s.get("origin_id")===e.retracted_id||s.get("msgid")===e.retracted_id))return s.save(sb(e,t)),!0;return e.dangling_retraction=!0,await this.createMessage(e),!0}{let s=this.findDanglingRetraction(e);if(s){let r=Object.assign({dangling_retraction:!1},e,sb(s.attributes,t));return delete r.id,s.save(r),!0}}return!1}handleReceipt(e){if("them"===e.sender){if(e.is_valid_receipt_request){var t,s;let r;t=e.from,s=e.msgid,r=dp` `,ax.send(r)}else if(e.receipt_id){let t=this.messages.findWhere({msgid:e.receipt_id});return t&&!t.get("received")&&t.save({received:new Date().toISOString()}),!0}}return!1}async createMessageStanza(e){let{body:t,edited:s,is_encrypted:r,is_spoiler:i,msgid:o,oob_url:a,origin_id:l,references:c,spoiler_hint:d,type:u}=e.attributes,h=uu` ${t?uu`${t}`:""} ${"chat"===u?uu``:""} ${!r&&a?uu`${a}`:""} ${!r&&i?uu`${d??""}`:""} ${!r?c?.map(e=>uu``):""} ${s?uu``:""} ${l?uu``:""} `;return(await ax.hook("createMessageStanza",this,{message:e,stanza:h})).stanza}pruneHistory(){let e=ax.settings.get("prune_messages_above");if(e&&"number"==typeof e&&this.messages.length>e){let t=this.messages.filter(e=>!uh.isEmptyMessage(e));if(t.length>e){for(;t.length>e;)t.shift().destroy();this.trigger("historyPruned")}}}debouncedPruneHistory=iR(()=>this.pruneHistory(),500,{maxWait:2e3});isScrolledUp(){return this.ui.get("scrolled")}isHidden(){return this.get("hidden")||this.isScrolledUp()||document.hidden}}}class up extends es.Model{defaults(){return{current_category:"smileys",current_skintone:"",scroll_position:0}}}let uf=up,ug={emojis:{async initialize(){if(!dh.emojis.initialized){let e;dh.emojis.initialized=!0;try{let t=ax.settings.get("assets_path"),s=await fetch(`${t}/emoji.json`);if(!s.ok)throw Error("Failed to fetch emoji.json");e=await s.json()}catch(t){console.error("Failed to load emoji.json:",t),e={}}e=await ax.hook("loadEmojis",{},e),dh.emojis.json=e,dh.emojis.by_sn=Object.keys(e).reduce((t,s)=>Object.assign(t,e[s]),{}),dh.emojis.list=Object.values(dh.emojis.by_sn),dh.emojis.list.sort((e,t)=>e.snt.sn)),dh.emojis.shortnames=dh.emojis.list.map(e=>e.sn),dh.emojis.shortnames_regex=RegExp(dh.emojis.shortnames.map(e=>e.replace(/[+]/g,"\\$&")).join("|"),"gi"),dh.emojis.initialized_promise.resolve()}return dh.emojis.initialized_promise}}},uv=RegExp("]*>.*?|]*>.*?|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)(\\*\\\\0\\/\\*|\\*\\\\O\\/\\*|\\-___\\-|\\:'\\-\\)|'\\:\\-\\)|'\\:\\-D|\\>\\:\\-\\)|>\\:\\-\\)|'\\:\\-\\(|\\>\\:\\-\\(|>\\:\\-\\(|\\:'\\-\\(|O\\:\\-\\)|0\\:\\-3|0\\:\\-\\)|0;\\^\\)|O;\\-\\)|0;\\-\\)|O\\:\\-3|\\-__\\-|\\:\\-\xde|\\:\\-\xde|\\<\\/3|<\\/3|\\:'\\)|\\:\\-D|'\\:\\)|'\\=\\)|'\\:D|'\\=D|\\>\\:\\)|>\\:\\)|\\>;\\)|>;\\)|\\>\\=\\)|>\\=\\)|;\\-\\)|\\*\\-\\)|;\\-\\]|;\\^\\)|'\\:\\(|'\\=\\(|\\:\\-\\*|\\:\\^\\*|\\>\\:P|>\\:P|X\\-P|\\>\\:\\[|>\\:\\[|\\:\\-\\(|\\:\\-\\[|\\>\\:\\(|>\\:\\(|\\:'\\(|;\\-\\(|\\>\\.\\<|>\\.<|#\\-\\)|%\\-\\)|X\\-\\)|\\\\0\\/|\\\\O\\/|0\\:3|0\\:\\)|O\\:\\)|O\\=\\)|O\\:3|B\\-\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\>\\:\\\\|>\\:\\\\|\\>\\:\\/|>\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\-P|\\:\xde|\\:\xde|\\:\\-b|\\:\\-O|O_O|\\>\\:O|>\\:O|\\:\\-X|\\:\\-#|\\:\\-\\)|\\(y\\)|\\<3|<3|\\:D|\\=D|;\\)|\\*\\)|;\\]|;D|\\:\\*|\\=\\*|\\:\\(|\\:\\[|\\=\\(|\\:@|;\\(|D\\:|\\:\\$|\\=\\$|#\\)|%\\)|X\\)|B\\)|8\\)|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\=P|\\:b|\\:O|\\:X|\\:#|\\=X|\\=#|\\:\\)|\\=\\]|\\=\\)|\\:\\])(?=\\s|$|[!,.?]))","gi"),u_=/(?:\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1|\ud83d\udc6b\ud83c[\udffb-\udfff]|\ud83d\udc6c\ud83c[\udffb-\udfff]|\ud83d\udc6d\ud83c[\udffb-\udfff]|\ud83d[\udc6b-\udc6d])|(?:\ud83d[\udc68\udc69]|\ud83e\uddd1)(?:\ud83c[\udffb-\udfff])?\u200d(?:\u2695\ufe0f|\u2696\ufe0f|\u2708\ufe0f|\ud83c[\udf3e\udf73\udf93\udfa4\udfa8\udfeb\udfed]|\ud83d[\udcbb\udcbc\udd27\udd2c\ude80\ude92]|\ud83e[\uddaf-\uddb3\uddbc\uddbd])|(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75]|\u26f9)((?:\ud83c[\udffb-\udfff]|\ufe0f)\u200d[\u2640\u2642]\ufe0f)|(?:\ud83c[\udfc3\udfc4\udfca]|\ud83d[\udc6e\udc71\udc73\udc77\udc81\udc82\udc86\udc87\ude45-\ude47\ude4b\ude4d\ude4e\udea3\udeb4-\udeb6]|\ud83e[\udd26\udd35\udd37-\udd39\udd3d\udd3e\uddb8\uddb9\uddcd-\uddcf\uddd6-\udddd])(?:\ud83c[\udffb-\udfff])?\u200d[\u2640\u2642]\ufe0f|(?:\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68|\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d[\udc68\udc69]|\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc15\u200d\ud83e\uddba|\ud83d\udc41\u200d\ud83d\udde8|\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc6f\u200d\u2640\ufe0f|\ud83d\udc6f\u200d\u2642\ufe0f|\ud83e\udd3c\u200d\u2640\ufe0f|\ud83e\udd3c\u200d\u2642\ufe0f|\ud83e\uddde\u200d\u2640\ufe0f|\ud83e\uddde\u200d\u2642\ufe0f|\ud83e\udddf\u200d\u2640\ufe0f|\ud83e\udddf\u200d\u2642\ufe0f)|[#*0-9]\ufe0f?\u20e3|(?:[©®\u2122\u265f]\ufe0f)|(?:\ud83c[\udc04\udd70\udd71\udd7e\udd7f\ude02\ude1a\ude2f\ude37\udf21\udf24-\udf2c\udf36\udf7d\udf96\udf97\udf99-\udf9b\udf9e\udf9f\udfcd\udfce\udfd4-\udfdf\udff3\udff5\udff7]|\ud83d[\udc3f\udc41\udcfd\udd49\udd4a\udd6f\udd70\udd73\udd76-\udd79\udd87\udd8a-\udd8d\udda5\udda8\uddb1\uddb2\uddbc\uddc2-\uddc4\uddd1-\uddd3\udddc-\uddde\udde1\udde3\udde8\uddef\uddf3\uddfa\udecb\udecd-\udecf\udee0-\udee5\udee9\udef0\udef3]|[\u203c\u2049\u2139\u2194-\u2199\u21a9\u21aa\u231a\u231b\u2328\u23cf\u23ed-\u23ef\u23f1\u23f2\u23f8-\u23fa\u24c2\u25aa\u25ab\u25b6\u25c0\u25fb-\u25fe\u2600-\u2604\u260e\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262a\u262e\u262f\u2638-\u263a\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2697\u2699\u269b\u269c\u26a0\u26a1\u26a7\u26aa\u26ab\u26b0\u26b1\u26bd\u26be\u26c4\u26c5\u26c8\u26cf\u26d1\u26d3\u26d4\u26e9\u26ea\u26f0-\u26f5\u26f8\u26fa\u26fd\u2702\u2708\u2709\u270f\u2712\u2714\u2716\u271d\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u2764\u27a1\u2934\u2935\u2b05-\u2b07\u2b1b\u2b1c\u2b50\u2b55\u3030\u303d\u3297\u3299])(?:\ufe0f|(?!\ufe0e))|(?:(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75\udd90]|[\u261d\u26f7\u26f9\u270c\u270d])(?:\ufe0f|(?!\ufe0e))|(?:\ud83c[\udf85\udfc2-\udfc4\udfc7\udfca]|\ud83d[\udc42\udc43\udc46-\udc50\udc66-\udc69\udc6e\udc70-\udc78\udc7c\udc81-\udc83\udc85-\udc87\udcaa\udd7a\udd95\udd96\ude45-\ude47\ude4b-\ude4f\udea3\udeb4-\udeb6\udec0\udecc]|\ud83e[\udd0f\udd18-\udd1c\udd1e\udd1f\udd26\udd30-\udd39\udd3d\udd3e\uddb5\uddb6\uddb8\uddb9\uddbb\uddcd-\uddcf\uddd1-\udddd]|[\u270a\u270b]))(?:\ud83c[\udffb-\udfff])?|(?:\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f|\ud83c\udde6\ud83c[\udde8-\uddec\uddee\uddf1\uddf2\uddf4\uddf6-\uddfa\uddfc\uddfd\uddff]|\ud83c\udde7\ud83c[\udde6\udde7\udde9-\uddef\uddf1-\uddf4\uddf6-\uddf9\uddfb\uddfc\uddfe\uddff]|\ud83c\udde8\ud83c[\udde6\udde8\udde9\uddeb-\uddee\uddf0-\uddf5\uddf7\uddfa-\uddff]|\ud83c\udde9\ud83c[\uddea\uddec\uddef\uddf0\uddf2\uddf4\uddff]|\ud83c\uddea\ud83c[\udde6\udde8\uddea\uddec\udded\uddf7-\uddfa]|\ud83c\uddeb\ud83c[\uddee-\uddf0\uddf2\uddf4\uddf7]|\ud83c\uddec\ud83c[\udde6\udde7\udde9-\uddee\uddf1-\uddf3\uddf5-\uddfa\uddfc\uddfe]|\ud83c\udded\ud83c[\uddf0\uddf2\uddf3\uddf7\uddf9\uddfa]|\ud83c\uddee\ud83c[\udde8-\uddea\uddf1-\uddf4\uddf6-\uddf9]|\ud83c\uddef\ud83c[\uddea\uddf2\uddf4\uddf5]|\ud83c\uddf0\ud83c[\uddea\uddec-\uddee\uddf2\uddf3\uddf5\uddf7\uddfc\uddfe\uddff]|\ud83c\uddf1\ud83c[\udde6-\udde8\uddee\uddf0\uddf7-\uddfb\uddfe]|\ud83c\uddf2\ud83c[\udde6\udde8-\udded\uddf0-\uddff]|\ud83c\uddf3\ud83c[\udde6\udde8\uddea-\uddec\uddee\uddf1\uddf4\uddf5\uddf7\uddfa\uddff]|\ud83c\uddf4\ud83c\uddf2|\ud83c\uddf5\ud83c[\udde6\uddea-\udded\uddf0-\uddf3\uddf7-\uddf9\uddfc\uddfe]|\ud83c\uddf6\ud83c\udde6|\ud83c\uddf7\ud83c[\uddea\uddf4\uddf8\uddfa\uddfc]|\ud83c\uddf8\ud83c[\udde6-\uddea\uddec-\uddf4\uddf7-\uddf9\uddfb\uddfd-\uddff]|\ud83c\uddf9\ud83c[\udde6\udde8\udde9\uddeb-\udded\uddef-\uddf4\uddf7\uddf9\uddfb\uddfc\uddff]|\ud83c\uddfa\ud83c[\udde6\uddec\uddf2\uddf3\uddf8\uddfe\uddff]|\ud83c\uddfb\ud83c[\udde6\udde8\uddea\uddec\uddee\uddf3\uddfa]|\ud83c\uddfc\ud83c[\uddeb\uddf8]|\ud83c\uddfd\ud83c\uddf0|\ud83c\uddfe\ud83c[\uddea\uddf9]|\ud83c\uddff\ud83c[\udde6\uddf2\uddfc]|\ud83c[\udccf\udd8e\udd91-\udd9a\udde6-\uddff\ude01\ude32-\ude36\ude38-\ude3a\ude50\ude51\udf00-\udf20\udf2d-\udf35\udf37-\udf7c\udf7e-\udf84\udf86-\udf93\udfa0-\udfc1\udfc5\udfc6\udfc8\udfc9\udfcf-\udfd3\udfe0-\udff0\udff4\udff8-\udfff]|\ud83d[\udc00-\udc3e\udc40\udc44\udc45\udc51-\udc65\udc6a\udc6f\udc79-\udc7b\udc7d-\udc80\udc84\udc88-\udca9\udcab-\udcfc\udcff-\udd3d\udd4b-\udd4e\udd50-\udd67\udda4\uddfb-\ude44\ude48-\ude4a\ude80-\udea2\udea4-\udeb3\udeb7-\udebf\udec1-\udec5\uded0-\uded2\uded5\udeeb\udeec\udef4-\udefa\udfe0-\udfeb]|\ud83e[\udd0d\udd0e\udd10-\udd17\udd1d\udd20-\udd25\udd27-\udd2f\udd3a\udd3c\udd3f-\udd45\udd47-\udd71\udd73-\udd76\udd7a-\udda2\udda5-\uddaa\uddae-\uddb4\uddb7\uddba\uddbc-\uddca\uddd0\uddde-\uddff\ude70-\ude73\ude78-\ude7a\ude80-\ude82\ude90-\ude95]|[\u23e9-\u23ec\u23f0\u23f3\u267e\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a])|\ufe0f/g,{u:uy}=dh.env,ub={},uw={"*\\0/*":"1f646","*\\O/*":"1f646","-___-":"1f611",":'-)":"1f602","':-)":"1f605","':-D":"1f605",">:-)":"1f606","':-(":"1f613",">:-(":"1f620",":'-(":"1f622","O:-)":"1f607","0:-3":"1f607","0:-)":"1f607","0;^)":"1f607","O;-)":"1f607","0;-)":"1f607","O:-3":"1f607","-__-":"1f611",":-\xde":"1f61b",":)":"1f606",">;)":"1f606",">=)":"1f606",";-)":"1f609","*-)":"1f609",";-]":"1f609",";^)":"1f609","':(":"1f613","'=(":"1f613",":-*":"1f618",":^*":"1f618",">:P":"1f61c","X-P":"1f61c",">:[":"1f61e",":-(":"1f61e",":-[":"1f61e",">:(":"1f620",":'(":"1f622",";-(":"1f622",">.<":"1f623","#-)":"1f635","%-)":"1f635","X-)":"1f635","\\0/":"1f646","\\O/":"1f646","0:3":"1f607","0:)":"1f607","O:)":"1f607","O=)":"1f607","O:3":"1f607","B-)":"1f60e","8-)":"1f60e","B-D":"1f60e","8-D":"1f60e","-_-":"1f611",">:\\":"1f615",">:/":"1f615",":-/":"1f615",":-.":"1f615",":-P":"1f61b",":\xde":"1f61b",":-b":"1f61b",":-O":"1f62e",O_O:"1f62e",">:O":"1f62e",":-X":"1f636",":-#":"1f636",":-)":"1f642","(y)":"1f44d","<3":"2764",":D":"1f603","=D":"1f603",";)":"1f609","*)":"1f609",";]":"1f609",";D":"1f609",":*":"1f618","=*":"1f618",":(":"1f61e",":[":"1f61e","=(":"1f61e",":@":"1f620",";(":"1f622","D:":"1f628",":$":"1f633","=$":"1f633","#)":"1f635","%)":"1f635","X)":"1f635","B)":"1f60e","8)":"1f60e",":/":"1f615",":\\":"1f615","=/":"1f615","=\\":"1f615",":L":"1f615","=L":"1f615",":P":"1f61b","=P":"1f61b",":b":"1f61b",":O":"1f62e",":X":"1f636",":#":"1f636","=X":"1f636","=#":"1f636",":)":"1f642","=]":"1f642","=)":"1f642",":]":"1f642"};function uj(e){let t;if(e.indexOf("-")>-1){let t=[],s=e.split("-");for(let e=0;e=65536&&r<=1114111){let e=Math.floor((r-65536)/1024)+55296,s=(r-65536)%1024+56320;t.push(String.fromCharCode(e)+String.fromCharCode(s))}else t.push(String.fromCharCode(r))}return t.join("")}return(t="string"==typeof e?parseInt(e,16):e)<65536?String.fromCharCode(t):String.fromCharCode(55296+((t-=65536)>>10),56320+(1023&t))}function uS(e){return e.replace(uv,(e,t,s,r)=>void 0!==r&&""!==r&&uy.unescapeHTML(r)in uw?s+uj(uw[r=uy.unescapeHTML(r)].toUpperCase()):e)}function ux(e){if(!dh.emojis.initialized)throw Error("getShortnameReferences called before emojis are initialized. To avoid this problem, first await the converse.emojis.initialized_promise");return[...e.matchAll(dh.emojis.shortnames_regex)].filter(e=>e[0].length>0).map(e=>{let t=dh.emojis.by_sn[e[0].toLowerCase()]?.cp;return{cp:t,begin:e.index,end:e.index+e[0].length,shortname:e[0],emoji:t?uj(t):null}})}function uA(e){var t;let s,r,i=[];return t=(e,t,s)=>{i.push({begin:s,cp:e,emoji:t,end:s+t.length,shortname:u$("cp")[e]?.sn||""})},s=/\uFE0F/g,r=String.fromCharCode(8205),String(e).replace(u_,(e,i,o)=>{let a=function(e){let t=[],s=0,r=0;for(;re.indexOf(r)?e.replace(s,""):e);return a&&t(a,e,o),e}),i}function uE(e){let t=e.trim().split(/\s+/);return 0!==t.length&&!(t.length>3)&&t.filter(e=>{let t=uA(uy.shortnamesToUnicode(e));return 1===t.length&&(e.toLowerCase()===t[0].shortname||e===t[0].emoji)}).length===t.length}function u$(e){if(ub[e])return ub[e];if("category"===e)return dh.emojis.json;let t=dh.emojis.list.map(t=>t[e]).filter((e,t,s)=>s.indexOf(e)==t);return ub[e]={},t.forEach(t=>ub[e][t]=dh.emojis.list.find(s=>s[e]===t)),ub[e]}Object.assign(uy,{getCodePointReferences:uA,getShortnameReferences:ux,convertASCII2Emoji:uS,getEmojisByAttribute:u$,isOnlyEmojis:uE,shortnamesToUnicode:function(e){var t;let s;return(s=[t=uS(e)],[...ux(t),...uA(t)].sort((e,t)=>t.begin-e.begin).forEach(e=>{let t=s.shift(),r=e.emoji||e.shortname;s=[t.slice(0,e.begin)+r+t.slice(e.end),...s]}),s).pop()}}),dh.emojis={initialized:!1,initialized_promise:er()},dh.plugins.add("converse-emoji",{initialize(){let{___:e}=iw;ax.settings.extend({emoji_image_path:"https://twemoji.maxcdn.com/v/12.1.6/",emoji_categories:{smileys:":grinning:",people:":thumbsup:",activity:":soccer:",travel:":motorcycle:",objects:":bomb:",nature:":rainbow:",food:":hotdog:",symbols:":musical_note:",flags:":flag_ac:",custom:null},emoji_category_labels:{smileys:e("Smileys and emotions"),people:e("People"),activity:e("Activities"),travel:e("Travel"),objects:e("Objects"),nature:e("Animals and nature"),food:e("Food and drink"),symbols:e("Symbols"),flags:e("Flags"),custom:e("Stickers")}});let t={EmojiPicker:uf};async function s(e,t){return await ax.emojis.initialize(),{...t,is_only_emojis:!!t.body&&uE(t.body)}}Object.assign(iw,t),Object.assign(iw.exports,t),Object.assign(ax,ug),ax.listen.on("getOutgoingMessageAttributes",async(e,t)=>{await ax.emojis.initialize();let{original_text:s}=t;return{...t,is_only_emojis:!!s&&uE(s)}}),ax.listen.on("parseMUCMessage",s),ax.listen.on("parseMessage",s)}});let{Strophe:uk}=dh.env;class uC extends es.Model{get idAttribute(){return"jid"}getDisplayName(){return this.get("name")&&uk.xmlunescape(this.get("name"))||this.get("jid")}}let uT=uC,{Strophe:uM,sizzle:uO}=dh.env;async function uN(e){let t,s,r=iw.session.get("bare_jid");return await ax.disco.supports(`${uM.NS.BOOKMARKS2}#compat`,r)?(t=uM.NS.BOOKMARKS2,s=`items[node="${t}"] item conference`):(t=uM.NS.BOOKMARKS,s=`items[node="${t}"] item storage[xmlns="${t}"] conference`),uO(s,e).map(e=>{let s=t===uM.NS.BOOKMARKS2?e.parentElement.getAttribute("id"):e.getAttribute("jid");return{jid:s,name:e.getAttribute("name")||s,autojoin:["1","true"].includes(e.getAttribute("autojoin")),nick:e.querySelector("nick")?.textContent??"",password:e.querySelector("password")?.textContent??"",extensions:Array.from(e.querySelector("extensions")?.children??[]).map(e=>e.outerHTML)}})}let uI=class extends d9{initialize(){super.initialize(),this.on("change:type",()=>this.setOccupant()),this.setOccupant(),ax.trigger("chatRoomMessageInitialized",this)}get occupants(){return"chat"===this.get("type")?this.chatbox.collection:this.chatbox.occupants}getDisplayName(){return this.occupant?.getDisplayName()||this.get("nick")}async mayBeModerated(){if(void 0!==this.get("from_muc"))return["all","moderator"].includes(ax.settings.get("allow_message_retraction"))&&this.get(`stanza_id ${this.get("from_muc")}`)&&await this.chatbox.canModerateMessages()}checkValidity(){let e=super.checkValidity();return e||this.chatbox.debouncedRejoin(),e}onOccupantRemoved(){this.stopListening(this.occupant),delete this.occupant,this.listenTo(this.occupants,"add",this.onOccupantAdded)}onOccupantAdded(e){if(this.get("occupant_id")){if(e.get("occupant_id")!==this.get("occupant_id"))return}else if(e.get("nick")!==rZ.getResourceFromJid(this.get("from")))return;this.setOccupant(e)}getOccupant(){return this.occupant||this.setOccupant()}setOccupant(e){if(!(!["groupchat","chat"].includes(this.get("type"))||this.isEphemeral())){if(e)this.occupant=e;else if("chat"===this.get("type")&&"them"===this.get("sender"))this.occupant=this.chatbox;else{if(this.occupant)return;let e=rZ.getResourceFromJid(this.get("from")),t=this.get("occupant_id");if(this.occupant=e||t?this.occupants.findOccupant({nick:e,occupant_id:t}):null,!this.occupant){let s=this.get("from_real_jid");if(!e&&!t&&!s)return;if(this.occupant=this.occupants.create({nick:e,occupant_id:t,jid:s}),ax.settings.get("muc_send_probes")){let t=`${this.chatbox.get("jid")}/${e}`;ax.user.presence.send({to:t,type:"probe"})}}}return this.get("from_real_jid")!==this.occupant.get("jid")&&this.save("from_real_jid",this.occupant.get("jid")),this.trigger("occupant:add"),this.listenTo(this.occupant,"change",e=>this.trigger("occupant:change",e)),this.listenTo(this.occupant,"vcard:add",e=>this.trigger("occupant:change",e)),this.listenTo(this.occupant,"vcard:change",e=>this.trigger("occupant:change",e)),this.listenTo(this.occupant,"destroy",this.onOccupantRemoved),this.stopListening(this.occupants,"add",this.onOccupantAdded),this.occupant}}};class uR extends es.Collection{constructor(e,t={}){super(e,Object.assign({comparator:"time"},t)),this.model=uI,this.fetched=null}}let uD=uR,uL={},uz=(e,t)=>e.replace(RegExp("\\"+t,"ig"),"\\"+t);uL.escapeCharacters=e=>t=>e.split("").reduce(uz,t),uL.escapeRegexString=uL.escapeCharacters("[\\^$.?*+(){}|"),uL.findFirstMatchInArray=e=>t=>{for(let s=0;s{let i=e,{begin:o,end:a}=s,{value:l}=s;return o-=r,a=a-r-1,[i=`${i.slice(0,o)}${l}${i.slice(a+1)}`,[...t,{...s,begin:o,end:a}]]};uL.reduceTextFromReferences=(e,t)=>t.reduce(uP,[e,[]]);let uU=["301","333","307","321","322"],uB=["210","303"],uF=["admin","ban","deop","destroy","member","op","revoke"],uq=["owner","admin","member","outcast","none"],uH=["301","333","307","321","322","332"],uG=["kick","mute","voice","modtools"],uW=["owner"],uZ=["moderator","participant","visitor"],uV=["nick"],uQ={100:["message","presence"],101:["message"],102:["message"],103:["message"],104:["message"],110:["presence"],170:["message","presence"],171:["message"],172:["message"],173:["message"],174:["message"],201:["presence"],210:["presence"],301:["presence"],303:["presence"],307:["presence"],321:["presence"],322:["presence"],332:["presence"],333:["presence"]},uK={moderator:1,participant:2,visitor:3,none:2},uJ={OWNER:"owner",ADMIN:"admin",MEMBER:"member",EXADMIN:"exadmin",EXOWNER:"exowner",EXOUTCAST:"exoutcast",EXMEMBER:"exmember"},uY=Object.values(uJ),uX={ENTERED:"entered",EXITED:"exited"},u1=Object.values(uX),u0={OP:"op",DEOP:"deop",VOICE:"voice",MUTE:"mute"},u2=Object.values(u0),u4={visibility_changes:["100","102","103","172","173","174"],self:["110"],non_privacy_changes:["104","201"],muc_logging_changes:["170","171"],nickname_changes:["210","303"],disconnected:["301","307","321","322","332","333"],affiliation_changes:[...uY],join_leave_events:[...u1],role_changes:[...u2]},u3={CONNECTED:0,CONNECTING:1,NICKNAME_REQUIRED:2,PASSWORD_REQUIRED:3,DISCONNECTED:4,ENTERED:5,DESTROYED:6,BANNED:7,CLOSING:8},u6=["passwordprotected","unsecured","hidden","publicroom","membersonly","open","persistent","temporary","nonanonymous","semianonymous","moderated","unmoderated","mam_enabled","vcard-temp"],u8="303",{Strophe:u5,sizzle:u9,u:u7}=dh.env,{NS:he}=u5;function ht(e,t){let s=u9(`${t} > x[xmlns="${u5.NS.MUC_USER}"] status`,e).map(e=>e.getAttribute("code")).filter(e=>uQ[e]?.includes(t));return"presence"===t&&s.includes("333")&&s.includes("307")&&s.splice(s.indexOf("307"),1),{codes:s,is_self:s.includes("110")}}function hs(e,t){if(t.features.get(u5.NS.OCCUPANTID))return u9(`occupant-id[xmlns="${u5.NS.OCCUPANTID}"]`,e).pop()?.getAttribute("id")}async function hr(e,t){let s,r,i;dR(e);let o=u9(`result[xmlns="${he.MAM}"] > forwarded[xmlns="${he.FORWARD}"] > message`,e).pop(),a=o||e;if(u9(`message > forwarded[xmlns="${u5.NS.FORWARD}"]`,a).length)return new oQ(a,`Invalid Stanza: Forged MAM groupchat message from ${a.getAttribute("from")}`);if(o){if(u9(`message > forwarded[xmlns="${u5.NS.FORWARD}"]`,o).length)return new oQ(e,`Invalid Stanza: Forged MAM groupchat message from ${e.getAttribute("from")}`);s=u9(`delay[xmlns="${u5.NS.DELAY}"]`,o.parentElement).pop(),r=o.querySelector(":scope > body")?.textContent?.trim()}else s=u9(`message > delay[xmlns="${u5.NS.DELAY}"]`,e).pop(),r=e.querySelector(":scope > body")?.textContent?.trim();let l=a.getAttribute("from"),c=dD(a),d=Object.assign({from:l,body:r,activities:function(e){let t=u9(`items[node="${u5.NS.CONFINFO}"]`,e).pop();if(!t)return null;let s=e.getAttribute("from"),r=e.getAttribute("id");return u9(`item conference-info[xmlns="${u5.NS.CONFINFO}"] activity[xmlns="${u5.NS.ACTIVITY}"]`,t).map(t=>{let i=t.querySelector("text")?.textContent;if(i){let o=dT(e);return{from:s,msgid:r,message:i,reason:t.querySelector("reason")?.textContent,references:o,type:"mep"}}return{}})}(a),chat_state:dN(a),from_muc:u5.getBareJidFromJid(l),is_archived:dU(e),is_carbon:dO(e),is_delayed:!!s,is_forwarded:!!u9(`message > forwarded[xmlns="${u5.NS.FORWARD}"]`,a).length,is_headline:dL(a),is_markable:!!u9(`message > markable[xmlns="${u5.NS.MARKERS}"]`,a).length,is_marker:!!c,is_unstyled:!!u9(`message > unstyled[xmlns="${u5.NS.STYLING}"]`,a).length,marker_id:c&&c.getAttribute("id"),nick:u5.unescapeNode(u5.getResourceFromJid(l)),occupant_id:hs(a,t),receipt_id:dM(a),received:new Date().toISOString(),references:dT(a),subject:a.querySelector(":scope > subject")?.textContent,thread:a.querySelector(":scope > thread")?.textContent,time:s?F()(s.getAttribute("stamp")).toISOString():new Date().toISOString(),to:a.getAttribute("to"),type:a.getAttribute("type")},dC(a),dk(a),d$(a),dA(a,e),dw(a,e),dE(a),dx(a,e),function(e){let t=u9(`> retract[xmlns="${u5.NS.RETRACT}"]`,e).pop();if(t){let e=u9(`moderated[xmlns="${u5.NS.MODERATE}"]`,t).pop();if(e)return{editable:!1,moderated:"retracted",moderated_by:e.getAttribute("by"),moderated_by_id:e.querySelector("occupant-id")?.getAttribute("id"),moderated_id:t.getAttribute("id"),moderation_reason:t.querySelector("reason")?.textContent}}else{let t=u9(`retracted[xmlns="${u5.NS.RETRACT}"]`,e).pop();if(t)return{editable:!1,is_tombstone:!0,moderated_by:t.getAttribute("by"),moderated_by_id:t.querySelector("occupant-id")?.getAttribute("id"),retracted:t.getAttribute("stamp"),moderation_reason:t.querySelector("reason")?.textContent}}let s=u9(`apply-to[xmlns="${u5.NS.FASTEN}"]`,e).pop();if(s){let e=s.getAttribute("id"),t=u9(`moderated[xmlns="${u5.NS.MODERATE0}"]`,s).pop();if(t&&u9(`retract[xmlns="${u5.NS.RETRACT0}"]`,t).pop())return{editable:!1,moderated:"retracted",moderated_by:t.getAttribute("by"),moderated_id:e,moderation_reason:t.querySelector("reason")?.textContent}}else{let t=u9(`> moderated[xmlns="${u5.NS.MODERATE0}"]`,e).pop();if(t&&u9(`retracted[xmlns="${u5.NS.RETRACT0}"]`,t).pop())return{editable:!1,is_tombstone:!0,moderated_by:t.getAttribute("by"),retracted:t.getAttribute("stamp"),moderation_reason:t.querySelector("reason")?.textContent}}return{}}(a),dj(a),ht(a,"message"));if(d.from_real_jid=d.is_archived&&(i=u9(`message > x[xmlns="${u5.NS.MUC_USER}"] item`,a).pop(),i?.getAttribute("jid"))||t.occupants.findOccupant(d)?.get("jid"),(d=Object.assign({is_valid_receipt_request:dI(a,d),message:d.body||d.error,sender:function(e,t){let s,r=t.get("occupant_id");if(r)s=e.occupant_id===r;else if(e.from_real_jid){let t=iw.session.get("bare_jid");s=u5.getBareJidFromJid(e.from_real_jid)===t}else s=e.nick===t.get("nick");return s?"me":"them"}(d,t)},d)).is_archived&&e.getAttribute("from")!==d.from_muc)return new oQ(e,`Invalid Stanza: Forged MAM message from ${e.getAttribute("from")}`);if(d.is_archived&&e.getAttribute("from")!==t.get("jid"))return new oQ(e,`Invalid Stanza: Forged MAM groupchat message from ${a.getAttribute("from")}`);if(d.is_carbon)return new oQ(e,"Invalid Stanza: MUC messages SHOULD NOT be XEP-0280 carbon copied");d.id=d.origin_id||d[`stanza_id ${d.from_muc||d.from}`]||u7.getUniqueId(),d=await ax.hook("parseMUCMessage",e,d);let u=await u7.getMediaURLsMetadata(d.is_encrypted?d.plaintext:d.body);return Object.assign(d,u)}async function hi(e,t){await t.initialized;let s=e.getAttribute("from"),r=e.getAttribute("type"),i=u5.getResourceFromJid(s),o={from:s,nick:i,type:r,muc_jid:u5.getBareJidFromJid(s),occupant_id:hs(e,t),status:e.querySelector(":scope > status")?.textContent??void 0,show:e.querySelector(":scope > show")?.textContent??void 0,image_hash:u9(`presence > x[xmlns="${u5.NS.VCARDUPDATE}"] photo`,e).pop()?.textContent,hats:u9(`presence > hats[xmlns="${u5.NS.MUC_HATS}"] hat`,e).map(e=>({title:e.getAttribute("title"),uri:e.getAttribute("uri")})),...ht(e,"presence"),...function(e,t){let s=u9(`presence > x[xmlns="${u5.NS.MUC_USER}"] item`,e).pop();if(s){let e=s.querySelector("actor");return{affiliation:s.getAttribute("affiliation"),role:s.getAttribute("role"),jid:s.getAttribute("jid"),nick:s.getAttribute("nick")||t,...e?{actor:{nick:e?.getAttribute("nick")??null,jid:e?.getAttribute("jid")??null}}:{},reason:s.querySelector("reason")?.textContent??null}}}(e,i)};return await ax.hook("parseMUCPresence",e,o)}let{Strophe:hn,$iq:ho,u:ha,stx:hl}=dh.env;async function hc(e,t){let s=hl` `,r=await ax.sendIQ(s,null,!1);if(null===r){let s=`Error: timeout while fetching ${e} list for MUC ${t}`,r=Error(s);return Q.warn(s),r}if(ha.isErrorStanza(r)){let s=`Error: not allowed to fetch ${e} list for MUC ${t}`,i=Error(s);return Q.warn(s),Q.warn(r),i}return u9(`query[xmlns="${u5.NS.MUC_ADMIN}"] item`,r).map(e=>{let t={affiliation:e.getAttribute("affiliation")},s=e.getAttribute("jid");u7.isValidJID(s)?t.jid=s:t.nick=s;let r=e.getAttribute("nick");return r&&(t.nick=r),e.getAttribute("role")&&(t.role=r),t}).filter(e=>e).sort((e,t)=>e.nickt.nick))}function hd(e,t){return Promise.all([...new Set(t.map(e=>e.affiliation))].map(s=>hu(s,e,t)))}function hu(e,t,s){return Array.isArray(t)||(t=[t]),s=s.filter(t=>[void 0,e].includes(t.affiliation)),Promise.all(t.reduce((t,r)=>[...t,...s.map(t=>{var s;let i;return s=e,s=t.affiliation||s,i=ho({to:r,type:"set"}).c("query",{xmlns:hn.NS.MUC_ADMIN}).c("item",{affiliation:s,..."outcast"===s?{}:{nick:t.nick},jid:t.jid}),void 0!==t.reason&&i.c("reason",t.reason),ax.sendIQ(i)})],[]))}function hh(e,t,s,r){let i=s.map(e=>e.jid),o=r.map(e=>e.jid),a=i.filter(e=>!o.includes(e)).map(e=>s[i.indexOf(e)]);return e||(a=a.concat(s.filter(e=>{let t=o.indexOf(e.jid);return t>=0&&e.affiliation!==r[t].affiliation}))),t&&(a=a.concat(o.filter(e=>!i.includes(e)).map(e=>({jid:e,affiliation:"none"})))),a}let{u:hm}=dh.env;class hp extends um(es.Model){async initialize(){await super.initialize();let e=this.get("jid");e&&this.set({box_id:`box-${e}`})}validate(e){if(!e.jid)return"Ignored ChatBox without JID";let t=ax.settings.get("auto_join_rooms").map(e=>e instanceof Object?e.jid:e),s=ax.settings.get("auto_join_private_chats").concat(t);if(ax.settings.get("singleton")&&!s.includes(e.jid)&&!ax.settings.get("auto_join_on_invite")){let t=`${e.jid} is not allowed because singleton is true and it's not being auto_joined`;return Q.warn(t),t}}maybeShow(e){if(sM()){let t=e=>!e.get("hidden")&&e.get("jid")!==this.get("jid")&&"controlbox"!==e.get("id"),s=iw.state.chatboxes.filter(t);return(e||0===s.length)&&(s.forEach(e=>hm.safeSave(e,{hidden:!0})),hm.safeSave(this,{hidden:!1,closed:!1}),this.trigger("show")),this}return hm.safeSave(this,{hidden:!1,closed:!1}),this.trigger("show"),this}async shouldDestroyOnClose(){return await ax.hook("shouldDestroyOnClose",this,!0)}async close(e){if(await this.shouldDestroyOnClose())try{await new Promise((e,t)=>this.destroy({success:e,error:(e,s)=>t(s)}))}catch(e){Q.debug(e)}else hm.safeSave(this,{closed:!0});ax.settings.get("clear_messages_on_reconnection")&&await this.clearMessages(),ax.trigger("chatBoxClosed",this)}announceReconnection(){ax.trigger("chatReconnected",this)}async onReconnection(){ax.settings.get("clear_messages_on_reconnection")&&await this.clearMessages(),this.announceReconnection()}}let{Strophe:hf,sizzle:hg,u:hv}=dh.env;async function h_(){let e=ax.settings.get("muc_domain")||iw.session.get("default_muc_service");if(!e){let t=iw.session.get("domain");for(let s of(await ax.disco.entities.items(t)))if(await ax.disco.features.has(hf.NS.MUC,s.get("jid"))){e=s.get("jid"),iw.session.save({default_muc_service:e});break}}return e}function hy(e){return e.nick&&(hv.shouldCreateMessage(e)||e.is_tombstone)}function hb(e,t){let s=e.get("role")||"none",r=t.get("role")||"none";if(uK[s]!==uK[r])return uK[s]r)}}function hw(){ax.connection.get().addHandler(e=>(iw.exports.onDirectMUCInvitation(e),!0),"jabber:x:conference","message")}function hj(){return iw.state.chatboxes.filter(e=>e.get("type")===ia).forEach(e=>e.session.save({connection_status:dh.ROOMSTATUS.DISCONNECTED}))}async function hS(){!document.hidden&&ax.connection.connected()&&(await ax.rooms.get()).forEach(e=>e.rejoinIfNecessary())}async function hx(e){if(!location.hash.startsWith("#converse/room?jid="))return;e?.preventDefault();let t=location.hash.split("=").pop();if(!hv.isValidMUCJID(t))return Q.warn(`invalid jid "${t}" provided in url fragment`);await ax.waitUntil("roomsAutoJoined"),ax.settings.get("allow_bookmarks")&&await ax.waitUntil("bookmarksInitialized"),ax.rooms.open(t,{},!0)}async function hA(e,t){t.type=ia,t.id=e;let s=await ax.rooms.get(e,t,!0);return s.maybeShow(!0),s}async function hE(e){let t,s=hg('x[xmlns="jabber:x:conference"]',e).pop(),r=hf.getBareJidFromJid(e.getAttribute("from")),i=s.getAttribute("jid"),o=s.getAttribute("reason");if(ax.settings.get("auto_join_on_invite"))t=!0;else{let e=iw.state.roster.get(r)?.getDisplayName()??r;t=await ax.hook("confirmDirectMUCInvitation",{contact:e,reason:o,jid:i},!1)}t&&(await hA(i,{password:s.getAttribute("password")})).session.get("connection_status")===dh.ROOMSTATUS.DISCONNECTED&&iw.state.chatboxes.get(i).rejoin()}function h$(){let{profile:e}=iw.state;if(!e)return Q.error("Called getDefaultMUCNickname before statusInitialized has been fired."),"";let t=e.getNickname();if(t)return t;if(ax.settings.get("muc_nickname_from_jid")){let e=iw.session.get("bare_jid");return hf.unescapeNode(hf.getNodeFromJid(e))}}function hk(e){return!!ax.settings.get("muc_show_info_messages").includes(e)}async function hC(){await Promise.all(ax.settings.get("auto_join_rooms").map(e=>"string"==typeof e?iw.state.chatboxes.where({jid:e}).length?Promise.resolve():ax.rooms.open(e):e instanceof Object?ax.rooms.open(e.jid,{...e}):(Q.error('Invalid muc criteria specified for "auto_join_rooms"'),Promise.resolve()))),ax.trigger("roomsAutoJoined")}function hT(){ax.disco.own.features.add(hf.NS.MUC),ax.settings.get("allow_muc_invitations")&&ax.disco.own.features.add("jabber:x:conference")}function hM(){iw.state.chatboxes.where({type:ia}).forEach(e=>oI(e.session,{connection_status:dh.ROOMSTATUS.DISCONNECTED}))}function hO(){window.addEventListener(sN(),()=>{!ax.connection.isType("websocket")||ax.settings.get("enable_smacks")&&iw.session.get("smacks_stream_id")||hj()})}function hN(){ax.connection.get().addHandler(e=>{let t=hf.getBareJidFromJid(e.getAttribute("from"));return iw.state.chatboxes.get(t)||ax.waitUntil("chatBoxesFetched").then(async()=>{let s=iw.state.chatboxes.get(t);s&&(await s.initialized,s.message_handler.run(e))}),!0},null,"message","groupchat")}class hI extends es.Model{defaults(){return{connection_status:u3.DISCONNECTED}}}let{u:hR,stx:hD}=dh.env;class hL extends d8(um(dW(hp))){defaults(){return{bookmarked:!1,chat_state:void 0,closed:!1,has_activity:!1,hidden:sM()&&!ax.settings.get("singleton"),hidden_occupants:!!ax.settings.get("hide_muc_participants"),message_type:"groupchat",name:"",num_unread_general:0,num_unread:0,roomconfig:{},time_opened:this.get("time_opened")||new Date().getTime(),time_sent:new Date(0).toISOString(),type:ia}}async initialize(){super.initialize(),this.on("change:closed",()=>{this.get("closed")||this.initialize()}),this.get("closed")||(this.initialized=er(),this.debouncedRejoin=iR(this.rejoin,250),this.initOccupants(),this.initDiscoModels(),this.registerHandlers(),this.on("change:chat_state",this.sendChatState,this),this.on("change:hidden",this.onHiddenChange,this),this.on("destroy",this.removeHandlers,this),await this.restoreSession(),this.session.on("change:connection_status",this.onConnectionStatusChanged,this),this.listenTo(this.occupants,"add",this.onOccupantAdded),this.listenTo(this.occupants,"remove",this.onOccupantRemoved),this.listenTo(this.occupants,"change:presence",this.onOccupantPresenceChanged),this.listenTo(this.occupants,"change:affiliation",this.createAffiliationChangeMessage),this.listenTo(this.occupants,"change:role",this.createRoleChangeMessage),await this.restoreFromCache()||await this.join(),await ax.trigger("chatRoomInitialized",this,{synchronous:!0}),this.initialized.resolve())}isEntered(){return this.session?.get("connection_status")===u3.ENTERED}isRAICandidate(){return this.get("hidden")&&ax.settings.get("muc_subscribe_to_rai")&&"none"!==this.getOwnAffiliation()}async restoreFromCache(){if(this.isEntered()){if(await this.fetchOccupants().catch(e=>Q.error(e)),this.isRAICandidate())return this.session.save("connection_status",u3.DISCONNECTED),this.enableRAI(),!0;if(await this.isJoined())return await new Promise(e=>this.config.fetch({success:e,error:e})),await new Promise(e=>this.features.fetch({success:e,error:e})),await this.fetchMessages().catch(e=>Q.error(e)),!0}return this.session.save("connection_status",u3.DISCONNECTED),this.clearOccupantsCache(),!1}async join(e,t){if(this.isEntered())return;this.session.save("connection_status",u3.CONNECTING);let s=await this.refreshDiscoInfo({timeout:3e4}) instanceof o2;if(!(e=await this.getAndPersistNickname(e))){oI(this.session,{connection_status:u3.NICKNAME_REQUIRED}),!s&&ax.settings.get("muc_show_logs_before_join")&&await this.fetchMessages();return}ax.send(await this.constructJoinPresence(t,s)),s&&await this.refreshDiscoInfo()}rejoin(){return this.session.save("connection_status",u3.DISCONNECTED),this.registerHandlers(),this.clearOccupantsCache(),this.join()}async constructJoinPresence(e,t){let s=t||this.features.get("mam_enabled")?0:ax.settings.get("muc_history_max_stanzas");e=e||this.get("password");let{profile:r}=iw.state,i=r.get("show"),o=r.get("status_message"),a=hD` ${s?hD``:""} ${e?hD`${e}`:""} ${rJ.includes(i)?hD`${i}`:""} ${o?hD`${o}`:""} `;return await ax.hook("constructedMUCPresence",this,a)}clearOccupantsCache(){this.occupants.length?this.occupants.filter(e=>!e.isMember()).forEach(e=>e.destroy()):this.occupants.clearStore()}sendMarkerForMessage(e,t="displayed",s=!1){if(e&&ax.settings.get("send_chat_markers").includes(t)&&e?.get("type")==="groupchat"){if(e?.get("is_markable")||s){let s=`stanza_id ${this.get("jid")}`,r=e.get(s);if(!r)return Q.error(`Can't send marker for message without stanza ID: ${s}`),Promise.resolve();dv(rZ.getBareJidFromJid(e.get("from")),r,t,e.get("type"))}return Promise.resolve()}}sendMarkerForLastMessage(e="displayed",t=!1){let s=Array.from(this.messages.models);s.reverse();let r=s.find(e=>"them"===e.get("sender")&&(t||e.get("is_markable")));r&&this.sendMarkerForMessage(r,e,t)}enableRAI(){if(ax.settings.get("muc_subscribe_to_rai")){let e=rZ.getDomainFromJid(this.get("jid"));ax.user.presence.send({to:e},rm("rai",{xmlns:rZ.NS.RAI}))}}async onHiddenChange(){let e=this.session.get("connection_status");this.get("hidden")?e===u3.ENTERED&&(this.setChatState(ie),this.isRAICandidate()&&(this.sendMarkerForLastMessage("received",!0),await this.leave(),this.enableRAI())):(await this.initialized,e===u3.DISCONNECTED&&this.rejoin(),this.clearUnreadMsgCounter())}onOccupantAdded(e){hk(dh.MUC_TRAFFIC_STATES.ENTERED)&&this.session.get("connection_status")===u3.ENTERED&&"online"===e.get("presence")&&this.updateNotifications(e.get("nick"),dh.MUC_TRAFFIC_STATES.ENTERED)}onOccupantRemoved(e){hk(dh.MUC_TRAFFIC_STATES.EXITED)&&this.isEntered()&&"online"===e.get("presence")&&this.updateNotifications(e.get("nick"),dh.MUC_TRAFFIC_STATES.EXITED)}onOccupantPresenceChanged(e){!e.get("states").includes("303")&&("offline"===e.get("presence")&&hk(dh.MUC_TRAFFIC_STATES.EXITED)?this.updateNotifications(e.get("nick"),dh.MUC_TRAFFIC_STATES.EXITED):"online"===e.get("presence")&&hk(dh.MUC_TRAFFIC_STATES.ENTERED)&&this.updateNotifications(e.get("nick"),dh.MUC_TRAFFIC_STATES.ENTERED))}async onRoomEntered(){await this.occupants.fetchMembers(),ax.settings.get("clear_messages_on_reconnection")?await this.clearMessages():await this.fetchMessages(),ax.trigger("enteredNewRoom",this),ax.settings.get("auto_register_muc_nickname")&&await ax.disco.supports(rZ.NS.MUC_REGISTER,this.get("jid"))&&this.registerNickname()}async onConnectionStatusChanged(){if(this.isEntered())if(this.isRAICandidate()){try{await this.leave()}catch(e){Q.error(e)}this.enableRAI()}else await this.onRoomEntered()}async onReconnection(){await this.rejoin(),this.announceReconnection()}getMessagesCollection(){return new iw.exports.MUCMessages}restoreSession(){let e=iw.session.get("bare_jid"),t=`muc.session-${e}-${this.get("jid")}`;return this.session=new hI({id:t}),ou(this.session,t,"session"),new Promise(e=>this.session.fetch({success:e,error:e}))}initDiscoModels(){let e=iw.session.get("bare_jid"),t=`converse.muc-features-${e}-${this.get("jid")}`;this.features=new es.Model(Object.assign({id:t},dh.ROOM_FEATURES.reduce((e,t)=>(e[t]=!1,e),{}))),this.features.browserStorage=od(t,"session"),this.features.listenTo(iw,"beforeLogout",()=>this.features.browserStorage.flush()),t=`converse.muc-config-${e}-${this.get("jid")}`,this.config=new es.Model({id:t}),this.config.browserStorage=od(t,"session"),this.config.listenTo(iw,"beforeLogout",()=>this.config.browserStorage.flush())}initOccupants(){this.occupants=new iw.exports.MUCOccupants;let e=iw.session.get("bare_jid"),t=`converse.occupants-${e}${this.get("jid")}`;this.occupants.browserStorage=od(t,"session"),this.occupants.chatroom=this,this.occupants.listenTo(iw,"beforeLogout",()=>this.occupants.browserStorage.flush())}fetchOccupants(){return this.occupants.fetched=new Promise(e=>{this.occupants.fetch({add:!0,silent:!0,success:e,error:e})}),this.occupants.fetched}handleAffiliationChangedMessage(e){if(e.querySelector("body"))return;let t=J()(`x[xmlns="${rZ.NS.MUC_USER}"] item`,e).pop();if(t){let s=e.getAttribute("from"),r=t.getAttribute("jid"),i={from:s,states:[],jid:rZ.getBareJidFromJid(r),resource:rZ.getResourceFromJid(r)},o=t.getAttribute("affiliation");o&&(i.affiliation=o);let a=t.getAttribute("role");a&&(i.role=a);let l=this.occupants.findOccupant({jid:i.jid});l?l.save(i):this.occupants.create(i)}}async handleErrorMessageStanza(e){let{__:t}=iw,s=await hr(e,this);if(hR.isErrorObject(s)){let{stanza:e,message:t}=s;return e&&Q.error(e),Q.error(t)}if(!await this.shouldShowErrorMessage(s))return;let r=rZ.getResourceFromJid(s.from),i=(r?this.getOccupant(r):null)||this,o=i.getMessageReferencedByError(s);if(o){let e={error:s.error,error_condition:s.error_condition,error_text:s.error_text,error_type:s.error_type,editable:!1};s.msgid===o.get("retraction_id")?(e.retracted=void 0,e.retraction_id=void 0,e.retracted_id=void 0,s.error||("forbidden"===s.error_condition?e.error=t("You're not allowed to retract your message."):"not-acceptable"===s.error_condition?e.error=t("Your retraction was not delivered because you're not present in the groupchat."):e.error=t("Sorry, an error occurred while trying to retract your message."))):s.error||("forbidden"===s.error_condition?e.error=t("Your message was not delivered because you weren't allowed to send it."):"not-acceptable"===s.error_condition?e.error=t("Your message was not delivered because you're not present in the groupchat."):e.error=t("Sorry, an error occurred while trying to send your message.")),o.save(e)}else i.createMessage(s)}handleMessageFromMUCHost(e){if(this.isEntered())return;let t=J()(`rai[xmlns="${rZ.NS.RAI}"]`,e).pop();Array.from(t?.querySelectorAll("activity")||[]).map(e=>e.textContent).includes(this.get("jid"))&&this.save({has_activity:!0,num_unread_general:0})}handleForwardedMentions(e){if(this.isEntered())return;let t=J()(`mentions[xmlns="${rZ.NS.MENTIONS}"] forwarded[xmlns="${rZ.NS.FORWARD}"] message[type="groupchat"]`,e),s=this.get("jid"),r=t.filter(e=>rZ.getBareJidFromJid(e.getAttribute("from"))===s);r.length&&(this.save({has_activity:!0,num_unread:this.get("num_unread")+r.length}),r.forEach(async e=>{let t=await hr(e,this);ax.trigger("message",{stanza:e,attrs:t,chatbox:this})}))}async handleMessageStanza(e){let t,s=(e=e.tree?.()??e).getAttribute("type");if("error"===s)return this.handleErrorMessageStanza(e);if("groupchat"===s){if(dU(e))return Q.warn('Received a MAM message with type "groupchat"')}else if(!s)return this.handleForwardedMentions(e);try{t=await hr(e,this)}catch(e){return Q.error(e)}if(hR.isErrorObject(t)){let{stanza:e,message:s}=t;return e&&Q.error(e),Q.error(s)}let r=t;"groupchat"===r.type&&(r.codes.forEach(e=>this.createInfoMessage(e)),this.fetchFeaturesIfConfigurationChanged(r));let i={stanza:e,attrs:r,chatbox:this};return ax.trigger("message",i),r&&this.queueMessage(r)}registerHandlers(){let e=this.get("jid"),t=rZ.getDomainFromJid(e);this.removeHandlers();let s=ax.connection.get();this.presence_handler=s.addHandler(e=>(this.onPresence(e),!0),null,"presence",null,null,e,{ignoreNamespaceFragment:!0,matchBareFromJid:!0}),this.domain_presence_handler=s.addHandler(e=>(this.onPresenceFromMUCHost(e),!0),null,"presence",null,null,t),this.message_handler=s.addHandler(e=>(this.handleMessageStanza(e),!0),null,"message",null,null,e,{matchBareFromJid:!0}),this.domain_message_handler=s.addHandler(e=>(this.handleMessageFromMUCHost(e),!0),null,"message",null,null,t),this.affiliation_message_handler=s.addHandler(e=>(this.handleAffiliationChangedMessage(e),!0),rZ.NS.MUC_USER,"message",null,null,e)}removeHandlers(){let e=ax.connection.get();return this.message_handler&&(e?.deleteHandler(this.message_handler),delete this.message_handler),this.domain_message_handler&&(e?.deleteHandler(this.domain_message_handler),delete this.domain_message_handler),this.presence_handler&&(e?.deleteHandler(this.presence_handler),delete this.presence_handler),this.domain_presence_handler&&(e?.deleteHandler(this.domain_presence_handler),delete this.domain_presence_handler),this.affiliation_message_handler&&(e?.deleteHandler(this.affiliation_message_handler),delete this.affiliation_message_handler),this}invitesAllowed(){return ax.settings.get("allow_muc_invitations")&&(this.features.get("open")||"owner"===this.getOwnAffiliation())}getDisplayName(){let e=this.get("name");return e?e.trim():"hidden"===ax.settings.get("locked_muc_domain")?rZ.getNodeFromJid(this.get("jid")):this.get("jid")}sendTimedMessage(e){let t=e instanceof Element?e:e.tree(),s=t.getAttribute("id");s||(s=dc("sendIQ"),t.setAttribute("id",s));let r=er(),i=ax.settings.get("stanza_timeout"),o=ax.connection.get(),a=o.addTimedHandler(i,()=>{o.deleteHandler(l);let e=new oZ("Timeout Error: No response from server");return r.resolve(e),!1}),l=o.addHandler(e=>{a&&o.deleteTimedHandler(a),r.resolve(e)},null,"message",["error","groupchat"],s);return ax.send(t),r}async retractOwnMessage(e){let t=iw.__,s=e.get("editable"),r=dc(),i=e.get("id"),o=hD` /me retracted a message `;e.set({retracted:new Date().toISOString(),retracted_id:i,retraction_id:r,editable:!1});let a=await this.sendTimedMessage(o);hR.isErrorStanza(a)?Q.error(a):a instanceof oZ&&(Q.error(a),e.save({editable:s,error_type:"timeout",error:t("A timeout happened while trying to retract your message."),retracted:void 0,retracted_id:void 0,retraction_id:void 0}))}async retractOtherMessage(e,t){let s=e.get("editable"),r=iw.session.get("bare_jid");e.save({moderated:"retracted",moderated_by:r,moderated_id:e.get("msgid"),moderation_reason:t,editable:!1});let i=await this.sendRetractionIQ(e,t);return(null===i||hR.isErrorStanza(i))&&e.save({editable:s,moderated:void 0,moderated_by:void 0,moderated_id:void 0,moderation_reason:void 0}),i}sendRetractionIQ(e,t){let s=hD` ${t?hD`${t}`:""} `;return ax.sendIQ(s,null,!1)}sendDestroyIQ(e,t){let s=hD` ${e?hD`${e}`:""} `;return ax.sendIQ(s)}async leave(e){ax.user.presence.send({type:"unavailable",to:this.getRoomJIDAndNick(),status:e}),oI(this.session,{connection_status:u3.DISCONNECTED}),this.features&&await new Promise(e=>this.features.destroy({success:e,error:(t,s)=>{Q.error(s),e()}}));let t=iw.state.disco_entities?.get(this.get("jid"));t&&await new Promise(e=>t.destroy({success:e,error:(t,s)=>{Q.error(s),e()}}))}async close(e){let{ENTERED:t,CLOSING:s}=u3,r=this.session.get("connection_status")===t;return oI(this.session,{connection_status:s}),r&&this.sendMarkerForLastMessage("received",!0),await this.leave(),this.occupants.clearStore(),e?.name!=="closeAllChatBoxes"&&(await this.unregisterNickname(),ax.settings.get("muc_clear_messages_on_leave")&&this.clearMessages(),ax.trigger("leaveRoom",this)),await new Promise(e=>this.session.destroy({success:e,error:(t,s)=>{Q.error(s),e()}})),super.close()}canModerateMessages(){let e=this.getOwnOccupant();return e&&e.isModerator()&&ax.disco.supports(rZ.NS.MODERATE,this.get("jid"))}canPostMessages(){return this.isEntered()&&!(this.features.get("moderated")&&"visitor"===this.getOwnRole())}isChatMessage(e){return e.get("type")===this.get("message_type")}getAllKnownNicknames(){return[...new Set([...this.occupants.map(e=>e.get("nick")),...this.messages.map(e=>e.get("nick"))])].filter(e=>e)}getAllKnownNicknamesRegex(){let e=this.getAllKnownNicknames().map(e=>uL.escapeRegexString(e)).join("|");return RegExp(`(?:\\p{P}|\\p{Z}|^)@(${e})(?![\\w@-])`,"uig")}getOccupantByJID(e){return this.occupants.findOccupant({jid:e})}getOccupantByNickname(e){return this.occupants.findOccupant({nick:e})}getReferenceURIFromNickname(e){let t=this.get("jid"),s=this.getOccupant(e),r=this.features.get("nonanonymous")&&s?.get("jid")||`${t}/${e}`;return encodeURI(`xmpp:${r}`)}parseTextForReferences(e){if(!e||!/(\p{P}|\p{Z}|^)([@][\w_-]+(?:\.\w+)*)/giu.test(e))return[e,[]];let t=uL.findFirstMatchInArray(this.getAllKnownNicknames()),s=e=>{let s=e[0].indexOf("@");"@"===e[0][s+1]&&(s+=1);let r=e.index+s,i=r+e[0].length-s,o=t(e[1]),a=this.getReferenceURIFromNickname(o);return{begin:r,end:i,value:o,type:"mention",uri:a}},r=this.getAllKnownNicknamesRegex(),i=[...e.matchAll(r)].filter(e=>!e[0].startsWith("/")).map(s),[o,a]=uL.reduceTextFromReferences(e,i);return[o,a]}async getOutgoingMessageAttributes(e){let t=this.get("composing_spoiler"),s="",r;e?.body&&([s,r]=this.parseTextForReferences(e.body));let i=dc(),o=s?hR.shortnamesToUnicode(s):void 0;return e=Object.assign({},e,{body:o,is_spoiler:t,origin_id:i,references:r,id:i,msgid:i,from:`${this.get("jid")}/${this.get("nick")}`,fullname:this.get("nick"),message:o,nick:this.get("nick"),sender:"me",type:"groupchat",original_text:s},await hR.getMediaURLsMetadata(s)),e=await ax.hook("getOutgoingMessageAttributes",this,e)}getRoomJIDAndNick(){let e=this.get("nick");return rZ.getBareJidFromJid(this.get("jid"))+(null!==e?`/${e}`:"")}sendChatState(){if(!ax.settings.get("send_chat_state_notifications")||!this.get("chat_state")||!this.isEntered()||this.features.get("moderated")&&"visitor"===this.getOwnRole())return;let e=ax.settings.get("send_chat_state_notifications");if(Array.isArray(e)&&!e.includes(this.get("chat_state")))return;let t=this.get("chat_state");t!==ii&&ax.send(hD` ${t===ie?hD``:""} ${t===it?hD``:""} ${t===is?hD``:""} ${t===ir?hD``:""} `)}directInvite(e,t){this.features.get("membersonly")&&this.updateMemberLists([{jid:e,affiliation:"member",reason:t}]);let s=hD` `;ax.send(s),ax.trigger("roomInviteSent",{room:this,recipient:e,reason:t})}async refreshDiscoInfo(e){let t=await ax.disco.refresh(this.get("jid"),e);return t instanceof oV?t:this.getDiscoInfo().catch(e=>Q.error(e))}async getDiscoInfo(){let e=await ax.disco.getIdentity("conference","text",this.get("jid"));e?.get("name")?this.save({name:e.get("name")}):Q.error(`No identity or name found for ${this.get("jid")}`),await this.getDiscoInfoFields(),await this.getDiscoInfoFeatures()}async getDiscoInfoFields(){let e=(await ax.disco.getFields(this.get("jid"))).reduce((e,t)=>{let s=t.get("var");return"muc#roomconfig_roomname"===s&&(e.roomname=t.get("value")),s?.startsWith("muc#roominfo_")&&(e[s.replace("muc#roominfo_","")]=t.get("value")),e},{});this.config.save(e),e.roomname&&this.save({name:e.roomname})}async getDiscoInfoFeatures(){let e=await ax.disco.getFeatures(this.get("jid")),t=dh.ROOM_FEATURES.reduce((e,t)=>(e[t]=!1,e),{fetched:new Date().toISOString()});e.each(e=>{let s=e.get("var");if(!s.startsWith("muc_"))return void(s===rZ.NS.MAM?t.mam_enabled=!0:t[s]=!0);t[s.replace("muc_","")]=!0}),this.features.save(t)}addFieldValue(e){let t=e.getAttribute("type");if("fixed"===t)return e;let s=e.getAttribute("var").replace("muc#roomconfig_",""),r=this.get("roomconfig");if(s in r){let i;switch(t){case"boolean":i=[+!!r[s]];break;case"list-multi":i=r[s];break;default:i=[r[s]]}e.innerHTML=i.map(e=>rm("value").t(e)).join("")}return e}async autoConfigureChatRoom(){let e=await this.fetchRoomConfiguration(),t=J()("field",e).map(e=>this.addFieldValue(e));if(t.length)return this.sendConfiguration(t)}fetchRoomConfiguration(){return ax.sendIQ(hD` `)}sendConfiguration(e=[]){let t=hD` ${e.map(e=>rZ.Builder.fromString(e.outerHTML))} `;return ax.sendIQ(t)}onCommandError(e){let{__:t}=iw;Q.fatal(e);let s=t("Sorry, an error happened while running the command.")+" "+t("Check your browser's developer console for details.");this.createMessage({message:s,type:"error"})}getNickOrJIDFromCommandArgs(e){let{__:t}=iw;if(hR.isValidJID(e.trim()))return e.trim();e.startsWith("@")||(e="@"+e);let s=this.parseTextForReferences(e)[1];if(!s.length){let e=t("Error: couldn't find a groupchat participant based on your arguments");this.createMessage({message:e,type:"error"});return}if(s.length>1){let e=t("Error: found multiple groupchat participant based on your arguments");this.createMessage({message:e,type:"error"});return}let r=s.pop().value,i=e.split(r,2)[1];if(i&&!i.startsWith(" ")){let e=t("Error: couldn't find a groupchat participant based on your arguments");this.createMessage({message:e,type:"error"});return}return r}validateRoleOrAffiliationChangeArgs(e,t){let{__:s}=iw;if(!t){let t=s('Error: the "%1$s" command takes two arguments, the user\'s nickname and optionally a reason.',e);return this.createMessage({message:t,type:"error"}),!1}return!0}getAllowedCommands(){let e=["clear","help","me","nick","register"];(this.config.get("changesubject")||["owner","admin"].includes(this.getOwnAffiliation()))&&(e=[...e,"subject","topic"]);let t=iw.session.get("bare_jid"),s=this.occupants.findWhere({jid:t});return(this.verifyAffiliations(["owner"],s,!1)?e=e.concat(uW).concat(uF):this.verifyAffiliations(["admin"],s,!1)&&(e=e.concat(uF)),this.verifyRoles(["moderator"],s,!1)?e=e.concat(uG).concat(uV):this.verifyRoles(["visitor","participant","moderator"],s,!1)||(e=e.concat(uV)),e.sort(),Array.isArray(ax.settings.get("muc_disable_slash_commands")))?e.filter(e=>!ax.settings.get("muc_disable_slash_commands").includes(e)):e}verifyAffiliations(e,t,s=!0){let{__:r}=iw;if(!Array.isArray(e))throw TypeError("affiliations must be an Array");if(!e.length)return!0;let i=iw.session.get("bare_jid");if(t=t||this.occupants.findWhere({jid:i})){let s=t.get("affiliation");if(e.includes(s))return!0}if(s){let e=r("Forbidden: you do not have the necessary affiliation in order to do that.");this.createMessage({message:e,type:"error"})}return!1}verifyRoles(e,t,s=!0){let{__:r}=iw;if(!Array.isArray(e))throw TypeError("roles must be an Array");if(!e.length)return!0;let i=iw.session.get("bare_jid");if(t=t||this.occupants.findWhere({jid:i})){let s=t.get("role");if(e.includes(s))return!0}if(s){let e=r("Forbidden: you do not have the necessary role in order to do that.");this.createMessage({message:e,type:"error",is_ephemeral:2e4})}return!1}getOwnRole(){return this.getOwnOccupant()?.get("role")}getOwnAffiliation(){return this.getOwnOccupant()?.get("affiliation")||"none"}getOwnOccupant(){return this.occupants.getOwnOccupant()}async setNickname(e){let t=rZ.getBareJidFromJid(this.get("jid"));ax.send(hD``)}setRole(e,t,s,r,i){let o=hD` ${null!==s?hD`${s}`:""} `;return ax.sendIQ(o).then(r).catch(i)}getOccupant(e){return hR.isValidJID(e)?this.getOccupantByJID(e):this.getOccupantByNickname(e)}getOccupantsWithRole(e){return this.getOccupantsSortedBy("nick").filter(t=>t.get("role")===e).map(e=>({jid:e.get("jid"),nick:e.get("nick"),role:e.get("role")}))}getOccupantsWithAffiliation(e){return this.getOccupantsSortedBy("nick").filter(t=>t.get("affiliation")===e).map(e=>({jid:e.get("jid"),nick:e.get("nick"),affiliation:e.get("affiliation")}))}getOccupantsSortedBy(e){return Array.from(this.occupants.models).sort((t,s)=>t.get(e)s.get(e)))}async updateMemberLists(e){let t=this.get("jid"),s=(await Promise.all(["member","admin","owner"].map(e=>hc(e,t)))).reduce((e,t)=>t instanceof Error?(Q.error(t),e):[...t,...e],[]);await hd(t,hh(!0,!1,e,s)),await this.occupants.fetchMembers()}async getNicknameFromHook(){return await ax.hook("getNicknameForMUC",this,null)}async getAndPersistNickname(e){return(e=e||this.get("nick")||await this.getReservedNick()||await this.getNicknameFromHook()||iw.exports.getDefaultMUCNickname())&&oI(this,{nick:e},{silent:!0}),e}async getReservedNick(){let e=hD` `,t=await ax.sendIQ(e,3e4,!1);if(hR.isErrorObject(t))throw t;let s=t?.querySelector('query[node="x-roomuser-item"] identity');return s?s.getAttribute("name"):null}async registerNickname(){let e,t,{__:s}=iw,r=this.get("nick"),i=this.get("jid");try{e=await ax.sendIQ(hD` `)}catch(e){return J()(`not-allowed[xmlns="${rZ.NS.STANZAS}"]`,e).length?t=s("You're not allowed to register yourself in this groupchat."):J()(`registration-required[xmlns="${rZ.NS.STANZAS}"]`,e).length&&(t=s("You're not allowed to register in this groupchat because it's members-only.")),Q.error(e),t}let o=J()("field required",e).map(e=>e.parentElement);if(o.length>1&&"muc#register_roomnick"!==o[0].getAttribute("var"))return Q.error(`Can't register the user register in the groupchat ${i} due to the required fields`);try{await ax.sendIQ(hD` http://jabber.org/protocol/muc#register ${r} `)}catch(t){let e=await db(t);throw e?.name==="service-unavailable"?Q.error("Can't register your nickname in this groupchat, it doesn't support registration."):e?.name==="bad-request"?Q.error("Can't register your nickname in this groupchat, invalid data form supplied."):Q.error(t),e}}async unregisterNickname(){if("unregister"===ax.settings.get("auto_register_muc_nickname"))try{await ax.disco.supports(rZ.NS.MUC_REGISTER,this.get("jid"))&&await this.sendUnregistrationIQ()}catch(e){Q.error(e)}}sendUnregistrationIQ(){let e=hD` `;return ax.sendIQ(e).catch(e=>Q.error(e))}updateOccupantsOnPresence(e){if("error"===e.type||!e.jid&&!e.nick&&!e.occupant_id)return!0;let t=this.occupants.findOccupant(e);if("unavailable"===e.type&&t&&!e.codes.includes(dh.MUC_NICK_CHANGED_CODE)&&!["admin","owner","member"].includes(e.affiliation)){t.set({...e,presence:"offline"}),t.destroy();return}let s="unavailable"!==e.type?"online":"offline",r=e.jid||"",i={...e,presence:s,jid:rZ.getBareJidFromJid(r)||t?.attributes?.jid,resource:rZ.getResourceFromJid(r)||t?.attributes?.resource};if(e.is_self){let t=!1;e.codes.includes(dh.MUC_NICK_CHANGED_CODE)&&(t=!0,this.set("nick",e.nick)),this.features.get(rZ.NS.OCCUPANTID)&&this.get("occupant-id")!==e.occupant_id&&(t=!0,this.set("occupant_id",e.occupant_id)),t&&this.save()}t?t.save(i):this.occupants.create(i)}fetchFeaturesIfConfigurationChanged(e){let t=["104","170","171","172","173","174"];e.codes.filter(e=>t.includes(e)).length&&this.refreshDiscoInfo()}isSameUser(e,t){let s=rZ.getBareJidFromJid(e),r=rZ.getBareJidFromJid(t),i=rZ.getResourceFromJid(e),o=rZ.getResourceFromJid(t);if(hR.isSameBareJID(e,t))if(s===this.get("jid"))return i===o;else return!0;return(s===this.get("jid")?this.occupants.findOccupant({nick:i}):this.occupants.findOccupant({jid:s}))===(r===this.get("jid")?this.occupants.findOccupant({nick:o}):this.occupants.findOccupant({jid:r}))}async isSubjectHidden(){return(await ax.user.settings.get("mucs_with_hidden_subject",[])).includes(this.get("jid"))}async toggleSubjectHiddenState(){let e=this.get("jid"),t=await ax.user.settings.get("mucs_with_hidden_subject",[]);t.includes(this.get("jid"))?ax.user.settings.set("mucs_with_hidden_subject",t.filter(t=>t!==e)):ax.user.settings.set("mucs_with_hidden_subject",[...t,e])}async handleSubjectChange(e){let t=iw.__;if("string"==typeof e.subject&&!e.thread&&!e.message){let s=e.subject,r=e.nick;if(oI(this,{subject:{author:r,text:e.subject||""}}),!e.is_delayed&&r){let i=t(s?"Topic set by %1$s":"Topic cleared by %1$s",r),o=this.messages.last();(o?.get("nick")!==e.nick||o?.get("type")!=="info"||o?.get("message")!==i)&&this.createMessage({message:i,nick:e.nick,type:"info",is_ephemeral:!0}),await this.isSubjectHidden()&&this.toggleSubjectHiddenState()}return!0}return!1}setSubject(e=""){ax.send(hD` ${e} `)}ignorableCSN(e){return e.chat_state&&!e.body&&(e.is_delayed||this.isOwnMessage(e))}isOwnMessage(e){let t;return t=e instanceof Element?e.getAttribute("from"):e instanceof iw.exports.MUCMessage?e.get("from"):e.from,rZ.getResourceFromJid(t)==this.get("nick")}getUpdatedMessageAttributes(e,t){let s={...super.getUpdatedMessageAttributes(e,t),...sb(t,["from_muc","occupant_id"])};if(this.isOwnMessage(t)){let r=Object.keys(t).filter(e=>e.startsWith("stanza_id"));Object.assign(s,{...sb(t,r)},{body:t.body}),e.get("received")||(s.received=new Date().toISOString())}return s}async isJoined(){return this.isEntered()?(ax.connection.connected()||await new Promise(e=>ax.listen.once("reconnected",e)),ax.ping(`${this.get("jid")}/${this.get("nick")}`)):(Q.info(`isJoined: not pinging MUC ${this.get("jid")} since we're not entered`),!1)}async sendStatusPresence(e,t){if(this.session.get("connection_status")===u3.ENTERED){let s=await iw.state.profile.constructPresence({...e,to:`${this.get("jid")}/${this.get("nick")}`},t?.map(e=>e?.tree()??e));ax.send(s)}}async rejoinIfNecessary(){return this.isRAICandidate()?(Q.debug(`rejoinIfNecessary: not rejoining hidden MUC "${this.get("jid")}" since we're using RAI`),!0):await this.isJoined()?void 0:(this.rejoin(),!0)}async shouldShowErrorMessage(e){if("Decryption"===e.error_type){if("Message key not found. The counter was repeated or the key was not filled."===e.error_message)return!1;else if("not-encrypted-for-this-device"===e.error_condition)return!1}else if("not-acceptable"===e.error_condition&&await this.rejoinIfNecessary())return!1;return super.shouldShowErrorMessage(e)}findDanglingModeration(e){if(!this.messages.length)return null;if(this.messages.last().get("time")>e.time){let t=Array.from(this.messages.models),s=e[`stanza_id ${this.get("jid")}`];return s?(t.reverse(),t.find(({attributes:e})=>"retracted"===e.moderated&&e.moderated_id===s&&e.moderated_by)):null}}async handleModeration(e){let t=["editable","moderated","moderated_by","moderated_by_id","moderated_id","moderation_reason"];if("retracted"===e.moderated){let s={};s[`stanza_id ${this.get("jid")}`]=e.moderated_id;let r=this.messages.findWhere(s);return r?r.save(sb(e,t)):(e.dangling_moderation=!0,await this.createMessage(e)),!0}{let s=this.findDanglingModeration(e);if(s){let r=Object.assign({dangling_moderation:!1},e,sb(s.attributes,t));return delete r.id,s.save(r),!0}}return!1}getNotificationsText(){let{__:e}=iw,t=this.notifications.toJSON(),s=ax.settings.get("muc_show_info_messages").filter(e=>dh.MUC_ROLE_CHANGES_LIST.includes(e)),r=ax.settings.get("muc_show_info_messages").filter(e=>dh.MUC_TRAFFIC_STATES_LIST.includes(e));return[...dh.CHAT_STATES,...r,...s].reduce((s,r)=>{let i=t[r];if(!i?.length)return s;let o=i.map(e=>this.getOccupant(e)?.getDisplayName()||e);if(1===o.length){if("composing"===r)return`${s}${e("%1$s is typing",o[0])} `;else if("paused"===r)return`${s}${e("%1$s has stopped typing",o[0])} `;else if(r===ii)return`${s}${e("%1$s has gone away",o[0])} `;else if("entered"===r)return`${s}${e("%1$s has entered the groupchat",o[0])} `;else if("exited"===r)return`${s}${e("%1$s has left the groupchat",o[0])} `;else if("op"===r)return`${s}${e("%1$s is now a moderator",o[0])} `;else if("deop"===r)return`${s}${e("%1$s is no longer a moderator",o[0])} `;else if("voice"===r)return`${s}${e("%1$s has been given a voice",o[0])} `;else if("mute"===r)return`${s}${e("%1$s has been muted",o[0])} `}else if(o.length>1){let t;if(o.length>3)t=`${Array.from(o).slice(0,2).join(", ")} and others`;else{let s=o.pop();t=e("%1$s and %2$s",o.join(", "),s)}if("composing"===r)return`${s}${e("%1$s are typing",t)} `;if("paused"===r)return`${s}${e("%1$s have stopped typing",t)} `;if(r===ii)return`${s}${e("%1$s have gone away",t)} `;if("entered"===r)return`${s}${e("%1$s have entered the groupchat",t)} `;if("exited"===r)return`${s}${e("%1$s have left the groupchat",t)} `;else if("op"===r)return`${s}${e("%1$s are now moderators",o[0])} `;else if("deop"===r)return`${s}${e("%1$s are no longer moderators",o[0])} `;else if("voice"===r)return`${s}${e("%1$s have been given voices",o[0])} `;else if("mute"===r)return`${s}${e("%1$s have been muted",o[0])} `}return s},"")}removeNotification(e,t){let s=this.notifications.toJSON();(t=Array.isArray(t)?t:[t]).forEach(t=>{let r=Array.from(s[t]||[]);if(r.includes(e)){let s=r.indexOf(e);r.splice(s,1),this.notifications.set(t,Array.from(r))}})}updateNotifications(e,t){let s=this.notifications.toJSON(),r=s[t]||[];if(r.includes(e))return;let i=(i,o)=>(o===t?i[o]=[...r,e]:i[o]=(s[o]||[]).filter(t=>t!==e),i),o=dh.CHAT_STATES.reduce(i,{}),a=dh.MUC_TRAFFIC_STATES_LIST.reduce(i,{}),l=dh.MUC_ROLE_CHANGES_LIST.reduce(i,{});this.notifications.set(Object.assign(o,a,l)),setTimeout(()=>this.removeNotification(e,t),1e4)}handleMUCPrivateMessage(e){if("chat"===e.type||null===e.type){let t=this.occupants.findOccupant(e);if(t)return t.queueMessage(e)}return!1}handleMetadataFastening(e){if(e.ogp_for_id){if(e.from!==this.get("jid"))return!1;let t=this.messages.findWhere({origin_id:e.ogp_for_id});if(t){let s=t.get("ogp_metadata")||[];if(s.filter(t=>t["og:url"]===e["og:url"]).length)return!1;let r=[...s,sb(e,r1)];return t.save("ogp_metadata",r),!0}}return!1}handleMEPNotification(e){return e.from===this.get("jid")&&!!e.activities&&(e.activities?.forEach(t=>{let s=Object.assign(e,t);this.createMessage(s),ax.trigger("message",{attrs:s,chatbox:this})}),!!e.activities.length)}getDuplicateMessage(e){return e.activities?.length?this.messages.findWhere({type:"mep",msgid:e.msgid}):super.getDuplicateMessage(e)}async onMessage(e){if(hR.isErrorObject(e))return Q.error(e.message);if("error"===e.type&&!await this.shouldShowErrorMessage(e))return;let t=this.getDuplicateMessage(e);if(t){"groupchat"===t.get("type")&&this.updateMessage(t,e);return}if(!(e.receipt_id||e.is_marker||this.ignorableCSN(e))){if(this.handleMUCPrivateMessage(e)||this.handleMetadataFastening(e)||this.handleMEPNotification(e)||await this.handleModeration(e)||await this.handleRetraction(e)||await this.handleSubjectChange(e)){e.nick&&this.removeNotification(e.nick,["composing","paused"]);return}if(this.setEditable(e,e.time),e.chat_state&&this.updateNotifications(e.nick,e.chat_state),hy(e)){let t=await this.handleCorrection(e)||await this.createMessage(e);this.removeNotification(e.nick,["composing","paused"]),this.handleUnreadMessage(t)}}}handleModifyError(e){let t=e.querySelector("error text")?.textContent;t&&(this.session.get("connection_status")===u3.CONNECTING?this.setDisconnectionState(t):this.createMessage({type:"error",message:t,is_ephemeral:!0}))}handleDisconnection(e){let{is_self:t,reason:s,actor:r}=e,i=e.codes.filter(e=>uH.includes(e));if(!(t&&i.length>0))return;let{STATUS_CODE_MESSAGES:o}=iw.labels.muc,a=o[i[0]],l=i.includes("301")?u3.BANNED:u3.DISCONNECTED;this.setDisconnectionState(a,s,r?.nick,l)}getActionInfoMessage(e,t){let{nick:s,actor:r}=t,i=iw.__;return"301"===e?r?.nick?i("%1$s has been banned by %2$s",s,r.nick):i("%1$s has been banned",s):"303"===e?i("%1$s's nickname has changed",s):"307"===e?r?.nick?i("%1$s has been kicked out by %2$s",s,r.nick):i("%1$s has been kicked out",s):"321"===e?i("%1$s has been removed because of an affiliation change",s):"322"===e?i("%1$s has been removed for not being a member",s):void 0}createAffiliationChangeMessage(e){let t=iw.__,s=e._previousAttributes.affiliation;if(!s)return;let r=e.get("affiliation");"admin"===s&&hk(dh.AFFILIATION_CHANGES.EXADMIN)?this.createMessage({type:"info",message:t("%1$s is no longer an admin of this groupchat",e.get("nick"))}):"owner"===s&&hk(dh.AFFILIATION_CHANGES.EXOWNER)?this.createMessage({type:"info",message:t("%1$s is no longer an owner of this groupchat",e.get("nick"))}):"outcast"===s&&hk(dh.AFFILIATION_CHANGES.EXOUTCAST)&&this.createMessage({type:"info",message:t("%1$s is no longer banned from this groupchat",e.get("nick"))}),"none"===r&&"member"===s&&hk(dh.AFFILIATION_CHANGES.EXMEMBER)&&this.createMessage({type:"info",message:t("%1$s is no longer a member of this groupchat",e.get("nick"))}),"member"===r&&hk(dh.AFFILIATION_CHANGES.MEMBER)?this.createMessage({type:"info",message:t("%1$s is now a member of this groupchat",e.get("nick"))}):("admin"===r&&hk(dh.AFFILIATION_CHANGES.ADMIN)||"owner"==r&&hk(dh.AFFILIATION_CHANGES.OWNER))&&this.createMessage({type:"info",message:t("%1$s is now an %2$s of this groupchat",e.get("nick"),r)})}createRoleChangeMessage(e,t){if("none"===t||e.changed.affiliation)return;let s=e._previousAttributes.role;"moderator"===s&&hk(dh.MUC_ROLE_CHANGES.DEOP)?this.updateNotifications(e.get("nick"),dh.MUC_ROLE_CHANGES.DEOP):"visitor"===s&&hk(dh.MUC_ROLE_CHANGES.VOICE)&&this.updateNotifications(e.get("nick"),dh.MUC_ROLE_CHANGES.VOICE),"visitor"===e.get("role")&&hk(dh.MUC_ROLE_CHANGES.MUTE)?this.updateNotifications(e.get("nick"),dh.MUC_ROLE_CHANGES.MUTE):"moderator"===e.get("role")&&!["owner","admin"].includes(e.get("affiliation"))&&hk(dh.MUC_ROLE_CHANGES.OP)&&this.updateNotifications(e.get("nick"),dh.MUC_ROLE_CHANGES.OP)}createInfoMessageFromPresence(e,t){let s=iw.__,r=t.is_self??!1;if(!hk||"110"===e||"100"===e&&!r)return;let{STATUS_CODE_MESSAGES:i}=iw.labels.muc,o=i[e],a={type:"info",is_ephemeral:!0,message:o,code:e};if(!r&&uU.includes(e)?(a.message=this.getActionInfoMessage(e,t),a.reason=t.reason):r&&uB.includes(e)&&(a.message=t.nick?s(o,t.nick):void 0),a.message){if("201"===e&&this.messages.findWhere(a))return;this.createMessage(a)}}createInfoMessage(e){if(!hk(e)||"110"===e)return;let{STATUS_CODE_MESSAGES:t}=iw.labels.muc,s=t[e];s&&this.createMessage({type:"info",is_ephemeral:!0,message:s,code:e})}setDisconnectionState(e,t,s,r=u3.DISCONNECTED){this.session.save({connection_status:r,disconnection_actor:s,disconnection_message:e,disconnection_reason:t})}onNicknameClash(e){let t=iw.__;if(ax.settings.get("muc_nickname_from_jid")){let t=e.getAttribute("from").split("/")[1];if(t===iw.exports.getDefaultMUCNickname())this.join(t+"-2");else{let e=t.lastIndexOf("-"),s=t.substring(e+1,t.length);this.join(t.substring(0,e+1)+String(Number(s)+1))}}else this.save({nickname_validation_message:t("The nickname you chose is reserved or currently in use, please choose a different one.")}),this.session.save({connection_status:u3.NICKNAME_REQUIRED})}onErrorPresence(e){let t=iw.__,s=e.querySelector("error"),r=s.getAttribute("type"),i=J()(`text[xmlns="${rZ.NS.STANZAS}"]`,s).pop()?.textContent;if("modify"===r)this.handleModifyError(e);else if("auth"===r){if(J()(`not-authorized[xmlns="${rZ.NS.STANZAS}"]`,s).length&&(this.save({password_validation_message:i||t("Password incorrect")}),this.session.save({connection_status:u3.PASSWORD_REQUIRED})),s.querySelector("registration-required")){let e=t("You are not on the member list of this groupchat.");this.setDisconnectionState(e,i)}else if(s.querySelector("forbidden")){let{STATUS_CODE_MESSAGES:e}=iw.labels.muc;this.setDisconnectionState(e[301],i,null,u3.BANNED)}}else if("cancel"===r)if(s.querySelector("not-allowed")){let e=t("You are not allowed to create new groupchats.");this.setDisconnectionState(e,i)}else if(s.querySelector("not-acceptable")){let e=t("Your nickname doesn't conform to this groupchat's policies.");this.setDisconnectionState(e,i)}else if(J()(`gone[xmlns="${rZ.NS.STANZAS}"]`,s).length){let e=J()(`gone[xmlns="${rZ.NS.STANZAS}"]`,s).pop()?.textContent.replace(/^xmpp:/,"").replace(/\?join$/,"");this.save({moved_jid:e,destroyed_reason:i}),this.session.save({connection_status:u3.DESTROYED})}else if(s.querySelector("conflict"))this.onNicknameClash(e);else if(s.querySelector("item-not-found")){let e=t("This groupchat does not (yet) exist.");this.setDisconnectionState(e,i)}else if(s.querySelector("service-unavailable")){let e=t("This groupchat has reached its maximum number of participants.");this.setDisconnectionState(e,i)}else if(s.querySelector("remote-server-not-found")){let e=t("Remote server not found");this.setDisconnectionState(e,i)}else if(s.querySelector("forbidden")){let e=t("You're not allowed to enter this groupchat");this.setDisconnectionState(e,i)}else{let e=t("An error happened while trying to enter this groupchat");this.setDisconnectionState(e,i)}}onPresenceFromMUCHost(e){if("error"===e.getAttribute("type")){let t=e.querySelector("error");t?.getAttribute("type")==="wait"&&t?.querySelector("resource-constraint")&&this.session.get("connection_status")===u3.DISCONNECTED&&this.rejoin()}}async onPresence(e){if("error"===e.getAttribute("type"))return this.onErrorPresence(e);let t=await hi(e,this);t.codes.forEach(async e=>{if(this.createInfoMessageFromPresence(e,t),t.is_self&&uB.includes(e)&&(this.save("nick",t.nick),"303"===e&&ax.settings.get("auto_register_muc_nickname")&&await ax.disco.supports(rZ.NS.MUC_REGISTER,this.get("jid"))))try{await this.registerNickname()}catch(e){Q.error(e),Q.error("Error: could not register new nickname")}}),t.is_self?(this.onOwnPresence(t),"none"!==this.getOwnRole()&&this.session.get("connection_status")===u3.CONNECTING&&this.session.save("connection_status",u3.CONNECTED)):this.updateOccupantsOnPresence(t)}async onOwnPresence(e){if(await this.occupants.fetched,"unavailable"===e.type)return void this.handleDisconnection(e);let t=this.session.get("connection_status");t!==u3.ENTERED&&t!==u3.CLOSING?(this.session.save("connection_status",u3.ENTERED,{silent:!0}),this.updateOccupantsOnPresence(e),this.session.trigger("change:connection_status",this.session,t)):this.updateOccupantsOnPresence(e),e.codes.includes("201")&&(this.get("auto_configure")?await this.autoConfigureChatRoom().then(()=>this.refreshDiscoInfo()):ax.settings.get("muc_instant_rooms")?await this.sendConfiguration().then(()=>this.refreshDiscoInfo()):ax.modal.show("converse-muc-config-modal",{model:this}))}isUserMentioned(e){let t=this.get("nick");return e.get("references").length?e.get("references").filter(e=>"mention"===e.type).map(e=>e.value).includes(t):RegExp(`\\b${t}\\b`).test(e.get("body"))}incrementUnreadMsgsCounter(e){let t={num_unread_general:this.get("num_unread_general")+1};0===this.get("num_unread_general")&&(t.first_unread_id=e.get("id")),this.isUserMentioned(e)&&(t.num_unread=this.get("num_unread")+1),this.save(t)}async clearUnreadMsgCounter(){(this.get("num_unread_general")>0||this.get("num_unread")>0||this.get("has_activity"))&&await this.sendMarkerForMessage(this.messages.last()),oI(this,{has_activity:!1,num_unread:0,num_unread_general:0})}}let hz=hL,{Strophe:hP,stx:hU}=dh.env;class hB extends d8(um(dW(es.Model))){async initialize(){this.lazy_load_vcard=!0,super.initialize(),await this.fetchMessages(),this.on("change:nick",()=>this.setColor()),this.on("change:jid",()=>this.setColor()),this.on("change:chat_state",()=>d_(this.get("jid"),this.get("chat_state")))}defaults(){return{hats:[],presence:"offline",show:void 0,states:[],hidden:!0,num_unread:0,message_type:"chat"}}save(e,t,s){let r;return null==e?super.save(e,t,s):("object"==typeof e?(r=e,s=t):(r={})[e]=t,r.occupant_id&&(r.id=r.occupant_id),super.save(r,s))}getMessagesCacheKey(){let e=this.get("occupant_id")||this.get("jid")||this.get("nick");return`converse.muc-private-msgs-${e}-${iw.session.get("bare_jid")}`}getMessagesCollection(){return new uD}async onMessage(e){if(dd.isErrorObject(e)){let{stanza:t,message:s}=e;return t&&Q.error(t),Q.error(s)}if("error"===e.type&&!await this.shouldShowErrorMessage(e))return;let t=this.getDuplicateMessage(e);if(t)return void this.updateMessage(t,e);if(!await this.handleRetraction(e)&&(this.setEditable(e,e.time),hy(e))){let t=await this.handleCorrection(e)||await this.createMessage(e);this.handleUnreadMessage(t)}}getDisplayName(){return this.get("nick")||this.get("jid")||""}getAssignableRoles(){let e=ax.settings.get("modtools_disable_assign");return(Array.isArray(e)||(e=e?uZ:[]),"moderator"===this.get("role"))?uZ.filter(t=>!e.includes(t)):[]}getAssignableAffiliations(){let e=ax.settings.get("modtools_disable_assign");return(Array.isArray(e)||(e=e?uq:[]),"owner"===this.get("affiliation"))?uq.filter(t=>!e.includes(t)):"admin"===this.get("affiliation")?uq.filter(t=>!["owner","admin",...e].includes(t)):[]}isMember(){return["admin","owner","member"].includes(this.get("affiliation"))}isModerator(){return["admin","owner"].includes(this.get("affiliation"))||"moderator"===this.get("role")}isSelf(){return this.get("states").includes("110")}async getOutgoingMessageAttributes(e){let t=dd.getUniqueId(),s=e?.body,r=s?dd.shortnamesToUnicode(s):void 0,i=this.collection.chatroom,o=i.getOwnOccupant();return e=Object.assign({},e,{body:r,from:o.get("from"),fullname:iw.state.profile.get("fullname"),id:t,jid:this.get("jid"),message:r,msgid:t,nick:o.get("nickname"),origin_id:t,sender:"me",time:new Date().toISOString(),to:this.get("from")??`${i.get("jid")}/${this.get("nick")}`,type:"chat"},await dd.getMediaURLsMetadata(s)),e=await ax.hook("getOutgoingMessageAttributes",this,e)}async createMessageStanza(e){let t=await super.createMessageStanza(e);return t.cnode(hU``).root(),t}isChatMessage(e){return e.get("type")===this.get("message_type")}}let hF=hB,{u:hq}=dh.env;class hH extends es.Collection{constructor(e,t){super(e,Object.assign({comparator:hb},t)),this.chatroom=null}get model(){return hF}initialize(){this.on("change:nick",()=>this.sort()),this.on("change:role",()=>this.sort())}static getAutoFetchedAffiliationLists(){let e=ax.settings.get("muc_fetch_members");return Array.isArray(e)?e:e?["member","admin","owner"]:[]}create(e,t){return e.id||e instanceof es.Model||(e.id=e.occupant_id||dc()),super.create(e,t)}async fetchMembers(){if(!["member","admin","owner"].includes(this.getOwnOccupant()?.get("affiliation")))return;let e=hH.getAutoFetchedAffiliationLists();if(0===e.length)return;let t=this.chatroom.get("jid"),s=await Promise.all(e.map(e=>hc(e,t))),r=s.reduce((e,t)=>t instanceof Error?e:[...t,...e],[]),i=e.filter(t=>!hq.isErrorObject(s[e.indexOf(t)])),o=r.map(e=>e.jid).filter(e=>void 0!==e),a=r.map(e=>!e.jid&&e.nick||void 0).filter(e=>void 0!==e),l=this.filter(e=>i.includes(e.get("affiliation"))&&!a.includes(e.get("nick"))&&!o.includes(e.get("jid"))),c=iw.session.get("bare_jid");l.forEach(e=>{e.get("jid")!==c&&("offline"===e.get("show")?e.destroy():e.save("affiliation",null))}),r.forEach(e=>{let t=this.findOccupant(e);t?t.save(e):this.create(e)}),ax.trigger("membersFetched")}findOccupant(e){if(e.occupant_id)return this.get(e.occupant_id);let t=e.jid&&rZ.getBareJidFromJid(e.jid);return t&&this.findWhere({jid:t})||e.nick&&this.findWhere({nick:e.nick})}getOwnOccupant(){return this.findOccupant({jid:iw.session.get("bare_jid"),occupant_id:this.chatroom.get("occupant_id")})}}let hG=hH,{Strophe:hW,u:hZ}=dh.env;class hV extends d8(um(dZ(dW(hp)))){defaults(){return{bookmarked:!1,hidden:sM()&&!ax.settings.get("singleton"),message_type:"chat",num_unread:0,time_opened:this.get("time_opened")||new Date().getTime(),time_sent:new Date(0).toISOString(),type:io}}constructor(e,t){super(e,t),this.disable_mam=!1}async initialize(){super.initialize(),this.initialized=er();let e=this.get("jid");this.setPresence(e),await this.setModelContact(e),this.on("change:chat_state",()=>d_(this.get("jid"),this.get("chat_state"))),this.on("change:hidden",()=>this.get("hidden")&&this.setChatState(ie)),await this.fetchMessages(),await ax.trigger("chatBoxInitialized",this,{synchronous:!0}),this.initialized.resolve()}async setPresence(e){await ax.waitUntil("presencesInitialized");let{presences:t}=iw.state;this.presence=t.get(e)||t.create({jid:e}),this.presence.on("change:show",e=>this.onPresenceChanged(e))}async onMessage(e){if(hZ.isErrorObject(e)){let{stanza:t,message:s}=e;return t&&Q.error(t),Q.error(s)}let t=this.getDuplicateMessage(e);if(t)this.updateMessage(t,e);else if(!this.handleReceipt(e)&&!this.handleChatMarker(e)&&!await this.handleRetraction(e)&&(this.setEditable(e,e.time),e.chat_state&&"them"===e.sender&&this.notifications.set("chat_state",e.chat_state),hZ.shouldCreateMessage(e))){let t=await this.handleCorrection(e)||await this.createMessage(e);this.notifications.set({chat_state:null}),this.handleUnreadMessage(t)}}onPresenceChanged(e){let t,{__:s}=iw,r=e.get("show"),i=this.getDisplayName();"offline"===r?t=s("%1$s has gone offline",i):"away"===r?t=s("%1$s has gone away",i):"dnd"===r?t=s("%1$s is busy",i):"online"===r&&(t=s("%1$s is online",i)),t&&this.createMessage({message:t,type:"info",is_ephemeral:!0})}async close(){ax.connection.connected()&&(this.setChatState(ie),d_(this.get("jid"),this.get("chat_state"))),await super.close()}getDisplayName(){if(this.contact){let e=this.contact.getDisplayName({no_jid:!0});if(e)return e}return this.vcard?this.vcard.getDisplayName():this.get("jid")}isSameUser(e,t){return hZ.isSameBareJID(e,t)}handleChatMarker(e){if(hW.getBareJidFromJid(e.to)!==iw.session.get("bare_jid"))return!1;if(e.is_markable)return!this.contact||["none","to",void 0].includes(this.contact.get("subscription"))||e.is_archived||e.is_carbon||dv(e.from,e.msgid,"received"),!1;if(e.marker_id){let t=this.messages.findWhere({msgid:e.marker_id}),s=`marker_${e.marker}`;return t&&!t.get(s)&&t.save({field_name:new Date().toISOString()}),!0}}async getOutgoingMessageAttributes(e){let t=!!this.get("composing_spoiler"),s=hZ.getUniqueId(),r=e?.body,i=r?hZ.shortnamesToUnicode(r):void 0;return e=Object.assign({},e,{body:i,from:iw.session.get("jid"),fullname:iw.state.profile.get("fullname"),id:s,is_spoiler:t,jid:this.get("jid"),message:i,msgid:s,nick:this.get("nickname"),origin_id:s,sender:"me",time:new Date().toISOString(),type:this.get("message_type")},await hZ.getMediaURLsMetadata(r)),e=await ax.hook("getOutgoingMessageAttributes",this,e)}canPostMessages(){return!0}isChatMessage(e){let t=e.get("type");return t===this.get("message_type")||"normal"===t}}let hQ=hV,hK=class extends d9{async initialize(){super.initialize(),this.initialized=er(),this.on("change:type",()=>this.setContact()),await this.setContact(),await ax.trigger("messageInitialized",this,{synchronous:!0}),this.initialized.resolve()}setContact(){if(["chat","normal"].includes(this.get("type")))return this.setModelContact(rZ.getBareJidFromJid(this.get("from")))}getDisplayName(){return this.contact?this.contact.getDisplayName():this.vcard?this.vcard.getDisplayName():this.get("from")}};class hJ extends es.Collection{constructor(){super(),this.comparator="time",this.model=hK,this.fetched=null,this.chatbox=null}}let hY=hJ,hX={chats:{async create(e,t){if("string"==typeof e){if(t&&!t?.fullname){let s=await ax.contacts.get(e);t.fullname=s?.attributes?.fullname}return ax.chats.get(e,t,!0)||void Q.error("Could not open chatbox for JID: "+e)}return Array.isArray(e)?Promise.all(e.map(async s=>{let r=await ax.contacts.get(e);return t.fullname=r?.attributes?.fullname,ax.chats.get(s,t,!0).maybeShow()})):(Q.error("chats.create: You need to provide at least one JID"),null)},async open(e,t,s){if("string"==typeof e){let r=await ax.chats.get(e,t,!0);return r?r.maybeShow(s):r}if(Array.isArray(e))return Promise.all(e.map(e=>ax.chats.get(e,t,!0).then(e=>e&&e.maybeShow(s))).filter(e=>e));let r="chats.open: You need to provide at least one JID";throw Q.error(r),Error(r)},async get(e,t={},s=!1){async function r(e){let r=await ax.chatboxes.get(e);return!r&&s?r=await ax.chatboxes.create(e,t,iw.exports.ChatBox):(r=r&&r.get("type")===io?r:null)&&Object.keys(t).length&&r.save(t),r}return(await ax.waitUntil("chatBoxesFetched"),void 0===e)?(await ax.chatboxes.get()).filter(e=>e.get("type")===io):"string"==typeof e?r(e):Promise.all(e.map(e=>r(e)))}}};dh.plugins.add("converse-chat",{dependencies:["converse-chatboxes","converse-disco"],initialize(){ax.settings.extend({allow_message_corrections:"all",allow_message_retraction:"all",allow_message_styling:!0,auto_join_private_chats:[],clear_messages_on_reconnection:!1,filter_by_resource:!1,prune_messages_above:void 0,pruning_behavior:"unscrolled",send_chat_markers:["received","displayed","acknowledged"],send_chat_state_notifications:!0});let e={ChatBox:hQ,Message:hK,Messages:hY,handleMessageStanza:ul};Object.assign(iw,e),Object.assign(iw.exports,e),Object.assign(ax,hX),am.registry.add(io,hQ),ui(),addEventListener("hashchange",ui),ax.listen.on("chatBoxesFetched",uo),ax.listen.on("presencesInitialized",ua),ax.listen.on("connected",()=>uc()),ax.listen.on("reconnected",()=>uc())}});let{Strophe:h1,u:h0}=dh.env;class h2 extends es.Model{get idAttribute(){return"jid"}initialize(e,t){super.initialize(),this.waitUntilFeaturesDiscovered=er(),this.waitUntilItemsFetched=er(),this.dataforms=new es.Collection;let s=`converse.dataforms-${this.get("jid")}`;this.dataforms.browserStorage=od(s,"session"),this.features=new es.Collection,s=`converse.features-${this.get("jid")}`,this.features.browserStorage=od(s,"session"),this.listenTo(this.features,"add",this.onFeatureAdded),this.fields=new es.Collection,s=`converse.fields-${this.get("jid")}`,this.fields.browserStorage=od(s,"session"),this.listenTo(this.fields,"add",this.onFieldAdded),this.items=new es.Collection,s=`converse.items-${this.get("jid")}`,this.items.browserStorage=od(s,"session"),this.identities=new es.Collection,s=`converse.identities-${this.get("jid")}`,this.identities.browserStorage=od(s,"session"),this.fetchFeatures(t)}async getIdentity(e,t){return await this.waitUntilItemsFetched,this.identities.findWhere({category:e,type:t})}async getFeature(e){if(await this.waitUntilFeaturesDiscovered,this.features.findWhere({var:e}))return this}onFeatureAdded(e){e.entity=this,ax.trigger("serviceDiscovered",e)}onFieldAdded(e){e.entity=this,ax.trigger("discoExtensionFieldDiscovered",e)}async fetchFeatures(e){if(e.ignore_cache)await this.queryInfo(e);else{let e=this.features.browserStorage.name,t=await this.features.browserStorage.store.getItem(e);if(t&&0===t.length||null===t)await this.queryInfo();else{await new Promise(e=>this.fetch({success:e,error:e})),await new Promise(e=>this.features.fetch({add:!0,success:()=>{this.waitUntilFeaturesDiscovered.resolve(this),this.trigger("featuresDiscovered"),e()},error:e})),await new Promise(e=>this.identities.fetch({add:!0,success:e,error:e}));let e=this.get("items");Array.isArray(e)?await Promise.all(e.map(async e=>await ax.disco.entities.get(e,!0))):await this.queryForItems(),this.waitUntilItemsFetched.resolve()}}}async queryInfo(e){let t;try{t=await ax.disco.info(this.get("jid"),null,e)}catch(e){if(h0.isElement(e)){let t=await db(e);"item-not-found"!==t.message&&Q.error(`Error querying disco#info for ${this.get("jid")}: ${t.message}`),this.save({error:t.message}),this.waitUntilFeaturesDiscovered.resolve(t),this.waitUntilItemsFetched.resolve(t)}else null===e?Q.error(`Timeout for disco#info query for ${this.get("jid")}`):Q.error(`Error querying disco#info for ${this.get("jid")}: ${e}`),this.waitUntilFeaturesDiscovered.resolve(e),this.waitUntilItemsFetched.resolve(e);return}this.onInfo(t)}onDiscoItems(e){let t=J()(`query[xmlns="${h1.NS.DISCO_ITEMS}"] item`,e),s=[];t.forEach(e=>{if(e.getAttribute("node"))return;let t=e.getAttribute("jid"),r=iw.state.disco_entities.get(t);if(r){let e=r.get("parent_jids")||[];r.set({parent_jids:[...e,this.get("jid")]})}else r=ax.disco.entities.create({jid:t,parent_jids:[this.get("jid")],name:e.getAttribute("name")});s.push(r.get("jid"))}),this.save({items:s})}async queryForItems(){if(0===this.identities.where({category:"server"}).length)return;let e=await ax.disco.items(this.get("jid"));this.onDiscoItems(e)}async onInfo(e){Array.from(e.querySelectorAll("identity")).forEach(e=>{this.identities.create({category:e.getAttribute("category"),type:e.getAttribute("type"),name:e.getAttribute("name")})}),J()(`x[type="result"][xmlns="${h1.NS.XFORM}"]`,e).forEach(e=>{let t={};J()("field",e).forEach(e=>{t[e.getAttribute("var")]={value:e.querySelector("value")?.textContent,type:e.getAttribute("type")}}),this.dataforms.create(t)}),e.querySelector(`feature[var="${h1.NS.DISCO_ITEMS}"]`)&&await this.queryForItems(),this.waitUntilItemsFetched.resolve(),Array.from(e.querySelectorAll("feature")).forEach(t=>{this.features.create({var:t.getAttribute("var"),from:e.getAttribute("from")})}),J()('x[type="result"][xmlns="jabber:x:data"] field',e).forEach(t=>{this.fields.create({var:t.getAttribute("var"),value:t.querySelector("value")?.textContent,from:e.getAttribute("from")})}),this.waitUntilFeaturesDiscovered.resolve(this),this.trigger("featuresDiscovered")}}class h4 extends es.Collection{constructor(){super(),this.model=h2}fetchEntities(){return new Promise((e,t)=>{this.fetch({add:!0,success:e,error(e,s){Q.error(s),t(Error("Could not fetch disco entities"))}})})}}let{Strophe:h3,$iq:h6}=dh.env,h8={disco:{stream:{async getFeature(e,t){await ax.waitUntil("streamFeaturesAdded");let s=iw.state.stream_features;if(!e||!t)throw Error("name and xmlns need to be provided when calling disco.stream.getFeature");if(void 0===s&&!ax.connection.connected()){let s=`Tried to get feature ${e} ${t} but stream_features has been torn down`;Q.warn(s);return}return s.findWhere({name:e,xmlns:t})}},own:{identities:{add(e,t,s,r){let i=iw.state.disco;for(var o=0;oiw.state.disco._identities},features:{add(e){let t=iw.state.disco;for(let s=0;siw.state.disco._features}},info(e,t,s){let r={xmlns:h3.NS.DISCO_INFO};t&&(r.node=t);let i=h6({from:ax.connection.get().jid,to:e,type:"get"}).c("query",r);return ax.sendIQ(i,s?.timeout)},items(e,t){let s={xmlns:h3.NS.DISCO_ITEMS};return t&&(s.node=t),ax.sendIQ(h6({from:ax.connection.get().jid,to:e,type:"get"}).c("query",s))},entities:{async find(e,t){if(await ax.waitUntil("discoInitialized"),!iw.state.disco_entities)return[];let s=[];if(t){let e=await ax.disco.entities.get(t,!0);if(e){let r=await ax.disco.entities.items(t);s.push(e,...r)}}else{let e=iw.session.get("bare_jid"),t=await ax.disco.entities.get(e,!0);t&&s.push(t);let r=h3.getDomainFromJid(e),i=await ax.disco.entities.get(r,!0);if(i){let e=await ax.disco.entities.items(r);s.push(i,...e)}}let r=Array.from(new Map(s.map(e=>[e.get("jid"),e])).values()).map(async t=>await t.getFeature(e)?t:null);return(await Promise.all(r)).filter(e=>e)},async get(e,t=!1){await ax.waitUntil("discoInitialized");let s=iw.state.disco_entities;if(!e)return s;if(void 0===s)return void Q.warn(`Tried to look up entity ${e} but disco_entities has been torn down`);let r=s.get(e);return r||!t?r:ax.disco.entities.create({jid:e})},async items(e){let t=await ax.disco.entities.get(e);return t?(await t.waitUntilItemsFetched,Promise.all((t.get("items")||[]).map(e=>ax.disco.entities.get(e)))):[]},create:(e,t)=>iw.state.disco_entities.create(e,t)},features:{async get(e,t){if(!t)throw TypeError("api.disco.features.get: You need to provide an entity JID");let s=await ax.disco.entities.get(t,!0);if(void 0===iw.state.disco_entities&&!ax.connection.connected())return Q.warn(`Tried to get feature ${e} for ${t} but _converse.disco_entities has been torn down`),[];let r=await ax.disco.entities.items(t),i=[s.getFeature(e),...r.map(t=>t.getFeature(e))];return(await Promise.all(i)).filter(e=>e instanceof Object)},async has(e,t){if(!t)throw TypeError("api.disco.feature.has: You need to provide an entity JID");let s=await ax.disco.entities.get(t,!0);if(!s)return Q.warn(`api.disco.has: could not get entity for ${t}`),!1;if(void 0===iw.state.disco_entities&&!ax.connection.connected())return Q.warn(`Tried to check if ${t} supports feature ${e}`),!1;if(await s.getFeature(e))return!0;let r=await ax.disco.entities.items(t);return(await Promise.all(r.map(t=>t.getFeature(e)))).map(e=>e instanceof Object).includes(!0)}},supports(e,t){try{return ax.disco.features.has(e,t)}catch(e){return Q.error(e),!1}},async refresh(e,t){if(!e)throw TypeError("api.disco.refresh: You need to provide an entity JID");await ax.waitUntil("discoInitialized");let s=await ax.disco.entities.get(e);return s?(s.features.reset(),s.fields.reset(),s.identities.reset(),s.waitUntilFeaturesDiscovered.isPending||(s.waitUntilFeaturesDiscovered=er()),s.waitUntilItemsFetched.isPending||(s.waitUntilItemsFetched=er()),s.queryInfo(t)):s=await ax.disco.entities.create({jid:e},{ignore_cache:!0,timeout:t.timeout}),s.waitUntilItemsFetched},async getFeatures(e){if(!e)throw TypeError("api.disco.getFeatures: You need to provide an entity JID");await ax.waitUntil("discoInitialized");let t=await ax.disco.entities.get(e,!0);return(t=await t.waitUntilFeaturesDiscovered).features},async getFields(e){if(!e)throw TypeError("api.disco.getFields: You need to provide an entity JID");await ax.waitUntil("discoInitialized");let t=await ax.disco.entities.get(e,!0);return(t=await t.waitUntilFeaturesDiscovered).fields},async getIdentity(e,t,s){let r=await ax.disco.entities.get(s,!0);if(void 0===r&&!ax.connection.connected()){let t=`Tried to look up category ${e} for ${s} but _converse.disco_entities has been torn down`;Q.warn(t);return}return r.getIdentity(e,t)}}},{Strophe:h5,$iq:h9}=dh.env;async function h7(){ax.disco.own.identities.add("client","web","Converse"),ax.disco.own.features.add(h5.NS.CHATSTATES),ax.disco.own.features.add(h5.NS.DISCO_INFO),ax.disco.own.features.add(h5.NS.ROSTERX),ax.disco.own.features.add(h5.NS.CARBONS),ax.trigger("addClientFeatures"),ax.connection.get().addHandler(e=>{let t,s,r,i;return t=e.getElementsByTagName("query")[0].getAttribute("node"),s={xmlns:h5.NS.DISCO_INFO},t&&(s.node=t),r=h9({type:"result",id:e.getAttribute("id")}),null!==(i=e.getAttribute("from"))&&r.attrs({to:i}),r.c("query",s),iw.state.disco._identities.forEach(e=>{let t={category:e.category,type:e.type};e.name&&(t.name=e.name),e.lang&&(t["xml:lang"]=e.lang),r.c("identity",t).up()}),iw.state.disco._features.forEach(e=>r.c("feature",{var:e}).up()),ax.send(r.tree()),!0},h5.NS.DISCO_INFO,"iq","get",null,null);let e=new iw.exports.DiscoEntities;Object.assign(iw,{disco_entities:e}),Object.assign(iw.state,{disco_entities:e});let t=iw.session.get("bare_jid");e.browserStorage=od(`converse.disco-entities-${t}`,"session");let s=await e.fetchEntities(),r=iw.session.get("domain");0!==s.length&&s.get(r)||ax.disco.entities.create({jid:r},{ignore_cache:!0}),ax.trigger("discoInitialized")}function me(){if(!iw.state.stream_features){let e=iw.session.get("bare_jid"),t=`converse.stream-features-${e}`;ax.promises.add("streamFeaturesAdded");let s=new es.Collection;s.browserStorage=od(t,"session"),Object.assign(iw,{stream_features:s}),Object.assign(iw.state,{stream_features:s})}}function mt(){ax.trigger("streamFeaturesAdded")}function ms(){me(),Array.from(ax.connection.get().features.childNodes).forEach(e=>{iw.state.stream_features.create({name:e.nodeName,xmlns:e.getAttribute("xmlns")})}),mt()}function mr(){let{disco_entities:e}=iw.state;e?.forEach(e=>e.features.clearStore()),e?.forEach(e=>e.identities.clearStore()),e?.forEach(e=>e.dataforms.clearStore()),e?.forEach(e=>e.fields.clearStore()),e?.clearStore(),delete iw.state.disco_entities,Object.assign(iw,{disco_entities:void 0})}let{Strophe:mi}=dh.env;dh.plugins.add("converse-disco",{initialize(){Object.assign(ax,h8),ax.promises.add("discoInitialized"),ax.promises.add("streamFeaturesAdded");let e={DiscoEntity:h2,DiscoEntities:h4};Object.assign(iw,e),Object.assign(iw.exports,e);let t={_identities:[],_features:[]};Object.assign(iw,{disco:t}),Object.assign(iw.state,{disco:t}),ax.listen.on("userSessionInitialized",async()=>{me(),iw.state.connfeedback.get("connection_status")===mi.Status.ATTACHED&&(await new Promise((e,t)=>iw.state.stream_features.fetch({success:e,error:t})),mt())}),ax.listen.on("beforeResourceBinding",ms),ax.listen.on("reconnected",h7),ax.listen.on("connected",h7),ax.listen.on("beforeTearDown",async()=>{ax.promises.add("streamFeaturesAdded"),ax.promises.add("discoInitialized");let{stream_features:e}=iw.state;e&&(await e.clearStore(),delete iw.state.stream_features,Object.assign(iw,{stream_features:void 0}))}),ax.listen.on("will-reconnect",mr),ax.listen.on("clearSession",mr)}});let mn={affiliations:{set:(e,t)=>(t=Array.isArray(t)?t:[t],hd(e=Array.isArray(e)?e:[e],t)),get:(e,t)=>hc(e,t)}};dh.AFFILIATION_CHANGES=uJ,dh.AFFILIATION_CHANGES_LIST=uY,dh.MUC_TRAFFIC_STATES=uX,dh.MUC_TRAFFIC_STATES_LIST=u1,dh.MUC_ROLE_CHANGES=u0,dh.MUC_ROLE_CHANGES_LIST=u2,dh.MUC={INFO_CODES:u4},dh.MUC_NICK_CHANGED_CODE=u8,dh.ROOM_FEATURES=u6,dh.ROOMSTATUS=u3;let{Strophe:mo}=dh.env;mo.addNamespace("MUC_ADMIN",mo.NS.MUC+"#admin"),mo.addNamespace("MUC_OWNER",mo.NS.MUC+"#owner"),mo.addNamespace("MUC_REGISTER","jabber:iq:register"),mo.addNamespace("MUC_ROOMCONF",mo.NS.MUC+"#roomconfig"),mo.addNamespace("MUC_USER",mo.NS.MUC+"#user"),mo.addNamespace("MUC_HATS","urn:xmpp:hats:0"),mo.addNamespace("CONFINFO","urn:ietf:params:xml:ns:conference-info"),dh.plugins.add("converse-muc",{dependencies:["converse-chatboxes","converse-chat","converse-disco"],initialize(){let{__:e,___:t}=iw;if(ax.settings.extend({allow_muc_invitations:!0,auto_join_on_invite:!1,auto_join_rooms:[],auto_register_muc_nickname:!0,colorize_username:!1,hide_muc_participants:!1,locked_muc_domain:!1,modtools_disable_assign:!1,muc_clear_messages_on_leave:!0,muc_domain:void 0,muc_fetch_members:!0,muc_history_max_stanzas:void 0,muc_instant_rooms:!0,muc_nickname_from_jid:!1,muc_send_probes:!1,muc_show_info_messages:[...dh.MUC.INFO_CODES.visibility_changes,...dh.MUC.INFO_CODES.self,...dh.MUC.INFO_CODES.non_privacy_changes,...dh.MUC.INFO_CODES.muc_logging_changes,...dh.MUC.INFO_CODES.nickname_changes,...dh.MUC.INFO_CODES.disconnected,...dh.MUC.INFO_CODES.affiliation_changes,...dh.MUC.INFO_CODES.join_leave_events,...dh.MUC.INFO_CODES.role_changes],muc_show_logs_before_join:!1,muc_subscribe_to_rai:!1}),ax.promises.add(["roomsAutoJoined"]),ax.settings.get("locked_muc_domain")&&"string"!=typeof ax.settings.get("muc_domain"))throw Error("Config Error: it makes no sense to set locked_muc_domain to true when muc_domain is not set");dh.env.muc_utils={computeAffiliationsDelta:hh},Object.assign(ax,ag),Object.assign(ax.rooms,mn);let s={muc:{STATUS_CODE_MESSAGES:{100:e("This groupchat is not anonymous"),102:e("This groupchat now shows unavailable members"),103:e("This groupchat does not show unavailable members"),104:e("The groupchat configuration has changed"),170:e("Groupchat logging is now enabled"),171:e("Groupchat logging is now disabled"),172:e("This groupchat is now no longer anonymous"),173:e("This groupchat is now semi-anonymous"),174:e("This groupchat is now fully-anonymous"),201:e("A new groupchat has been created"),210:t("Your nickname has been automatically set to %1$s"),301:e("You have been banned from this groupchat"),303:t("Your nickname has been changed to %1$s"),307:e("You have been kicked from this groupchat"),321:e("You have been removed from this groupchat because of an affiliation change"),322:e("You have been removed from this groupchat because it has changed to members-only and you're not a member"),332:e("You have been removed from this groupchat because the service hosting it is being shut down"),333:e("You have exited this groupchat due to a technical problem")}}};Object.assign(iw.labels,s),Object.assign(iw,s),hx(),addEventListener("hashchange",hx),Object.assign(iw,{ChatRoom:hz,ChatRoomMessage:uI,ChatRoomMessages:uD,ChatRoomOccupant:hF,ChatRoomOccupants:hG});let r={MUC:hz,MUCMessage:uI,MUCMessages:uD,MUCOccupant:hF,MUCOccupants:hG,getDefaultMUCNickname:h$,isInfoVisible:hk,onDirectMUCInvitation:hE};Object.assign(iw.exports,r),Object.assign(iw,r),ax.chatboxes.registry.add(ia,hz),ax.settings.get("allow_muc_invitations")&&(ax.listen.on("connected",hw),ax.listen.on("reconnected",hw)),ax.listen.on("addClientFeatures",()=>ax.disco.own.features.add(`${mo.NS.CONFINFO}+notify`)),ax.listen.on("addClientFeatures",hT),ax.listen.on("beforeResourceBinding",hN),ax.listen.on("beforeTearDown",hM),ax.listen.on("chatBoxesFetched",hC),ax.listen.on("disconnected",hj),ax.listen.on("statusInitialized",hO),document.addEventListener("visibilitychange",hS)}}),Object.assign(dd,{muc:{isChatRoom:function(e){return e?.get("type")==="chatroom"},setAffiliation:hu,getDefaultMUCService:h_}});let{Strophe:ma,stx:ml}=dh.env;class mc extends es.Collection{get idAttribute(){return"jid"}constructor(){super([],{comparator:e=>e.getDisplayName().toLowerCase()}),this.model=uT}async initialize(){this.on("add",e=>this.openBookmarkedRoom(e).then(e=>this.markRoomAsBookmarked(e)).catch(e=>Q.fatal(e))),this.on("remove",this.leaveRoom,this),this.on("change:autojoin",this.onAutoJoinChanged,this),this.on("remove",(e,t)=>this.sendBookmarkStanza(t),this);let{session:e}=iw,t=`converse.room-bookmarks${e.get("bare_jid")}`;this.fetched_flag=t+"fetched",ou(this,t),await this.fetchBookmarks(),ax.trigger("bookmarksInitialized",this)}static async checkBookmarksSupport(){let e=iw.session.get("bare_jid");if(!e)return!1;let t=await ax.disco.getIdentity("pubsub","pep",e);return ax.settings.get("allow_public_bookmarks")?!!t:ax.disco.supports(ma.NS.PUBSUB+"#publish-options",e)}async openBookmarkedRoom(e){return ax.settings.get("muc_respect_autojoin")&&e.get("autojoin")&&(await ax.rooms.create(e.get("jid"),{nick:e.get("nick"),password:e.get("password")})).maybeShow(),e}fetchBookmarks(){let e=er();return window.sessionStorage.getItem(this.fetched_flag)?this.fetch({success:()=>e.resolve(),error:()=>e.resolve()}):this.fetchBookmarksFromServer(e),e}setBookmark(e,t=!0,s={}){if(!e.jid)return Q.warn("No JID provided for setBookmark");let r=!1,i=this.get(e.jid);i?Object.keys(e).reduce((t,s)=>t||(e[s]??"")!==(i.attributes[s]??""),!1)&&(i.save(e,s),r=!0):t&&(i=this.create(e,s),r=!0),r&&this.sendBookmarkStanza(i).catch(e=>this.onBookmarkError(e))}getPublishedItems(e,t){if(e!==ma.NS.BOOKMARKS2)return ml` ${this.map(e=>ml` ${e.get("nick")?ml`${e.get("nick")}`:""} ${e.get("password")?ml`${e.get("password")}`:""} `)} `;{let e=t.get("extensions")??[];return ml` ${t.get("nick")?ml`${t.get("nick")}`:""} ${t.get("password")?ml`${t.get("password")}`:""} ${e.length?ml`${e.map(e=>rG.fromString(e))}`:""} `}}async sendBookmarkStanza(e){let t=iw.session.get("bare_jid"),s=await ax.disco.supports(`${ma.NS.BOOKMARKS2}#compat`,t)?ma.NS.BOOKMARKS2:ma.NS.BOOKMARKS,r=await ax.disco.supports(`${ma.NS.PUBSUB}#config-node-max`,t);return ax.pubsub.publish(null,s,this.getPublishedItems(s,e),{persist_items:!0,max_items:r?"max":9999,send_last_published_item:"never",access_model:"whitelist"})}onBookmarkError(e){Q.error("Error while trying to add bookmark"),Q.error(e)}async fetchBookmarksFromServer(e){let t=iw.session.get("bare_jid"),s=await ax.disco.supports(`${ma.NS.BOOKMARKS2}#compat`,t)?ma.NS.BOOKMARKS2:ma.NS.BOOKMARKS,r=ml` `;ax.sendIQ(r).then(t=>this.onBookmarksReceived(e,t)).catch(t=>this.onBookmarksReceivedError(e,t))}markRoomAsBookmarked(e){let{chatboxes:t}=iw.state,s=t.get(e.get("jid"));s?.save("bookmarked",!0)}onAutoJoinChanged(e){e.get("autojoin")?this.openBookmarkedRoom(e):this.leaveRoom(e)}async leaveRoom(e){let t=await ax.rooms.get(e.get("jid"));t?.close()}async setBookmarksFromStanza(e){(await uN(e)).forEach(e=>{let t=this.get(e.jid);t?t.save(e):this.create(e)})}async onBookmarksReceived(e,t){if(await this.setBookmarksFromStanza(t),window.sessionStorage.setItem(this.fetched_flag,"true"),void 0!==e)return e.resolve()}async onBookmarksReceivedError(e,t){if(null===t){let{__:t}=iw;Q.error("Error: timeout while fetching bookmarks"),ax.alert("error",t("Timeout Error"),[t("The server did not return your bookmarks within the allowed time. You can reload the page to request them again.")]),e?.reject(Error("Could not fetch bookmarks"))}else{let{errors:s}=dh.env;await db(t) instanceof s.ItemNotFoundError?(window.sessionStorage.setItem(this.fetched_flag,"true"),e?.resolve()):(Q.error("Error while fetching bookmarks"),t&&Q.error(t),e?.reject(Error("Could not fetch bookmarks")))}}async getUnopenedBookmarks(){await ax.waitUntil("bookmarksInitialized"),await ax.waitUntil("chatBoxesFetched");let{chatboxes:e}=iw.state;return this.filter(t=>!e.get(t.get("jid")))}}let md=mc;async function mu(){ax.settings.get("allow_bookmarks")&&await md.checkBookmarksSupport()&&(iw.state.bookmarks=new iw.exports.Bookmarks,Object.assign(iw,{bookmarks:iw.state.bookmarks}))}function mh(e){return ax.waitUntil("bookmarksInitialized").then(()=>iw.state.bookmarks.setBookmarksFromStanza(e)).catch(e=>Q.fatal(e)),!0}let{waitUntil:mm}=oq,mp={bookmarks:{set:async(e,t=!0,s={})=>(await mm("bookmarksInitialized")).setBookmark(e,t,s),get:async e=>(await mm("bookmarksInitialized")).get(e)}},{Strophe:mf}=dh.env;mf.addNamespace("BOOKMARKS","storage:bookmarks"),mf.addNamespace("BOOKMARKS2","urn:xmpp:bookmarks:1"),dh.plugins.add("converse-bookmarks",{dependencies:["converse-chatboxes","converse-muc"],initialize(){ax.settings.extend({allow_bookmarks:!0,allow_public_bookmarks:!1,muc_respect_autojoin:!0}),ax.promises.add("bookmarksInitialized"),Object.assign(ax,mp);let e={Bookmark:uT,Bookmarks:md};Object.assign(iw,e),Object.assign(iw.exports,e),ax.listen.on("getNicknameForMUC",(e,t)=>{var s;return t||(s=e.get("jid"),ax.settings.get("allow_bookmarks")?iw.state.bookmarks?.get(s)?.get("nick"):null)}),ax.listen.on("parseMUCPresence",(e,t)=>(t.is_self&&t.codes.includes("303")&&ax.bookmarks.get(t.muc_jid).then(e=>{e||Q.warn("parseMUCPresence: no bookmark returned");let{nick:s,muc_jid:r}=t;ax.bookmarks.set({jid:r,nick:s,autojoin:e?.get("autojoin")??!0,password:e?.get("password")??"",name:e?.get("name")??"",extensions:e?.get("extensions")??[]})}),t)),ax.listen.on("enteredNewRoom",async({attributes:e})=>{let{jid:t,nick:s,password:r,name:i}=e;await ax.bookmarks.set({jid:t,autojoin:!0,nick:s,...r?{password:r}:{},...i?{name:i}:{}})}),ax.listen.on("leaveRoom",async({attributes:e})=>{let{jid:t}=e;await ax.bookmarks.set({jid:t,autojoin:!1},!1,{silent:!0})}),ax.listen.on("addClientFeatures",()=>{ax.settings.get("allow_bookmarks")&&ax.disco.own.features.add(mf.NS.BOOKMARKS+"+notify")}),ax.listen.on("clearSession",()=>{let{state:e}=iw;e.bookmarks&&(e.bookmarks.clearStore({silent:!0}),window.sessionStorage.removeItem(e.bookmarks.fetched_flag),delete e.bookmarks)}),ax.listen.on("connected",async()=>{let e=iw.session.get("bare_jid"),t=ax.connection.get();t.addHandler(mh,mf.NS.BOOKMARKS,"message","headline",null,e),t.addHandler(mh,mf.NS.BOOKMARKS2,"message","headline",null,e),await Promise.all([ax.waitUntil("chatBoxesFetched")]),mu()})}});let{Strophe:mg}=dh.env;class mv extends es.Model{get idAttribute(){return"jid"}getDisplayName(){return mg.xmlunescape(this.get("name"))}}let{stx:m_,u:my}=dh.env;class mb extends es.Collection{get idAttribute(){return"jid"}constructor(){super(),this.model=mv}async initialize(){let{session:e}=iw,t=`converse.blocklist-${e.get("bare_jid")}`;this.fetched_flag=`${t}-fetched`,ou(this,t),this.on("add",this.rejectContactRequest),await this.fetchBlocklist(),ax.trigger("blocklistInitialized",this)}async rejectContactRequest(e){let t=(await ax.waitUntil("rosterContactsFetched")).get(e.get("jid"));if(t?.get("requesting")){let e=await ax.chats.get(t.get("jid"));e?.close(),t.unauthorize().destroy()}}fetchBlocklist(){let e=er();return window.sessionStorage.getItem(this.fetched_flag)?this.fetch({success:()=>e.resolve(),error:()=>e.resolve()}):this.fetchBlocklistFromServer(e),e}async fetchBlocklistFromServer(e){let t=m_``;try{this.onBlocklistReceived(e,await ax.sendIQ(t))}catch(t){Q.error(t),e.resolve();return}}async onBlocklistReceived(e,t){if(Array.from(t.querySelectorAll("blocklist item")).forEach(e=>{let t=e.getAttribute("jid"),s=this.get(t);s?s.save({jid:t}):this.create({jid:t})}),window.sessionStorage.setItem(this.fetched_flag,"true"),void 0!==e)return e.resolve()}}let{Strophe:mw,stx:mj,u:mS}=dh.env;async function mx(e){let t=Array.isArray(e)?e:[e],s=mj` ${t.map(e=>mj``)} `;await al.sendIQ(s)}async function mA(e){let t=Array.isArray(e)?e:[e],s=mj` ${t.map(e=>mj``)} `;await al.sendIQ(s)}let{waitUntil:mE}=oq,m$={blocklist:{get:async()=>await mE("blocklistInitialized"),async add(e,t=!0){let s=await mE("blocklistInitialized"),r=Array.isArray(e)?e:[e];return t&&await mA(r),r.forEach(e=>s.create({jid:e})),s},async remove(e,t=!0){let s=await mE("blocklistInitialized"),r=Array.isArray(e)?e:[e];return t&&await mx(r),r.forEach(e=>s.get(e)?.destroy()),s.remove(r),s}}};class mk extends es.Model{initialize(){super.initialize(),this.set({text:"",type:"items",state:"online"})}}let{$pres:mC}=dh.env;async function mT(e=!1){let t=ax.connection.get();e&&(t.send_initial_presence=!0);let s=iw.state.roster;try{await s.fetchRosterContacts(),ax.trigger("rosterContactsFetched",s)}catch(e){Q.error(e)}finally{t.send_initial_presence&&(ax.user.presence.send(),iw.state.profile.save({presence:"online"}))}}function mM(e){let t=iw.state.roster,s=t?.get(e.get("jid"));s?.save({num_unread:e.get("num_unread")})}function mO(){c&&(ax.connection.get().deleteHandler(c),c=null)}async function mN(){await iw.state.presences?.clearStore()}async function mI(){if(await mN(),sR(iw)){let e=iw.state.roster;e&&(e.data?.destroy(),await e.clearStore(),delete iw.state.roster,Object.assign(iw,{roster:void 0}))}}function mR(e){if(e)ax.trigger("rosterReadyAfterReconnection");else{let e=new iw.exports.RosterContacts;Object.assign(iw,{roster:e}),Object.assign(iw.state,{roster:e});let t=iw.session.get("bare_jid"),s=`converse.contacts-${t}`;ou(e,s);let r=new mk;Object.assign(iw,{roster_filter:r}),Object.assign(iw.state,{roster_filter:r}),r.id=`_converse.rosterfilter-${t}`,ou(r,r.id),r.fetch(),s=`converse-roster-model-${t}`,e.data=new es.Model,e.data.id=s,ou(e.data,s),e.data.fetch(),ax.trigger("rosterInitialized",e)}iw.state.roster.onConnected(),mO(),c=ax.connection.get().addHandler(e=>(iw.state.roster.presenceHandler(e),!0),null,"presence",null),mT(!ax.connection.get().restored)}async function mD(e){if(e)ax.connection.get().hasResumed()||await mN();else{let e=new iw.exports.Presences;Object.assign(iw,{presences:e}),Object.assign(iw.state,{presences:e});let t=iw.session.get("bare_jid");ou(e,`converse.presences-${t}`,"session"),await new Promise(t=>e.fetch({success:t,error:t}))}ax.trigger("presencesInitialized",e)}function mL(){let{chatboxes:e}=iw.state;e.on("change:num_unread",mM),e.on("add",e=>{e.get("type")===io&&e.setModelContact(e.get("jid"))})}function mz(){iw.state.roster.on("add",e=>{let t=iw.state.chatboxes.findWhere({jid:e.get("jid")});t?.setModelContact(e.get("jid"))})}function mP(e,t){let s=mC({to:e,type:"unsubscribed"});t&&""!==t&&s.c("status").t(t),ax.send(s)}function mU(e){return iw.session.get("bare_jid")!==e.get("jid")&&!e.get("subscription")}let{Strophe:mB,sizzle:mF}=dh.env;mB.addNamespace("BLOCKING","urn:xmpp:blocking"),dh.plugins.add("converse-blocklist",{dependencies:["converse-disco"],initialize(){Object.assign(iw.exports,{Blocklist:mb,BlockedEntity:mv}),Object.assign(ax,m$),ax.promises.add(["blocklistInitialized"]),ax.listen.on("cachedRoster",async e=>{let t=iw.session.get("domain");if(await ax.disco.supports(mB.NS.BLOCKING,t)){let t=await ax.blocklist.get();e.filter(e=>e.get("requesting")).forEach(async e=>{t.get(e.get("jid"))&&(mP(e.get("jid")),e.destroy())})}}),ax.listen.on("getErrorAttributesForMessage",(e,t)=>{if(e.errors.find(e=>"blocked"===e.name&&e.xmlns===`${mB.NS.BLOCKING}:errors`)){let{__:e}=iw;t.error=e("You are blocked from sending messages.")}return t}),ax.listen.on("connected",()=>{ax.connection.get().addHandler(e=>{let t=iw.session.get("bare_jid"),s=e.getAttribute("from");if(mB.getBareJidFromJid(s??t)!=t)return Q.warn(`Received a blocklist push stanza from a suspicious JID ${s}`),!0;let r=mF(`block[xmlns="${mB.NS.BLOCKING}"] item`,e).map(e=>e.getAttribute("jid"));r.length&&ax.blocklist.add(r,!1);let i=mF(`unblock[xmlns="${mB.NS.BLOCKING}"] item`,e).map(e=>e.getAttribute("jid"));return i.length&&ax.blocklist.remove(i,!1),!0},mB.NS.BLOCKING,"iq","set")}),ax.listen.on("clearSession",()=>{let{state:e}=iw;e.blocklist&&(e.blocklist.clearStore({silent:!0}),window.sessionStorage.removeItem(e.blocklist.fetched_flag),delete e.blocklist)}),ax.listen.on("discoInitialized",async()=>{let e=iw.session.get("domain");await ax.disco.supports(mB.NS.BLOCKING,e)&&(iw.state.blocklist=new iw.exports.Blocklist)})}});let mq={tokens:{get(e){let t=ax.connection.get();return t?"rid"===e.toLowerCase()?t.rid||t._proto.rid:"sid"===e.toLowerCase()?t.sid||t._proto.sid:void 0:null}}},mH="converse.bosh-session";async function mG(){d||((d=new es.Model({id:mH})).browserStorage=od(mH,"session"),await new Promise(e=>d.fetch({success:e,error:e})));let e=iw.session.get("jid");if(e)d.get("jid")!==e&&(e=await ox(e),d.clear({silent:!0}),d.save({jid:e}));else{let e=d.get("jid");e&&await ox(e)}return d}async function mW(e,t){if(t.success)return t;let{automatic:s}=t;if(await mQ())return{...t,success:!0};if(ax.settings.get("authentication")===r5&&(!s||ax.settings.get("auto_login"))){if(!ax.settings.get("prebind_url"))throw Error("startNewPreboundBOSHSession: If you use prebind then you MUST supply a prebind_url");let e=ax.connection.get(),s=new XMLHttpRequest;return s.open("GET",ax.settings.get("prebind_url"),!0),s.setRequestHeader("Accept","application/json, text/javascript"),s.onload=async function(t){if(s.status>=200&&s.status<400){let t=JSON.parse(s.responseText),r=await ox(t.jid);e.attach(r,t.sid,t.rid,e.onConnectStatusChanged,rQ)}else s.onerror(t)},s.onerror=function(){ax.connection.destroy(),ax.trigger("noResumeableBOSHSession",iw)},s.send(),{...t,success:!0}}return t}function mZ(){void 0!==d&&d.save({jid:iw.session.get("jid")})}function mV(){void 0===d?(sessionStorage.removeItem(mH),sessionStorage.removeItem(`${mH}-${mH}`)):(d.destroy(),d=void 0)}async function mQ(){let e=(await mG()).get("jid"),t=ax.connection.get();if(e&&t._proto instanceof rZ.Bosh)try{return t.restore(e,t.onConnectStatusChanged),!0}catch(t){sO()||Q.warn("Could not restore session for jid: "+e+" Error message: "+t.message)}return!1}dh.plugins.add("converse-bosh",{enabled:()=>!iw.api.settings.get("blacklisted_plugins").includes("converse-bosh"),initialize(){ax.settings.extend({bosh_service_url:void 0,prebind_url:null}),Object.assign(ax,mq),ax.listen.on("clearSession",mV),ax.listen.on("setUserJID",mZ),ax.listen.on("login",mW),ax.listen.on("addClientFeatures",()=>ax.disco.own.features.add(rZ.NS.BOSH))}});let{Strophe:mK,stx:mJ}=dh.env;function mY(e,t){return e.sort((e,s)=>e[t]>s[t]?-1:1)}async function mX(){let e=iw.api.disco.own.identities.get(),t=iw.api.disco.own.features.get();e.length>1&&(mY(e,"category"),mY(e,"type"),mY(e,"lang"));let s=e.reduce((e,t)=>`${e}${t.category}/${t.type}/${t?.lang??""}/${t.name}<`,"");return t.sort(),s=t.reduce((e,t)=>`${e}${t}<`,s),cI(await crypto.subtle.digest("SHA-1",cN(s)))}async function m1(e){let t=mJ``;return e.root().cnode(t).up(),e}let{Strophe:m0}=dh.env;m0.addNamespace("CAPS","http://jabber.org/protocol/caps"),dh.plugins.add("converse-caps",{dependencies:["converse-status"],initialize(){ax.listen.on("constructedPresence",(e,t)=>m1(t)),ax.listen.on("constructedMUCPresence",(e,t)=>m1(t))}});class m2 extends es.Collection{constructor(e,t){super(e,Object.assign({comparator:"time_opened"},t))}onChatBoxesFetched(e){e.filter(e=>!e.isValid()).forEach(e=>e.destroy()),ax.trigger("chatBoxesFetched")}onConnected(e){if(e)return;let t=iw.session.get("bare_jid");ou(this,`converse.chatboxes-${t}`),this.fetch({add:!0,success:e=>this.onChatBoxesFetched(e)})}createModel(e,t){if(!e.type)throw Error("You need to specify a type of chatbox to be created");return new(ax.chatboxes.registry.get(e.type))(e,t)}}let{Strophe:m4}=dh.env;dh.plugins.add("converse-chatboxes",{dependencies:["converse-emoji","converse-roster","converse-vcard"],initialize(){let e;ax.promises.add(["chatBoxesFetched","chatBoxesInitialized","privateChatsAutoJoined"]),Object.assign(ax,{chatboxes:am}),Object.assign(iw,{ChatBoxes:m2}),Object.assign(iw.exports,{ChatBoxes:m2}),ax.listen.on("addClientFeatures",()=>{ax.disco.own.features.add(m4.NS.MESSAGE_CORRECT),ax.disco.own.features.add(m4.NS.HTTPUPLOAD),ax.disco.own.features.add(m4.NS.OUTOFBAND)}),ax.listen.on("pluginsInitialized",()=>{e=new iw.exports.ChatBoxes,Object.assign(iw,{chatboxes:e}),Object.assign(iw.state,{chatboxes:e}),ax.trigger("chatBoxesInitialized")}),ax.listen.on("presencesInitialized",t=>e.onConnected(t)),ax.listen.on("reconnected",()=>e.forEach(e=>e.onReconnection())),ax.listen.on("clearSession",ac),ax.listen.on("chatBoxClosed",()=>{sM()&&iw.state.chatboxes.find(e=>e.get("jid"))?.maybeShow()})}});let{Strophe:m3,u:m6}=dh.env;function m8(e){let t=J()(`command[xmlns="${m3.NS.ADHOC}"]`,e).pop(),s=t.querySelector("note");return{...dq(e),sessionid:t.getAttribute("sessionid"),note:s?{text:s.textContent,type:s.getAttribute("type")}:null,actions:Array.from(t.querySelector("actions")?.children??[]).map(e=>e.nodeName.toLowerCase())}}let{Strophe:m5,$iq:m9,u:m7,stx:pe}=dh.env,pt={adhoc:{async getCommands(e){try{var t;return t=await ax.disco.items(e,m5.NS.ADHOC),J()(`query[xmlns="${m3.NS.DISCO_ITEMS}"][node="${m3.NS.ADHOC}"] item`,t).map(m6.getAttributes)}catch(t){return null===t?Q.error(`Error: timeout while fetching ad-hoc commands for ${e}`):(Q.error(`Error while fetching ad-hoc commands for ${e}`),Q.error(t)),[]}},async fetchCommandForm(e,t){let s=m9({type:"set",to:e}).c("command",{xmlns:m5.NS.ADHOC,action:"execute",node:t});return m8(await ax.sendIQ(s))},async runCommand(e,t,s,r,i){let o=pe` ${!["cancel","prev"].includes(r)?pe` ${i.map(({name:e,value:t})=>pe`${t}`)} `:""} `,a=await ax.sendIQ(o,null,!1);if(null===a){Q.warn("A timeout occurred while trying to run an ad-hoc command");let{__:e}=iw;return{status:"error",note:e("A timeout occurred")}}m7.isErrorStanza(a)&&(Q.error("Error while trying to execute an ad-hoc command"),Q.error(a));let l=a.querySelector("command"),c=l?.getAttribute("status");return{status:c,..."executing"===c?m8(a):{},note:a.querySelector("note")?.textContent}}}},{Strophe:ps}=dh.env;ps.addNamespace("ADHOC","http://jabber.org/protocol/commands"),dh.plugins.add("converse-adhoc",{dependencies:["converse-disco"],initialize(){Object.assign(this._converse.api,pt)}});class pr extends hp{defaults(){return{bookmarked:!1,hidden:sM()&&!ax.settings.get("singleton"),message_type:"headline",num_unread:0,time_opened:this.get("time_opened")||new Date().getTime(),time_sent:void 0,type:il}}constructor(e,t){super(e,t),this.disable_mam=!0}async initialize(){await super.initialize(),await this.fetchMessages(),ax.trigger("headlinesFeedInitialized",this)}canPostMessages(){return!1}isChatMessage(e){let t=e.get("type");return t===this.get("message_type")||"normal"===t}}let pi={headlines:{async get(e,t={},s=!1){async function r(e){let r=await ax.chatboxes.get(e);if(!r&&s){let{HeadlinesFeed:s}=iw.exports;r=await ax.chatboxes.create(e,t,s)}else(r=r&&r.get("type")===il?r:null)&&Object.keys(t).length&&r.save(t);return r}return void 0===e?(await ax.chatboxes.get()).filter(e=>e.get("type")===il):"string"==typeof e?r(e):Promise.all(e.map(e=>r(e)))}}};async function pn(e){if(dL(e)||dP(e)){let t=e.getAttribute("from");if(await ax.waitUntil("rosterInitialized"),t.includes("@")&&!iw.state.roster.get(t)&&!ax.settings.get("allow_non_roster_messaging")||null===e.querySelector("body"))return;let s=await ax.chatboxes.create(t,{id:t,jid:t,type:il,from:t},pr),r=await ut(e);await s.createMessage(r),ax.trigger("message",{chatbox:s,stanza:e,attrs:r})}}dh.plugins.add("converse-headlines",{dependencies:["converse-chat"],initialize(){let e={HeadlinesFeed:pr};function t(){ax.connection.get()?.addHandler(e=>(pn(e),!0),null,"message")}Object.assign(iw,e),Object.assign(iw.exports,e),ax.listen.on("connected",t),ax.listen.on("reconnected",t),Object.assign(ax,pi),ax.chatboxes.registry.add(il,pr)}});let po=0,pa=1,pl=-1,pc=128,pd={name:"AES-GCM",length:128},{Strophe:pu,stx:ph,sizzle:pm,u:pp}=dh.env;class pf extends es.Model{get idAttribute(){return"jid"}async initialize(){super.initialize(),this.initialized=er(),await this.initDevices(),this.initialized.resolve()}initDevices(){this.devices=new iw.exports.Devices;let e=iw.session.get("bare_jid"),t=`converse.devicelist-${e}-${this.get("jid")}`;return pp.initStorage(this.devices,t),this.fetchDevices()}async onDevicesFound(e){if(0===e.length){let e=[];try{e=await this.fetchDevicesFromServer()}catch(e){null===e?(Q.error(`Timeout error while fetching OMEMO devices for ${this.get("jid")}`),this.destroy()):pp.isElement(e)&&await db(e) instanceof o2?Q.debug(`No OMEMO devices found for ${this.get("jid")}`):(Q.error(`Could not fetch OMEMO devices for ${this.get("jid")}`),Q.error(e),this.destroy())}let t=iw.session.get("bare_jid");this.get("jid")===t&&this.publishCurrentDevice(e)}}fetchDevices(){return void 0===this._devices_promise&&(this._devices_promise=new Promise(e=>{this.devices.fetch({success:t=>e(this.onDevicesFound(t)),error:(t,s)=>{Q.error(s),e()}})})),this._devices_promise}async getOwnDeviceId(){let{omemo_store:e}=iw.state,t=e.get("device_id");return this.devices.get(t)||(await e.generateBundle(),t=e.get("device_id")),t}async publishCurrentDevice(e){let t=iw.session.get("bare_jid");if(this.get("jid")===t){if(await ax.omemo.session.restore(),!iw.state.omemo_store)return void Q.debug("publishCurrentDevice: omemo_store is not defined, likely a timing issue");if(!e.includes(await this.getOwnDeviceId()))return this.publishDevices()}}async fetchDevicesFromServer(){let e=iw.session.get("bare_jid"),t=ph` `,s=await ax.sendIQ(t),r=pm(`list[xmlns="${pu.NS.OMEMO}"] device`,s).map(e=>e.getAttribute("id")),i=this.get("jid");return Promise.all(r.map(e=>this.devices.create({id:e,jid:i},{promise:!0})))}publishDevices(){let e=ph` ${this.devices.filter(e=>e.get("active")).map(e=>ph``)} `;return ax.pubsub.publish(null,pu.NS.OMEMO_DEVICELIST,e,{access_model:"open"},!1)}async removeOwnDevices(e){let t=iw.session.get("bare_jid");if(this.get("jid")!==t)throw Error("Cannot remove devices from someone else's device list");return await Promise.all(e.map(e=>this.devices.get(e)).map(e=>new Promise(t=>e.destroy({success:t,error:(e,s)=>{Q.error(s),t()}})))),this.publishDevices()}}let pg=pf;class pv extends es.Collection{constructor(){super(),this.model=pg}}let p_=pv,{u:py,Strophe:pb,stx:pw}=dh.env,{arrayBufferToHex:pj,base64ToArrayBuffer:pS}=py;async function px(e){let t=J()(`items[node="${pb.NS.OMEMO_DEVICELIST}"]`,e).pop();if(!t)return;let s=`item list[xmlns="${pb.NS.OMEMO}"] device`,r=J()(s,t).map(e=>e.getAttribute("id")),i=e.getAttribute("from"),o=await ax.omemo.devicelists.get(i,!0),a=o.devices,l=a.pluck("id").filter(e=>!r.includes(e)),c=iw.session.get("bare_jid");l.forEach(e=>{(i!==c||e!==iw.state.omemo_store.get("device_id"))&&a.get(e).save("active",!1)}),r.forEach(e=>{let t=a.get(e);t?t.save("active",!0):a.create({id:e,jid:i})}),py.isSameBareJID(c,i)&&o.publishCurrentDevice(r)}async function pA(e){let t=J()("items",e).pop();if(!t||!t.getAttribute("node").startsWith(pb.NS.OMEMO_BUNDLES))return;let s=t.getAttribute("node").split(":")[1],r=e.getAttribute("from"),i=J()("item > bundle",t).pop(),o=await ax.omemo.devicelists.get(r,!0),a=o.devices.get(s)||o.devices.create({id:s,jid:r}),l=py.omemo.parseBundle(i);a.save({bundle:l})}async function pE(e){try{J()(`event[xmlns="${pb.NS.PUBSUB}#event"]`,e).length&&(await ax.waitUntil("OMEMOInitialized"),await px(e),await pA(e))}catch(e){Q.error(e)}}function p$(){ax.connection.get().addHandler(e=>(pE(e),!0),null,"message")}async function pk(){let e=iw.session.get("bare_jid");iw.state.devicelists=new p_;let t=`converse.devicelists-${e}`;ou(iw.state.devicelists,t),await new Promise(e=>{iw.state.devicelists.fetch({success:e,error:(t,s)=>{Q.error(s),e()}})}),await ax.omemo.devicelists.get(e,!0)}async function pC(e){if(!e){if(!iw.state.config.get("trusted")||ax.settings.get("clear_cache_on_logout"))return void Q.warn("Not initializing OMEMO, since this browser is not trusted or clear_cache_on_logout is set to true");try{await pk(),await ax.omemo.session.restore(),await iw.state.omemo_store.publishBundle()}catch(e){Q.error("Could not initialize OMEMO support"),Q.error(e);return}ax.trigger("OMEMOInitialized")}}async function pT(e,t=!1){let{devicelists:s}=iw.state,r=s.get(e)||(t?s.create({jid:e}):null);return await r?.initialized,r}async function pM(e){if(e.get("bundle")?.fingerprint)return;let t=await e.getBundle();t.fingerprint=pj(pS(t.identity_key)),e.save("bundle",t),e.trigger("change:bundle")}async function pO(e){await ax.waitUntil("OMEMOInitialized");let t=await ax.omemo.devicelists.get(e,!0);return await t.fetchDevices(),t.devices}function pN(e,t){let{libsignal:s}=window,r=new s.SignalProtocolAddress(e,t);return new s.SessionCipher(iw.state.omemo_store,r)}async function pI(e){let{libsignal:t}=window,s=new t.SignalProtocolAddress(e.get("jid"),e.get("id")),r=new t.SessionBuilder(iw.state.omemo_store,s),i=e.getRandomPreKey(),o=await e.getBundle();return r.processPreKey({registrationId:parseInt(e.get("id"),10),identityKey:pS(o.identity_key),signedPreKey:{keyId:o.signed_prekey.id,publicKey:pS(o.signed_prekey.public_key),signature:pS(o.signed_prekey.signature)},preKey:{keyId:i.id,publicKey:pS(i.key)}})}async function pR(e){if(!e.get("bundle"))return Q.error(`Could not build an OMEMO session for device ${e.get("id")} because we don't have its bundle`),null;let{libsignal:t}=window,s=new t.SignalProtocolAddress(e.get("jid"),e.get("id")),r=await iw.state.omemo_store.loadSession(s.toString());if(r)return r;try{return await pI(e)}catch(t){return Q.error(`Could not build an OMEMO session for device ${e.get("id")}`),Q.error(t),null}}async function pD(e){let t,{__:s}=iw,r=s("Sorry, no devices found to which we can send an OMEMO encrypted message.");if(e instanceof hz)t=(await Promise.all(e.occupants.map(e=>pO(e.get("jid"))))).reduce((e,t)=>e.concat(t.models),[]);else if(e.get("type")===io){let s=await pO(e.get("jid"));if(0===s.length)throw new oG(r);let i=iw.session.get("bare_jid");t=[...(await ax.omemo.devicelists.get(i)).devices.models,...s.models]}let i=iw.state.omemo_store.get("device_id");t=t.filter(e=>e.get("id")!==i),await Promise.all(t.map(e=>e.getBundle()));let o=await Promise.all(t.map(e=>e&&pR(e)||null));if(o.includes(null)&&0===(t=t.filter(e=>o[t.indexOf(e)])).length)throw new oG(r);return t}async function pL(e){let t=crypto.getRandomValues(new window.Uint8Array(12)),s=await crypto.subtle.generateKey(pd,!0,["encrypt","decrypt"]),r=await crypto.subtle.encrypt({iv:t,name:"AES-GCM",tagLength:pc},s,py.stringToArrayBuffer(e)),i=r.byteLength-16,o=r.slice(0,i),a=r.slice(i),l=await crypto.subtle.exportKey("raw",s);return{tag:a,key:l,key_and_tag:py.appendArrayBuffer(l,a),payload:py.arrayBufferToBase64(o),iv:py.arrayBufferToBase64(t)}}async function pz(e){let t=await crypto.subtle.importKey("raw",e.key,pd,!0,["encrypt","decrypt"]),s=py.appendArrayBuffer(py.base64ToArrayBuffer(e.payload),e.tag),r={name:"AES-GCM",iv:py.base64ToArrayBuffer(e.iv),tagLength:pc};return py.arrayBufferToString(await crypto.subtle.decrypt(r,t,s))}async function pP(e,t){let{stanza:s}=t,{message:r}=t;if(!r.get("is_encrypted"))return t;if(!r.get("body"))throw Error("No message body to encrypt!");let i=await pD(e),{key_and_tag:o,iv:a,payload:l}=await pL(r.get("plaintext")),c=await Promise.all(i.filter(e=>e.get("trusted")!=pl&&e.get("active")).map(e=>pN(e.get("jid"),e.get("id")).encrypt(o).then(t=>({payload:t,device:e}))));return s.cnode(pw`
${c.map(({payload:e,device:t})=>3==parseInt(e.type,10)?pw`${btoa(e.body)}`:pw`${btoa(e.body)}`)} ${a}
${l}
`).root(),s.cnode(pw``).root(),s.cnode(pw``).root(),{message:r,stanza:s}}function pU(e,t){let{__:s}=iw;return e.get("omemo_active")&&t.body?{...t,is_encrypted:!0,plaintext:t.body,body:s("This is an OMEMO encrypted message which your client doesn’t seem to support. Find more information on https://conversations.im/omemo")}:t}async function pB(e){return(await py.omemo.getDevicesForContact(e)).length>0}async function pF(e){let t;if(e.get("type")===ia){await ax.waitUntil("OMEMOInitialized");let{features:s}=e;t=s.get("nonanonymous")&&s.get("membersonly")}else e.get("type")===io&&(t=await pB(e.get("jid")));e.set("omemo_supported",!!t),t&&ax.settings.get("omemo_default")&&e.set("omemo_active",!0)}async function pq(e,t){if(t.isSelf()||!e.features.get("nonanonymous")||!e.features.get("membersonly"))return;let{__:s}=iw;e.get("omemo_active")&&(await pB(t.get("jid"))||(e.createMessage({message:s("%1$s doesn't appear to have a client that supports OMEMO. Encrypted chat will no longer be possible in this grouchat.",t.get("nick")),type:"error"}),e.save({omemo_active:!1,omemo_supported:!1})))}function pH(e){pF(e),e.get("type")===ia&&(e.occupants.on("add",t=>pq(e,t)),e.features.on("change",()=>pF(e)))}function pG(e,t){if(e.file.xep454_ivkey){let s=t.oob_url.replace(/^https?:/,"aesgcm:")+"#"+e.file.xep454_ivkey;return{...t,oob_url:null,message:s,body:s}}return t}async function pW(e){let t=crypto.getRandomValues(new Uint8Array(12)),s=await crypto.subtle.generateKey({name:"AES-GCM",length:256},!0,["encrypt","decrypt"]),r=await crypto.subtle.encrypt({name:"AES-GCM",iv:t},s,await e.arrayBuffer()),i=await window.crypto.subtle.exportKey("raw",s),o=new File([r],e.name,{type:e.type,lastModified:e.lastModified});return Object.assign(o,{xep454_ivkey:pj(t)+pj(i)}),o}Object.assign(py,{omemo:{...py.omemo,decryptMessage:pz,encryptMessage:pL,generateFingerprint:pM,getDevicesForContact:pO}});let{Strophe:pZ}=dh.env;function pV(e){let{__:t}=iw;return{error_text:t("Sorry, could not decrypt a received OMEMO message due to an error.")+` ${e.name} ${e.message}`,error_condition:e.name,error_message:e.message,error_type:"Decryption",is_ephemeral:!0,is_error:!0,type:"error"}}function pQ(e){let t,{__:s}=iw;if(!(t="me"===e.sender?iw.session.get("bare_jid"):e.contact_jid?e.contact_jid:"from_real_jid"in e?e.from_real_jid:e.from))throw Object.assign(e,{error_text:s("Sorry, could not decrypt a received OMEMO message because we don't have the XMPP address for that user."),error_type:"Decryption",is_ephemeral:!0,is_error:!0,type:"error"}),Error("Could not find JID to decrypt OMEMO message for");return t}async function pK(e,t){let s=pQ(e),r=await ax.omemo.devicelists.get(s,!0),i=e.encrypted,o=r.devices.get(i.device_id);if(o||(o=await r.devices.create({id:i.device_id,jid:s},{promise:!0})),i.payload){let e=t.slice(0,16),s=t.slice(16),r=await pz({...i,payload:i.payload,...{key:e,tag:s}});return o.save("active",!0),r}}async function pJ(e){let t=pN(pQ(e),parseInt(e.encrypted.device_id,10)),s=dd.base64ToArrayBuffer(e.encrypted.key);try{let r=await t.decryptWhisperMessage(s,"binary"),i=await pK(e,r);return Object.assign(e,{plaintext:i})}catch(t){return Q.error(`${t.name} ${t.message}`),Object.assign(e,pV(t))}}async function pY(e){let t,s=pN(pQ(e),parseInt(e.encrypted.device_id,10)),r=dd.base64ToArrayBuffer(e.encrypted.key);try{t=await s.decryptPreKeyWhisperMessage(r,"binary")}catch(t){return Q.error(`${t.name} ${t.message}`),Object.assign(e,pV(t))}try{let s=await pK(e,t),{omemo_store:r}=iw.state;if(await r.generateMissingPreKeys(),await r.publishBundle(),s)return Object.assign(e,{plaintext:s});return Object.assign(e,{is_only_key:!0})}catch(t){return Q.error(`${t.name} ${t.message}`),Object.assign(e,pV(t))}}async function pX(e,t){if(ax.settings.get("clear_cache_on_logout")||!t.is_encrypted||t.encryption_namespace!==pZ.NS.OMEMO)return t;let s=J()(`encrypted[xmlns="${pZ.NS.OMEMO}"]`,e).pop(),r=s.querySelector("header");t.encrypted={device_id:r.getAttribute("sid")};let i=await ax.omemo?.getDeviceID(),o=i&&J()(`key[rid="${i}"]`,s).pop();return o?(Object.assign(t.encrypted,{iv:r.querySelector("iv").textContent,key:o.textContent,payload:s.querySelector("payload")?.textContent||null,prekey:["true","1"].includes(o.getAttribute("prekey"))}),!0===t.encrypted.prekey)?pY(t):pJ(t):Object.assign(t,{error_condition:"not-encrypted-for-this-device",error_type:"Decryption",is_ephemeral:!0,is_error:!0,type:"error"})}function p1(e){let t=e.querySelector("signedPreKeyPublic"),s=e.querySelector("signedPreKeySignature"),r=J()("prekeys > preKeyPublic",e).map(e=>({id:parseInt(e.getAttribute("preKeyId"),10),key:e.textContent}));return{identity_key:e.querySelector("identityKey").textContent.trim(),signed_prekey:{id:parseInt(t.getAttribute("signedPreKeyId"),10),public_key:t.textContent,signature:s.textContent},prekeys:r}}Object.assign(dd,{omemo:{...dd.omemo,parseBundle:p1}});let{Strophe:p0,sizzle:p2,stx:p4,u:p3}=dh.env;class p6 extends es.Model{defaults(){return{trusted:po,active:!0}}getRandomPreKey(){let e=this.get("bundle");return e.prekeys[p3.getRandomInt(e.prekeys.length)]}async fetchBundleFromServer(){let e,t=iw.session.get("bare_jid"),s=p4` `;try{e=await ax.sendIQ(s)}catch(e){return Q.error(`Could not fetch bundle for device ${this.get("id")} from ${this.get("jid")}`),Q.error(e),null}if(e.querySelector("error"))throw new oW("Could not fetch bundle",e);let r=p2(`items[node="${p0.NS.OMEMO_BUNDLES}:${this.get("id")}"]`,e).pop(),i=p1(p2(`bundle[xmlns="${p0.NS.OMEMO}"]`,r).pop());return this.save("bundle",i),i}getBundle(){return this.get("bundle")?Promise.resolve(this.get("bundle")):this.fetchBundleFromServer()}}let p8=p6;class p5 extends es.Collection{constructor(){super(),this.model=p8}}let p9=p5,{Strophe:p7,stx:fe,u:ft}=dh.env;class fs extends es.Model{get Direction(){return{SENDING:1,RECEIVING:2}}getIdentityKeyPair(){let e=this.get("identity_keypair");return Promise.resolve({privKey:ft.base64ToArrayBuffer(e.privKey),pubKey:ft.base64ToArrayBuffer(e.pubKey)})}getLocalRegistrationId(){return Promise.resolve(parseInt(this.get("device_id"),10))}isTrustedIdentity(e,t,s){if(null==e)throw Error("Can't check identity key for invalid key");if(!(t instanceof ArrayBuffer))throw Error("Expected identity_key to be an ArrayBuffer");let r=this.get("identity_key"+e);return void 0===r?Promise.resolve(!0):Promise.resolve(ft.arrayBufferToBase64(t)===r)}loadIdentityKey(e){if(null==e)throw Error("Can't load identity_key for invalid identifier");return Promise.resolve(ft.base64ToArrayBuffer(this.get("identity_key"+e)))}saveIdentity(e,t){if(null==e)throw Error("Can't save identity_key for invalid identifier");let{libsignal:s}=window,r=new s.SignalProtocolAddress.fromString(e),i=this.get("identity_key"+r.getName()),o=ft.arrayBufferToBase64(t);return(this.save("identity_key"+r.getName(),o),i&&o!==i)?Promise.resolve(!0):Promise.resolve(!1)}getPreKeys(){return this.get("prekeys")||{}}loadPreKey(e){let t=this.getPreKeys()[e];return t?Promise.resolve({privKey:ft.base64ToArrayBuffer(t.privKey),pubKey:ft.base64ToArrayBuffer(t.pubKey)}):Promise.resolve()}storePreKey(e,t){let s={};return s[e]={pubKey:ft.arrayBufferToBase64(t.pubKey),privKey:ft.arrayBufferToBase64(t.privKey)},this.save("prekeys",Object.assign(this.getPreKeys(),s)),Promise.resolve()}removePreKey(e){let t={...this.getPreKeys()};return delete t[e],this.save("prekeys",t),Promise.resolve()}loadSignedPreKey(e){let t=this.get("signed_prekey");return t?Promise.resolve({privKey:ft.base64ToArrayBuffer(t.privKey),pubKey:ft.base64ToArrayBuffer(t.pubKey)}):Promise.resolve()}storeSignedPreKey(e){if("object"!=typeof e)throw Error("storeSignedPreKey: expected an object");return this.save("signed_prekey",{id:e.keyId,privKey:ft.arrayBufferToBase64(e.keyPair.privKey),pubKey:ft.arrayBufferToBase64(e.keyPair.pubKey),signature:ft.arrayBufferToBase64(e.signature)}),Promise.resolve()}removeSignedPreKey(e){return this.get("signed_prekey").id===e&&(this.unset("signed_prekey"),this.save()),Promise.resolve()}loadSession(e){return Promise.resolve(this.get("session"+e))}storeSession(e,t){return Promise.resolve(this.save("session"+e,t))}removeSession(e){return Promise.resolve(this.unset("session"+e))}removeAllSessions(e=""){let t=Object.keys(this.attributes).filter(t=>!!t.startsWith("session"+e)&&t),s={};return t.forEach(e=>{s[e]=void 0}),this.save(s),Promise.resolve()}publishBundle(){let e=this.get("signed_prekey"),t=`${p7.NS.OMEMO_BUNDLES}:${this.get("device_id")}`,s=fe` ${e.pubKey} ${e.signature} ${this.get("identity_keypair").pubKey} ${Object.values(this.get("prekeys")).map((e,t)=>fe`${e.pubKey}`)} `;return ax.pubsub.publish(null,t,s,{access_model:"open"},!1)}async generateMissingPreKeys(){let{libsignal:e}=window,{KeyHelper:t}=e,s=Object.keys(this.getPreKeys()),r=Array.from({length:iw.NUM_PREKEYS},(e,t)=>t.toString()).filter(e=>!s.includes(e));if(r.length<1)return Q.debug("No missing prekeys to generate for our own device"),Promise.resolve();(await Promise.all(r.map(e=>t.generatePreKey(parseInt(e,10))))).forEach(e=>this.storePreKey(e.keyId,e.keyPair));let i=this.getPreKeys(),o=Object.keys(i).map(e=>({id:e,key:i[e].pubKey})),a=iw.session.get("bare_jid"),l=(await pT(a)).devices.get(this.get("device_id")),c=await l.getBundle();l.save("bundle",Object.assign(c,{prekeys:o}))}async generatePreKeys(){let e=iw.NUM_PREKEYS,{libsignal:t}=window,{KeyHelper:s}=t,r=await Promise.all([...Array(e).keys()].map(e=>s.generatePreKey(e)));return r.forEach(e=>this.storePreKey(e.keyId,e.keyPair)),r.map(e=>({id:e.keyId,key:ft.arrayBufferToBase64(e.keyPair.pubKey)}))}async generateBundle(){let{libsignal:e}=window,t=await e.KeyHelper.generateIdentityKeyPair(),s=ft.arrayBufferToBase64(t.pubKey),r=await fr();this.save({device_id:r,identity_key:s,identity_keypair:{privKey:ft.arrayBufferToBase64(t.privKey),pubKey:s}});let i=await e.KeyHelper.generateSignedPreKey(t,0);this.storeSignedPreKey(i);let o={identity_key:s,device_id:r,prekeys:await this.generatePreKeys()};o.signed_prekey={id:i.keyId,public_key:ft.arrayBufferToBase64(i.keyPair.pubKey),signature:ft.arrayBufferToBase64(i.signature)};let a=iw.session.get("bare_jid"),l=await ax.omemo.devicelists.get(a);(await l.devices.create({id:o.device_id,jid:a},{promise:!0})).save("bundle",o)}fetchSession(){return void 0===this._setup_promise&&(this._setup_promise=new Promise((e,t)=>{this.fetch({success:()=>{this.get("device_id")?e():this.generateBundle().then(e).catch(t)},error:(s,r)=>{Q.warn(`Could restore OMEMO session, we'll generate a new one: ${r}`),this.generateBundle().then(e).catch(t)}})})),this._setup_promise}}async function fr(){let{libsignal:e}=window,t=iw.session.get("bare_jid"),s=(await pT(t,!0)).devices.pluck("id"),r=e.KeyHelper.generateRegistrationId(),i=0;for(;s.includes(r);)if(r=e.KeyHelper.generateRegistrationId(),10==++i)throw Error("Unable to generate a unique device ID");return r.toString()}let fi={omemo:{getDeviceID:async()=>(await ax.waitUntil("OMEMOInitialized"),iw.state.omemo_store.get("device_id")),session:{async restore(){let{state:e}=iw;if(void 0===e.omemo_store){let{state:e}=iw,t=iw.session.get("bare_jid"),s=`converse.omemosession-${t}`;e.omemo_store=new fs({id:s}),ou(e.omemo_store,s)}await e.omemo_store.fetchSession()}},devicelists:{get:async(e,t=!1)=>await pT(e,t)},bundle:{async generate(){await ax.waitUntil("OMEMOInitialized");let e=iw.session.get("bare_jid"),t=await ax.omemo.devicelists.get(e),{omemo_store:s}=iw.state,r=s.get("device_id");if(r){let e=t.devices.get(r);s.unset(r),e&&await new Promise(t=>e.destroy({success:t,error:t})),t.devices.trigger("remove")}return await s.generateBundle(),await s.removeAllSessions(),await s.publishBundle(),await t.publishDevices(),pM(t.devices.get(s.get("device_id")))}}}},{u:fn,Strophe:fo}=dh.env;dh.plugins.add("converse-omemo",{dependencies:["converse-pubsub","converse-profile"],enabled:e=>window.libsignal&&e.state.config.get("trusted")&&!e.api.settings.get("clear_cache_on_logout")&&!e.api.settings.get("blacklisted_plugins").includes("converse-omemo"),initialize(){ax.settings.extend({omemo_default:!1}),ax.promises.add(["OMEMOInitialized"]);let e={Device:p8,Devices:p9,DeviceList:pg,DeviceLists:p_,OMEMOStore:fs};Object.assign(iw.api,fi),Object.assign(iw,e),Object.assign(iw.exports,e),ax.listen.on("createMessageStanza",async(e,t)=>{try{t=await pP(e,t)}catch(s){let{__:t}=iw;if(s instanceof oW){e.save("omemo_supported",!1);let r=[];J()(`presence-subscription-required[xmlns="${pb.NS.PUBSUB_ERROR}"]`,s.iq).length?r.push(t("Sorry, we're unable to send an encrypted message because %1$s requires you to be subscribed to their presence in order to see their OMEMO information",s.iq.getAttribute("from"))):J()('remote-server-not-found[xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"]',s.iq).length?r.push(t("Sorry, we're unable to send an encrypted message because the remote server for %1$s could not be found",s.iq.getAttribute("from"))):(r.push(t("Unable to send an encrypted message due to an unexpected error.")),r.push(s.iq.outerHTML)),ax.alert("error",t("Error"),r)}else s instanceof oG&&ax.alert("error",t("Error"),[s.message]);throw s}return t}),ax.listen.on("connected",p$),ax.listen.on("chatRoomInitialized",pH),ax.listen.on("chatBoxInitialized",pH),ax.listen.on("getOutgoingMessageAttributes",pU),ax.listen.on("statusInitialized",pC),ax.listen.on("addClientFeatures",()=>ax.disco.own.features.add(`${fo.NS.OMEMO_DEVICELIST}+notify`)),ax.listen.on("parseMessage",pX),ax.listen.on("parseMUCMessage",pX),ax.listen.on("afterFileUploaded",pG),ax.listen.on("beforeFileUpload",(e,t)=>e.get("omemo_active")?pW(t):t),ax.listen.on("clearSession",()=>{delete iw.state.omemo_store,fn.shouldClearCache(iw)&&iw.state.devicelists&&(iw.state.devicelists.clearStore(),delete iw.state.devicelists)})}});let{Strophe:fa}=dh.env;fa.addNamespace("OMEMO_DEVICELIST",fa.NS.OMEMO+".devicelist"),fa.addNamespace("OMEMO_VERIFICATION",fa.NS.OMEMO+".verification"),fa.addNamespace("OMEMO_WHITELISTED",fa.NS.OMEMO+".whitelisted"),fa.addNamespace("OMEMO_BUNDLES",fa.NS.OMEMO+".bundles");class fl extends es.Model{defaults(){return{msgid:dc(),is_ephemeral:!1}}async fetchMissingMessages(){this.set("fetching",!0);let e={rsm:{before:this.get("before")??""},mam:{start:this.get("start")}};await dd.mam.fetchArchivedMessages(this.collection.chatbox,e),this.destroy()}}let{NS:fc}=rZ,fd=dh.env.utils;async function fu(e,t){if(fd.isElement(e)){let s=await db(e);if(s?.name==="feature-not-implemented")return void Q.warn(`Message Archive Management (XEP-0313) not supported by ${t.getAttribute("to")}`)}Q.error(`Error while trying to set archiving preferences for ${t.getAttribute("to")}.`),Q.error(t)}function fh(e,t){let s=J()(`prefs[xmlns="${fc.MAM}"]`,e).pop();if(s.getAttribute("default")!==ax.settings.get("message_archiving")){let e=rf({type:"set"}).c("prefs",{xmlns:fc.MAM,default:ax.settings.get("message_archiving")});Array.from(s.children).forEach(t=>e.cnode(t).up()),ax.sendIQ(e).then(()=>t.save({preferences:{default:ax.settings.get("message_archiving")}})).catch(t=>iw.exports.onMAMError(t,e.tree()))}else t.save({preferences:{default:ax.settings.get("message_archiving")}})}function fm(e){let t=e.get("preferences")||{};if(e.get("var")===fc.MAM&&void 0!==ax.settings.get("message_archiving")&&t.default!==ax.settings.get("message_archiving")){let t=rf({type:"get"}).c("prefs",{xmlns:fc.MAM});ax.sendIQ(t).then(t=>iw.exports.onMAMPreferences(t,e)).catch(e=>iw.exports.onMAMError(e,t.tree()))}}function fp(e){!ax.settings.get("muc_show_logs_before_join")||!e.features.get("mam_enabled")||e.get("prejoin_mam_fetched")||(fy(e),e.save({prejoin_mam_fetched:!0}))}async function ff(e,t){t instanceof oZ&&((await e.createMessage({type:"error",message:t.message,retry_event_id:t.retry_event_id,is_ephemeral:2e4})).error=t)}async function fg(e,t,s,r,i=!1){let o=e.get("type")===ia,a=await Promise.all(t.messages.map(t=>o?hr(t,e):ut(t)));if(t.messages=a,await ax.trigger("MAMResult",{query:s,chatbox:e,messages:a},{synchronous:!0}),a.forEach(t=>e.queueMessage(t)),t.error){let s=t.error.retry_event_id=fd.getUniqueId();ax.listen.once(s,()=>fv(e,r,i)),ff(e,t.error)}}async function fv(e,t={},s=!1){if(e.disable_mam)return;let r=e.get("type")===ia,i=iw.session.get("bare_jid"),o=r?e.get("jid"):i;if(!await ax.disco.supports(fc.MAM,o))return;let a=ax.settings.get("archived_messages_page_size"),l={is_groupchat:r,rsm:{max:a,...t.rsm},mam:{with:e.get("jid"),...t.mam}},c=await ax.archive.query(l);if(await fg(e,c,l,t,s),c.rsm&&!c.complete)if(s)return"forwards"===s?t=c.rsm.next(a,t.rsm.before).query:"backwards"===s&&(t=c.rsm.previous(a,t.rsm.after).query),fv(e,t,s);else f_(e,t,c)}async function f_(e,t,s){let r=await Promise.all(s.messages),i=e.get("type")===ia?e.get("jid"):iw.session.get("bare_jid"),{rsm:o}=s,a=`stanza_id ${i}`,l=new Date(r.find(e=>e[a]===o.result.first).time),c={before:o.result.first,start:t.mam?.start,template_hook:"getMessageTemplate",time:new Date(l.getTime()-1).toISOString()};if(e.messages.findWhere(c))return void Q.debug("Gap placeholder already exists, not recreating.");e.messages.add(new fl(c))}function fy(e){if(e.disable_mam)return;let t=e.getMostRecentMessage(),s=!!ax.settings.get("mam_request_all_pages")&&"backwards";return t?fv(e,{mam:{start:t.get("time")},rsm:{before:""}},s):fv(e,{rsm:{before:""}},s)}let{Strophe:fb,$build:fw}=dh.env;fb.addNamespace("RSM","http://jabber.org/protocol/rsm");let fj=["after","before","index","max"],fS=e=>Number(e),fx=e=>e.toString(),fA={after:fx,before:fx,count:fS,first:fx,index:fS,last:fx,max:fS},fE=Object.keys(fA);class f${static getQueryParameters(e={}){return fj.reduce((t,s)=>(void 0!==e[s]&&(t[s]=e[s]),t),{})}static parseXMLResult(e){let t={};for(var s=0;ssA(this.query[t])?e:e.c(t).t((this.query[t]||"").toString()).up();return fj.reduce(t,e).tree()}toString(){return fb.serialize(this.toXML())}next(e,t){return new f$(Object.assign({},this.query,{after:this.result.last,before:t,max:e}))}previous(e,t){return new f$(Object.assign({},this.query,{after:t,before:this.result.first,max:e}))}}let{NS:fk}=rZ,{stx:fC,u:fT}=dh.env,fM={archive:{async query(e={}){let t,s;if(!ax.connection.connected())throw Error("Can't call `api.archive.query` before having established an XMPP session");if(e&&e.is_groupchat){if(!e.mam?.with)throw Error('You need to specify a "with" value containing the groupchat JID, when querying groupchat messages.');t=e.mam.with}let r=!e.is_groupchat&&e.mam?.with||null,i=iw.session.get("bare_jid"),o=t||i;if(!await ax.disco.supports(fk.MAM,o))return Q.warn(`Did not fetch MAM archive for ${o} because it doesn't support ${fk.MAM}`),{messages:[]};let{start:a,end:l}=["start","end"].reduce((t,s)=>{if(e.mam?.[s]){let r=F()(e.mam[s]);if(r.isValid())t[s]=r.toISOString();else throw TypeError(`archive.query: invalid date provided for: ${s}`)}return t},{start:null,end:null}),c=ax.connection.get(),d=e.rsm?new f$(e.rsm):{},u=fT.getUniqueId(),h=fC` ${r||a||l?fC` ${fk.MAM} ${r?fC`${r}`:""} ${a?fC`${a}`:""} ${l?fC`${l}`:""} `:""} ${Object.keys(d.query??{}).length?rG.fromString(d.toString()):""} `,m=[],p=c.addHandler(t=>{let s=J()(`message > result[xmlns="${fk.MAM}"]`,t).pop();if(void 0===s||s.getAttribute("queryid")!==u)return!0;let r=t.getAttribute("from")||i;if(e.is_groupchat){if(r!==e.mam?.with)return Q.warn(`Ignoring alleged groupchat MAM message from ${t.getAttribute("from")}`),!0}else if(r!==i)return Q.warn(`Ignoring alleged MAM message from ${t.getAttribute("from")}`),!0;return m.push(t),!0},fk.MAM),f=ax.settings.get("message_archiving_timeout"),g=await ax.sendIQ(h,f,!1);if(null===g){let{__:e}=iw,t=e("Timeout while trying to fetch archived messages.");return Q.error(t),{messages:m,error:new oZ(t)}}if(fT.isErrorStanza(g)){let{__:e}=iw,t=e("An error occurred while querying for archived messages.");return Q.error(t),Q.error(g),{messages:m,error:Error(t)}}c.deleteHandler(p);let v=g&&J()(`fin[xmlns="${fk.MAM}"]`,g).pop(),_=v?.getAttribute("complete")==="true",y=J()(`set[xmlns="${fk.RSM}"]`,v).pop();return y&&(s=new f$({...e.rsm,xml:y})),{messages:m,rsm:s,complete:_}}}},{NS:fO}=rZ;dh.plugins.add("converse-mam",{dependencies:["converse-disco","converse-muc"],initialize(){ax.settings.extend({archived_messages_page_size:"50",mam_request_all_pages:!1,message_archiving:void 0,message_archiving_timeout:6e4}),Object.assign(ax,fM);let e={onMAMError:fu,onMAMPreferences:fh,handleMAMResult:fg,MAMPlaceholderMessage:fl};Object.assign(iw,e),Object.assign(iw.exports,e),ax.listen.on("addClientFeatures",()=>ax.disco.own.features.add(fO.MAM)),ax.listen.on("serviceDiscovered",fm),ax.listen.on("chatRoomViewInitialized",({model:e})=>{ax.settings.get("muc_show_logs_before_join")&&(fp(e),e.features.on("change:mam_enabled",()=>fp(e)))}),ax.listen.on("enteredNewRoom",e=>e.features.get("mam_enabled")&&fy(e)),ax.listen.on("chatReconnected",e=>{[ia,io].includes(e.get("type"))&&fy(e)}),ax.listen.on("afterMessagesFetched",e=>{e.get("type")===io&&fy(e),function(e){if(e.messages.length){let t=e.get("type")===ia?e.get("jid"):iw.session.get("bare_jid"),s=`stanza_id ${t}`,r=e.getOldestMessage();if(!r)return;let i={before:r.get(s),template_hook:"getMessageTemplate",time:new Date(new Date(r.get("time")).getTime()-1).toISOString()};if(e.messages.findWhere(i))return Q.debug("Gap placeholder already exists, not recreating.");e.messages.add(new fl(i))}}(e)})}}),Object.assign(dd,{mam:{fetchArchivedMessages:fv}});let{Strophe:fN,$iq:fI}=dh.env;function fR(){document.hidden||ax.ping(null,5e3)}function fD(e){u=new Date;let t=fI({type:"result",to:e.getAttribute("from"),id:e.getAttribute("id")});return ax.sendIQ(t),!0}function fL(){let e;(e=ax.connection.get()).disco&&ax.disco.own.features.add(fN.NS.PING),e.addHandler(fD,fN.NS.PING,"iq","get"),ax.connection.get()?.addHandler(()=>{if(ax.settings.get("ping_interval")>0)return u=new Date,!0}),clearInterval(h),h=setInterval(fP,1e3)}function fz(){clearInterval(h)}function fP(){if(sO()||!ax.connection.authenticated())return;let e=ax.settings.get("ping_interval");if(e>0){let t=new Date;u=u??t,(t.valueOf()-u.valueOf())/1e3>e&&ax.ping()}}let{Strophe:fU,$iq:fB,u:fF}=dh.env,fq={async ping(e,t){if(!ax.connection.authenticated())return Q.debug("Not pinging when we know we're not authenticated"),null;u=new Date;let s=iw.session.get("bare_jid"),r=fB({type:"get",to:e=e||fU.getDomainFromJid(s),id:fF.getUniqueId("ping")}).c("ping",{xmlns:fU.NS.PING}),i=await ax.sendIQ(r,t||1e4,!1);return null===i?(Q.warn(`Timeout while pinging ${e}`),e===fU.getDomainFromJid(s)&&ax.connection.reconnect(),!1):!fF.isErrorStanza(i)||(Q.error(`Error while pinging ${e}`),Q.error(i),!1)}},{Strophe:fH}=dh.env;fH.addNamespace("PING","urn:xmpp:ping"),dh.plugins.add("converse-ping",{initialize(){ax.settings.extend({ping_interval:60}),Object.assign(ax,fq),ax.listen.on("connected",fL),ax.listen.on("reconnected",fL),ax.listen.on("disconnected",fz),document.addEventListener("visibilitychange",fR)}});let{Strophe:fG,stx:fW}=dh.env,fZ={pubsub:{config:{async get(e,t){let s;if(!t)throw Error("api.pubsub.config.get: Node value required");let r=iw.session.get("bare_jid"),i=iw.session.get("jid"),o=fW` `;try{s=await ax.sendIQ(o)}catch(e){throw await db(e)}return dq(s).fields.reduce((e,t)=>{if(t.var.startsWith("pubsub#")){let s=t.var.replace(/^pubsub#/,""),r="boolean"===t.type?t.checked:t.value??null;e[s]=r}return e},{})},async set(e,t,s){if(!t)throw Error("api.pubsub.config.set: Node value required");let r=iw.session.get("bare_jid"),i=e||r,o={...await ax.pubsub.config.get(i,t),...s},a=fW` ${fG.NS.PUBSUB}#nodeconfig ${Object.entries(o).map(([e,t])=>fW`${t}`)} `;try{await ax.sendIQ(a)}catch(e){throw await db(e)}return o}},async publish(e,t,s,r,i=!0){if(!t)throw Error("api.pubsub.publish: node value required");if(!s)throw Error("api.pubsub.publish: item value required");let o=iw.session.get("bare_jid"),a=e||o,l=fW` ${s} ${r?fW` ${fG.NS.PUBSUB}#publish-options ${Object.entries(r).map(([e,t])=>fW`${t}`)} `:""} `;if(a===o&&!(await ax.disco.getIdentity("pubsub","pep",o)||await ax.disco.getIdentity("pubsub","pep",fG.getDomainFromJid(o)))){Q.warn("api.pubsub.publish: Not publishing via PEP because it's not supported!"),Q.warn(l);return}if(!(await ax.disco.supports(fG.NS.PUBSUB+"#publish-options",a)||a===o&&await ax.disco.supports(fG.NS.PUBSUB+"#publish-options",fG.getDomainFromJid(a)))&&i){Q.warn("api.pubsub.publish: #publish-options not supported, refusing to publish item."),Q.warn(l);return}try{await ax.sendIQ(l)}catch(s){let e=await db(s);if("conflict"===e.name&&"precondition-not-met"===e.extra[fG.NS.PUBSUB_ERROR]){await ax.pubsub.config.set(a,t,r);try{await ax.sendIQ(l)}catch(e){if(Q.error(e),!i){let e=l.tree();e.querySelector("publish-options").outerHTML="",Q.warn("api.pubsub.publish: #publish-options precondition-not-met, publishing anyway."),await ax.sendIQ(e)}}}else throw s}}}},{Strophe:fV,sizzle:fQ}=dh.env;fV.addNamespace("PUBSUB_ERROR",fV.NS.PUBSUB+"#errors"),dh.plugins.add("converse-pubsub",{dependencies:["converse-disco"],initialize(){let{api:e}=iw;Object.assign(iw.api,fZ),e.listen.on("parseErrorStanza",(e,t)=>{let s=fQ(`error [xmlns="${fV.NS.PUBSUB_ERROR}"]`,e).pop();return s?{...t,[fV.NS.PUBSUB_ERROR]:s.nodeName}:t})}});let fK={status:{async get(){await ax.waitUntil("statusInitialized");let e=iw.state.profile.get("show");return e||iw.state.profile.get("status")||"online"},async set(e,t){if(!Object.keys(rX).includes(e))throw Error("Invalid availability value. See https://xmpp.org/rfcs/rfc3921.html#rfc.section.2.2.2.1");let s=rJ.includes(e)?e:void 0;"away"===e&&(s="dnd");let r={show:s,type:rY.includes(e)?e:void 0};"string"==typeof t&&(r.status_message=t),await ax.waitUntil("statusInitialized"),iw.state.profile.save(r)},message:{get:async()=>(await ax.waitUntil("statusInitialized"),iw.state.profile.get("status_message")),async set(e){await ax.waitUntil("statusInitialized"),iw.state.profile.save({status_message:e})}}}},{Strophe:fJ,$pres:fY,stx:fX}=dh.env;class f1 extends d8(dW(es.Model)){get idAttribute(){return"jid"}defaults(){return{groups:[],num_unread:0}}async initialize(e){this.lazy_load_vcard=!0,super.initialize(),this.initialized=er(),await this.setPresence();let{jid:t}=e;this.set({...e,...{jid:fJ.getBareJidFromJid(t).toLowerCase(),user_id:fJ.getNodeFromJid(t)}}),this.listenTo(this.presence,"change:show",()=>ax.trigger("contactPresenceChanged",this)),this.listenTo(this.presence,"change:show",()=>this.trigger("presence:change")),this.listenTo(this.presence,"change:presence",()=>ax.trigger("contactPresenceChanged",this)),this.listenTo(this.presence,"change:presence",()=>this.trigger("presence:change")),await ax.trigger("rosterContactInitialized",this,{synchronous:!0}),this.initialized.resolve()}async setPresence(){let e=this.get("jid");await ax.waitUntil("presencesInitialized");let{presences:t}=iw.state;this.presence=t.get(e)||t.create({jid:e})}getStatus(){return this.presence?.getStatus()||"offline"}async openChat(){return await ax.chats.open(this.get("jid"),{},!0)}getDisplayName(e){return this.get("nickname")||this.vcard?.getDisplayName()||(e?.no_jid?null:this.get("jid"))}subscribe(e){return ax.user.presence.send({type:"subscribe",to:this.get("jid"),status:e}),this.save("ask","subscribe"),this}ackSubscribe(){ax.send(fY({type:"subscribe",to:this.get("jid")}))}ackUnsubscribe(){ax.send(fY({type:"unsubscribe",to:this.get("jid")})),this.sendRosterRemoveStanza(),this.destroy()}unauthorize(e){return mP(this.get("jid"),e),this.save({requesting:!1}),this}authorize(e){return ax.send(fX` ${e&&""!==e?fX`${e}`:""} `),this.save({requesting:!1,subscription:"from"}),this}remove(e){let t=this.get("subscription");if("none"===t&&"subscribe"!==this.get("ask"))return void this.destroy();("subscribe"===this.get("ask")||"to"===t)&&ax.send(fY({type:"unsubscribe",to:this.get("jid")})),e&&["from","both"].includes(t)&&this.unauthorize();let s=this.sendRosterRemoveStanza();return this.collection&&this.destroy(),s}async update(e){return this.save(e),await ax.sendIQ(fX` ${this.get("groups")?.map(e=>fX`${e}`)} `)}async sendRosterRemoveStanza(){let e=fX` `;return await ax.sendIQ(e)}isUnsaved(){return void 0===this.get("subscription")}}let f0=f1,{Strophe:f2,sizzle:f4,stx:f3,u:f6,Stanza:f8}=dh.env;class f5 extends es.Collection{constructor(){super(),this.model=f0,this.data=null}initialize(){let e=iw.session.get("bare_jid"),t=`roster.state-${e}-${this.get("jid")}`;this.state=new es.Model({id:t,collapsed_groups:[]}),ou(this.state,t),this.state.fetch(),ax.listen.on("chatBoxClosed",e=>this.removeUnsavedContact(e))}removeUnsavedContact(e){let t=this.get(e.get("jid"));t&&void 0===t.get("subscription")&&t.destroy()}onConnected(){this.registerRosterHandler(),this.registerRosterXHandler()}registerRosterHandler(){ax.connection.get().addHandler(e=>(iw.state.roster.onRosterPush(e),!0),f2.NS.ROSTER,"iq","set")}registerRosterXHandler(){let e=0;ax.connection.get().addHandler(t=>(setTimeout(()=>{let{roster:e}=iw.state;ax.connection.get().flush(),e.subscribeToSuggestedItems(t)},e),e+=250*t.querySelectorAll("item").length,!0),f2.NS.ROSTERX,"message",null)}async fetchRosterContacts(){let e=await new Promise((e,t)=>{this.fetch({add:!0,silent:!0,success:e,error:(e,s)=>t(s)})});if(f6.isErrorObject(e)&&(Q.error(e),iw.session.save("roster_cached",!1),this.data.save("version",void 0)),!iw.session.get("roster_cached"))return ax.connection.get().send_initial_presence=!0,iw.state.roster.fetchFromServer();ax.trigger("cachedRoster",e)}subscribeToSuggestedItems(e){return Array.from(e.querySelectorAll("item")).forEach(e=>{"add"===e.getAttribute("action")&&this.addContact({jid:e.getAttribute("jid"),name:e.getAttribute("name"),subscription:"to"})}),!0}isSelf(e){return f6.isSameBareJID(e,ax.connection.get().jid)}sendContactAddIQ(e){let{jid:t,groups:s}=e,r=e.name?e.name:null,i=f3` ${s?.map(e=>f3`${e}`)} `;return ax.sendIQ(i)}async addContact(e,t=!0,s=!0,r=""){let{jid:i,name:o}=e??{};if(!i||!f6.isValidJID(i))throw Error("Invalid JID provided to addContact");if(await ax.waitUntil("rosterContactsFetched"),t)try{await this.sendContactAddIQ(e)}catch(t){Q.error(t);let{__:e}=iw;throw alert(e("Sorry, an error occurred while trying to add %1$s as a contact.",o||i)),t}let a=await this.create({ask:void 0,nickname:o,groups:[],requesting:!1,subscription:t?"none":void 0,...e},{sort:!1});return s&&a.subscribe(r),a}async subscribeBack(e,t,s="",r=""){let i=this.get(e),{RosterContact:o}=iw.exports;if(i instanceof o)i.authorize().subscribe();else{let i=f4(`nick[xmlns="${f2.NS.NICK}"]`,t).pop()?.textContent||void 0,a=await this.addContact({jid:e,name:i,groups:[],subscription:"from"});a instanceof o&&a.authorize(s).subscribe(r)}}onRosterPush(e){let t=e.getAttribute("id"),s=e.getAttribute("from"),r=iw.session.get("bare_jid");if(s&&s!==r)return void Q.warn(`Ignoring roster illegitimate roster push message from ${e.getAttribute("from")}`);ax.send(f3``);let i=f4(`query[xmlns="${f2.NS.ROSTER}"]`,e).pop();this.data.save("version",i.getAttribute("ver"));let o=f4("item",i);if(o.length>1)throw Q.error(e),Error('Roster push query may not contain more than one "item" element.');if(0===o.length){Q.warn(e),Q.warn('Received a roster push stanza without an "item" element.');return}this.updateContact(o.pop()),ax.trigger("rosterPush",e)}shouldUseRosterVersioning(){return ax.settings.get("enable_roster_versioning")&&this.data.get("version")&&ax.disco.stream.getFeature("ver","urn:xmpp:features:rosterver")}async fetchFromServer(){let e=f3` `,t=await ax.sendIQ(e,null,!1);if("result"===t.getAttribute("type")){let e=f4(`query[xmlns="${f2.NS.ROSTER}"]`,t).pop();if(e){let t=f4("item",e);if(!this.data.get("version")&&this.models.length){let e=t.map(e=>e.getAttribute("jid"));this.forEach(t=>!t.get("requesting")&&!e.includes(t.get("jid"))&&t.destroy())}t.forEach(e=>this.updateContact(e)),this.data.save("version",e.getAttribute("ver"))}}else if(!f6.isServiceUnavailableError(t)){Q.error(t),Q.error("Error while trying to fetch roster from the server");return}iw.session.save("roster_cached",!0),ax.trigger("roster",t)}updateContact(e){let t=e.getAttribute("jid"),s=this.get(t),r=e.getAttribute("subscription");if("remove"===r)return s?.destroy();let i=e.getAttribute("ask"),o=e.getAttribute("name"),a=[...new Set(f4("group",e).map(e=>e.textContent))];s?s.save({subscription:r,ask:i,nickname:o,groups:a,requesting:null}):this.create({nickname:o,ask:i,groups:a,jid:t,subscription:r},{sort:!1})}createRequestingContact(e){let t=f2.getBareJidFromJid(e.getAttribute("from")),s=f4(`nick[xmlns="${f2.NS.NICK}"]`,e).pop()?.textContent||null;ax.trigger("contactRequest",this.create({jid:t,subscription:"none",ask:null,requesting:!0,nickname:s}))}handleIncomingSubscription(e){let t=e.getAttribute("from"),s=f2.getBareJidFromJid(t),r=this.get(s);if(!ax.settings.get("allow_contact_requests")){let{__:e}=iw;mP(t,e("This client does not allow presence subscriptions"))}ax.settings.get("auto_subscribe")?r&&"to"===r.get("subscription")?r.authorize():this.subscribeBack(s,e):r?"none"!==r.get("subscription")?r.authorize():"subscribe"===r.get("ask")&&r.authorize():this.createRequestingContact(e)}handleOwnPresence(e){let t=e.getAttribute("from"),s=f2.getResourceFromJid(t),r=e.getAttribute("type"),{profile:i}=iw.state;if(ax.connection.get().jid!==t&&"unavailable"!==r&&(!0===ax.settings.get("synchronize_availability")||ax.settings.get("synchronize_availability")===s)){let t=e.querySelector("show")?.textContent;i.save({show:t,presence:"online"},{silent:!0});let s=e.querySelector("status")?.textContent;s&&i.save({status_message:s})}iw.session.get("jid")===t&&"unavailable"===r&&ax.user.presence.send()}presenceHandler(e){let t=e.getAttribute("type");if("error"===t)return!0;let s=e.getAttribute("from"),r=f2.getBareJidFromJid(s);if(this.isSelf(r))return this.handleOwnPresence(e);if(f4(`query[xmlns="${f2.NS.MUC}"]`,e).length)return;let i=this.get(r);if(i){let t=e.querySelector("status")?.textContent;i.get("status")!==t&&i.save({status:t})}if("subscribed"===t&&i)i.ackSubscribe();else if("unsubscribed"===t&&i)i.ackUnsubscribe();else if("unsubscribe"===t)return;else if("subscribe"===t)this.handleIncomingSubscription(e);else if("unavailable"===t&&i){let e=f2.getResourceFromJid(s);i.presence.removeResource(e)}else i&&i.presence.addResource(e)}}let f9=f5;class f7 extends es.Model{get idAttribute(){return"name"}}class ge extends es.Collection{constructor(){super(),this.model=f7}}let{Strophe:gt,sizzle:gs,dayjs:gr}=dh.env;class gi extends es.Model{get idAttribute(){return"jid"}defaults(){return{presence:"offline",show:null}}initialize(){super.initialize(),this.resources=new ge;let e=`converse.identities-${this.get("jid")}`;ou(this.resources,e,"session"),this.listenTo(this.resources,"update",this.onResourcesChanged),this.listenTo(this.resources,"change",this.onResourcesChanged)}onResourcesChanged(){let e=this.getHighestPriorityResource(),{presence:t,show:s}=e?.attributes??{};this.save({presence:t,show:s})}getStatus(){let e=this.get("presence");return"offline"===e?"offline":this.get("show")||e||"offline"}getHighestPriorityResource(){return this.resources.sortBy(e=>`${e.get("priority")}-${e.get("timestamp")}`).reverse()[0]}addResource(e){let t,s,r,i,o,a=(t=e.getAttribute("from"),s=e.getAttribute("type"),r=gt.getResourceFromJid(t),i=gs(`delay[xmlns="${gt.NS.DELAY}"]`,e).pop(),o=e.querySelector("priority")?.textContent,{resource:r,show:e.querySelector("show")?.textContent,timestamp:i?gr(i.getAttribute("stamp")).toISOString():new Date().toISOString(),type:s,priority:Number.isNaN(parseInt(o,10))?0:parseInt(o,10)}),l={name:a.resource,presence:"unavailable"===a.type?"offline":"online",priority:a.priority,show:a.show,timestamp:a.timestamp},c=this.resources.get(l.name);c?c.save(l):this.resources.create(l)}removeResource(e){let t=this.resources.get(e);t?.destroy()}}let gn=gi;class go extends es.Collection{constructor(){super(),this.model=gn}}let ga=go,{Strophe:gl,$build:gc}=dh.env;function gd(e){ax.trigger("statusInitialized",e)}function gu(e){if(e=void 0!==iw.state.profile&&e)gd(e);else{let t=`converse.xmppstatus-${iw.session.get("bare_jid")}`;iw.state.profile=new iw.exports.Profile({id:t}),iw.state.xmppstatus=iw.state.profile,Object.assign(iw,{xmppstatus:iw.state.profile}),ou(iw.state.profile,t,"session"),iw.state.profile.fetch({success:()=>gd(e),error:()=>gd(e),silent:!0})}}let gh=0,gm=!1,gp=!1,gf=!1;function gg(){gh>0&&(gh=0),ax.connection.get()?.authenticated&&(gf&&g_(it),gm&&(gm=!1,ax.user.presence.send()),!0===gp&&(gp=!1,iw.state.profile.set("show",void 0)))}function gv(){if(!ax.connection.get()?.authenticated)return;let{profile:e}=iw.state,t=e.get("show");gh++,ax.settings.get("csi_waiting_time")>0&&gh>ax.settings.get("csi_waiting_time")&&!gf&&g_(ie),ax.settings.get("idle_presence_timeout")>0&&gh>ax.settings.get("idle_presence_timeout")&&!gm&&(gm=!0,ax.user.presence.send()),ax.settings.get("auto_away")>0&&gh>ax.settings.get("auto_away")&&"away"!==t&&"xa"!==t&&"dnd"!==t?(gp=!0,e.set("show","away")):ax.settings.get("auto_xa")>0&&gh>ax.settings.get("auto_xa")&&"xa"!==t&&"dnd"!==t&&(gp=!0,e.set("show","xa"))}function g_(e){ax.send(gc(e,{xmlns:gl.NS.CSI})),gf=e===ie}function gy(){if(1>ax.settings.get("auto_away")&&1>ax.settings.get("auto_xa")&&1>ax.settings.get("csi_waiting_time")&&1>ax.settings.get("idle_presence_timeout"))return;gh=0,gp=!1;let{onUserActivity:e,onEverySecond:t}=iw.exports;window.addEventListener("click",e),window.addEventListener("focus",e),window.addEventListener("keypress",e),window.addEventListener("mousemove",e),window.addEventListener(sN(),e,{once:!0,passive:!0}),m=setInterval(t,1e3)}function gb(){let{onUserActivity:e}=iw.exports;window.removeEventListener("click",e),window.removeEventListener("focus",e),window.removeEventListener("keypress",e),window.removeEventListener("mousemove",e),window.removeEventListener(sN(),e),m&&(clearInterval(m),m=null)}let{Stanza:gw,Strophe:gj,stx:gS}=dh.env;class gx extends d8(dW(es.Model)){defaults(){return{presence:"online",status:null,show:null,groups:[]}}getStatus(){let e=this.get("presence");return"offline"===e||"unavailable"===e?"offline":this.get("show")||e||"offline"}get(e){return"jid"===e?iw.session.get("bare_jid"):"nickname"===e?ax.settings.get("nickname"):super.get(e)}set(e,t,s){if("jid"===e||"nickname"===e)throw Error("Readonly property");return super.set(e,t,s)}initialize(){super.initialize(),this.on("change",e=>{(e.changed?.status||e.changed?.status_message||e.changed?.show)&&ax.user.presence.send({show:this.get("show"),status:this.get("status_message")})})}getDisplayName(e){let{__:t}=iw,s=this.vcard?.get("fullname")||this.getNickname()||this.get("jid");return e?.context==="roster"?`${s} (${t("me")})`:s}getNickname(){return this.vcard?.get("nickname")||ax.settings.get("nickname")}async constructPresence(e={}){let t,{type:s,to:r}=e,{profile:i}=iw.state,o="string"==typeof e.status?e.status:this.get("status_message"),a=e.show||this.get("status"),l="subscribe"===s?i.getNickname():null,c=ax.settings.get("priority");gm&&(t=new Date).setSeconds(t.getSeconds()-gh);let d=gS` ${l?gS`${l}`:""} ${a?gS`${a}`:""} ${o?gS`${o}`:""} ${Number.isNaN(Number(c))?0:c} ${t?gS``:""} `;return await ax.hook("constructedPresence",null,d)}}let{Strophe:gA}=dh.env;gA.addNamespace("IDLE","urn:xmpp:idle:1"),dh.plugins.add("converse-status",{initialize(){ax.settings.extend({auto_away:0,auto_xa:0,csi_waiting_time:0,idle_presence_timeout:300,priority:0}),ax.promises.add(["statusInitialized"]);let e={XMPPStatus:gx,Profile:gx,onUserActivity:gg,onEverySecond:gv,sendCSI:g_,registerIntervalHandler:gy};Object.assign(iw,e),Object.assign(iw.exports,e),Object.assign(iw.api.user,fK),ax.settings.get("idle_presence_timeout")>0&&ax.listen.on("addClientFeatures",()=>ax.disco.own.features.add(gA.NS.IDLE)),ax.listen.on("presencesInitialized",e=>!e&&gy()),ax.listen.on("beforeTearDown",gb),ax.listen.on("clearSession",()=>{sR(iw)&&iw.state.profile&&(iw.state.profile.destroy(),delete iw.state.profile,Object.assign(iw,{profile:void 0}),ax.promises.add(["statusInitialized"]))}),ax.listen.on("connected",()=>gu(!1)),ax.listen.on("reconnected",()=>gu(!0))}});let{Strophe:gE}=dh.env,g$={contacts:{async get(e){await ax.waitUntil("rosterContactsFetched");let{roster:t}=iw.state,s=e=>t.get(gE.getBareJidFromJid(e));if(void 0===e)e=t.pluck("jid");else if("string"==typeof e)return s(e);return e.map(s)},async remove(e,t){await ax.waitUntil("rosterContactsFetched"),(await ax.contacts.get(e)).remove(t)},async add(e,t=!0,s=!0,r=""){if(!om(e?.jid))throw Error("api.contacts.add: Valid JID required");let{roster:i}=iw.state;return i.addContact(e,t,s,r)}}};dh.plugins.add("converse-roster",{dependencies:["converse-status"],initialize(){ax.settings.extend({allow_contact_requests:!0,auto_subscribe:!1,enable_roster_versioning:!0,show_self_in_roster:!0,synchronize_availability:!0}),ax.promises.add(["cachedRoster","roster","rosterContactsFetched","rosterInitialized","presencesInitialized"]),Object.assign(iw.api,g$),Object.assign(dd,{roster:{isUnsavedContact:mU}});let{__:e}=iw,t={HEADER_UNSAVED_CONTACTS:e("Unsaved contacts"),HEADER_CURRENT_CONTACTS:e("My contacts"),HEADER_PENDING_CONTACTS:e("Pending contacts"),HEADER_REQUESTING_CONTACTS:e("Contact requests"),HEADER_UNGROUPED:e("Ungrouped"),HEADER_UNREAD:e("New messages")};Object.assign(iw,t),Object.assign(iw.labels,t);let s={Presence:gn,Presences:ga,RosterContact:f0,RosterContacts:f9};Object.assign(iw,s),Object.assign(iw.exports,s),ax.listen.on("beforeTearDown",()=>mO()),ax.listen.on("chatBoxesInitialized",mL),ax.listen.on("clearSession",mI),ax.listen.on("presencesInitialized",mR),ax.listen.on("statusInitialized",mD),ax.listen.on("streamResumptionFailed",()=>iw.session.set("roster_cached",!1)),ax.waitUntil("rosterContactsFetched").then(mz)}});let{Strophe:gk,u:gC,stx:gT}=dh.env;function gM(){return(!ax.connection.isType("bosh")||!!sO())&&ax.disco.stream.getFeature("sm",gk.NS.SM)}function gO(e){if(!iw.session.get("smacks_enabled"))return!0;let t=parseInt(e.getAttribute("h"),10),s=iw.session.get("num_stanzas_handled_by_server"),r=t-s;if(r<0){let e=`New reported stanza count lower than previous. New: ${t} - Previous: ${s}`;Q.error(e)}let i=iw.session.get("unacked_stanzas");if(r>i.length){let e=`Higher reported acknowledge count than unacknowledged stanzas. Reported Acknowledged Count: ${r} -Unacknowledged Stanza Count: ${i.length} -New: ${t} - Previous: ${s}`;Q.error(e)}return iw.session.save({num_stanzas_handled_by_server:t,num_stanzas_since_last_ack:0,unacked_stanzas:i.slice(r)}),!0}function gN(){if(iw.session.get("smacks_enabled")){let e=iw.session.get("num_stanzas_handled"),t=gT``;ax.send(t)}return!0}function gI(e){if(iw.session.get("smacks_enabled")&&(gC.isTagEqual(e,"iq")||gC.isTagEqual(e,"presence")||gC.isTagEqual(e,"message"))){let e=iw.session.get("num_stanzas_handled");iw.session.save("num_stanzas_handled",e+1)}return!0}function gR(){let{session:e}=iw;e.save({smacks_enabled:iw.session.get("smacks_enabled")||!1,num_stanzas_handled:iw.session.get("num_stanzas_handled")||0,num_stanzas_handled_by_server:iw.session.get("num_stanzas_handled_by_server")||0,num_stanzas_since_last_ack:iw.session.get("num_stanzas_since_last_ack")||0,unacked_stanzas:iw.session.get("unacked_stanzas")||[]})}function gD(){let{session:e}=iw;gC.safeSave(e,{smacks_enabled:!1,num_stanzas_handled:0,num_stanzas_handled_by_server:0,num_stanzas_since_last_ack:0,unacked_stanzas:[]})}function gL(e){let t={smacks_enabled:!0};return["1","true"].includes(e.getAttribute("resume"))&&(t.smacks_stream_id=e.getAttribute("id")),iw.session.save(t),!0}function gz(e){return gD(),ax.trigger("streamResumptionFailed"),e.querySelector("item-not-found")?Q.warn("Could not resume previous SMACKS session, session id not found. A new session will be established."):(Q.error("Failed to enable stream management"),Q.error(e.outerHTML),ax.connection.get()._changeConnectStatus(gk.Status.DISCONNECTED,null)),!0}async function gP(){let e=er(),t=ax.connection.get();t._addSysHandler(t=>{let s,r;return e.resolve((gL(t),gO(t),s=iw.session.get("unacked_stanzas"),iw.session.save("unacked_stanzas",[]),s.forEach(e=>ax.send(gC.toStanza(e))),void((r=ax.connection.get()).do_bind=!1,r.authenticated=!0,r.restored=!0,r._changeConnectStatus(gk.Status.CONNECTED,null))))},gk.NS.SM,"resumed"),t._addSysHandler(t=>e.resolve(gz(t)),gk.NS.SM,"failed");let s=iw.session.get("smacks_stream_id"),r=iw.session.get("num_stanzas_handled"),i=gT``;ax.send(i),t.flush(),await e}async function gU(){if(!(!ax.settings.get("enable_smacks")||iw.session.get("smacks_enabled"))&&await gM()){let e=er(),t=ax.connection.get();t._addSysHandler(t=>e.resolve(gL(t)),gk.NS.SM,"enabled"),t._addSysHandler(t=>e.resolve(gz(t)),gk.NS.SM,"failed");let s=ax.connection.isType("websocket")||sO(),r=gT``;ax.send(r),t.flush(),await e}}let gB=[];async function gF(){if(!ax.settings.get("enable_smacks")||!await gM())return;let e=ax.connection.get();for(;gB.length;)e.deleteHandler(gB.pop());gB.push(e.addHandler(gI)),gB.push(e.addHandler(gN,gk.NS.SM,"r")),gB.push(e.addHandler(gO,gk.NS.SM,"a"));let{session:t}=iw;t?.get("smacks_stream_id")?await gP():gD()}function gq(e){if(!iw.session)return void Q.warn("No _converse.session!");if(iw.session.get("smacks_enabled")&&(gC.isTagEqual(e,"iq")||gC.isTagEqual(e,"presence")||gC.isTagEqual(e,"message"))){let t=gk.serialize(e);iw.session.save("unacked_stanzas",(iw.session.get("unacked_stanzas")||[]).concat([t]));let s=ax.settings.get("smacks_max_unacked_stanzas");if(s>0){let e=iw.session.get("num_stanzas_since_last_ack")+1;e%s==0&&ax.send(gT``),iw.session.save({num_stanzas_since_last_ack:e})}}}let{Strophe:gH}=dh.env;gH.addNamespace("SM","urn:xmpp:sm:3"),dh.plugins.add("converse-smacks",{initialize(){ax.settings.extend({enable_smacks:!0,smacks_max_unacked_stanzas:5}),ax.listen.on("afterResourceBinding",gU),ax.listen.on("beforeResourceBinding",gF),ax.listen.on("send",gq),ax.listen.on("userSessionInitialized",gR)}});class gG extends es.Model{constructor(e,t){super(e,t),this._vcard=null}initialize(e,t){this.lazy_load=ax.settings.get("lazy_load_vcards")&&!!t?.lazy_load,this.lazy_load?this.once("visibilityChanged",()=>ax.vcard.update(this)):ax.vcard.update(this)}get idAttribute(){return"jid"}getDisplayName(){return this.get("nickname")||this.get("fullname")||this.get("jid")}}let gW=gG;class gZ extends es.Collection{constructor(){super(),this.model=gW}async initialize(){let{session:e}=iw,t=e.get("bare_jid");ou(this,`${t}-converse.vcards`),await this.fetchVCards(),ax.trigger("VCardsInitialized")}fetchVCards(){let e=er();return this.fetch({success:()=>e.resolve(),error:()=>e.resolve()}),e}}let gV=gZ,{Strophe:gQ,dayjs:gK,u:gJ,stx:gY}=dh.env,gX={vcard:{async set(e,t){let s;if(!e)throw Error("No jid provided for the VCard data");ax.waitUntil("VCardsInitialized");let r=iw.state.vcards.get(e),i=r?.attributes??null;if(r&&i.image!==t.image){let e=gJ.base64ToArrayBuffer(t.image),s=await crypto.subtle.digest("SHA-1",e);r.save({image:t.image,image_type:t.image_type,image_hash:gJ.arrayBufferToHex(s)})}let o=gY` ${t.fn??""} ${t.nickname??""} ${t.url??""} ${t.role??""} ${t.email??""} ${t.image_type??""} ${t.image??""} `;try{s=await ax.sendIQ(d1("set",e,o))}catch(e){throw i&&r.save(i),e}if(r=await ax.vcard.update(e,!0),gJ.isOwnJID(e)){let e=gY` ${r.get("image_hash")??""} `;ax.user.presence.send({},e)}return s},async get(e,t){if(ax.waitUntil("VCardsInitialized"),"string"==typeof e)return d3(e);let s=e.get("vcard_error");if(s){let{random:e,round:r}=Math,i=r(e()),o=gK().subtract(21,"days").subtract(r(24*e())*i,"hours").add(r(24*e())*!i,"hours"),a=gK(s).isAfter(o);if(!t&&a)return null}let r=e.get("vcard_updated");if(r){let{random:e,round:s}=Math,i=s(e()),o=gK().subtract(7,"days").subtract(s(24*e())*i,"hours").add(s(24*e())*!i,"hours"),a=gK(r).isAfter(o);if(!t&&a)return null}let i=e.get("jid");return i?d3(i):(Q.error("No JID to get vcard for"),null)},async update(e,t){ax.waitUntil("VCardsInitialized");let s=await this.get(e,t);return null===s?void Q.debug("api.vcard.update: null data returned, not updating the vcard"):(e="string"==typeof e?iw.state.vcards.get(e):e)?(Object.keys(s).length&&(delete s.stanza,gJ.safeSave(e,s)),e):void Q.error(`Could not find a VCard model for ${e}`)}}},{Strophe:g1}=dh.env;dh.plugins.add("converse-vcard",{dependencies:["converse-status","converse-roster"],enabled:()=>!ax.settings.get("blacklisted_plugins")?.includes("converse-vcard"),initialize(){ax.settings.extend({lazy_load_vcards:!0}),ax.promises.add("VCardsInitialized"),Object.assign(iw.api,gX);let e={VCard:gW,VCards:gV};Object.assign(iw,e),Object.assign(iw.exports,e),ax.listen.on("chatRoomInitialized",e=>{e.listenTo(e.occupants,"change:image_hash",e=>{let t,s;return t=e.get("image_hash"),s=[],void(e.get("jid")&&s.push(iw.state.vcards.get(e.get("jid"))),s.push(iw.state.vcards.get(e.get("from"))),s.forEach(e=>t&&e&&e?.get("image_hash")!==t&&ax.vcard.update(e,!0)))})}),ax.listen.on("addClientFeatures",()=>{ax.disco.own.features.add(g1.NS.VCARD),ax.disco.own.features.add(g1.NS.VCARD_UPDATE)}),ax.listen.on("clearSession",()=>void(sR(iw)&&(ax.promises.add("VCardsInitialized"),iw.state.vcards&&(iw.state.vcards.clearStore(),Object.assign(iw,{vcards:void 0}),delete iw.state.vcards)))),ax.listen.on("visibilityChanged",({el:e})=>{let{model:t}=e;t?.vcard&&t.vcard.trigger("visibilityChanged")}),ax.listen.on("connected",()=>{let e=new iw.exports.VCards;iw.state.vcards=e,Object.assign(iw,{vcards:e})}),ax.listen.on("presencesInitialized",()=>void(l=ax.connection.get().addHandler(e=>{try{d6(e)}catch(e){Q.error(e)}return!0},null,"presence",null))),ax.listen.on("beforeTearDown",()=>void(l&&(ax.connection.get().deleteHandler(l),l=null))),ax.listen.on("constructedPresence",(e,t)=>(function(e){if(0===dY(`x[xmlns=${dK.NS.VCARD_UPDATE}"]`,e.root()).length){let t=dX``;e.root().cnode(t).up()}return e})(t))}}),F().extend(H()),F().extend(W());let g0=Object.assign({},x,P,U);Object.assign(iw.constants,g0),window.converse=dh;let g2=dh})(),a.ku,a.rp,a.xg,a.Ib,a.rW,a.FE,a.AS,a.UV,a.ZV,a.uv;var l=a.h5,c=a.vp,d=a.cX,u=a.XB,h=(a.zc,a.KY,a.GB),m=a.lf,p=(a.v0,a.Vm,a.Hn),f=(a.pS,a.zA,a.ct,a.NZ),g=a.Dn,v=(a.MW,a.ax),_=(a.Rn,a._W,a.sS,a.Tk),y=a.hi,b=a._G,w=a.Qr,j=(a.ZP,a.R0),S=a.ag,x=a.cM,A=a.fQ,E=a.u},"./src/index.js":function(e,t,s){"use strict";let r,i,o,a;s.r(t),s.d(t,{default:()=>pi});var l,c={};s.r(c),s.d(c,{addClass:()=>tv,ancestor:()=>tb,default:()=>t$,getFileName:()=>tp,getHyperlinkTemplate:()=>tw,getNameAndValue:()=>tm,getOuterWidth:()=>tA,getRootElement:()=>tE,hasClass:()=>tg,removeClass:()=>t_,removeElement:()=>ty,slideIn:()=>tS,slideOut:()=>tj,xFormField2TemplateResult:()=>tx});var d={};s.r(d),s.d(d,{afterMain:()=>tJ,afterRead:()=>tV,afterWrite:()=>t1,applyStyles:()=>t5,arrow:()=>sv,auto:()=>tD,basePlacements:()=>tL,beforeMain:()=>tQ,beforeRead:()=>tW,beforeWrite:()=>tY,bottom:()=>tN,clippingParents:()=>tU,computeStyles:()=>sw,createPopper:()=>sZ,createPopperBase:()=>sW,createPopperLite:()=>sV,detectOverflow:()=>sR,end:()=>tP,eventListeners:()=>sS,flip:()=>sD,hide:()=>sP,left:()=>tR,main:()=>tK,modifierPhases:()=>t0,offset:()=>sU,placements:()=>tG,popper:()=>tF,popperGenerator:()=>sG,popperOffsets:()=>sB,preventOverflow:()=>sF,read:()=>tZ,reference:()=>tq,right:()=>tI,start:()=>tz,top:()=>tO,variationPlacements:()=>tH,viewport:()=>tB,write:()=>tX});var u={};s.r(u),s.d(u,{getAuthorStyle:()=>iq});var h={};s.r(h),s.d(h,{MIMETYPES_MAP:()=>iW,compressImage:()=>iV,isImageWithAlphaChannel:()=>iZ});var m={};s.r(m),s.d(m,{filterQueryParamsFromURL:()=>iX,isDomainAllowed:()=>iK,isDomainWhitelisted:()=>iQ,isMediaURLDomainAllowed:()=>iJ,shouldRenderMediaFromURL:()=>iY});var p=s("./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"),f=s.n(p),g=s("./node_modules/style-loader/dist/runtime/styleDomAPI.js"),v=s.n(g),_=s("./node_modules/style-loader/dist/runtime/insertBySelector.js"),y=s.n(_),b=s("./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"),w=s.n(b),j=s("./node_modules/style-loader/dist/runtime/insertStyleElement.js"),S=s.n(j),x=s("./node_modules/style-loader/dist/runtime/styleTagTransform.js"),A=s.n(x),E=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/styles/index.scss"),$={};$.styleTagTransform=A(),$.setAttributes=w(),$.insert=y().bind(null,"head"),$.domAPI=v(),$.insertStyleElement=S(),f()(E.Z,$),E.Z&&E.Z.locals&&E.Z.locals;var k=s("./node_modules/jed/jed.js"),C=s.n(k),T=s("./src/headless/dist/converse-headless.esm.js");let{dayjs:M}=T.Qr.env,O="en";function N(e,t){let s;if("en"===e||t(e))return e;let{languages:r}=window.navigator;for(let e=0;eM.locale(e))),new(C())(r)}async function R(){try{let e=T.hi.settings.get("i18n"),t=T.hi.settings.get("locales");O=N(e,e=>t.includes(e)),r=await I()}catch(e){T.cM.fatal(e.message),O="en"}}function D(e,...t){return L.translate(e,t)}let L=Object.assign(T.ag,{__:D,determineLocale:N,getLocale:function(){return O},initialize:R,translate:function(e,t){if(!r)return C().sprintf.apply(C(),arguments);let s=r.translate(e);return arguments.length>1?s.fetch.apply(s,t):s.fetch()}}),z={};Object.assign(T.hi,{elements:{registry:z,define(e,t){this.registry[e]=t},register(){Object.keys(z).forEach(e=>{customElements.get(e)||customElements.define(e,z[e])})}}});let P=globalThis,U=P.ShadowRoot&&(void 0===P.ShadyCSS||P.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,B=Symbol(),F=new WeakMap;class q{constructor(e,t,s){if(this._$cssResult$=!0,s!==B)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o,t=this.t;if(U&&void 0===e){let s=void 0!==t&&1===t.length;s&&(e=F.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),s&&F.set(t,e))}return e}toString(){return this.cssText}}let H=U?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t,s="";for(let t of e.cssRules)s+=t.cssText;return new q("string"==typeof(t=s)?t:t+"",void 0,B)})(e):e,{is:G,defineProperty:W,getOwnPropertyDescriptor:Z,getOwnPropertyNames:V,getOwnPropertySymbols:Q,getPrototypeOf:K}=Object,J=globalThis,Y=J.trustedTypes,X=Y?Y.emptyScript:"",ee=J.reactiveElementPolyfillSupport,et={toAttribute(e,t){switch(t){case Boolean:e=e?X:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let s=e;switch(t){case Boolean:s=null!==e;break;case Number:s=null===e?null:Number(e);break;case Object:case Array:try{s=JSON.parse(e)}catch(e){s=null}}return s}},es=(e,t)=>!G(e,t),er={attribute:!0,type:String,converter:et,reflect:!1,useDefault:!1,hasChanged:es};Symbol.metadata??=Symbol("metadata"),J.litPropertyMetadata??=new WeakMap;class ei extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=er){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){let s=Symbol(),r=this.getPropertyDescriptor(e,s,t);void 0!==r&&W(this.prototype,e,r)}}static getPropertyDescriptor(e,t,s){let{get:r,set:i}=Z(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get:r,set(t){let o=r?.call(this);i?.call(this,t),this.requestUpdate(e,o,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??er}static _$Ei(){if(this.hasOwnProperty("elementProperties"))return;let e=K(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty("finalized"))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty("properties")){let e=this.properties;for(let t of[...V(e),...Q(e)])this.createProperty(t,e[t])}let e=this[Symbol.metadata];if(null!==e){let t=litPropertyMetadata.get(e);if(void 0!==t)for(let[e,s]of t)this.elementProperties.set(e,s)}for(let[e,t]of(this._$Eh=new Map,this.elementProperties)){let s=this._$Eu(e,t);void 0!==s&&this._$Eh.set(s,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){let t=[];if(Array.isArray(e))for(let s of new Set(e.flat(1/0).reverse()))t.unshift(H(s));else void 0!==e&&t.push(H(e));return t}static _$Eu(e,t){let s=t.attribute;return!1===s?void 0:"string"==typeof s?s:"string"==typeof e?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(e=>e(this))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){let e=new Map;for(let t of this.constructor.elementProperties.keys())this.hasOwnProperty(t)&&(e.set(t,this[t]),delete this[t]);e.size>0&&(this._$Ep=e)}createRenderRoot(){let e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return((e,t)=>{if(U)e.adoptedStyleSheets=t.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(let s of t){let t=document.createElement("style"),r=P.litNonce;void 0!==r&&t.setAttribute("nonce",r),t.textContent=s.cssText,e.appendChild(t)}})(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(e=>e.hostConnected?.())}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach(e=>e.hostDisconnected?.())}attributeChangedCallback(e,t,s){this._$AK(e,s)}_$ET(e,t){let s=this.constructor.elementProperties.get(e),r=this.constructor._$Eu(e,s);if(void 0!==r&&!0===s.reflect){let i=(void 0!==s.converter?.toAttribute?s.converter:et).toAttribute(t,s.type);this._$Em=e,null==i?this.removeAttribute(r):this.setAttribute(r,i),this._$Em=null}}_$AK(e,t){let s=this.constructor,r=s._$Eh.get(e);if(void 0!==r&&this._$Em!==r){let e=s.getPropertyOptions(r),i="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:et;this._$Em=r;let o=i.fromAttribute(t,e.type);this[r]=o??this._$Ej?.get(r)??o,this._$Em=null}}requestUpdate(e,t,s){if(void 0!==e){let r=this.constructor,i=this[e];if(!(((s??=r.getPropertyOptions(e)).hasChanged??es)(i,t)||s.useDefault&&s.reflect&&i===this._$Ej?.get(e)&&!this.hasAttribute(r._$Eu(e,s))))return;this.C(e,t,s)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(e,t,{useDefault:s,reflect:r,wrapped:i},o){s&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,o??t??this[e]),!0!==i||void 0!==o)||(this._$AL.has(e)||(this.hasUpdated||s||(t=void 0),this._$AL.set(e,t)),!0===r&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}let e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}let e=this.constructor.elementProperties;if(e.size>0)for(let[t,s]of e){let{wrapped:e}=s,r=this[t];!0!==e||this._$AL.has(t)||void 0===r||this.C(t,void 0,s,r)}}let e=!1,t=this._$AL;try{(e=this.shouldUpdate(t))?(this.willUpdate(t),this._$EO?.forEach(e=>e.hostUpdate?.()),this.update(t)):this._$EM()}catch(t){throw e=!1,this._$EM(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(e){}firstUpdated(e){}}ei.elementStyles=[],ei.shadowRootOptions={mode:"open"},ei.elementProperties=new Map,ei.finalized=new Map,ee?.({ReactiveElement:ei}),(J.reactiveElementVersions??=[]).push("2.1.1");let en=globalThis,eo=en.trustedTypes,ea=eo?eo.createPolicy("lit-html",{createHTML:e=>e}):void 0,el="$lit$",ec=`lit$${Math.random().toFixed(9).slice(2)}$`,ed="?"+ec,eu=`<${ed}>`,eh=document,em=()=>eh.createComment(""),ep=e=>null===e||"object"!=typeof e&&"function"!=typeof e,ef=Array.isArray,eg=e=>ef(e)||"function"==typeof e?.[Symbol.iterator],ev="[ \n\f\r]",e_=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,ey=/-->/g,eb=/>/g,ew=RegExp(`>|${ev}(?:([^\\s"'>=/]+)(${ev}*=${ev}*(?:[^ \f\r"'\`<>=]|("|')|))|$)`,"g"),ej=/'/g,eS=/"/g,ex=/^(?:script|style|textarea|title)$/i,eA=e=>(t,...s)=>({_$litType$:e,strings:t,values:s}),eE=eA(1),e$=eA(2),ek=(eA(3),Symbol.for("lit-noChange")),eC=Symbol.for("lit-nothing"),eT=new WeakMap,eM=eh.createTreeWalker(eh,129);function eO(e,t){if(!ef(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==ea?ea.createHTML(t):t}let eN=(e,t)=>{let s=e.length-1,r=[],i,o=2===t?"":3===t?"":"",a=e_;for(let t=0;t"===c[0]?(a=i??e_,d=-1):void 0===c[1]?d=-2:(d=a.lastIndex-c[2].length,l=c[1],a=void 0===c[3]?ew:'"'===c[3]?eS:ej):a===eS||a===ej?a=ew:a===ey||a===eb?a=e_:(a=ew,i=void 0);let h=a===ew&&e[t+1].startsWith("/>")?" ":"";o+=a===e_?s+eu:d>=0?(r.push(l),s.slice(0,d)+el+s.slice(d)+ec+h):s+ec+(-2===d?t:h)}return[eO(e,o+(e[s]||"")+(2===t?"":3===t?"":"")),r]};class eI{constructor({strings:e,_$litType$:t},s){let r;this.parts=[];let i=0,o=0,a=e.length-1,l=this.parts,[c,d]=eN(e,t);if(this.el=eI.createElement(c,s),eM.currentNode=this.el.content,2===t||3===t){let e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(r=eM.nextNode())&&l.length0){r.textContent=eo?eo.emptyScript:"";for(let s=0;s2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=eC}_$AI(e,t=this,s,r){let i=this.strings,o=!1;if(void 0===i)(o=!ep(e=eR(this,e,t,0))||e!==this._$AH&&e!==ek)&&(this._$AH=e);else{let r,a,l=e;for(e=i[0],r=0;r{let r=s?.renderBefore??t,i=r._$litPart$;if(void 0===i){let e=s?.renderBefore??null;r._$litPart$=i=new eL(t.insertBefore(em(),e),e,void 0,s??{})}return i._$AI(e),i},eG=globalThis;class eW extends ei{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){let t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=eH(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return ek}}eW._$litElement$=!0,eW.finalized=!0,eG.litElementHydrateSupport?.({LitElement:eW});let eZ=eG.litElementPolyfillSupport;eZ?.({LitElement:eW}),(eG.litElementVersions??=[]).push("4.2.1");class eV extends(0,T.vp)(eW){constructor(){super()}createRenderRoot(){return this}initialize(){return null}connectedCallback(){return super.connectedCallback(),this.initialize()}disconnectedCallback(){super.disconnectedCallback(),this.stopListening()}}T.hi.elements.define("converse-logo",class extends eV{render(){return"overlayed"===T.hi.settings.get("view_mode")?eE``:eE``}}),T.hi.elements.define("converse-brand-logo",class extends eV{static get properties(){return{hide_byline:{type:Boolean}}}constructor(){super(),this.hide_byline=!1}render(){let e="fullscreen"===T.hi.settings.get("view_mode");return eE`converse.js ${e&&!this.hide_byline?eE``:""}`}}),T.hi.elements.define("converse-brand-heading",class extends eV{render(){return eE``}});let{I:eQ}={M:el,P:ec,A:ed,C:1,L:eN,R:eD,D:eg,V:eR,I:eL,H:ez,N:eU,U:eB,B:eP,F:eF},eK=()=>document.createComment(""),eJ=(e,t,s)=>{let r=e._$AA.parentNode,i=void 0===t?e._$AB:t._$AA;if(void 0===s)s=new eQ(r.insertBefore(eK(),i),r.insertBefore(eK(),i),e,e.options);else{let t=s._$AB.nextSibling,o=s._$AM,a=o!==e;if(a){let t;s._$AQ?.(e),s._$AM=e,void 0!==s._$AP&&(t=e._$AU)!==o._$AU&&s._$AP(t)}if(t!==i||a){let e=s._$AA;for(;e!==t;){let t=e.nextSibling;r.insertBefore(e,i),e=t}}}return s},eY=(e,t,s=e)=>(e._$AI(t,s),e),eX={},e1=e=>{e._$AR(),e._$AA.remove()},e0=e=>(...t)=>({_$litDirective$:e,values:t});class e2{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,s){this._$Ct=e,this._$AM=t,this._$Ci=s}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}let e4=(e,t)=>{let s=e._$AN;if(void 0===s)return!1;for(let e of s)e._$AO?.(t,!1),e4(e,t);return!0},e3=e=>{let t,s;do{if(void 0===(t=e._$AM))break;(s=t._$AN).delete(e),e=t}while(0===s?.size)},e6=e=>{for(let t;t=e._$AM;e=t){let s=t._$AN;if(void 0===s)t._$AN=s=new Set;else if(s.has(e))break;s.add(e),e9(t)}};function e8(e){void 0!==this._$AN?(e3(this),this._$AM=e,e6(this)):this._$AM=e}function e5(e,t=!1,s=0){let r=this._$AH,i=this._$AN;if(void 0!==i&&0!==i.size)if(t)if(Array.isArray(r))for(let e=s;e{2==e.type&&(e._$AP??=e5,e._$AQ??=e8)};class e7 extends e2{constructor(){super(...arguments),this._$AN=void 0}_$AT(e,t,s){super._$AT(e,t,s),e6(this),this.isConnected=e._$AU}_$AO(e,t=!0){e!==this.isConnected&&(this.isConnected=e,e?this.reconnected?.():this.disconnected?.()),t&&(e4(this,e),e3(this))}setValue(e){if(void 0===this._$Ct.strings)this._$Ct._$AI(e,this);else{let t=[...this._$Ct._$AH];t[this._$Ci]=e,this._$Ct._$AI(t,this,0)}}disconnected(){}reconnected(){}}class te{constructor(e){this.G=e}disconnect(){this.G=void 0}reconnect(e){this.G=e}deref(){return this.G}}class tt{constructor(){this.Y=void 0,this.Z=void 0}get(){return this.Y}pause(){this.Y??=new Promise(e=>this.Z=e)}resume(){this.Z?.(),this.Y=this.Z=void 0}}let ts=e=>null!==e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof e.then,tr=e0(class extends e7{constructor(){super(...arguments),this._$Cwt=0x3fffffff,this._$Cbt=[],this._$CK=new te(this),this._$CX=new tt}render(...e){return e.find(e=>!ts(e))??ek}update(e,t){let s=this._$Cbt,r=s.length;this._$Cbt=t;let i=this._$CK,o=this._$CX;this.isConnected||this.disconnected();for(let e=0;ethis._$Cwt);e++){let a=t[e];if(!ts(a))return this._$Cwt=e,a;e{for(;o.get();)await o.get();let t=i.deref();if(void 0!==t){let s=t._$Cbt.indexOf(a);s>-1&&seE`
${"hidden"!==e.type?eE``:""} ${"password"===e.type&&e.fixed_username?eE``:""}
`,tn=e=>eE`
`,to=e=>eE`
${"hidden"!==e.type?eE``:""}
${e.domain?eE`
${e.domain}
`:""}
`;function ta(e){e.preventDefault(),T.hi.rooms.open(e.target.href)}let{sizzle:tl,dayjs:tc}=T.Qr.env,{isValidURL:td}=T.u,tu=["http:","https:","xmpp:","mailto:"];function th(e,t){return({"muc#roomconfig_lang":"language","muc#roomconfig_roomsecret":t?.new_password?"new-password":"current-password"})[e]}function tm(e){let t=e.getAttribute("name");return t?{name:t,value:"checkbox"===e.getAttribute("type")?e.checked&&1||0:"TEXTAREA"==e.tagName?e.value.split("\n").filter(e=>e.trim()):"SELECT"==e.tagName?T.u.getSelectValues(e):e.value}:null}function tp(e){try{let t=T.u.getURL(e);return decodeURI(t.pathname.split("/").pop())}catch(t){return T.cM.debug(t),e}}function tf(e){return Array.from(e.children).reduce((e,t)=>t instanceof HTMLElement?e+t.offsetHeight:e,0)}function tg(e,t){return t instanceof Element&&t.classList.contains(e)}function tv(e,t){return t instanceof Element&&t.classList.add(e),t}function t_(e,t){return t instanceof Element&&t.classList.remove(e),t}function ty(e){return e instanceof Element&&e.parentNode&&e.parentNode.removeChild(e),e}function tb(e,t){let s=e;for(;null!==s&&!tl.matchesSelector(s,t);)s=s.parentElement;return s}function tw(e){let t=RegExp("^w{3}.","ig").test(e)?`http://${e}`:e;try{let s=T.u.getURL(t);if(function(e,t=tu){return!!t.includes(e)}(s.protocol))return"xmpp:"===s.protocol&&null!=s.searchParams.get("join")?eE`${e}`:eE`${e}`;return e}catch(e){T.cM.debug(e)}}function tj(e,t=200){return new Promise((s,r)=>{if(!e){let e="An element needs to be passed in to slideOut";T.cM.warn(e),r(Error(e));return}let i=e.getAttribute("data-slider-marker");i&&!Number.isNaN(Number(i))&&(e.removeAttribute("data-slider-marker"),cancelAnimationFrame(Number(i)));let o=tf(e);if(T.hi.settings.get("disable_effects")){e.style.height=o+"px",e.removeAttribute("data-slider-marker"),e.classList.remove("collapsed"),e.style.overflow="",e.style.height="",s();return}if(!tg("collapsed",e)&&!tg("hidden",e))return void s();let a=t/17,l=0;e.style.height="0",e.style.overflow="hidden",e.classList.remove("hidden"),e.classList.remove("collapsed"),e.setAttribute("data-slider-marker",requestAnimationFrame(function t(){(l+=o/a){if(e){if(tg("collapsed",e))return s(e);else if(T.hi.settings.get("disable_effects"))return e.classList.add("collapsed"),e.style.height="",s(e)}else{let e="An element needs to be passed in to slideIn";return T.cM.warn(e),r(Error(e))}let i=e.getAttribute("data-slider-marker");i&&!Number.isNaN(Number(i))&&(e.removeAttribute("data-slider-marker"),cancelAnimationFrame(Number(i)));let o=e.offsetHeight,a=t/17,l=o;e.style.overflow="hidden",e.setAttribute("data-slider-marker",requestAnimationFrame(function t(){(l-=o/a)>0?(e.style.height=l+"px",e.setAttribute("data-slider-marker",requestAnimationFrame(t).toString())):(e.removeAttribute("data-slider-marker"),e.classList.add("collapsed"),e.style.height="",s(e))}).toString())})}function tx(e,t={}){let s={id:T.u.getUniqueId(),name:e.var};if("list-single"===e.type||"list-multi"===e.type){let t;return t={...s,...e,multiple:"list-multi"===e.type},eE`
`}if("fixed"===e.type)return eE`

${e.text}

`;if("jid-multi"===e.type){var r={...s,...e};let t=T.u.getUniqueId();return eE`
`}if("boolean"===e.type){let t;return t={...s,...e},eE`
`}if("username"===e.var)return to({...s,domain:t.domain?" @"+t.domain:"",...e});else if("password"===e.var)return ti({...s,...e,autocomplete:th(e.var,t),fixed_username:t?.fixed_username,type:"password"});else if("ocr"===e.var){let t;return t={...s,...e,data:e.uri.data,type:e.uri.type},eE`
${t.label?eE``:""}
`}else{let r;if("hidden"!==e.type&&("url"===e.var||"uri"===e.var||td(e.value)))return tn(e);if("datetime"!==e.type&&"date"!==e.type)return ti({...s,...e,autocomplete:th(e.var,t),placeholder:null});let i=e.value?tc(e.value):null,o=i?.isValid()?"datetime"===e.type?i.format("YYYY-MM-DDTHH:mm:ss"):i.format("YYYY-MM-DD"):null;return r={...s,...e,value:o},eE`
`}}function tA(e,t=!1){let s=e.offsetWidth;if(!t)return s;let r=window.getComputedStyle(e);return s+(parseInt(r.marginLeft?r.marginLeft:"0",10)+parseInt(r.marginRight?r.marginRight:"0",10))}function tE(){return i||(i=document.querySelector("converse-root")||document.createElement("converse-root")),i}Object.assign(T.u,{addClass:tv,ancestor:tb,calculateElementHeight:tf,escapeHTML:function(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")},getElementFromTemplateResult:function(e){let t=document.createElement("div");return eH(e,t),t.firstElementChild},getNextElement:function(e,t="*"){let s=e.nextElementSibling;for(;null!==s&&!tl.matchesSelector(s,t);)s=s.nextElementSibling;return s},getOuterWidth:tA,getRootElement:tE,hasClass:tg,hideElement:function(e){return e instanceof Element&&e.classList.add("hidden"),e},isInDOM:function(e){return document.querySelector("body").contains(e)},isVisible:function(e){return!(null===e||tg("hidden",e))&&(e.offsetWidth>0||e.offsetHeight>0||e.getClientRects().length>0)},nextUntil:function(e,t){let s=[],r=e.nextElementSibling;for(;null!==r&&!r.matches(t);)s.push(r),r=r.nextElementSibling;return s},removeClass:t_,removeElement:ty,showElement:function(e){t_("collapsed",e),t_("hidden",e)},slideIn:tS,slideOut:tj,unescapeHTML:function(e){var t=document.createElement("div");return t.innerHTML=e,t.innerText},xFormField2TemplateResult:tx});let t$=T.u;function tk(e){let t=0;do isNaN(e.offsetTop)||(t+=e.offsetTop);while(e=e.offsetParent);return t}function tC(e){let t=0;do isNaN(e.offsetLeft)||(t+=e.offsetLeft);while(e=e.offsetParent);return t}let{keycodes:tT}=T.Qr;class tM{static get DIRECTION(){return{down:"down",end:"end",home:"home",left:"left",right:"right",up:"up"}}static get DEFAULTS(){return{home:[`${tT.SHIFT}${tT.UP_ARROW}`],end:[`${tT.SHIFT}${tT.DOWN_ARROW}`],up:[tT.UP_ARROW],down:[tT.DOWN_ARROW],left:[tT.LEFT_ARROW,`${tT.SHIFT}${tT.TAB}`],right:[tT.RIGHT_ARROW,tT.TAB],getSelector:null,jump_to_picked:null,jump_to_picked_direction:null,jump_to_picked_selector:"picked",onSelected:null,selected:"selected",selector:"li"}}static getClosestElement(e,t){return e.reduce((e,s)=>{let r=t(s);return rthis.keys[e]=tM.DIRECTION.down),this.options.end.forEach(e=>this.keys[e]=tM.DIRECTION.end),this.options.home.forEach(e=>this.keys[e]=tM.DIRECTION.home),this.options.left.forEach(e=>this.keys[e]=tM.DIRECTION.left),this.options.right.forEach(e=>this.keys[e]=tM.DIRECTION.right),this.options.up.forEach(e=>this.keys[e]=tM.DIRECTION.up)}enable(){this.getElements(),this.keydownHandler=e=>this.handleKeydown(e),t$.getRootElement().addEventListener("keydown",this.keydownHandler),this.enabled=!0}disable(){this.keydownHandler&&t$.getRootElement().removeEventListener("keydown",this.keydownHandler),this.unselect(),this.elements={},this.enabled=!1}destroy(){this.disable()}getNextElement(e){let t;if(e===tM.DIRECTION.home)t=this.getElements(e)[0];else if(e===tM.DIRECTION.end)t=Array.from(this.getElements(e)).pop();else if(this.selected)if(e===tM.DIRECTION.right){let s=this.getElements(e);t=s.slice(s.indexOf(this.selected))[1]}else if(e==tM.DIRECTION.left){let s=this.getElements(e);t=s.slice(0,s.indexOf(this.selected)).pop()||this.selected}else if(e==tM.DIRECTION.down){let e=this.selected.offsetLeft,s=this.selected.offsetTop+this.selected.offsetHeight,r=this.elementsAfter(0,s);t=tM.getClosestElement(r,t=>Math.abs(t.offsetLeft-e)+Math.abs(t.offsetTop-s))}else if(e==tM.DIRECTION.up){let e=this.selected.offsetLeft,s=this.selected.offsetTop-1,r=this.elementsBefore(1/0,s);t=tM.getClosestElement(r,t=>Math.abs(e-t.offsetLeft)+Math.abs(s-t.offsetTop))}else throw Error("getNextElement: invalid direction value");else t=e===tM.DIRECTION.right||e===tM.DIRECTION.down?this.getElements(e)[1]:this.getElements(e)[0];return this.options.jump_to_picked&&t&&t.matches(this.options.jump_to_picked)&&e===this.options.jump_to_picked_direction&&(t=this.container.querySelector(this.options.jump_to_picked_selector)||t),t}select(e,t){e&&e!==this.selected&&(this.unselect(),t&&this.scrollTo(e,t),e.matches("input")?e.focus():t$.addClass(this.options.selected,e),this.selected=e,this.options.onSelected&&this.options.onSelected(e))}unselect(){this.selected&&(t$.removeClass(this.options.selected,this.selected),delete this.selected)}scrollTo(e,t){if(this.inScrollContainerViewport(e)){if(!function(e){let t=e.getBoundingClientRect();return t.top>=0&&t.left>=0&&t.bottom<=window.innerHeight&&t.right<=window.innerWidth}(e))switch(t){case tM.DIRECTION.left:document.body.scrollLeft=tC(e)-document.body.offsetLeft;break;case tM.DIRECTION.up:document.body.scrollTop=tk(e)-document.body.offsetTop;break;case tM.DIRECTION.right:document.body.scrollLeft=tC(e)-document.body.offsetLeft-(document.documentElement.clientWidth-e.offsetWidth);break;case tM.DIRECTION.down:document.body.scrollTop=tk(e)-document.body.offsetTop-(document.documentElement.clientHeight-e.offsetHeight)}}else{let s=this.scroll_container;if(s.contains(e))switch(t){case tM.DIRECTION.left:s.scrollLeft=e.offsetLeft-s.offsetLeft,s.scrollTop=e.offsetTop-s.offsetTop;break;case tM.DIRECTION.up:s.scrollTop=e.offsetTop-s.offsetTop;break;case tM.DIRECTION.right:s.scrollLeft=e.offsetLeft-s.offsetLeft-(s.offsetWidth-e.offsetWidth),s.scrollTop=e.offsetTop-s.offsetTop-(s.offsetHeight-e.offsetHeight);break;case tM.DIRECTION.down:s.scrollTop=e.offsetTop-s.offsetTop-(s.offsetHeight-e.offsetHeight)}}}inScrollContainerViewport(e){let t=this.scroll_container;return!(e.offsetLeft-t.scrollLeftt.offsetLeft+t.offsetWidth)&&!(e.offsetTop+e.offsetHeight-t.scrollTop>t.offsetTop+t.offsetHeight)}getElements(e){let t=this.options.getSelector?this.options.getSelector(e):this.options.selector;return this.elements[t]||(this.elements[t]=Array.from(this.container.querySelectorAll(t))),this.elements[t]}elementsAfter(e,t){return this.getElements(tM.DIRECTION.down).filter(s=>s.offsetLeft>=e&&s.offsetTop>=t)}elementsBefore(e,t){return this.getElements(tM.DIRECTION.up).filter(s=>s.offsetLeft<=e&&s.offsetTop<=t)}handleKeydown(e){let t=e.shiftKey?this.keys[`${tT.SHIFT}${e.key}`]:this.keys[e.key];if(t){e.preventDefault(),e.stopPropagation();let s=this.getNextElement(t);this.select(s,t)}}}var tO="top",tN="bottom",tI="right",tR="left",tD="auto",tL=[tO,tN,tI,tR],tz="start",tP="end",tU="clippingParents",tB="viewport",tF="popper",tq="reference",tH=tL.reduce(function(e,t){return e.concat([t+"-"+tz,t+"-"+tP])},[]),tG=[].concat(tL,[tD]).reduce(function(e,t){return e.concat([t,t+"-"+tz,t+"-"+tP])},[]),tW="beforeRead",tZ="read",tV="afterRead",tQ="beforeMain",tK="main",tJ="afterMain",tY="beforeWrite",tX="write",t1="afterWrite",t0=[tW,tZ,tV,tQ,tK,tJ,tY,tX,t1];function t2(e){return e?(e.nodeName||"").toLowerCase():null}function t4(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function t3(e){var t=t4(e).Element;return e instanceof t||e instanceof Element}function t6(e){var t=t4(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function t8(e){if("undefined"==typeof ShadowRoot)return!1;var t=t4(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}let t5={name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach(function(e){var s=t.styles[e]||{},r=t.attributes[e]||{},i=t.elements[e];t6(i)&&t2(i)&&(Object.assign(i.style,s),Object.keys(r).forEach(function(e){var t=r[e];!1===t?i.removeAttribute(e):i.setAttribute(e,!0===t?"":t)}))})},effect:function(e){var t=e.state,s={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,s.popper),t.styles=s,t.elements.arrow&&Object.assign(t.elements.arrow.style,s.arrow),function(){Object.keys(t.elements).forEach(function(e){var r=t.elements[e],i=t.attributes[e]||{},o=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:s[e]).reduce(function(e,t){return e[t]="",e},{});t6(r)&&t2(r)&&(Object.assign(r.style,o),Object.keys(i).forEach(function(e){r.removeAttribute(e)}))})}},requires:["computeStyles"]};function t9(e){return e.split("-")[0]}var t7=Math.max,se=Math.min,st=Math.round;function ss(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(e){return e.brand+"/"+e.version}).join(" "):navigator.userAgent}function sr(){return!/^((?!chrome|android).)*safari/i.test(ss())}function si(e,t,s){void 0===t&&(t=!1),void 0===s&&(s=!1);var r=e.getBoundingClientRect(),i=1,o=1;t&&t6(e)&&(i=e.offsetWidth>0&&st(r.width)/e.offsetWidth||1,o=e.offsetHeight>0&&st(r.height)/e.offsetHeight||1);var a=(t3(e)?t4(e):window).visualViewport,l=!sr()&&s,c=(r.left+(l&&a?a.offsetLeft:0))/i,d=(r.top+(l&&a?a.offsetTop:0))/o,u=r.width/i,h=r.height/o;return{width:u,height:h,top:d,right:c+u,bottom:d+h,left:c,x:c,y:d}}function sn(e){var t=si(e),s=e.offsetWidth,r=e.offsetHeight;return 1>=Math.abs(t.width-s)&&(s=t.width),1>=Math.abs(t.height-r)&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:s,height:r}}function so(e,t){var s=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(s&&t8(s)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function sa(e){return t4(e).getComputedStyle(e)}function sl(e){return((t3(e)?e.ownerDocument:e.document)||window.document).documentElement}function sc(e){return"html"===t2(e)?e:e.assignedSlot||e.parentNode||(t8(e)?e.host:null)||sl(e)}function sd(e){return t6(e)&&"fixed"!==sa(e).position?e.offsetParent:null}function su(e){for(var t=t4(e),s=sd(e);s&&["table","td","th"].indexOf(t2(s))>=0&&"static"===sa(s).position;)s=sd(s);return s&&("html"===t2(s)||"body"===t2(s)&&"static"===sa(s).position)?t:s||function(e){var t=/firefox/i.test(ss());if(/Trident/i.test(ss())&&t6(e)&&"fixed"===sa(e).position)return null;var s=sc(e);for(t8(s)&&(s=s.host);t6(s)&&0>["html","body"].indexOf(t2(s));){var r=sa(s);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return s;s=s.parentNode}return null}(e)||t}function sh(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function sm(e,t,s){return t7(e,se(t,s))}function sp(){return{top:0,right:0,bottom:0,left:0}}function sf(e){return Object.assign({},sp(),e)}function sg(e,t){return t.reduce(function(t,s){return t[s]=e,t},{})}let sv={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,s=e.state,r=e.name,i=e.options,o=s.elements.arrow,a=s.modifiersData.popperOffsets,l=t9(s.placement),c=sh(l),d=[tR,tI].indexOf(l)>=0?"height":"width";if(o&&a){var u,h=(u=i.padding,sf("number"!=typeof(u="function"==typeof u?u(Object.assign({},s.rects,{placement:s.placement})):u)?u:sg(u,tL))),m=sn(o),p="y"===c?tO:tR,f="y"===c?tN:tI,g=s.rects.reference[d]+s.rects.reference[c]-a[c]-s.rects.popper[d],v=a[c]-s.rects.reference[c],_=su(o),y=_?"y"===c?_.clientHeight||0:_.clientWidth||0:0,b=h[p],w=y-m[d]-h[f],j=y/2-m[d]/2+(g/2-v/2),S=sm(b,j,w);s.modifiersData[r]=((t={})[c]=S,t.centerOffset=S-j,t)}},effect:function(e){var t=e.state,s=e.options.element,r=void 0===s?"[data-popper-arrow]":s;if(null!=r)("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&so(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function s_(e){return e.split("-")[1]}var sy={top:"auto",right:"auto",bottom:"auto",left:"auto"};function sb(e){var t,s,r,i,o,a,l,c=e.popper,d=e.popperRect,u=e.placement,h=e.variation,m=e.offsets,p=e.position,f=e.gpuAcceleration,g=e.adaptive,v=e.roundOffsets,_=e.isFixed,y=m.x,b=void 0===y?0:y,w=m.y,j=void 0===w?0:w,S="function"==typeof v?v({x:b,y:j}):{x:b,y:j};b=S.x,j=S.y;var x=m.hasOwnProperty("x"),A=m.hasOwnProperty("y"),E=tR,$=tO,k=window;if(g){var C=su(c),T="clientHeight",M="clientWidth";C===t4(c)&&"static"!==sa(C=sl(c)).position&&"absolute"===p&&(T="scrollHeight",M="scrollWidth"),(u===tO||(u===tR||u===tI)&&h===tP)&&($=tN,j-=(_&&C===k&&k.visualViewport?k.visualViewport.height:C[T])-d.height,j*=f?1:-1),(u===tR||(u===tO||u===tN)&&h===tP)&&(E=tI,b-=(_&&C===k&&k.visualViewport?k.visualViewport.width:C[M])-d.width,b*=f?1:-1)}var O=Object.assign({position:p},g&&sy),N=!0===v?(t={x:b,y:j},s=t4(c),r=t.x,i=t.y,{x:st(r*(o=s.devicePixelRatio||1))/o||0,y:st(i*o)/o||0}):{x:b,y:j};return(b=N.x,j=N.y,f)?Object.assign({},O,((l={})[$]=A?"0":"",l[E]=x?"0":"",l.transform=1>=(k.devicePixelRatio||1)?"translate("+b+"px, "+j+"px)":"translate3d("+b+"px, "+j+"px, 0)",l)):Object.assign({},O,((a={})[$]=A?j+"px":"",a[E]=x?b+"px":"",a.transform="",a))}let sw={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,s=e.options,r=s.gpuAcceleration,i=s.adaptive,o=s.roundOffsets,a=void 0===o||o,l={placement:t9(t.placement),variation:s_(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:void 0===r||r,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,sb(Object.assign({},l,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:void 0===i||i,roundOffsets:a})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,sb(Object.assign({},l,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:a})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}};var sj={passive:!0};let sS={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,s=e.instance,r=e.options,i=r.scroll,o=void 0===i||i,a=r.resize,l=void 0===a||a,c=t4(t.elements.popper),d=[].concat(t.scrollParents.reference,t.scrollParents.popper);return o&&d.forEach(function(e){e.addEventListener("scroll",s.update,sj)}),l&&c.addEventListener("resize",s.update,sj),function(){o&&d.forEach(function(e){e.removeEventListener("scroll",s.update,sj)}),l&&c.removeEventListener("resize",s.update,sj)}},data:{}};var sx={left:"right",right:"left",bottom:"top",top:"bottom"};function sA(e){return e.replace(/left|right|bottom|top/g,function(e){return sx[e]})}var sE={start:"end",end:"start"};function s$(e){return e.replace(/start|end/g,function(e){return sE[e]})}function sk(e){var t=t4(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function sC(e){return si(sl(e)).left+sk(e).scrollLeft}function sT(e){var t=sa(e),s=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(s+i+r)}function sM(e,t){void 0===t&&(t=[]);var s,r=function e(t){return["html","body","#document"].indexOf(t2(t))>=0?t.ownerDocument.body:t6(t)&&sT(t)?t:e(sc(t))}(e),i=r===(null==(s=e.ownerDocument)?void 0:s.body),o=t4(r),a=i?[o].concat(o.visualViewport||[],sT(r)?r:[]):r,l=t.concat(a);return i?l:l.concat(sM(sc(a)))}function sO(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function sN(e,t,s){var r,i,o,a,l,c,d,u,h,m;return t===tB?sO(function(e,t){var s=t4(e),r=sl(e),i=s.visualViewport,o=r.clientWidth,a=r.clientHeight,l=0,c=0;if(i){o=i.width,a=i.height;var d=sr();(d||!d&&"fixed"===t)&&(l=i.offsetLeft,c=i.offsetTop)}return{width:o,height:a,x:l+sC(e),y:c}}(e,s)):t3(t)?((r=si(t,!1,"fixed"===s)).top=r.top+t.clientTop,r.left=r.left+t.clientLeft,r.bottom=r.top+t.clientHeight,r.right=r.left+t.clientWidth,r.width=t.clientWidth,r.height=t.clientHeight,r.x=r.left,r.y=r.top,r):sO((i=sl(e),a=sl(i),l=sk(i),c=null==(o=i.ownerDocument)?void 0:o.body,d=t7(a.scrollWidth,a.clientWidth,c?c.scrollWidth:0,c?c.clientWidth:0),u=t7(a.scrollHeight,a.clientHeight,c?c.scrollHeight:0,c?c.clientHeight:0),h=-l.scrollLeft+sC(i),m=-l.scrollTop,"rtl"===sa(c||a).direction&&(h+=t7(a.clientWidth,c?c.clientWidth:0)-d),{width:d,height:u,x:h,y:m}))}function sI(e){var t,s=e.reference,r=e.element,i=e.placement,o=i?t9(i):null,a=i?s_(i):null,l=s.x+s.width/2-r.width/2,c=s.y+s.height/2-r.height/2;switch(o){case tO:t={x:l,y:s.y-r.height};break;case tN:t={x:l,y:s.y+s.height};break;case tI:t={x:s.x+s.width,y:c};break;case tR:t={x:s.x-r.width,y:c};break;default:t={x:s.x,y:s.y}}var d=o?sh(o):null;if(null!=d){var u="y"===d?"height":"width";switch(a){case tz:t[d]=t[d]-(s[u]/2-r[u]/2);break;case tP:t[d]=t[d]+(s[u]/2-r[u]/2)}}return t}function sR(e,t){void 0===t&&(t={});var s,r,i,o,a,l,c,d,u=t,h=u.placement,m=void 0===h?e.placement:h,p=u.strategy,f=void 0===p?e.strategy:p,g=u.boundary,v=u.rootBoundary,_=u.elementContext,y=void 0===_?tF:_,b=u.altBoundary,w=u.padding,j=void 0===w?0:w,S=sf("number"!=typeof j?j:sg(j,tL)),x=e.rects.popper,A=e.elements[void 0!==b&&b?y===tF?tq:tF:y],E=(s=t3(A)?A:A.contextElement||sl(e.elements.popper),r=void 0===g?tU:g,i=void 0===v?tB:v,c=(l=[].concat("clippingParents"===r?(o=sM(sc(s)),!t3(a=["absolute","fixed"].indexOf(sa(s).position)>=0&&t6(s)?su(s):s)?[]:o.filter(function(e){return t3(e)&&so(e,a)&&"body"!==t2(e)})):[].concat(r),[i]))[0],(d=l.reduce(function(e,t){var r=sN(s,t,f);return e.top=t7(r.top,e.top),e.right=se(r.right,e.right),e.bottom=se(r.bottom,e.bottom),e.left=t7(r.left,e.left),e},sN(s,c,f))).width=d.right-d.left,d.height=d.bottom-d.top,d.x=d.left,d.y=d.top,d),$=si(e.elements.reference),k=sI({reference:$,element:x,strategy:"absolute",placement:m}),C=sO(Object.assign({},x,k)),T=y===tF?C:$,M={top:E.top-T.top+S.top,bottom:T.bottom-E.bottom+S.bottom,left:E.left-T.left+S.left,right:T.right-E.right+S.right},O=e.modifiersData.offset;if(y===tF&&O){var N=O[m];Object.keys(M).forEach(function(e){var t=[tI,tN].indexOf(e)>=0?1:-1,s=[tO,tN].indexOf(e)>=0?"y":"x";M[e]+=N[s]*t})}return M}let sD={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,s=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=s.mainAxis,o=void 0===i||i,a=s.altAxis,l=void 0===a||a,c=s.fallbackPlacements,d=s.padding,u=s.boundary,h=s.rootBoundary,m=s.altBoundary,p=s.flipVariations,f=void 0===p||p,g=s.allowedAutoPlacements,v=t.options.placement,_=t9(v)===v,y=c||(_||!f?[sA(v)]:function(e){if(t9(e)===tD)return[];var t=sA(e);return[s$(e),t,s$(t)]}(v)),b=[v].concat(y).reduce(function(e,s){var r,i,o,a,l,c,m,p,v,_,y,b;return e.concat(t9(s)===tD?(i=(r={placement:s,boundary:u,rootBoundary:h,padding:d,flipVariations:f,allowedAutoPlacements:g}).placement,o=r.boundary,a=r.rootBoundary,l=r.padding,c=r.flipVariations,p=void 0===(m=r.allowedAutoPlacements)?tG:m,0===(y=(_=(v=s_(i))?c?tH:tH.filter(function(e){return s_(e)===v}):tL).filter(function(e){return p.indexOf(e)>=0})).length&&(y=_),Object.keys(b=y.reduce(function(e,s){return e[s]=sR(t,{placement:s,boundary:o,rootBoundary:a,padding:l})[t9(s)],e},{})).sort(function(e,t){return b[e]-b[t]})):s)},[]),w=t.rects.reference,j=t.rects.popper,S=new Map,x=!0,A=b[0],E=0;E=0,M=T?"width":"height",O=sR(t,{placement:$,boundary:u,rootBoundary:h,altBoundary:m,padding:d}),N=T?C?tI:tR:C?tN:tO;w[M]>j[M]&&(N=sA(N));var I=sA(N),R=[];if(o&&R.push(O[k]<=0),l&&R.push(O[N]<=0,O[I]<=0),R.every(function(e){return e})){A=$,x=!1;break}S.set($,R)}if(x)for(var D=f?3:1,L=function(e){var t=b.find(function(t){var s=S.get(t);if(s)return s.slice(0,e).every(function(e){return e})});if(t)return A=t,"break"},z=D;z>0&&"break"!==L(z);z--);t.placement!==A&&(t.modifiersData[r]._skip=!0,t.placement=A,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function sL(e,t,s){return void 0===s&&(s={x:0,y:0}),{top:e.top-t.height-s.y,right:e.right-t.width+s.x,bottom:e.bottom-t.height+s.y,left:e.left-t.width-s.x}}function sz(e){return[tO,tI,tN,tR].some(function(t){return e[t]>=0})}let sP={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,s=e.name,r=t.rects.reference,i=t.rects.popper,o=t.modifiersData.preventOverflow,a=sR(t,{elementContext:"reference"}),l=sR(t,{altBoundary:!0}),c=sL(a,r),d=sL(l,i,o),u=sz(c),h=sz(d);t.modifiersData[s]={referenceClippingOffsets:c,popperEscapeOffsets:d,isReferenceHidden:u,hasPopperEscaped:h},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":h})}},sU={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,s=e.options,r=e.name,i=s.offset,o=void 0===i?[0,0]:i,a=tG.reduce(function(e,s){var r,i,a,l,c,d;return e[s]=(r=t.rects,a=[tR,tO].indexOf(i=t9(s))>=0?-1:1,c=(l="function"==typeof o?o(Object.assign({},r,{placement:s})):o)[0],d=l[1],c=c||0,d=(d||0)*a,[tR,tI].indexOf(i)>=0?{x:d,y:c}:{x:c,y:d}),e},{}),l=a[t.placement],c=l.x,d=l.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=c,t.modifiersData.popperOffsets.y+=d),t.modifiersData[r]=a}},sB={name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,s=e.name;t.modifiersData[s]=sI({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},sF={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,s=e.options,r=e.name,i=s.mainAxis,o=s.altAxis,a=s.boundary,l=s.rootBoundary,c=s.altBoundary,d=s.padding,u=s.tether,h=void 0===u||u,m=s.tetherOffset,p=void 0===m?0:m,f=sR(t,{boundary:a,rootBoundary:l,padding:d,altBoundary:c}),g=t9(t.placement),v=s_(t.placement),_=!v,y=sh(g),b="x"===y?"y":"x",w=t.modifiersData.popperOffsets,j=t.rects.reference,S=t.rects.popper,x="function"==typeof p?p(Object.assign({},t.rects,{placement:t.placement})):p,A="number"==typeof x?{mainAxis:x,altAxis:x}:Object.assign({mainAxis:0,altAxis:0},x),E=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,$={x:0,y:0};if(w){if(void 0===i||i){var k,C="y"===y?tO:tR,T="y"===y?tN:tI,M="y"===y?"height":"width",O=w[y],N=O+f[C],I=O-f[T],R=h?-S[M]/2:0,D=v===tz?j[M]:S[M],L=v===tz?-S[M]:-j[M],z=t.elements.arrow,P=h&&z?sn(z):{width:0,height:0},U=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:sp(),B=U[C],F=U[T],q=sm(0,j[M],P[M]),H=_?j[M]/2-R-q-B-A.mainAxis:D-q-B-A.mainAxis,G=_?-j[M]/2+R+q+F+A.mainAxis:L+q+F+A.mainAxis,W=t.elements.arrow&&su(t.elements.arrow),Z=W?"y"===y?W.clientTop||0:W.clientLeft||0:0,V=null!=(k=null==E?void 0:E[y])?k:0,Q=sm(h?se(N,O+H-V-Z):N,O,h?t7(I,O+G-V):I);w[y]=Q,$[y]=Q-O}if(void 0!==o&&o){var K,J,Y="x"===y?tO:tR,X="x"===y?tN:tI,ee=w[b],et="y"===b?"height":"width",es=ee+f[Y],er=ee-f[X],ei=-1!==[tO,tR].indexOf(g),en=null!=(J=null==E?void 0:E[b])?J:0,eo=ei?es:ee-j[et]-S[et]-en+A.altAxis,ea=ei?ee+j[et]+S[et]-en-A.altAxis:er,el=h&&ei?(K=sm(eo,ee,ea))>ea?ea:K:sm(h?eo:es,ee,h?ea:er);w[b]=el,$[b]=el-ee}t.modifiersData[r]=$}},requiresIfExists:["offset"]};var sq={placement:"bottom",modifiers:[],strategy:"absolute"};function sH(){for(var e=arguments.length,t=Array(e),s=0;ssQ.has(e)&&sQ.get(e).get(t)||null,remove(e,t){if(!sQ.has(e))return;let s=sQ.get(e);s.delete(t),0===s.size&&sQ.delete(e)}},sJ="transitionend",sY=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,(e,t)=>`#${CSS.escape(t)}`)),e),sX=e=>null==e?`${e}`:Object.prototype.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase(),s1=e=>!!e&&"object"==typeof e&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),s0=e=>s1(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(sY(e)):null,s2=e=>{if(!s1(e)||0===e.getClientRects().length)return!1;let t="visible"===getComputedStyle(e).getPropertyValue("visibility"),s=e.closest("details:not([open])");if(!s)return t;if(s!==e){let t=e.closest("summary");if(t&&t.parentNode!==s||null===t)return!1}return t},s4=e=>!!(!e||e.nodeType!==Node.ELEMENT_NODE||e.classList.contains("disabled"))||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")),s3=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){let t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?s3(e.parentNode):null},s6=()=>{},s8=e=>{e.offsetHeight},s5=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,s9=[],s7=e=>{var t;t=()=>{let t=s5();if(t){let s=e.NAME,r=t.fn[s];t.fn[s]=e.jQueryInterface,t.fn[s].Constructor=e,t.fn[s].noConflict=()=>(t.fn[s]=r,e.jQueryInterface)}},"loading"===document.readyState?(s9.length||document.addEventListener("DOMContentLoaded",()=>{for(let e of s9)e()}),s9.push(t)):t()},re=(e,t=[],s=e)=>"function"==typeof e?e.call(...t):s,rt=(e,t,s=!0)=>{if(!s)return void re(e);let r=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:s}=window.getComputedStyle(e),r=Number.parseFloat(t),i=Number.parseFloat(s);return r||i?(t=t.split(",")[0],s=s.split(",")[0],(Number.parseFloat(t)+Number.parseFloat(s))*1e3):0})(t)+5,i=!1,o=({target:s})=>{s===t&&(i=!0,t.removeEventListener(sJ,o),re(e))};t.addEventListener(sJ,o),setTimeout(()=>{i||t.dispatchEvent(new Event(sJ))},r)},rs=/[^.]*(?=\..*)\.|.*/,rr=/\..*/,ri=/::\d+$/,rn={},ro=1,ra={mouseenter:"mouseover",mouseleave:"mouseout"},rl=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function rc(e,t){return t&&`${t}::${ro++}`||e.uidEvent||ro++}function rd(e){let t=rc(e);return e.uidEvent=t,rn[t]=rn[t]||{},rn[t]}function ru(e,t,s=null){return Object.values(e).find(e=>e.callable===t&&e.delegationSelector===s)}function rh(e,t,s){let r="string"==typeof t,i=rf(e);return rl.has(i)||(i=e),[r,r?s:t||s,i]}function rm(e,t,s,r,i){var o,a;if("string"!=typeof t||!e)return;let[l,c,d]=rh(t,s,r);if(t in ra){let e;e=c,c=function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)}}let u=rd(e),h=u[d]||(u[d]={}),m=ru(h,c,l?s:null);if(m){m.oneOff=m.oneOff&&i;return}let p=rc(c,t.replace(rs,"")),f=l?(o=c,function t(r){let i=e.querySelectorAll(s);for(let{target:a}=r;a&&a!==this;a=a.parentNode)for(let l of i)if(l===a)return rv(r,{delegateTarget:a}),t.oneOff&&rg.off(e,r.type,s,o),o.apply(a,[r])}):(a=c,function t(s){return rv(s,{delegateTarget:e}),t.oneOff&&rg.off(e,s.type,a),a.apply(e,[s])});f.delegationSelector=l?s:null,f.callable=c,f.oneOff=i,f.uidEvent=p,h[p]=f,e.addEventListener(d,f,l)}function rp(e,t,s,r,i){let o=ru(t[s],r,i);o&&(e.removeEventListener(s,o,!!i),delete t[s][o.uidEvent])}function rf(e){return ra[e=e.replace(rr,"")]||e}let rg={on(e,t,s,r){rm(e,t,s,r,!1)},one(e,t,s,r){rm(e,t,s,r,!0)},off(e,t,s,r){if("string"!=typeof t||!e)return;let[i,o,a]=rh(t,s,r),l=a!==t,c=rd(e),d=c[a]||{},u=t.startsWith(".");if(void 0!==o){if(!Object.keys(d).length)return;rp(e,c,a,o,i?s:null);return}if(u)for(let s of Object.keys(c)){var h=t.slice(1);for(let[t,r]of Object.entries(c[s]||{}))t.includes(h)&&rp(e,c,s,r.callable,r.delegationSelector)}for(let[s,r]of Object.entries(d)){let i=s.replace(ri,"");(!l||t.includes(i))&&rp(e,c,a,r.callable,r.delegationSelector)}},trigger(e,t,s){if("string"!=typeof t||!e)return null;let r=s5(),i=rf(t),o=null,a=!0,l=!0,c=!1;t!==i&&r&&(o=r.Event(t,s),r(e).trigger(o),a=!o.isPropagationStopped(),l=!o.isImmediatePropagationStopped(),c=o.isDefaultPrevented());let d=rv(new Event(t,{bubbles:a,cancelable:!0}),s);return c&&d.preventDefault(),l&&e.dispatchEvent(d),d.defaultPrevented&&o&&o.preventDefault(),d}};function rv(e,t={}){for(let[s,r]of Object.entries(t))try{e[s]=r}catch{Object.defineProperty(e,s,{configurable:!0,get:()=>r})}return e}function r_(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function ry(e){return e.replace(/[A-Z]/g,e=>`-${e.toLowerCase()}`)}let rb={setDataAttribute(e,t,s){e.setAttribute(`data-bs-${ry(t)}`,s)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${ry(t)}`)},getDataAttributes(e){if(!e)return{};let t={};for(let s of Object.keys(e.dataset).filter(e=>e.startsWith("bs")&&!e.startsWith("bsConfig"))){let r=s.replace(/^bs/,"");t[r=r.charAt(0).toLowerCase()+r.slice(1)]=r_(e.dataset[s])}return t},getDataAttribute:(e,t)=>r_(e.getAttribute(`data-bs-${ry(t)}`))},rw=class{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){let s=s1(t)?rb.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof s?s:{},...s1(t)?rb.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e,t=this.constructor.DefaultType){for(let[s,r]of Object.entries(t)){let t=e[s],i=s1(t)?"element":sX(t);if(!new RegExp(r).test(i))throw TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${s}" provided type "${i}" but expected type "${r}".`)}}},rj=class extends rw{constructor(e,t){if(super(),!(e=s0(e)))return;this._element=e,this._config=this._getConfig(t),sK.set(this._element,this.constructor.DATA_KEY,this)}dispose(){for(let e of(sK.remove(this._element,this.constructor.DATA_KEY),rg.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this)))this[e]=null}_queueCallback(e,t,s=!0){rt(e,t,s)}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return sK.get(s0(e),this.DATA_KEY)}static getOrCreateInstance(e,t={}){return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.3.7"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(e){return`${e}${this.EVENT_KEY}`}},rS=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let s=e.getAttribute("href");if(!s||!s.includes("#")&&!s.startsWith("."))return null;s.includes("#")&&!s.startsWith("#")&&(s=`#${s.split("#")[1]}`),t=s&&"#"!==s?s.trim():null}return t?t.split(",").map(e=>sY(e)).join(","):null},rx={find:(e,t=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(t,e)),findOne:(e,t=document.documentElement)=>Element.prototype.querySelector.call(t,e),children:(e,t)=>[].concat(...e.children).filter(e=>e.matches(t)),parents(e,t){let s=[],r=e.parentNode.closest(t);for(;r;)s.push(r),r=r.parentNode.closest(t);return s},prev(e,t){let s=e.previousElementSibling;for(;s;){if(s.matches(t))return[s];s=s.previousElementSibling}return[]},next(e,t){let s=e.nextElementSibling;for(;s;){if(s.matches(t))return[s];s=s.nextElementSibling}return[]},focusableChildren(e){let t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(e=>`${e}:not([tabindex^="-"])`).join(",");return this.find(t,e).filter(e=>!s4(e)&&s2(e))},getSelectorFromElement(e){let t=rS(e);return t&&rx.findOne(t)?t:null},getElementFromSelector(e){let t=rS(e);return t?rx.findOne(t):null},getMultipleElementsFromSelector(e){let t=rS(e);return t?rx.find(t):[]}},rA="dropdown",rE=".bs.dropdown",r$=".data-api",rk="ArrowDown",rC=`hide${rE}`,rT=`hidden${rE}`,rM=`show${rE}`,rO=`shown${rE}`,rN=`click${rE}${r$}`,rI=`keydown${rE}${r$}`,rR=`keyup${rE}${r$}`,rD="show",rL='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',rz=`${rL}.${rD}`,rP=".dropdown-menu",rU="rtl"===document.documentElement.dir?"top-end":"top-start",rB="rtl"===document.documentElement.dir?"top-start":"top-end",rF="rtl"===document.documentElement.dir?"bottom-end":"bottom-start",rq="rtl"===document.documentElement.dir?"bottom-start":"bottom-end",rH="rtl"===document.documentElement.dir?"left-start":"right-start",rG="rtl"===document.documentElement.dir?"right-start":"left-start",rW={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},rZ={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class rV extends rj{constructor(e,t){super(e,t),this._popper=null,this._parent=this._element.parentNode,this._menu=rx.next(this._element,rP)[0]||rx.prev(this._element,rP)[0]||rx.findOne(rP,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return rW}static get DefaultType(){return rZ}static get NAME(){return rA}toggle(){return this._isShown()?this.hide():this.show()}show(){if(s4(this._element)||this._isShown())return;let e={relatedTarget:this._element};if(!rg.trigger(this._element,rM,e).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(let e of[].concat(...document.body.children))rg.on(e,"mouseover",s6);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(rD),this._element.classList.add(rD),rg.trigger(this._element,rO,e)}}hide(){if(s4(this._element)||!this._isShown())return;let e={relatedTarget:this._element};this._completeHide(e)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(e){if(!rg.trigger(this._element,rC,e).defaultPrevented){if("ontouchstart"in document.documentElement)for(let e of[].concat(...document.body.children))rg.off(e,"mouseover",s6);this._popper&&this._popper.destroy(),this._menu.classList.remove(rD),this._element.classList.remove(rD),this._element.setAttribute("aria-expanded","false"),rb.removeDataAttribute(this._menu,"popper"),rg.trigger(this._element,rT,e),this._element.focus()}}_getConfig(e){if("object"==typeof(e=super._getConfig(e)).reference&&!s1(e.reference)&&"function"!=typeof e.reference.getBoundingClientRect)throw TypeError(`${rA.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return e}_createPopper(){if(void 0===d)throw TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org/docs/v2/)");let e=this._element;"parent"===this._config.reference?e=this._parent:s1(this._config.reference)?e=s0(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);let t=this._getPopperConfig();this._popper=sZ(e,this._menu,t)}_isShown(){return this._menu.classList.contains(rD)}_getPlacement(){let e=this._parent;if(e.classList.contains("dropend"))return rH;if(e.classList.contains("dropstart"))return rG;if(e.classList.contains("dropup-center"))return"top";if(e.classList.contains("dropdown-center"))return"bottom";let t="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return e.classList.contains("dropup")?t?rB:rU:t?rq:rF}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){let{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?t=>e(t,this._element):e}_getPopperConfig(){let e={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(rb.setDataAttribute(this._menu,"popper","static"),e.modifiers=[{name:"applyStyles",enabled:!1}]),{...e,...re(this._config.popperConfig,[void 0,e])}}_selectMenuItem({key:e,target:t}){let s=rx.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(e=>s2(e));s.length&&((e,t,s,r)=>{let i=e.length,o=e.indexOf(t);return -1===o?!s&&r?e[i-1]:e[0]:(o+=s?1:-1,r&&(o=(o+i)%i),e[Math.max(0,Math.min(o,i-1))])})(s,t,e===rk,!s.includes(t)).focus()}static jQueryInterface(e){return this.each(function(){let t=rV.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw TypeError(`No method named "${e}"`);t[e]()}})}static clearMenus(e){if(2!==e.button&&("keyup"!==e.type||"Tab"===e.key))for(let t of rx.find(rz)){let s=rV.getInstance(t);if(!s||!1===s._config.autoClose)continue;let r=e.composedPath(),i=r.includes(s._menu);if(r.includes(s._element)||"inside"===s._config.autoClose&&!i||"outside"===s._config.autoClose&&i||s._menu.contains(e.target)&&("keyup"===e.type&&"Tab"===e.key||/input|select|option|textarea|form/i.test(e.target.tagName)))continue;let o={relatedTarget:s._element};"click"===e.type&&(o.clickEvent=e),s._completeHide(o)}}static dataApiKeydownHandler(e){let t=/input|textarea/i.test(e.target.tagName),s="Escape"===e.key,r=["ArrowUp",rk].includes(e.key);if(!r&&!s||t&&!s)return;e.preventDefault();let i=this.matches(rL)?this:rx.prev(this,rL)[0]||rx.next(this,rL)[0]||rx.findOne(rL,e.delegateTarget.parentNode),o=rV.getOrCreateInstance(i);if(r){e.stopPropagation(),o.show(),o._selectMenuItem(e);return}o._isShown()&&(e.stopPropagation(),o.hide(),i.focus())}}rg.on(document,rI,rL,rV.dataApiKeydownHandler),rg.on(document,rI,rP,rV.dataApiKeydownHandler),rg.on(document,rN,rV.clearMenus),rg.on(document,rR,rV.clearMenus),rg.on(document,rN,rL,function(e){e.preventDefault(),rV.getOrCreateInstance(this).toggle()}),s7(rV);class rQ extends eV{firstUpdated(e){super.firstUpdated(e),this.menu=this.querySelector(".dropdown-menu"),this.button=this.querySelector("button"),this.dropdown=new rV(this.button)}}let rK="keydown.bs.dropdown.data-api";rg.off(document,rK);var rJ=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/components/styles/icon.scss"),rY={};rY.styleTagTransform=A(),rY.setAttributes=w(),rY.insert=y().bind(null,"head"),rY.domAPI=v(),rY.insertStyleElement=S(),f()(rJ.Z,rY),rJ.Z&&rJ.Z.locals&&rJ.Z.locals,T.hi.elements.define("converse-icon",class extends eV{static get properties(){return{color:{type:String},class_name:{attribute:"class"},css:{type:String},size:{type:String}}}constructor(){super(),this.class_name="",this.css="",this.size="",this.color=""}getSource(){return`#icon-${this.class_name.trim().split(" ")[1].replace("fa-","")}`}getStyles(){let e=this.color.match(/var\((--.*)\)/)?.[1],t=e?getComputedStyle(this).getPropertyValue(e):this.color;return` ${this.size?`width: ${this.size};`:""} ${this.size?`height: ${this.size};`:""} ${t?`fill: ${t};`:""} ${this.css} `}render(){return eE``}});var rX=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/components/styles/dropdown.scss"),r1={};r1.styleTagTransform=A(),r1.setAttributes=w(),r1.insert=y().bind(null,"head"),r1.domAPI=v(),r1.insertStyleElement=S(),f()(rX.Z,r1),rX.Z&&rX.Z.locals&&rX.Z.locals;let{KEYCODES:r0}=T._G;class r2 extends rQ{static get properties(){return{icon_classes:{type:String},items:{type:Array}}}constructor(){super(),this.icon_classes="fa fa-bars",this.items=[],this.id=T.u.getUniqueId()}render(){return eE``}firstUpdated(){super.firstUpdated(),this.initArrowNavigation()}connectedCallback(){super.connectedCallback(),this.registerEvents()}disconnectedCallback(){this.removeEventListener("keydown",this.onKeyDown),this.disableArrowNavigation(),super.disconnectedCallback()}registerEvents(){this.onKeyDown=e=>this.#a(e),this.addEventListener("hide.bs.dropdown",()=>this.onDropdownHide()),this.addEventListener("keydown",this.onKeyDown)}onDropdownHide(){this.disableArrowNavigation()}initArrowNavigation(){this.navigator||(this.navigator=new tM(this.menu,{selector:".dropdown-menu li",onSelected:e=>e.focus()}))}disableArrowNavigation(){this.navigator?.disable()}enableArrowNavigation(e){e?.preventDefault(),e?.stopPropagation(),this.disableArrowNavigation(),this.navigator.enable(),this.navigator.select(this.menu.firstElementChild)}onEnterPressed(e){e.preventDefault(),e.stopPropagation(),this.navigator.selected?.querySelector("a")?.click(),this.dropdown.hide()}#a(e){this.navigator&&T.u.isVisible(this)&&(e.key===r0.ENTER?this.onEnterPressed(e):e.key!==r0.DOWN_ARROW||this.navigator.enabled?e.key===r0.ESCAPE&&this.dropdown.hide():this.enableArrowNavigation(e))}}T.hi.elements.define("converse-dropdown",r2),T.hi.elements.define("converse-fontawesome",class extends eV{render(){return eE` `}});var r4=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/components/styles/image-picker.scss"),r3={};r3.styleTagTransform=A(),r3.setAttributes=w(),r3.insert=y().bind(null,"head"),r3.domAPI=v(),r3.insertStyleElement=S(),f()(r4.Z,r3),r4.Z&&r4.Z.locals&&r4.Z.locals;let r6=D("Click to set a new picture"),r8=D("Clear picture");T.hi.elements.define("converse-image-picker",class extends eV{constructor(){super(),this.model=null,this.width=null,this.height=null,this.nonce=null}static get properties(){return{height:{type:Number},model:{type:Object},width:{type:Number}}}render(){return eE`
${this.data?.data_uri||this.model?.vcard?.get("image")?eE``:""}
`}clearImage(e){e.preventDefault(),this.querySelector('input[name="avatar_image').value="",this.model.vcard.set({image:null,image_type:null}),this.data={data_uri:null,image_type:null},this.nonce=new Date().toISOString(),this.requestUpdate()}openFileSelection(e){e.preventDefault(),this.querySelector('input[type="file"]').click()}updateFilePreview(e){let t=e.target.files[0],s=new FileReader;s.onloadend=()=>{this.data={data_uri:s.result,image_type:t.type},this.nonce=new Date().toISOString(),this.requestUpdate()},s.readAsDataURL(t)}});let r5=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)};var r9="object"==typeof global&&global&&global.Object===Object&&global,r7="object"==typeof self&&self&&self.Object===Object&&self,ie=r9||r7||Function("return this")();let it=function(){return ie.Date.now()};var is=/\s/;let ir=function(e){for(var t=e.length;t--&&is.test(e.charAt(t)););return t};var ii=/^\s+/,io=ie.Symbol,ia=Object.prototype,il=ia.hasOwnProperty,ic=ia.toString,id=io?io.toStringTag:void 0;let iu=function(e){var t=il.call(e,id),s=e[id];try{e[id]=void 0;var r=!0}catch(e){}var i=ic.call(e);return r&&(t?e[id]=s:delete e[id]),i};var ih=Object.prototype.toString,im=io?io.toStringTag:void 0;let ip=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":im&&im in Object(e)?iu(e):ih.call(e)},ig=function(e){return"symbol"==typeof e||null!=e&&"object"==typeof e&&"[object Symbol]"==ip(e)};var iv=0/0,i_=/^[-+]0x[0-9a-f]+$/i,iy=/^0b[01]+$/i,ib=/^0o[0-7]+$/i,iw=parseInt;let ij=function(e){if("number"==typeof e)return e;if(ig(e))return iv;if(r5(e)){var t,s="function"==typeof e.valueOf?e.valueOf():e;e=r5(s)?s+"":s}if("string"!=typeof e)return 0===e?e:+e;e=(t=e)?t.slice(0,ir(t)+1).replace(ii,""):t;var r=iy.test(e);return r||ib.test(e)?iw(e.slice(2),r?2:8):i_.test(e)?iv:+e};var iS=Math.max,ix=Math.min;let iA=function(e,t,s){var r,i,o,a,l,c,d=0,u=!1,h=!1,m=!0;if("function"!=typeof e)throw TypeError("Expected a function");function p(t){var s=r,o=i;return r=i=void 0,d=t,a=e.apply(o,s)}function f(e){var s=e-c,r=e-d;return void 0===c||s>=t||s<0||h&&r>=o}function g(){var e,s,r,i=it();if(f(i))return v(i);l=setTimeout(g,(e=i-c,s=i-d,r=t-e,h?ix(r,o-s):r))}function v(e){return(l=void 0,m&&r)?p(e):(r=i=void 0,a)}function _(){var e,s=it(),o=f(s);if(r=arguments,i=this,c=s,o){if(void 0===l)return d=e=c,l=setTimeout(g,t),u?p(e):a;if(h)return clearTimeout(l),l=setTimeout(g,t),p(c)}return void 0===l&&(l=setTimeout(g,t)),a}return t=ij(t)||0,r5(s)&&(u=!!s.leading,o=(h="maxWait"in s)?iS(ij(s.maxWait)||0,t):o,m="trailing"in s?!!s.trailing:m),_.cancel=function(){void 0!==l&&clearTimeout(l),d=0,r=c=i=l=void 0},_.flush=function(){return void 0===l?a:v(it())},_};var iE=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/components/styles/list-filter.scss"),i$={};i$.styleTagTransform=A(),i$.setAttributes=w(),i$.insert=y().bind(null,"head"),i$.domAPI=v(),i$.insertStyleElement=S(),f()(iE.Z,i$),iE.Z&&iE.Z.locals&&iE.Z.locals,T.hi.elements.define("converse-list-filter",class extends eV{constructor(){super(),this.items=null,this.model=null,this.template=null,this.promise=Promise.resolve()}static get properties(){return{items:{type:Array},model:{type:Object},promise:{type:Promise},template:{type:Object}}}initialize(){this.liveFilter=iA(e=>this.model.save({text:e.target.value}),250),this.listenTo(this.items,"add",()=>this.requestUpdate()),this.listenTo(this.items,"destroy",()=>this.requestUpdate()),this.listenTo(this.items,"remove",()=>this.requestUpdate()),this.listenTo(this.model,"change",()=>{this.dispatchUpdateEvent(),this.requestUpdate()}),this.promise.then(()=>this.requestUpdate()),this.requestUpdate()}render(){return this.shouldBeVisible()?this.template(this):""}dispatchUpdateEvent(){this.dispatchEvent(new CustomEvent("update",{detail:this.model.changed}))}changeChatStateFilter(e){e&&e.preventDefault();let t=this.querySelector(".state-type").value;this.model.save({state:t})}changeTypeFilter(e){e&&e.preventDefault();let t=e.target,s=t.closest("converse-icon")?.dataset.type||"items";if("state"===s){let e=this.querySelector(".state-type").value;this.model.save({type:s,state:e})}else{let e=this.querySelector(".items-filter").value;this.model.save({type:s,text:e})}}submitFilter(e){e?.preventDefault(),this.liveFilter()}isActive(){return"state"===this.model.get("type")||this.model.get("text")}shouldBeVisible(){return this.items?.length>=5||this.isActive()}clearFilter(e){e&&e.preventDefault(),this.model.save({text:""})}});var ik=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/components/styles/message-versions.scss"),iC={};iC.styleTagTransform=A(),iC.setAttributes=w(),iC.insert=y().bind(null,"head"),iC.domAPI=v(),iC.insertStyleElement=S(),f()(ik.Z,iC),ik.Z&&ik.Z.locals&&ik.Z.locals;let{dayjs:iT}=T.Qr.env;T.hi.elements.define("converse-message-versions",class extends eV{static get properties(){return{model:{type:Object}}}constructor(){super(),this.model=null}render(){let e=this.model.get("older_versions"),t=Object.keys(e);return eE`${t.length?eE`

${D("Older versions")}

${t.map(t=>eE`

: ${e[t]}

`)}`:eE`

${D("No older versions found")}

`}

${D("Current version")}

: ${this.model.getMessageText()}

`}});class iM extends eV{static get properties(){return{...super.properties,observable:{type:String},intersectionRatio:{type:Number}}}constructor(){super(),this.model=null,this.observable=null,this.isVisible=!1,this.observableThresholds=[0,.25,.5,.75,1],this.observableMargin="0px",this.intersectionRatio=.5,this.observableDelay=100}firstUpdated(e){super.firstUpdated(e),this.initIntersectionObserver()}disconnectedCallback(){super.disconnectedCallback(),this.intersectionObserver?.disconnect()}initIntersectionObserver(){this.observable&&!this.isVisible&&(this.intersectionObserver=new IntersectionObserver(e=>this.handleIntersectionCallback(e),{rootMargin:this.observableMargin,threshold:this.observableThresholds,delay:this.observableDelay}),this.intersectionObserver.observe(this))}alreadyHandled(){return"once"===this.observable&&this.isVisible}handleIntersectionCallback(e){if(!this.alreadyHandled())for(let t of e)Number(t.intersectionRatio.toFixed(2))>=this.intersectionRatio&&!this.alreadyHandled()&&("once"===this.observable&&this.intersectionObserver.disconnect(),this.isVisible=!0,T.hi.trigger("visibilityChanged",{el:this,entry:t}),this.onVisibilityChanged(t))}onVisibilityChanged(e){}}var iO=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/templates/styles/spinner.scss"),iN={};iN.styleTagTransform=A(),iN.setAttributes=w(),iN.insert=y().bind(null,"head"),iN.domAPI=v(),iN.insertStyleElement=S(),f()(iO.Z,iN),iO.Z&&iO.Z.locals&&iO.Z.locals;let iI=(e={})=>eE`
Loading...
`;T.hi.elements.define("converse-spinner",class extends eV{render(){return iI()}});var iR=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/components/styles/split-resize.scss"),iD={};iD.styleTagTransform=A(),iD.setAttributes=w(),iD.insert=y().bind(null,"head"),iD.domAPI=v(),iD.insertStyleElement=S(),f()(iR.Z,iD),iR.Z&&iR.Z.locals&&iR.Z.locals;let iL="horizontal",iz=()=>!1,iP="undefined"!=typeof window?window:null;T.hi.elements.define("converse-split-resize",class extends eV{initialize(){super.initialize()}constructor(){super(),this.pair=null}render(){return eE`
`}disconnectedCallback(){super.disconnectedCallback(),this.pair.gutter.removeEventListener("mousedown",this.pair._a),this.pair.gutter.removeEventListener("touchstart",this.pair._a)}updated(e){super.updated(e),this.pair||this.setupSplit([this.previousElementSibling,this.nextElementSibling])}getOption(e,t,s){let r=e[t];return void 0!==r?r:s}getElementStyle(e,t,s){let r={};return T.u.isString(t)?r[e]=t:r[e]=`calc(${t}% - ${s}px)`,r}defaultGutterStyleFn(e,t){return{[e]:`${t}px`}}getGutterSize(e,t,s,r){if(t){if("end"===r)return 0;if("center"===r)return e/2}else if(s){if("start"===r)return 0;if("center"===r)return e/2}return e}setElementSize(e,t,s){let r=this.getElementStyle(this.dimension,t,s);Object.keys(r).forEach(t=>{e.style[t]=r[t]})}getSizes(){return this.elements.map(e=>e.size)}getMousePosition(e){return"touches"in e?e.touches[0][this.clientAxis]:e[this.clientAxis]}adjust(e){let t=this.elements[this.pair.a],s=this.elements[this.pair.b],r=t.size+s.size;t.size=e/this.pair.size*r,s.size=r-e/this.pair.size*r,this.setElementSize(t.element,t.size,this.pair._b),this.setElementSize(s.element,s.size,this.pair._c)}drag(e,t){let s,r=this.elements[this.pair.a],i=this.elements[this.pair.b];this.pair.dragging&&(s=this.getMousePosition(e)-this.pair.start+(this.pair._b-this.pair.dragOffset),this.dragInterval>1&&(s=Math.round(s/this.dragInterval)*this.dragInterval),s<=r.minSize+r.snapOffset+this.pair._b?s=r.minSize+this.pair._b:s>=this.pair.size-(i.minSize+i.snapOffset+this.pair._c)&&(s=this.pair.size-(i.minSize+this.pair._c)),s>=r.maxSize-r.snapOffset+this.pair._b?s=r.maxSize+this.pair._b:s<=this.pair.size-(i.maxSize-i.snapOffset+this.pair._c)&&(s=this.pair.size-(i.maxSize+this.pair._c)),this.adjust(s),this.getOption(t,"onDrag",iz)(this.getSizes()))}calculateSizes(e){let t=this.elements[e.a].element,s=this.elements[e.b].element,r=t.getBoundingClientRect(),i=s.getBoundingClientRect();e.size=r[this.dimension]+i[this.dimension]+e._b+e._c,e.start=r[this.position],e.end=r[this.positionEnd]}innerSize(e){if(!getComputedStyle)return null;let t=getComputedStyle(e);if(!t)return null;let s=e[this.clientSize];return 0===s?null:(this.direction===iL?s-=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight):s-=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom),s)}trimToMin(e){let t=this.innerSize(this.parent);if(null===t||this.minSizes.reduce((e,t)=>e+t,0)>t)return e;let s=0,r=[],i=e.map((i,o)=>{let a=t*i/100,l=this.getGutterSize(this.gutterSize,0===o,o===e.length-1,this.gutterAlign),c=this.minSizes[o]+l;return a{let o=e;if(s>0&&r[i]-s>0){let t=Math.min(s,r[i]-s);s-=t,o=e-t}return o/t*100})}stopDragging(e){let t=this.elements[this.pair.a].element,s=this.elements[this.pair.b].element;this.pair.dragging&&this.getOption(e,"onDragEnd",iz)(this.getSizes()),this.pair.dragging=!1,iP.removeEventListener("mouseup",this.pair.stop),iP.removeEventListener("touchend",this.pair.stop),iP.removeEventListener("touchcancel",this.pair.stop),iP.removeEventListener("mousemove",this.pair.move),iP.removeEventListener("touchmove",this.pair.move),this.pair.stop=null,this.pair.move=null,t.removeEventListener("selectstart",iz),t.removeEventListener("dragstart",iz),s.removeEventListener("selectstart",iz),s.removeEventListener("dragstart",iz),t.style.userSelect="",t.style.pointerEvents="",s.style.userSelect="",s.style.pointerEvents="",this.pair.gutter.style.cursor="",this.pair.parent.style.cursor="",document.body.style.cursor=""}startDragging(e,t){if("button"in e&&0!==e.button)return;let s=this.elements[this.pair.a].element,r=this.elements[this.pair.b].element;this.pair.dragging||this.getOption(t,"onDragStart",iz)(this.getSizes()),e.preventDefault(),this.pair.dragging=!0,this.pair.stop=()=>this.stopDragging(t),this.pair.move=e=>this.drag(e,t),iP.addEventListener("mouseup",this.pair.stop),iP.addEventListener("touchend",this.pair.stop),iP.addEventListener("touchcancel",this.pair.stop),iP.addEventListener("mousemove",this.pair.move),iP.addEventListener("touchmove",this.pair.move),s.addEventListener("selectstart",iz),s.addEventListener("dragstart",iz),r.addEventListener("selectstart",iz),r.addEventListener("dragstart",iz),s.style.userSelect="none",s.style.pointerEvents="none",r.style.userSelect="none",r.style.pointerEvents="none",this.pair.gutter.style.cursor=this.cursor,this.pair.parent.style.cursor=this.cursor,document.body.style.cursor=this.cursor,this.calculateSizes(this.pair),this.pair.dragOffset=this.getMousePosition(e)-this.pair.end}adjustToMin(e){this.calculateSizes(this.pair),this.adjust(this.pair.size-e.minSize-this.pair._c)}setSizes(e){let t=this.trimToMin(e);t.forEach((e,s)=>{if(s>0){let r=this.elements[this.pair.a],i=this.elements[this.pair.b];r.size=t[s-1],i.size=e,this.setElementSize(r.element,r.size,this.pair._b),this.setElementSize(i.element,i.size,this.pair._c)}})}setupSplit(e,t={}){let s=(e=Array.from(e))[0];this.parent=s.parentElement;let r=this.getOption(t,"minSize",100);this.minSizes=Array.isArray(r)?r:e.map(()=>r);let i=this.getOption(t,"expandToMin",!1);this.gutterSize=this.getOption(t,"gutterSize",5),this.gutterAlign=this.getOption(t,"gutterAlign","center"),this.dragInterval=this.getOption(t,"dragInterval",1),this.direction=this.getOption(t,"direction",iL),this.cursor=this.getOption(t,"cursor",this.direction===iL?"col-resize":"row-resize"),this.direction===iL?(this.dimension="width",this.clientAxis="clientX",this.position="left",this.positionEnd="right",this.clientSize="clientWidth"):"vertical"===this.direction&&(this.dimension="height",this.clientAxis="clientY",this.position="top",this.positionEnd="bottom",this.clientSize="clientHeight"),this.elements=e.map((s,r)=>this.createElement(e,s,r,t)),this.elements.forEach(e=>{let t=e.element.getBoundingClientRect()[this.dimension];t100/e.length);i=this.trimToMin(i);let o=this.getOption(r,"maxSize",1/0),a=Array.isArray(o)?o:e.map(()=>o),l=this.getOption(r,"snapOffset",30),c=Array.isArray(l)?l:e.map(()=>l);return{element:t,size:i[s],minSize:this.minSizes[s],maxSize:a[s],snapOffset:c[s],i:s}}createPair(e){let t=getComputedStyle?getComputedStyle(this.parent):null,s=t?t.flexDirection:null;if(this.pair={a:0,b:1,dragging:!1,direction:this.direction,parent:this.parent},this.pair._b=this.getGutterSize(this.gutterSize,!0,!1,this.gutterAlign),this.pair._c=this.getGutterSize(this.gutterSize,!1,!0,this.gutterAlign),"row-reverse"===s||"column-reverse"===s){let e=this.pair.a;this.pair.a=this.pair.b,this.pair.b=e}let r=this.firstElementChild;this.pair._a=t=>this.startDragging(t,e),this.addEventListener("mousedown",this.pair._a),this.addEventListener("touchstart",this.pair._a),this.pair.gutter=r}});let iU=["converse-adhoc-views","converse-bookmark-views","converse-chatboxviews","converse-chatview","converse-controlbox","converse-disco-views","converse-dragresize","converse-fullscreen","converse-headlines-view","converse-mam-views","converse-minimize","converse-modal","converse-muc-views","converse-notification","converse-omemo-views","converse-profile","converse-push","converse-register","converse-roomslist","converse-rootview","converse-rosterview","converse-singleton"],iB={offline:D("Offline"),unavailable:D("Unavailable"),xa:D("Extended Away"),away:D("Away"),dnd:D("Do not disturb"),chat:D("Chatty"),online:D("Online")};function iF(e,t=""){return`color: ${e}!important;${t}`}function iq(e){if(T.hi.settings.get("colorize_username")){let t=e?.get("color");return t?iF(t):e?eE`${tr(e?.getColor().then(iF),"")}`:""}}var iH=s("./node_modules/client-compress/dist/index.js"),iG=s.n(iH);let iW={aac:"audio/aac",abw:"application/x-abiword",arc:"application/x-freearc",avi:"video/x-msvideo",azw:"application/vnd.amazon.ebook",bin:"application/octet-stream",bmp:"image/bmp",bz:"application/x-bzip",bz2:"application/x-bzip2",cda:"application/x-cdf",csh:"application/x-csh",css:"text/css",csv:"text/csv",doc:"application/msword",docx:"application/vnd.openxmlformats-officedocument.wordprocessingml.document",eot:"application/vnd.ms-fontobject",epub:"application/epub+zip",gif:"image/gif",gz:"application/gzip",htm:"text/html",html:"text/html",ico:"image/vnd.microsoft.icon",ics:"text/calendar",jar:"application/java-archive",jpeg:"image/jpeg",jpg:"image/jpeg",js:"text/javascript",json:"application/json",jsonld:"application/ld+json",m4a:"audio/mp4",mid:"audio/midi",midi:"audio/midi",mjs:"text/javascript",mp3:"audio/mpeg",mp4:"video/mp4",mpeg:"video/mpeg",mpkg:"application/vnd.apple.installer+xml",odp:"application/vnd.oasis.opendocument.presentation",ods:"application/vnd.oasis.opendocument.spreadsheet",odt:"application/vnd.oasis.opendocument.text",oga:"audio/ogg",ogv:"video/ogg",ogx:"application/ogg",opus:"audio/opus",otf:"font/otf",png:"image/png",pdf:"application/pdf",php:"application/x-httpd-php",ppt:"application/vnd.ms-powerpoint",pptx:"application/vnd.openxmlformats-officedocument.presentationml.presentation",rar:"application/vnd.rar",rtf:"application/rtf",sh:"application/x-sh",svg:"image/svg+xml",swf:"application/x-shockwave-flash",tar:"application/x-tar",tif:"image/tiff",tiff:"image/tiff",ts:"video/mp2t",ttf:"font/ttf",txt:"text/plain",vsd:"application/vnd.visio",wav:"audio/wav",weba:"audio/webm",webm:"video/webm",webp:"image/webp",woff:"font/woff",woff2:"font/woff2",xhtml:"application/xhtml+xml",xls:"application/vnd.ms-excel",xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",xml:"text/xml",xul:"application/vnd.mozilla.xul+xml",zip:"application/zip","3gp":"video/3gpp","3g2":"video/3gpp2","7z":"application/x-7z-compressed"};async function iZ(e){if(e.type===iW.png){let t=new FileReader;return await new Promise(s=>{t.onloadend=e=>{let t=new DataView(e.target.result);if(0x89504e47===t.getUint32(0)&&0xd0a1a0a===t.getUint32(4)){let e=t.getUint8(25);s(4===e||6===e)}s(!1)},t.readAsArrayBuffer(e)})}return!1}async function iV(e,t={targetSize:.1,quality:.75,maxWidth:256,maxHeight:256,maxUncompressedSize:100}){if(t.maxUncompressedSize&&e.size>1024*t.maxUncompressedSize){delete t.maxUncompressedSize;let s=new(iG())(t),{photo:r}=(await s.compress([e]))[0];return r.data}return e}function iQ(e,t){let s=T.u.getURL(t).hostname.split("."),r=s.slice(-2).join("."),i=s.slice(0,-2).join("."),o=`${i?`${i}.`:""}${r}`;return e.includes(r)||e.includes(o)}function iK(e,t){let s=T.hi.settings.get(t);if(!Array.isArray(s))return!0;try{return iQ(s,e)}catch(e){return T.cM.debug(e),!1}}function iJ(e){return e.is_audio&&iK(e.url,"allowed_audio_domains")||e.is_video&&iK(e.url,"allowed_video_domains")||e.is_image&&iK(e.url,"allowed_image_domains")}function iY(e,t){if(!function(e){let{protocol:t}=window.location;if(["chrome-extension:","file:"].includes(t))return!0;let s=T.u.getURL(e);return"http:"===t||"https:"===t&&["https:","aesgcm:"].includes(s.protocol.toLowerCase())}(e))return!1;let s=T.hi.settings.get("render_media"),r=iK(e,`allowed_${t}_domains`);return Array.isArray(s)?r&&iQ(s,e):r&&s}function iX(e){let t=T.hi.settings.get("filter_url_query_params");if(!t)return e;let s=Array.isArray(t)?t:[t],r=T.u.getURL(e);return s.forEach(e=>r.searchParams.delete(e)),r.toString()}Object.assign(T.u,{...u,...h,...c,...m});let i1="backdrop",i0="show",i2=`mousedown.bs.${i1}`,i4={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},i3={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"},i6=class extends rw{constructor(e){super(),this._config=this._getConfig(e),this._isAppended=!1,this._element=null}static get Default(){return i4}static get DefaultType(){return i3}static get NAME(){return i1}show(e){if(!this._config.isVisible)return void re(e);this._append();let t=this._getElement();this._config.isAnimated&&s8(t),t.classList.add(i0),this._emulateAnimation(()=>{re(e)})}hide(e){if(!this._config.isVisible)return void re(e);this._getElement().classList.remove(i0),this._emulateAnimation(()=>{this.dispose(),re(e)})}dispose(){this._isAppended&&(rg.off(this._element,i2),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){let e=document.createElement("div");e.className=this._config.className,this._config.isAnimated&&e.classList.add("fade"),this._element=e}return this._element}_configAfterMerge(e){return e.rootElement=s0(e.rootElement),e}_append(){if(this._isAppended)return;let e=this._getElement();this._config.rootElement.append(e),rg.on(e,i2,()=>{re(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(e){rt(e,this._getElement(),this._config.isAnimated)}},i8=".bs.focustrap",i5=`focusin${i8}`,i9=`keydown.tab${i8}`,i7="backward",ne={autofocus:!0,trapElement:null},nt={autofocus:"boolean",trapElement:"element"},ns=class extends rw{constructor(e){super(),this._config=this._getConfig(e),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return ne}static get DefaultType(){return nt}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),rg.off(document,i8),rg.on(document,i5,e=>this._handleFocusin(e)),rg.on(document,i9,e=>this._handleKeydown(e)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,rg.off(document,i8))}_handleFocusin(e){let{trapElement:t}=this._config;if(e.target===document||e.target===t||t.contains(e.target))return;let s=rx.focusableChildren(t);0===s.length?t.focus():this._lastTabNavDirection===i7?s[s.length-1].focus():s[0].focus()}_handleKeydown(e){"Tab"===e.key&&(this._lastTabNavDirection=e.shiftKey?i7:"forward")}},nr=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",ni=".sticky-top",nn="padding-right",no="margin-right",na=class{constructor(){this._element=document.body}getWidth(){let e=document.documentElement.clientWidth;return Math.abs(window.innerWidth-e)}hide(){let e=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,nn,t=>t+e),this._setElementAttributes(nr,nn,t=>t+e),this._setElementAttributes(ni,no,t=>t-e)}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,nn),this._resetElementAttributes(nr,nn),this._resetElementAttributes(ni,no)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(e,t,s){let r=this.getWidth(),i=e=>{if(e!==this._element&&window.innerWidth>e.clientWidth+r)return;this._saveInitialAttribute(e,t);let i=window.getComputedStyle(e).getPropertyValue(t);e.style.setProperty(t,`${s(Number.parseFloat(i))}px`)};this._applyManipulationCallback(e,i)}_saveInitialAttribute(e,t){let s=e.style.getPropertyValue(t);s&&rb.setDataAttribute(e,t,s)}_resetElementAttributes(e,t){this._applyManipulationCallback(e,e=>{let s=rb.getDataAttribute(e,t);if(null===s)return void e.style.removeProperty(t);rb.removeDataAttribute(e,t),e.style.setProperty(t,s)})}_applyManipulationCallback(e,t){if(s1(e))return void t(e);for(let s of rx.find(e,this._element))t(s)}},nl=".bs.modal",nc=`hide${nl}`,nd=`hidePrevented${nl}`,nu=`hidden${nl}`,nh=`show${nl}`,nm=`shown${nl}`,np=`resize${nl}`,nf=`click.dismiss${nl}`,ng=`mousedown.dismiss${nl}`,nv=`keydown.dismiss${nl}`,n_=`click${nl}.data-api`,ny="modal-open",nb="show",nw="modal-static",nj={backdrop:!0,focus:!0,keyboard:!0},nS={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class nx extends rj{constructor(e,t){super(e,t),this._dialog=rx.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new na,this._addEventListeners()}static get Default(){return nj}static get DefaultType(){return nS}static get NAME(){return"modal"}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||this._isTransitioning||rg.trigger(this._element,nh,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(ny),this._adjustDialog(),this._backdrop.show(()=>this._showElement(e)))}hide(){this._isShown&&!this._isTransitioning&&(rg.trigger(this._element,nc).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(nb),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated())))}dispose(){rg.off(window,nl),rg.off(this._dialog,nl),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new i6({isVisible:!!this._config.backdrop,isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new ns({trapElement:this._element})}_showElement(e){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;let t=rx.findOne(".modal-body",this._dialog);t&&(t.scrollTop=0),s8(this._element),this._element.classList.add(nb);let s=()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,rg.trigger(this._element,nm,{relatedTarget:e})};this._queueCallback(s,this._dialog,this._isAnimated())}_addEventListeners(){rg.on(this._element,nv,e=>{if("Escape"===e.key){if(this._config.keyboard)return void this.hide();this._triggerBackdropTransition()}}),rg.on(window,np,()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),rg.on(this._element,ng,e=>{rg.one(this._element,nf,t=>{if(this._element===e.target&&this._element===t.target){if("static"===this._config.backdrop)return void this._triggerBackdropTransition();this._config.backdrop&&this.hide()}})})}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(ny),this._resetAdjustments(),this._scrollBar.reset(),rg.trigger(this._element,nu)})}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(rg.trigger(this._element,nd).defaultPrevented)return;let e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._element.style.overflowY;"hidden"===t||this._element.classList.contains(nw)||(e||(this._element.style.overflowY="hidden"),this._element.classList.add(nw),this._queueCallback(()=>{this._element.classList.remove(nw),this._queueCallback(()=>{this._element.style.overflowY=t},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){let e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._scrollBar.getWidth(),s=t>0;if(s&&!e){let e="rtl"===document.documentElement.dir?"paddingLeft":"paddingRight";this._element.style[e]=`${t}px`}if(!s&&e){let e="rtl"===document.documentElement.dir?"paddingRight":"paddingLeft";this._element.style[e]=`${t}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(e,t){return this.each(function(){let s=nx.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===s[e])throw TypeError(`No method named "${e}"`);s[e](t)}})}}function nA(){let e,t=()=>{},s=()=>{};if("function"==typeof Promise.withResolvers){let{promise:r,resolve:i,reject:o}=Promise.withResolvers();e=r,t=i,s=o}else e=new Promise((e,r)=>{t=e,s=r});return Object.assign(e,{isResolved:!1,isPending:!0,isRejected:!1,resolve:t,reject:s}),e.then(t=>(e.isResolved=!0,e.isPending=!1,e.isRejected=!1,t),t=>{throw e.isResolved=!1,e.isPending=!1,e.isRejected=!0,t}),e}rg.on(document,n_,'[data-bs-toggle="modal"]',function(e){let t=rx.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&e.preventDefault(),rg.one(t,nh,e=>{e.defaultPrevented||rg.one(t,nu,()=>{s2(this)&&this.focus()})});let s=rx.findOne(".modal.show");s&&nx.getInstance(s).hide(),nx.getOrCreateInstance(t).toggle(this)}),((e,t="hide")=>{let s=`click.dismiss${e.EVENT_KEY}`,r=e.NAME;rg.on(document,s,`[data-bs-dismiss="${r}"]`,function(s){if(["A","AREA"].includes(this.tagName)&&s.preventDefault(),s4(this))return;let i=rx.getElementFromSelector(this)||this.closest(`.${r}`);e.getOrCreateInstance(i)[t]()})})(nx),s7(nx);let nE=eE``,n$=eE``;var nk=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/modal/styles/_modal.scss"),nC={};nC.styleTagTransform=A(),nC.setAttributes=w(),nC.insert=y().bind(null,"head"),nC.domAPI=v(),nC.insertStyleElement=S(),f()(nk.Z,nC),nk.Z&&nk.Z.locals&&nk.Z.locals;let nT=class extends eV{static get properties(){return{model:{type:T.Hn}}}#l;constructor(e){super(),this.model=null,this.state=new T.Hn,this.listenTo(this.state,"change",()=>this.requestUpdate()),this.className=T.u.isTestEnv()?"modal":"modal fade",this.tabIndex=-1,this.ariaHidden="true",this.onKeyDown=e=>{"Escape"===e.key&&"false"===this.ariaHidden&&this.close()},this.initialized=nA(),Object.assign(this,e),setTimeout(()=>this.insertIntoDOM()),this.addEventListener("shown.bs.modal",()=>{this.ariaHidden="false"}),this.addEventListener("hidden.bs.modal",()=>{this.ariaHidden="true",T.hi.modal.remove(this.nodeName.toLowerCase())})}connectedCallback(){super.connectedCallback(),window.addEventListener("keydown",this.onKeyDown)}disconnectedCallback(){window.removeEventListener("resize",this.onKeyDown),super.disconnectedCallback()}get modal(){return this.#l||(this.#l=new nx(this,{backdrop:!T.u.isTestEnv(),keyboard:!0})),this.#l}initialize(){this.requestUpdate(),this.initialized.resolve()}renderModal(){return""}renderModalFooter(){return eE``}render(){return(e=>{var t,s;let r=e.state?.get("alert"),i=e.state?.get("level")??"";return eE``})(this)}getModalTitle(){return""}switchTab(e){e?.stopPropagation(),e?.preventDefault(),this.tab=e.target.getAttribute("data-name"),this.requestUpdate()}close(){this.modal.hide()}insertIntoDOM(){document.querySelector("#converse-modals").insertAdjacentElement("beforeend",this)}alert(e,t="primary",s=!0){this.state.set("alert",{message:e,type:t}),s&&(this.alertTimeout&&clearTimeout(this.alertTimeout),this.alertTimeout=setTimeout(()=>{this.state.set("alert",void 0)},5e3))}async show(){await this.initialized,this.modal.show(),this.requestUpdate()}};T.hi.elements.define("converse-alert-modal",class extends nT{initialize(){super.initialize(),this.addEventListener("hide.bs.modal",()=>this.remove(),!1)}renderModal(){let e;return e=this.state.toJSON(),eE``}getModalTitle(){return this.state.get("title")}});class nM extends nT{constructor(e){super(e),this.confirmation=nA()}initialize(){super.initialize(),this.listenTo(this.state,"change",()=>this.requestUpdate()),this.addEventListener("hide.bs.modal",()=>{this.confirmation.isResolved||this.confirmation.reject()},!1),this.onKeyDown=e=>{e.key===T._G.KEYCODES.ENTER&&(e.preventDefault(),e.stopPropagation(),this.querySelector("form.confirm button[type=submit]").click())}}connectedCallback(){super.connectedCallback(),this.addEventListener("keydown",this.onKeyDown)}disconnectedCallback(){this.removeEventListener("keydown",this.onKeyDown),super.disconnectedCallback()}renderModal(){var e=this;let t=e.state.get("messages")?.[0],s=e.state.get("messages")?.slice(1)||[];return eE`
${t}
${s?.map(e=>eE`

${e}

`)}
${e.state.get("fields")?.map(e=>"checkbox"===e.type?eE`
`:eE`
${e.challenge_failed?eE`
Please provide a valid input.
`:""}
`)}
`}getModalTitle(){return this.state.get("title")}renderModalFooter(){return""}onConfimation(e){e.preventDefault();let t=new FormData(e.target),s=(this.state.get("fields")||[]).map(e=>{let s=t.get(e.name);return e.value=s,e.challenge&&(e.challenge_failed=s!==e.challenge),e});if(s.filter(e=>e.challenge_failed).length){this.state.set("fields",s),this.state.trigger("change");return}this.confirmation.resolve(s),this.modal.hide()}}T.hi.elements.define("converse-confirm-modal",nM);let nO=[],nN={},nI={},nR={modal:{show(e,t,s){let r;if("string"==typeof e)Object.assign(r=this.get(e)??this.create(e,t),t);else{let s=e.id??t.id;r=this.get(s)??this.create(e,t)}return r.show(s),r},get:e=>nN[e]??nO.filter(t=>t.id==e).pop(),create(e,t){let s=customElements.get(e);return nN[e]=new s(t)},remove(e){let t;"string"==typeof e?(t=nN[e],delete nN[e]):(t=e,nO=nO.filter(e=>e!==t)),t?.remove()},removeAll(){nO.forEach(e=>e.remove()),nO=[],nN={}}},async confirm(e,t=[],s=[]){let r;"string"==typeof t&&(t=[t]);let i=new nM({state:new T.Hn({title:e,messages:t,fields:s,type:"confirm"})});i.show();try{r=await i.confirmation}catch(e){r=!1}return i.remove(),r},async prompt(e,t=[],s=""){let r;"string"==typeof t&&(t=[t]);let i=new nM({state:new T.Hn({title:e,messages:t,fields:[{name:"reason",placeholder:s}],type:"prompt"})});i.show();try{r=(await i.confirmation).pop()?.value}catch(e){r=!1}return i.remove(),r},alert(e,t,s){let r;"string"==typeof s&&(s=[s]),"error"===e?r="alert-danger":"info"===e?r="alert-info":"warn"===e&&(r="alert-warning");let i=new T.Hn({title:t,messages:s,level:r,type:"alert"});nR.modal.show("converse-alert-modal",{state:i})},toast:{show(e,t){nI[e]=t,T.hi.trigger("showToast",t)},get:e=>e?nI[e]:Object.keys(nI).map(e=>({name:e,...nI[e]})),remove(e){delete nI[e],T.hi.trigger("hideToast")}}},nD={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},nL=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),nz=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,nP=(e,t)=>{let s=e.nodeName.toLowerCase();return t.includes(s)?!nL.has(s)||!!nz.test(e.nodeValue):t.filter(e=>e instanceof RegExp).some(e=>e.test(s))},nU={allowList:nD,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},nB={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},nF={entry:"(string|element|function|null)",selector:"(string|element)"},nq=class extends rw{constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return nU}static get DefaultType(){return nB}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map(e=>this._resolvePossibleFunction(e)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){let e=document.createElement("div");for(let[t,s]of(e.innerHTML=this._maybeSanitize(this._config.template),Object.entries(this._config.content)))this._setContent(e,s,t);let t=e.children[0],s=this._resolvePossibleFunction(this._config.extraClass);return s&&t.classList.add(...s.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(let[t,s]of Object.entries(e))super._typeCheckConfig({selector:t,entry:s},nF)}_setContent(e,t,s){let r=rx.findOne(s,e);if(r){if(!(t=this._resolvePossibleFunction(t)))return void r.remove();if(s1(t))return void this._putElementInTemplate(s0(t),r);if(this._config.html){r.innerHTML=this._maybeSanitize(t);return}r.textContent=t}}_maybeSanitize(e){return this._config.sanitize?function(e,t,s){if(!e.length)return e;if(s&&"function"==typeof s)return s(e);let r=new window.DOMParser().parseFromString(e,"text/html");for(let e of[].concat(...r.body.querySelectorAll("*"))){let s=e.nodeName.toLowerCase();if(!Object.keys(t).includes(s)){e.remove();continue}let r=[].concat(...e.attributes),i=[].concat(t["*"]||[],t[s]||[]);for(let t of r)nP(t,i)||e.removeAttribute(t.nodeName)}return r.body.innerHTML}(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return re(e,[void 0,this])}_putElementInTemplate(e,t){if(this._config.html){t.innerHTML="",t.append(e);return}t.textContent=e.textContent}},nH=new Set(["sanitize","allowList","sanitizeFn"]),nG="fade",nW="show",nZ=".modal",nV="hide.bs.modal",nQ="hover",nK="focus",nJ="click",nY={AUTO:"auto",TOP:"top",RIGHT:"rtl"===document.documentElement.dir?"left":"right",BOTTOM:"bottom",LEFT:"rtl"===document.documentElement.dir?"right":"left"},nX={allowList:nD,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},n1={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class n0 extends rj{constructor(e,t){if(void 0===d)throw TypeError("Bootstrap's tooltips require Popper (https://popper.js.org/docs/v2/)");super(e,t),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return nX}static get DefaultType(){return n1}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){if(this._isEnabled){if(this._isShown())return void this._leave();this._enter()}}dispose(){clearTimeout(this._timeout),rg.off(this._element.closest(nZ),nV,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw Error("Please use show on visible elements");if(!(this._isWithContent()&&this._isEnabled))return;let e=rg.trigger(this._element,this.constructor.eventName("show")),t=(s3(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposePopper();let s=this._getTipElement();this._element.setAttribute("aria-describedby",s.getAttribute("id"));let{container:r}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(r.append(s),rg.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(s),s.classList.add(nW),"ontouchstart"in document.documentElement)for(let e of[].concat(...document.body.children))rg.on(e,"mouseover",s6);let i=()=>{rg.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1};this._queueCallback(i,this.tip,this._isAnimated())}hide(){if(!this._isShown()||rg.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented)return;if(this._getTipElement().classList.remove(nW),"ontouchstart"in document.documentElement)for(let e of[].concat(...document.body.children))rg.off(e,"mouseover",s6);this._activeTrigger[nJ]=!1,this._activeTrigger[nK]=!1,this._activeTrigger[nQ]=!1,this._isHovered=null;let e=()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),rg.trigger(this._element,this.constructor.eventName("hidden")))};this._queueCallback(e,this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return!!this._getTitle()}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){let t=this._getTemplateFactory(e).toHtml();if(!t)return null;t.classList.remove(nG,nW),t.classList.add(`bs-${this.constructor.NAME}-auto`);let s=(e=>{do e+=Math.floor(1e6*Math.random());while(document.getElementById(e));return e})(this.constructor.NAME).toString();return t.setAttribute("id",s),this._isAnimated()&&t.classList.add(nG),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new nq({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(nG)}_isShown(){return this.tip&&this.tip.classList.contains(nW)}_createPopper(e){let t=nY[re(this._config.placement,[this,e,this._element]).toUpperCase()];return sZ(this._element,e,this._getPopperConfig(t))}_getOffset(){let{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?t=>e(t,this._element):e}_resolvePossibleFunction(e){return re(e,[this._element,this._element])}_getPopperConfig(e){let t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:e=>{this._getTipElement().setAttribute("data-popper-placement",e.state.placement)}}]};return{...t,...re(this._config.popperConfig,[void 0,t])}}_setListeners(){for(let e of this._config.trigger.split(" "))if("click"===e)rg.on(this._element,this.constructor.eventName("click"),this._config.selector,e=>{let t=this._initializeOnDelegatedTarget(e);t._activeTrigger[nJ]=!(t._isShown()&&t._activeTrigger[nJ]),t.toggle()});else if("manual"!==e){let t=e===nQ?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),s=e===nQ?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");rg.on(this._element,t,this._config.selector,e=>{let t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?nK:nQ]=!0,t._enter()}),rg.on(this._element,s,this._config.selector,e=>{let t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?nK:nQ]=t._element.contains(e.relatedTarget),t._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},rg.on(this._element.closest(nZ),nV,this._hideModalHandler)}_fixTitle(){let e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){if(this._isShown()||this._isHovered){this._isHovered=!0;return}this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show)}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){let t=rb.getDataAttributes(this._element);for(let e of Object.keys(t))nH.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:s0(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){let e={};for(let[t,s]of Object.entries(this._config))this.constructor.Default[t]!==s&&(e[t]=s);return e.selector=!1,e.trigger="manual",e}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(e){return this.each(function(){let t=n0.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw TypeError(`No method named "${e}"`);t[e]()}})}}s7(n0);let n2=n0,n4={...n2.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},n3={...n2.DefaultType,content:"(null|string|element|function)"};class n6 extends n2{static get Default(){return n4}static get DefaultType(){return n3}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(e){return this.each(function(){let t=n6.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw TypeError(`No method named "${e}"`);t[e]()}})}}s7(n6);var n8=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/modal/styles/popover.scss"),n5={};n5.styleTagTransform=A(),n5.setAttributes=w(),n5.insert=y().bind(null,"head"),n5.domAPI=v(),n5.insertStyleElement=S(),f()(n8.Z,n5),n8.Z&&n8.Z.locals&&n8.Z.locals;class n9 extends eV{static get properties(){return{title:{type:String},text:{type:String}}}constructor(){super(),this.title=null,this.text=null}firstUpdated(e){super.firstUpdated(e),new n6(this.firstElementChild,{container:"converse-root",trigger:"focus"})}render(){return eE``}}T.hi.elements.define("converse-popover",n9);var n7=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/modal/styles/toast.scss"),oe={};oe.styleTagTransform=A(),oe.setAttributes=w(),oe.insert=y().bind(null,"head"),oe.domAPI=v(),oe.insertStyleElement=S(),f()(n7.Z,oe),n7.Z&&n7.Z.locals&&n7.Z.locals;class ot extends eV{static get properties(){return{type:{type:String},name:{type:String},title:{type:String},body:{type:String}}}constructor(){super(),this.name="",this.body="",this.header="",this.type="info"}updated(e){"danger"!==e.get("type")?this.timeoutId=setTimeout(()=>this.hide(),5e3):clearTimeout(this.timeoutId)}render(){return eE``}hide(e){e?.preventDefault(),T.hi.toast.remove(this.name)}}T.hi.elements.define("converse-toast",ot),T.hi.elements.define("converse-modals",class extends eV{render(){return eE``}}),T.hi.elements.define("converse-toasts",class extends eV{initialize(){super.initialize(),T.hi.listen.on("showToast",()=>this.requestUpdate()),T.hi.listen.on("hideToast",()=>this.requestUpdate())}render(){let e=T.hi.toast.get();return eE`${e.map(e=>eE``)}`}}),T.Qr.plugins.add("converse-modal",{initialize(){T.hi.listen.on("clearSession",()=>T.hi.modal.removeAll()),Object.assign(T.Tk.exports,{BaseModal:nT,Popover:n9,Toast:ot}),Object.assign(T.Tk.api,nR)}});let os=class extends String{constructor(e,t){super();let s=Array.isArray(e)?{label:e[0],value:e[1]}:"object"==typeof e&&"label"in e&&"value"in e?e:{label:e,value:e};this.label=s.label||s.value,this.value=s.value,this.query=t,this.data=e}get lenth(){return this.label.length}toString(){return`${this.label}`}valueOf(){return this.toString()}},or=T.Qr.env.utils,oi={getElement:(e,t)=>"string"==typeof e?(t||document).querySelector(e):e||null,bind(e,t){if(e)for(var s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;let r=t[s];s.split(/\s+/).forEach(t=>e.addEventListener(t,r))}},unbind(e,t){if(e)for(var s in t){if(!Object.prototype.hasOwnProperty.call(t,s))continue;let r=t[s];s.split(/\s+/).forEach(t=>e.removeEventListener(t,r))}},isMention:(e,t)=>t.includes(e[0])||or.isMentionBoundary(e[0])&&t.includes(e[1])};function on(e){return e.replace(/[-\\^$*+?.()|[\]{}]/g,"\\$&")}function oo(e,t){return RegExp(on(t.trim()),"i").test(e)}function oa(e,t){return RegExp("^"+on(t.trim()),"i").test(e)}let ol=function(e,t){let s=e.query.toLowerCase(),r=e.label.toLowerCase().indexOf(s),i=t.label.toLowerCase().indexOf(s);if(r===i)return e.length!==t.length?e.length-t.length:e${r.map(e=>t&&e.match(s)?eE`${e}`:e)}`}Object.assign(or,{autocomplete:{regExpEscape:on,getAutoCompleteItem:oc}});let{siblingIndex:od}=T.u;class ou extends(0,T.vp)(Object){constructor(e,t={}){super(),this.suggestions=[],this.is_opened=!1,this.match_current_word=!1,this.sort=!1===t.sort?null:ol,this.filter=oo,this.ac_triggers=[],this.include_triggers=[],this.min_chars=2,this.max_items=10,this.auto_first=!1,this.data=(e,t)=>e,this.item=oc,T.u.hasClass("suggestion-box",e)?this.container=e:this.container=e.querySelector(".suggestion-box"),this.input=this.container.querySelector(".suggestion-box__input"),this.input.setAttribute("aria-autocomplete","list"),this.ul=this.container.querySelector(".suggestion-box__results"),this.status=this.container.querySelector(".suggestion-box__additions"),Object.assign(this,t),this.index=-1,this.bindEvents(),this.input.hasAttribute("list")?(this.list="#"+this.input.getAttribute("list"),this.input.removeAttribute("list")):this.list=this.input.getAttribute("data-list")||t.list||[]}bindEvents(){this._events={input:{blur:()=>this.close({reason:"blur"})},form:{submit:()=>this.close({reason:"submit"})},ul:{mousedown:e=>this.onMouseDown(e),mouseover:e=>this.onMouseOver(e)}},oi.bind(this.input,this._events.input),oi.bind(this.input.form,this._events.form),oi.bind(this.ul,this._events.ul)}set list(e){if(Array.isArray(e)||"function"==typeof e)this._list=e;else if("string"==typeof e&&e.includes(","))this._list=e.split(/\s*,\s*/);else{let t=oi.getElement(e)?.children||[];this._list=Array.from(t).filter(e=>!e.disabled).map(e=>{let t=e.textContent.trim(),s=e.value||t,r=e.label||t;return""!==s?{label:r,value:s}:null}).filter(e=>e)}document.activeElement===this.input&&this.evaluate()}get list(){return this._list}get selected(){return this.index>-1}get opened(){return this.is_opened}close(e){this.opened&&(this.ul.setAttribute("hidden",""),this.is_opened=!1,this.index=-1,this.trigger("suggestion-box-close",e||{}))}insertValue(e){this.match_current_word?T.u.replaceCurrentWord(this.input,e.value):this.input.value=e.value}open(){this.ul.removeAttribute("hidden"),this.is_opened=!0,this.auto_first&&-1===this.index&&this.goto(0),this.trigger("suggestion-box-open")}destroy(){oi.unbind(this.input,this._events.input),oi.unbind(this.input.form,this._events.form),this.input.removeAttribute("aria-autocomplete")}next(){let e=this.ul.children.length;this.goto(this.indexe instanceof HTMLElement);this.selected&&s[this.index].setAttribute("aria-selected","false"),this.index=e,e>-1&&s.length>0&&(s[e].setAttribute("aria-selected","true"),s[e].focus(),this.status.textContent=s[e].textContent,t&&(this.ul.scrollTop=s[e].offsetTop-this.ul.clientHeight+s[e].clientHeight),this.trigger("suggestion-box-highlight",{text:this.suggestions[this.index]}))}select(e){if(e?this.index=od(e):e=this.ul.children[this.index],e){let e=this.suggestions[this.index];this.insertValue(e),this.close({reason:"select"}),this.auto_completing=!1,this.trigger("suggestion-box-selectcomplete",{text:e,suggestion:e})}}onMouseOver(e){let t=T.u.ancestor(e.target,"li");if(t){let e=Array.prototype.slice.call(this.ul.children).indexOf(t);this.goto(e,!1)}}onMouseDown(e){if(0!==e.button)return;let t=T.u.ancestor(e.target,"li");t&&(e.preventDefault(),this.select(t))}onKeyDown(e){if(this.opened){if([T.Qr.keycodes.ENTER,T.Qr.keycodes.TAB].includes(e.key)&&this.selected)return e.preventDefault(),e.stopPropagation(),this.select(),!0;else if(e.key===T.Qr.keycodes.ESCAPE)return this.close({reason:"esc"}),!0;else if([T.Qr.keycodes.UP_ARROW,T.Qr.keycodes.DOWN_ARROW].includes(e.key))return e.preventDefault(),e.stopPropagation(),this[e.key===T.Qr.keycodes.UP_ARROW?"previous":"next"](),!0}if(![T.Qr.keycodes.SHIFT,T.Qr.keycodes.META,T.Qr.keycodes.ESCAPE,T.Qr.keycodes.ALT].includes(e.key)){if(this.ac_triggers.includes(e.key)){if("Tab"===e.key){if(e.shiftKey||this.min_chars>0&&""===this.input.value)return;e.preventDefault()}this.auto_completing=!0}else if("Backspace"===e.key){let t=e.target,s=T.u.getCurrentWord(t,t.selectionEnd-1);oi.isMention(s,this.ac_triggers)&&(this.auto_completing=!0)}}}async evaluate(e){if(this.selected&&e&&(e.key===T.Qr.keycodes.UP_ARROW||e.key===T.Qr.keycodes.DOWN_ARROW))return;let t=this.match_current_word?T.u.getCurrentWord(this.input):this.input.value,s=oi.isMention(t,this.ac_triggers);s&&!this.include_triggers.includes(e.key)&&(t=T.u.isMentionBoundary(t[0])?t.slice(2):t.slice(1));let r=t.length&&t.length>=this.min_chars;if(s||r){this.auto_completing=!0;let e="function"==typeof this._list?await this._list(t):this._list;if(0===e.length||!this.auto_completing)return void this.close({reason:"nomatches"});this.index=-1,this.suggestions=e.map(e=>new os(this.data(e,t),t)).filter(({value:e})=>this.filter(e,t)),this.sort&&(this.suggestions=this.suggestions.sort(this.sort)),this.suggestions=this.suggestions.slice(0,this.max_items),eH(eE`${this.suggestions.map(e=>this.item(e,t))}`,this.ul),0===this.suggestions.length?this.close({reason:"nomatches"}):this.open()}else this.close({reason:"nomatches"}),s||(this.auto_completing=!1)}}T.hi.elements.define("converse-autocomplete",class extends eV{static get properties(){return{auto_evaluate:{type:Boolean},auto_first:{type:Boolean},autofocus:{type:Boolean},data:{type:Function},error_message:{type:String},filter:{type:String},getAutoCompleteList:{type:Function},include_triggers:{type:String},list:{type:Array},min_chars:{type:Number},name:{type:String},placeholder:{type:String},position:{type:String},renderItem:{type:Function},required:{type:Boolean},triggers:{type:String},validate:{type:Function},value:{type:String}}}constructor(){super(),this.auto_evaluate=!0,this.auto_first=!1,this.data=e=>e,this.error_message="",this.filter="contains",this.getAutoCompleteList=null,this.include_triggers="",this.list=null,this.match_current_word=!1,this.max_items=10,this.min_chars=1,this.name="",this.placeholder="",this.position="above",this.renderItem=oc,this.required=!1,this.triggers="",this.validate=null,this.value="",this.evaluate=T.u.debounce(e=>{this.auto_evaluate&&this.auto_complete.evaluate(e)},250)}render(){let e=`suggestion-box__results--${this.position}`;return eE`
${this.error_message?eE`
${this.error_message}
`:""}`}firstUpdated(){this.auto_complete=new ou(this.firstElementChild,{ac_triggers:this.triggers.split(" "),auto_first:this.auto_first,filter:"contains"==this.filter?oo:oa,include_triggers:[],list:this.list??(e=>this.getAutoCompleteList(e)),data:this.data,match_current_word:!0,max_items:this.max_items,min_chars:this.min_chars,item:this.renderItem}),this.auto_complete.on("suggestion-box-selectcomplete",({suggestion:e})=>{this.auto_completing=!1,this.dispatchEvent(new CustomEvent("autocomplete-select",{detail:{suggestion:e},bubbles:!0,composed:!0}))})}onKeyDown(e){this.auto_complete.onKeyDown(e)}async onChange(){let e=this.querySelector("input");return this.error_message=await this.validate?.(e.value),this.error_message&&this.requestUpdate(),this}});var oh=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/autocomplete/styles/_autocomplete.scss"),om={};om.styleTagTransform=A(),om.setAttributes=w(),om.insert=y().bind(null,"head"),om.domAPI=v(),om.insertStyleElement=S(),f()(oh.Z,om),oh.Z&&oh.Z.locals&&oh.Z.locals;let op={AutoComplete:ou};Object.assign(T.Tk,op),Object.assign(T.Tk.exports,op);let of={execute:D("Execute"),prev:D("Previous"),next:D("Next"),complete:D("Complete")},og={info:"primary",warn:"secondary",error:"danger"};var ov=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/avatar/avatar.scss"),o_={};o_.styleTagTransform=A(),o_.setAttributes=w(),o_.insert=y().bind(null,"head"),o_.domAPI=v(),o_.insertStyleElement=S(),f()(ov.Z,o_),ov.Z&&ov.Z.locals&&ov.Z.locals,T.hi.elements.define("converse-avatar",class extends eV{static get properties(){return{model:{type:Object},pickerdata:{type:Object},name:{type:String},width:{type:String},height:{type:String},nonce:{type:String}}}constructor(){super(),this.model=null,this.pickerdata=null,this.width=36,this.height=36,this.name=""}render(){let e,t,s;if(this.pickerdata?(e=this.pickerdata.image_type,s=this.pickerdata.data_uri):(e=this.model?.vcard?.get("image_type"),t=this.model?.vcard?.get("image")),e&&(t||s)){let i,o;var r={classes:this.getAttribute("class"),height:this.height,width:this.width,image:s||`data:${e};base64,${t}`,image_type:e,alt_text:D("The profile picture of %1$s",this.name)};if(!r.image)return"";return eE``}let i=` width: ${this.width}px; height: ${this.height}px; font: ${this.width/2}px Arial; line-height: ${this.height}px;`,o=this.model.getAvatarStyle(i);return eE`
${this.getInitials(this.name)}
`}getInitials(e){let t=e?.split(" ");return t?.length>1?t[0].charAt(0).toUpperCase()+t[t.length-1].charAt(0).toUpperCase():t?.length===1?t[0].charAt(0).toUpperCase():""}});var oy=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/modals/styles/occupant.scss"),ob={};ob.styleTagTransform=A(),ob.setAttributes=w(),ob.insert=y().bind(null,"head"),ob.domAPI=v(),ob.insertStyleElement=S(),f()(oy.Z,ob),oy.Z&&oy.Z.locals&&oy.Z.locals;let{u:ow}=T.Qr.env;function oj(e){return"moderator"===e?D("Moderators are privileged users who can change the roles of other users (except those with admin or owner affiliations."):"participant"===e?D("The default role, implies that you can read and write messages."):"visitor"==e?D("Visitors aren't allowed to write messages in a moderated multi-user chat."):void 0}function oS(e){return"owner"===e?D("Owner is the highest affiliation. Owners can modify roles and affiliations of all other users."):"admin"===e?D("Admin is the 2nd highest affiliation. Admins can modify roles and affiliations of all other users except owners."):"outcast"===e?D('To ban a user, you give them the affiliation of "outcast".'):void 0}T.hi.elements.define("converse-muc-occupant-modal",class extends nT{constructor(e){super(),this.message=e.message,this.addEventListener("affiliationChanged",()=>this.alert(D("Affiliation changed"))),this.addEventListener("roleChanged",()=>this.alert(D("role changed")))}initialize(){super.initialize();let e=this.model??this.message;this.listenTo(e,"change",()=>this.requestUpdate()),T.hi.trigger("occupantModalInitialized",{model:this.model,message:this.message})}renderModal(){return(e=>{let t=e.model??e.message,s=t?.get("jid"),r=e.getVcard(),i=t.get("nick"),o=t.get("occupant_id"),a=e.model?.get("role"),l=e.model?.get("affiliation"),c=e.model?.get("hats")?.length?e.model.get("hats"):null,d=e.model.collection.chatroom,u=D("Add to Contacts"),h=d.getAllowedCommands().includes("modtools"),m=d.features.get("nonanonymous")||"moderator"===d.getOwnRole(),p=s!=T.Tk.session.get("bare_jid"),f=T.hi.settings.get("singleton")?"":T.hi.contacts.get(s).then(e=>!e&&p&&m).then(t=>t?eE`
  • `:"");return eE`
    • ${D("Nickname")}:
      ${i}
    • ${D("XMPP Address")}:
      ${s?eE`${s}`:""}
    • ${D("Affiliation")}:
      ${l}  ${h?eE``:""}
      ${e.show_affiliation_form?eE`
      `:""}
    • ${D("Role")}:
      ${a}  ${h&&a?eE``:""}
      ${e.show_role_form?eE`
      `:""}
    • ${D("Hats")}:
      ${c}
    • ${D("Occupant Id")}:
      ${o}
    • ${tr(f,"")}
    `})(this)}openChat(e){e.preventDefault(),T.hi.chats.open(this.model.get("jid"),{},!0),this.close()}getVcard(){let e=this.model??this.message;if(e.vcard)return e.vcard;let t=e?.get("jid")||e?.get("from");return t?T.Tk.state.vcards.get(t):null}getModalTitle(){let e=this.model??this.message;return e?.getDisplayName()}addToContacts(){let e=(this.model??this.message).get("jid");e&&T.hi.modal.show("converse-add-contact-modal",{state:new T.Hn({jid:e})})}toggleForm(e){"row-form"===ow.ancestor(e.target,".toggle-form").getAttribute("data-form")?this.show_role_form=!this.show_role_form:this.show_affiliation_form=!this.show_affiliation_form,this.requestUpdate()}});var ox=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/moderator-tools.scss"),oA={};oA.styleTagTransform=A(),oA.setAttributes=w(),oA.insert=y().bind(null,"head"),oA.domAPI=v(),oA.insertStyleElement=S(),f()(ox.Z,oA),ox.Z&&ox.Z.locals&&ox.Z.locals;let{u:oE}=T.Qr.env,{AFFILIATIONS:o$,ROLES:ok}=T._G;T.hi.elements.define("converse-modtools",class extends eV{static get properties(){return{affiliation:{type:String},affiliations_filter:{type:String,attribute:!1},alert_message:{type:String,attribute:!1},alert_type:{type:String,attribute:!1},jid:{type:String},muc:{type:Object,attribute:!1},role:{type:String},roles_filter:{type:String,attribute:!1},tab:{type:String},users_with_affiliation:{type:Array,attribute:!1},users_with_role:{type:Array,attribute:!1}}}constructor(){super(),this.jid=null,this.tab="affiliations",this.affiliation=null,this.affiliations_filter="",this.role="",this.roles_filter="",this.addEventListener("affiliationChanged",()=>{this.alert(D("Affiliation changed"),"primary"),this.onSearchAffiliationChange(),this.requestUpdate()}),this.addEventListener("roleChanged",()=>{this.alert(D("Role changed"),"primary"),this.requestUpdate()})}updated(e){e.has("role")&&this.onSearchRoleChange(),e.has("affiliation")&&this.onSearchAffiliationChange(),e.has("jid")&&e.get("jid")&&this.initialize()}async initialize(){this.initialized=nA();let e=await T.hi.rooms.get(this.jid);await e.initialized,this.muc=e,this.initialized.resolve()}render(){if(!this.muc?.occupants)return"";{let e=this.muc.occupants.getOwnOccupant();return((e,t)=>{let s=D("Affiliation"),r=D("No users with that affiliation found."),i=D("No users with that role found."),o=D("Type here to filter the search results"),a=D("Role"),l=D("Show users"),c=D("Roles are assigned to users to grant or deny them certain abilities in a multi-user chat. They're assigned either explicitly or implicitly as part of an affiliation. A role that's not due to an affiliation, is only valid for the duration of the user's session."),d=D("An affiliation is a long-lived entitlement which typically implies a certain role and which grants privileges and responsibilities. For example admins and owners automatically have the moderator role."),u=t.queryable_roles.length&&t.queryable_affiliations.length;return eE`${t.alert_message?eE``:""} ${u?eE``:""}
    ${t.queryable_affiliations.length?eE`

    ${d}

    ${Array.isArray(t.users_with_affiliation)&&t.users_with_affiliation.length>5?eE``:""}
    ${oS(t.affiliation)?eE`

    ${oS(t.affiliation)}

    `:""}
      ${t.loading_users_with_affiliation?eE`
    • ${iI()}
    • `:""} ${Array.isArray(t.users_with_affiliation)&&0===t.users_with_affiliation.length?eE`
    • ${r}
    • `:""} ${t.users_with_affiliation instanceof Error?eE`
    • ${t.users_with_affiliation.message}
    • `:(t.users_with_affiliation||[]).map(s=>{var r;return(s.nick||s.jid).match(RegExp(t.affiliations_filter,"i"))?(r=Object.assign({item:s},t),eE`
      • JID: ${r.item.jid}
      • Nickname: ${r.item.nick}
      • Affiliation: ${r.item.affiliation} ${r.assignable_affiliations.length?eE``:""}
        ${r.assignable_affiliations.length?eE``:""}
    • `):""})}
    `:""} ${t.queryable_roles.length?eE`

    ${c}

    ${Array.isArray(t.users_with_role)&&t.users_with_role.length>5?eE``:""}
    ${oj(t.role)?eE`

    ${oj(t.role)}

    `:""}
      ${t.loading_users_with_role?eE`
    • ${iI()}
    • `:""} ${t.users_with_role&&0===t.users_with_role.length?eE`
    • ${i}
    • `:""} ${(t.users_with_role||[]).map(s=>{var r;return s.nick.match(t.roles_filter)?(r=Object.assign({item:s},t),eE`
      • JID: ${r.item.jid}
      • Nickname: ${r.item.nick}
      • Role: ${r.item.role} ${r.assignable_roles.length?eE``:""}
        ${r.assignable_roles.length?eE``:""}
    • `):""})}
    `:""}
    `})(this,{affiliations_filter:this.affiliations_filter,alert_message:this.alert_message,alert_type:this.alert_type,assignable_affiliations:e.getAssignableAffiliations(),assignable_roles:e.getAssignableRoles(),filterAffiliationResults:e=>this.filterAffiliationResults(e),filterRoleResults:e=>this.filterRoleResults(e),loading_users_with_affiliation:this.loading_users_with_affiliation,queryAffiliation:e=>this.queryAffiliation(e),queryRole:e=>this.queryRole(e),queryable_affiliations:o$.filter(e=>!T.hi.settings.get("modtools_disable_query").includes(e)),queryable_roles:ok.filter(e=>!T.hi.settings.get("modtools_disable_query").includes(e)),roles_filter:this.roles_filter,switchTab:e=>this.switchTab(e),tab:this.tab,toggleForm:e=>this.toggleForm(e),users_with_affiliation:this.users_with_affiliation,users_with_role:this.users_with_role})}}switchTab(e){e.stopPropagation(),e.preventDefault(),this.tab=e.target.getAttribute("data-name"),this.requestUpdate()}async onSearchAffiliationChange(){if(this.affiliation){if(await this.initialized,this.clearAlert(),this.loading_users_with_affiliation=!0,this.users_with_affiliation=null,this.shouldFetchAffiliationsList()){let e=await T.hi.rooms.affiliations.get(this.affiliation,this.jid);e instanceof Error?(this.alert(e.message,"danger"),this.users_with_affiliation=[]):this.users_with_affiliation=e}else this.users_with_affiliation=this.muc.getOccupantsWithAffiliation(this.affiliation);this.loading_users_with_affiliation=!1}}async onSearchRoleChange(){this.role&&(await this.initialized,this.clearAlert(),this.users_with_role=this.muc.getOccupantsWithRole(this.role))}shouldFetchAffiliationsList(){let e=this.affiliation;return"none"!==e&&!T.lf.getAutoFetchedAffiliationLists().includes(e)}toggleForm(e){e.stopPropagation(),e.preventDefault();let t=oE.ancestor(e.target,".toggle-form"),s=t.getAttribute("data-form"),r=oE.ancestor(t,".list-group-item").querySelector(s);oE.hasClass("hidden",r)?oE.removeClass("hidden",r):oE.addClass("hidden",r)}filterRoleResults(e){this.roles_filter=e.target.value,this.requestUpdate()}filterAffiliationResults(e){this.affiliations_filter=e.target.value}queryRole(e){e.stopPropagation(),e.preventDefault();let t=new FormData(e.target).get("role");this.role=null,this.role=t}queryAffiliation(e){e.stopPropagation(),e.preventDefault();let t=new FormData(e.target).get("affiliation");this.affiliation=null,this.affiliation=t}alert(e,t){this.alert_message=e,this.alert_type=t}clearAlert(){this.alert_message=void 0,this.alert_type=void 0}}),T.hi.elements.define("converse-modtools-modal",class extends nT{constructor(e){super(e),this.id="converse-modtools-modal",this.affiliation=e.affiliation,this.jid=e.jid}renderModal(){return eE``}getModalTitle(){return D("Moderator Tools")}});let{Strophe:oC,u:oT}=T.Qr.env,{CHATROOMS_TYPE:oM}=T._G,oO={admin:"admin",ban:"outcast",member:"member",owner:"owner",revoke:"none"},oN={deop:"participant",kick:"none",mute:"visitor",op:"moderator",voice:"participant"};function oI({contact:e,jid:t,reason:s}){return s?T.hi.confirm(D("Invitation to a groupchat"),D('%1$s has invited you to join the groupchat "%2$s", and left the following reason: "%3$s"',e,t,s)):T.hi.confirm(D("Invitation to a groupchat"),D('%1$s has invited you to join the groupchat "%2$s"',e,t))}async function oR(e){let t=[D("Are you sure you want to destroy this groupchat?")],s=[{name:"challenge",label:D("Please enter the XMPP address of this groupchat to confirm"),challenge:e.get("jid"),placeholder:D("name@example.org"),required:!0},{name:"reason",label:D("Optional reason for destroying this groupchat"),placeholder:D("Reason")},{name:"newjid",label:D("Optional XMPP address for a new groupchat that replaces this one"),placeholder:D("replacement@example.org")}];try{s=await T.hi.confirm(D("Confirm"),t,s);let r=s.filter(e=>"reason"===e.name).pop()?.value,i=s.filter(e=>"newjid"===e.name).pop()?.value;return e.sendDestroyIQ(r,i).then(()=>e.close())}catch(e){T.cM.error(e)}}async function oD(){return[...new Set([...await T.hi.rooms.get(),...await T.hi.contacts.get()].map(e=>oC.getDomainFromJid(e.get("jid"))))]}function oL(e,t,s,r=[],i=[]){let o=oN[t];if(!o)throw Error(`ChatRoomView#setRole called with invalid command: ${t}`);if(!e.verifyAffiliations(r)||!e.verifyRoles(i)||!e.validateRoleOrAffiliationChangeArgs(t,s))return!1;let a=e.getNickOrJIDFromCommandArgs(s);if(!a)return!1;let l=s.split(a,2)[1].trim(),c=e.getOccupant(a);return e.setRole(c,o,l,void 0,t=>e.onCommandError(t)),!0}function oz(e,t,s,r){let i,o=oO[t];if(!o)throw Error(`verifyAffiliations called with invalid command: ${t}`);if(!e.verifyAffiliations(r)||!e.validateRoleOrAffiliationChangeArgs(t,s))return!1;let a=e.getNickOrJIDFromCommandArgs(s);if(!a)return!1;let l=s.split(a,2)[1].trim(),c=e.getOccupant(a);if(c)i=c.get("jid");else if(oT.isValidJID(a))i=a;else{let t=D("Couldn't find a participant with that nickname. They might have left the groupchat.");e.createMessage({message:t,type:"error"});return}let d={jid:i,reason:l};c&&T.hi.settings.get("auto_register_muc_nickname")&&(d.nick=c.get("nick")),oT.muc.setAffiliation(o,e.get("jid"),[d]).then(()=>e.occupants.fetchMembers()).catch(t=>e.onCommandError(t))}function oP(e,t){if(!e.verifyRoles(["moderator"]))return;let s=T.hi.modal.get("converse-modtools-modal");s?(s.affiliation=t,s.render()):s=T.hi.modal.create("converse-modtools-modal",{affiliation:t,jid:e.get("jid")}),s.show()}function oU(e,t){let s=e.model;if(t||s.get("type")!==oM||T.hi.settings.get("muc_disable_slash_commands")&&!Array.isArray(T.hi.settings.get("muc_disable_slash_commands")))return t;let r=e.text,i=((r=r.replace(/^\s*/,"")).match(/^\/([a-zA-Z]*) ?/)||[""]).pop().toLowerCase();if(!i)return!1;let o=r.slice(("/"+i).length+1).trim(),a=s.getAllowedCommands()??[];if("admin"===i&&a.includes(i))return oz(s,i,o,["owner"]),!0;if("ban"===i&&a.includes(i))return oz(s,i,o,["admin","owner"]),!0;if("modtools"===i&&a.includes(i))return oP(s,o),!0;if("deop"===i&&a.includes(i))return oL(s,i,o,["admin","owner"]),!0;if("destroy"===i&&a.includes(i))return!s.verifyAffiliations(["owner"])||(oR(s).catch(e=>s.onCommandError(e)),!0);else if("help"===i&&a.includes(i))return s.set({show_help_messages:!1},{silent:!0}),s.set({show_help_messages:!0}),!0;else if("kick"===i&&a.includes(i))return oL(s,i,o,[],["moderator"]),!0;else if("mute"===i&&a.includes(i))return oL(s,i,o,[],["moderator"]),!0;else if("member"===i&&a.includes(i))return oz(s,i,o,["admin","owner"]),!0;else if("nick"===i&&a.includes(i)){if(s.verifyRoles(["visitor","participant","moderator"]))if(0===o.length){let e=D('Your nickname is "%1$s"',s.get("nick"));s.createMessage({message:e,type:"error"})}else s.setNickname(o);return!0}else if("owner"===i&&a.includes(i))return oz(s,i,o,["owner"]),!0;else if("op"===i&&a.includes(i))return oL(s,i,o,["admin","owner"]),!0;else if("register"===i&&a.includes(i))return o.length>1?s.createMessage({message:D("Error: invalid number of arguments"),type:"error"}):s.registerNickname().then(e=>{e&&s.createMessage({message:e,type:"error"})}),!0;else if("revoke"===i&&a.includes(i))return oz(s,i,o,["admin","owner"]),!0;else if("topic"===i&&a.includes(i)||"subject"===i&&a.includes(i))return s.setSubject(o),!0;else if("voice"===i&&a.includes(i))return oL(s,i,o,[],["moderator"]),!0;else return!1}let{Strophe:oB,sizzle:oF}=T.Qr.env;async function oq(e){e.preventDefault();let t=e.currentTarget,s=t.getAttribute("data-bookmark-name"),r=t.getAttribute("data-room-jid");await T.hi.confirm(D('Are you sure you want to remove the bookmark "%1$s"?',s))&&T.Tk.state.bookmarks.where({jid:r}).forEach(e=>e.destroy())}function oH(e){e.preventDefault();let{Strophe:t}=T.Qr.env,s=e.currentTarget,r=s.textContent,i=s.getAttribute("data-room-jid"),o={name:r||t.unescapeNode(t.getNodeFromJid(i))||i};T.hi.rooms.open(i,o,!0)}T.hi.elements.define("converse-adhoc-commands",class extends eV{static get properties(){return{alert:{type:String},alert_type:{type:String},commands:{type:Array},fetching:{type:Boolean},showform:{type:String},view:{type:String}}}constructor(){super(),this.view="choose-service",this.fetching=!1,this.showform="",this.commands=[]}render(){return(e=>{let t=D("On which entity do you want to run commands?"),s=D("Certain XMPP services and entities allow privileged users to execute ad-hoc commands on them."),r=D("Commands found"),i=D("List available commands"),o=D("XMPP Address"),a=D("No commands found");return eE`${e.alert?eE``:""} ${e.note?eE`

    ${e.note}

    `:""}
    ${e.fetching?eE``:eE``}
    ${"list-commands"===e.view?eE`
    • ${e.commands.length?r:a}:
    • ${e.commands.map(t=>eE`
    • ${t.node===e.showform?((e,t)=>{let s=D("Cancel");return eE`${t.alert?eE``:""} ${t.note?eE``:""} ${"result"===t.type&&t.title?eE`
      ${t.title}
      `:""} ${"form"===t.type&&t.title?eE`
      ${t.title}
      `:""}
      ${t.instructions?eE`

      ${t.instructions}

      `:""} ${"result"===t.type?eE`${t.reported?.map(e=>eE``)}${t.items?.map(e=>eE`${e.map(e=>eE``)}`)}
      ${e.label}
      ${e.value}
      `:""} ${t.fields?.map(e=>tx(e),{domain:t.jid})??""}
      ${t.actions?.length?eE`
      ${t.actions?.map(t=>eE``)}
      `:""}
      `})(e,t):""}
    • `)}
    `:""}`})(this)}async fetchCommands(e){let t;if(e.preventDefault(),!(e.target instanceof HTMLFormElement)){this.alert_type="danger",this.alert="Form could not be submitted";return}this.fetching=!0,delete this.alert_type,delete this.alert;let s=new FormData(e.target).get("jid").trim();try{t=await T.hi.disco.supports(oB.NS.ADHOC,s)}catch(e){T.cM.error(e)}finally{this.fetching=!1}if(t)try{this.commands=await T.hi.adhoc.getCommands(s),this.view="list-commands"}catch(e){T.cM.error(e),this.alert_type="danger",this.alert=D("Sorry, an error occurred while looking for commands on that entity."),this.commands=[],T.cM.error(e);return}else this.commands=[],this.alert_type="danger",this.alert=D("The specified entity doesn't support ad-hoc commands")}async toggleCommandForm(e){e.preventDefault();let t=e.target.getAttribute("data-command-node"),s=this.commands.filter(e=>e.node===t)[0],{jid:r}=s;if(this.showform===t)this.showform="",this.requestUpdate();else{try{let e=await T.hi.adhoc.fetchCommandForm(r,t);Object.assign(s,e)}catch(e){null===e?T.cM.error(`Error: timeout while trying to execute command for ${r}`):(T.cM.error(`Error while trying to execute command for ${r}`),T.cM.error(e)),s.alert=D("An error occurred while trying to fetch the command form"),s.alert_type="danger"}this.showform=t}}executeAction(e){e.preventDefault();let t=e.target,s=t.getAttribute("data-action");["execute","next","prev","complete"].includes(s)?this.runCommand(t.form,s):T.cM.error(`Unknown action: ${s}`)}clearCommand(e){delete e.alert,delete e.instructions,delete e.sessionid,delete e.alert_type,delete e.status,e.fields=[],e.actions=[],this.showform=""}async runCommand(e,t){let s=new FormData(e),r=s.get("command_jid").trim(),i=s.get("command_node").trim(),o=this.commands.filter(e=>e.node===i)[0];delete o.alert,this.requestUpdate();let a="prev"===t?[]:oF(":input:not([type=button]):not([type=submit])",e).filter(e=>!["command_jid","command_node"].includes(e.getAttribute("name"))).map(tm).filter(e=>e),{fields:l,status:c,note:d,instructions:u,actions:h}=await T.hi.adhoc.runCommand(r,o.sessionid,o.node,t,a);if("error"===c)return o.status=c,o.alert_type="danger",o.alert=D("Sorry, an error occurred while trying to execute the command. See the developer console for details"),this.requestUpdate();"executing"===c?(Object.assign(o,{fields:l,instructions:u,actions:h,status:c}),o.alert=D("Executing"),o.alert_type="primary"):"completed"===c?(this.alert_type="primary",this.alert=D("Completed"),this.note=d,this.clearCommand(o)):(T.cM.error(`Unexpected status for ad-hoc command: ${c}`),o.alert=D("Completed"),o.alert_type="primary"),this.requestUpdate()}async cancel(e){e.preventDefault(),this.showform="",this.requestUpdate();let t=new FormData(e.target.form),s=t.get("command_jid").trim(),r=t.get("command_node").trim(),i=this.commands.filter(e=>e.node===r)[0];delete i.alert,this.requestUpdate();let{status:o}=await T.hi.adhoc.runCommand(s,i.sessionid,i.node,"cancel",[]);"error"===o?(i.alert_type="danger",i.alert=D("An error occurred while trying to cancel the command. See the developer console for details")):"canceled"===o?(this.alert_type="",this.alert="",this.clearCommand(i)):(T.cM.error(`Unexpected status for ad-hoc command: ${o}`),i.alert=D("Error: unexpected result"),i.alert_type="danger"),this.requestUpdate()}}),T.Qr.plugins.add("converse-adhoc-views",{dependencies:["converse-controlbox","converse-muc"],initialize(){T.hi.settings.extend({allow_adhoc_commands:!0})}});var oG=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/bookmark-views/styles/bookmarks.scss"),oW={};oW.styleTagTransform=A(),oW.setAttributes=w(),oW.insert=y().bind(null,"head"),oW.domAPI=v(),oW.insertStyleElement=S(),f()(oG.Z,oW),oG.Z&&oG.Z.locals&&oG.Z.locals;let{initStorage:oZ}=T.u;class oV extends eV{async initialize(){await T.hi.waitUntil("bookmarksInitialized");let{bookmarks:e,chatboxes:t}=T.Tk.state;this.liveFilter=iA(e=>this.model.set({text:e.target.value}),100),this.listenTo(e,"add",()=>this.requestUpdate()),this.listenTo(e,"remove",()=>this.requestUpdate()),this.listenTo(t,"add",()=>this.requestUpdate()),this.listenTo(t,"remove",()=>this.requestUpdate());let s=T.Tk.session.get("bare_jid"),r=`converse.bookmarks-list-model-${s}`;this.model=new T.Hn({id:r}),oZ(this.model,r),this.listenTo(this.model,"change",()=>this.requestUpdate()),this.model.fetch({success:()=>this.requestUpdate(),error:()=>this.requestUpdate()})}render(){return T.Tk.state.bookmarks&&this.model?(e=>{let t=D("Filter"),s=e.model.get("text"),{bookmarks:r}=T.Tk.state,i=s?r.filter(e=>e.get("name")?.includes(s)||e.get("jid")?.includes(s)):r;return eE`
    ${i.map(e=>(e=>{let t=e.get("jid"),s=D("Unbookmark this groupchat"),r=D("Click to open this groupchat");return eE``})(e))}
    `})(this):iI()}clearFilter(e){e?.stopPropagation?.(),this.model.set("text","")}}T.hi.elements.define("converse-bookmarks",oV),T.hi.elements.define("converse-bookmark-list-modal",class extends nT{renderModal(){return eE``}getModalTitle(){return D("Bookmarks")}});class oQ extends eV{constructor(){super(),this.jid=null}static get properties(){return{jid:{type:String}}}willUpdate(e){let{chatboxes:t,bookmarks:s}=T.Tk.state;e.has("jid")&&(this.model=t.get(this.jid),this.bookmark=s.get(this.jid))}render(){return(e=>{let t=e.model.getDisplayName(),s=e.bookmark?.get("nick")??e.model.get("nick"),r=D('Bookmark for "%1$s"',t),i=D("Would you like this groupchat to be automatically joined upon startup?"),o=D("Remove"),a=D("Name"),l=D("What should your nickname for this groupchat be?"),c=D("Password (for a protected groupchat)"),d=D("If the groupchat requires a password to enter, you can save it here. Note this is not intended to be a secure storage."),u=e.bookmark?D("Update"):D("Save");return eE`
    ${r}

    ${d}

    ${e.bookmark?eE``:""}
    `})(this)}onBookmarkFormSubmitted(e){e.preventDefault();let{bookmarks:t}=T.Tk.state,s=e.target;t.setBookmark({jid:this.jid,autojoin:s.querySelector('input[name="autojoin"]')?.checked||!1,name:s.querySelector("input[name=name]")?.value,nick:s.querySelector("input[name=nick]")?.value,password:s.querySelector("input[name=password]")?.value}),this.closeBookmarkForm(e)}removeBookmark(e){this.bookmark?.destroy(),this.closeBookmarkForm(e)}closeBookmarkForm(e){e.preventDefault(),this.dispatchEvent(new Event("hide.bs.modal",{bubbles:!0,cancelable:!0}))}}T.hi.elements.define("converse-muc-bookmark-form",oQ),T.hi.elements.define("converse-bookmark-form-modal",class extends nT{constructor(e){super(e),this.jid=null}renderModal(){return eE``}getModalTitle(){return D("Bookmark")}});let{u:oK}=T.Qr.env,oJ={setBookmarkState(){let{bookmarks:e}=T.Tk.state;e&&(e.where({jid:this.model.get("jid")}).length?this.model.save("bookmarked",!0):this.model.save("bookmarked",!1))},renderBookmarkForm(){this.bookmark_form||(this.bookmark_form=new T.Tk.state.MUCBookmarkForm({model:this.model,chatroomview:this}),this.querySelector(".chatroom-body").insertAdjacentElement("beforeend",this.bookmark_form.el)),oK.showElement(this.bookmark_form.el)},showBookmarkModal(e){e?.preventDefault();let t=this.model.get("jid");T.hi.modal.show("converse-bookmark-form-modal",{jid:t},e)}};T.Qr.plugins.add("converse-bookmark-views",{dependencies:["converse-chatboxes","converse-muc","converse-muc-views"],initialize(){T.hi.settings.extend({hide_open_bookmarks:!0});let e={removeBookmarkViaEvent:oq,MUCBookmarkForm:oQ,BookmarksView:oV};Object.assign(T.Tk,e),Object.assign(T.Tk.exports,e),Object.assign(T.Tk.exports.ChatRoomView.prototype,oJ),T.hi.listen.on("chatRoomViewInitialized",e=>e.setBookmarkState())}});let oY=(e,t,s)=>{let r=new Map;for(let i=t;i<=s;i++)r.set(e[i],i);return r},oX=e0(class extends e2{constructor(e){if(super(e),2!==e.type)throw Error("repeat() can only be used in text expressions")}dt(e,t,s){let r;void 0===s?s=t:void 0!==t&&(r=t);let i=[],o=[],a=0;for(let t of e)i[a]=r?r(t,a):a,o[a]=s(t,a),a++;return{values:o,keys:i}}render(e,t,s){return this.dt(e,t,s).values}update(e,[t,s,r]){let i=e._$AH,{values:o,keys:a}=this.dt(t,s,r);if(!Array.isArray(i))return this.ut=a,o;let l=this.ut??=[],c=[],d,u,h=0,m=i.length-1,p=0,f=o.length-1;for(;h<=m&&p<=f;)if(null===i[h])h++;else if(null===i[m])m--;else if(l[h]===a[p])c[p]=eY(i[h],o[p]),h++,p++;else if(l[m]===a[f])c[f]=eY(i[m],o[f]),m--,f--;else if(l[h]===a[f])c[f]=eY(i[h],o[f]),eJ(e,c[f+1],i[h]),h++,f--;else if(l[m]===a[p])c[p]=eY(i[m],o[p]),eJ(e,i[h],i[m]),m--,p++;else if(void 0===d&&(d=oY(a,p,f),u=oY(l,h,m)),d.has(l[h]))if(d.has(l[m])){let t=u.get(a[p]),s=void 0!==t?i[t]:null;if(null===s){let t=eJ(e,i[h]);eY(t,o[p]),c[p]=t}else c[p]=eY(s,o[p]),eJ(e,i[h],s),i[t]=null;p++}else e1(i[m]),m--;else e1(i[h]),h++;for(;p<=f;){let t=eJ(e,c[f+1]);eY(t,o[p]),c[p++]=t}for(;h<=m;){let e=i[h++];null!==e&&e1(e)}return this.ut=a,((e,t=eX)=>e._$AH=t)(e,c),ek}}),{dayjs:o1,u:o0}=T.Qr.env,{convertASCII2Emoji:o2,getShortnameReferences:o4,getCodePointReferences:o3}=o0;function o6(){return window.innerWidth<=768}function o8(e){if(o6())return"";let{height:t,width:s}=e.toJSON();return"overlayed"===T.hi.settings.get("view_mode")?`${s?`width: ${s}px;`:""}${t?`height: ${t}px;`:""}`:""}function o5(e){let t=e.get("num_unread")||0;return t<100?t:"99+"}async function o9(e){let t=await e;return t?eE`${t.i18n_text}`:""}async function o7(e){let t=await e;return eE``}async function ae(e){return(await e).filter(e=>e.standalone).map(e=>o7(e)).reverse().map(e=>tr(e,""))}async function at(e){let t=(await e).filter(e=>!e.standalone).map(e=>o9(e));return t.length?eE``:""}function as(e){if(!e.isHidden()&&T.hi.settings.get("allow_url_history_change")){let t=window.location.hash;t&&e.messages.get(t.slice(1))&&history.pushState(null,"",window.location.pathname)}}function ar(){return T.Qr.emojis.toned||(T.Qr.emojis.toned=o0.unique(Object.values(T.Qr.emojis.json.people).filter(e=>e.sn.includes("_tone")).map(e=>e.sn.replace(/_tone[1-5]/,"")))),T.Qr.emojis.toned}function ai(e,t={unicode_only:!1,add_title_wrapper:!1}){let s=e.emoji,r=e.shortname;if(s)if(t.unicode_only)return s;else if(T.hi.settings.get("use_system_emojis"))if(t.add_title_wrapper)return r?eE`${s}`:s;else return s;else{let t=T.hi.settings.get("emoji_image_path");return eE`${s}`}{if(t.unicode_only)return r;let{url:e}=T.Qr.emojis.by_sn[r];return eE`${r}`}}Object.assign(o0,{shortnamesToEmojis:function(e,t={unicode_only:!1,add_title_wrapper:!1}){var s;let r;return s=e=o2(e),r=[s],[...o4(s),...o3(s)].sort((e,t)=>t.begin-e.begin).forEach(e=>{let s=r.shift(),i=ai(e,t);r="string"==typeof i?[s.slice(0,e.begin)+i+s.slice(e.end),...r]:[s.slice(0,e.begin),i,s.slice(e.end),...r]}),r}});let{CONTROLBOX_TYPE:an,CHATROOMS_TYPE:ao,HEADLINES_TYPE:aa,CONNECTION_STATUS:al}=T._G;function ac(e){let t="overlayed"===T.hi.settings.get("view_mode")&&e.get("hidden");return e.get("type")===an||!e.get("hidden")&&!e.get("closed")&&!t}T.hi.elements.define("converse-chats",class extends eV{initialize(){this.model=T.Tk.state.chatboxes,this.listenTo(this.model,"add",()=>this.requestUpdate()),this.listenTo(this.model,"change:closed",()=>this.requestUpdate()),this.listenTo(this.model,"change:hidden",()=>this.requestUpdate()),this.listenTo(this.model,"change:jid",()=>this.requestUpdate()),this.listenTo(this.model,"destroy",()=>this.requestUpdate()),this.listenTo(T.Tk,"connected",()=>this.requestUpdate()),this.listenTo(T.Tk,"reconnected",()=>this.requestUpdate()),this.listenTo(T.Tk,"disconnected",()=>this.requestUpdate());let e=T.hi.settings.get();this.listenTo(e,"change:view_mode",()=>this.requestUpdate()),this.listenTo(e,"change:singleton",()=>this.requestUpdate()),document.querySelector("body").classList.add(`converse-${T.hi.settings.get("view_mode")}`),T.hi.trigger("chatBoxViewsInitialized")}render(){return(()=>{let{chatboxes:e,connfeedback:t}=T.Tk.state,s="overlayed"===T.hi.settings.get("view_mode"),r=o6(),i=T.hi.connection.get(),o=!i?.connected||!i?.authenticated||i?.disconnecting,a=["CONNECTED","CONNECTING","AUTHENTICATING","RECONNECTING"].includes(al[t.get("connection_status")]);return eE`${!o&&s?eE``:""} ${oX(e.filter(ac),e=>e.get("jid"),e=>{let t=e.get("width"),i=!r&&s&&t?`width: ${t}px`:eC;return e.get("type")===an?s&&e.get("closed")?eE``:eE``:e.get("type")===ao?eE``:e.get("type")===aa?eE``:eE``})}`})()}});let ad=class{constructor(){this.views={},this.el=null}add(e,t){this.views[e]=t}get(e){return this.views[e]}xget(e){return this.keys().filter(t=>t!==e).reduce((e,t)=>(e[t]=this.views[t],e),{})}getAll(){return Object.values(this.views)}keys(){return Object.keys(this.views)}remove(e){delete this.views[e]}map(e){return Object.values(this.views).map(e)}forEach(e){return Object.values(this.views).forEach(e)}filter(e){return Object.values(this.views).filter(e)}closeAllChatBoxes(){return Promise.all(Object.values(this.views).map(e=>e.close({name:"closeAllChatBoxes"})))}};function au(){let e=.01*window.innerHeight;document.documentElement.style.setProperty("--vh",`${e}px`)}var ah=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/chatboxviews/styles/chats.scss"),am={};am.styleTagTransform=A(),am.setAttributes=w(),am.insert=y().bind(null,"head"),am.domAPI=v(),am.insertStyleElement=S(),f()(ah.Z,am),ah.Z&&ah.Z.locals&&ah.Z.locals,T.Qr.plugins.add("converse-chatboxviews",{dependencies:["converse-chatboxes","converse-vcard"],initialize(){T.hi.promises.add(["chatBoxViewsInitialized"]),T.hi.settings.extend({animate:!0});let e=new ad;Object.assign(T.Tk,{chatboxviews:e}),Object.assign(T.Tk.state,{chatboxviews:e}),T.hi.listen.on("chatBoxesInitialized",()=>{T.Tk.state.chatboxes.on("destroy",t=>e.remove(t.get("jid")))}),T.hi.listen.on("cleanup",()=>Object.assign(T.Tk,{chatboxviews:null})),T.hi.listen.on("cleanup",()=>delete T.Tk.state.chatboxviews),T.hi.listen.on("clearSession",()=>e.closeAllChatBoxes()),T.hi.listen.on("chatBoxViewsInitialized",au),window.addEventListener("resize",au),Object.assign(T.Qr,{insertInto(t){let s=e.el;if(s&&!t.contains(s))t.insertAdjacentElement("afterbegin",s);else if(!s)throw Error("Cannot insert non-existing #conversejs element into the DOM")}})}});var ap=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/chat/styles/message-actions.scss"),af={};af.styleTagTransform=A(),af.setAttributes=w(),af.insert=y().bind(null,"head"),af.domAPI=v(),af.insertStyleElement=S(),f()(ap.Z,af),ap.Z&&ap.Z.locals&&ap.Z.locals;let{getMediaURLs:ag}=T.u,{CHATROOMS_TYPE:av}=T._G;class a_ extends eV{static get properties(){return{is_retracted:{type:Boolean},model:{type:Object}}}constructor(){super(),this.model=null,this.is_retracted=null}initialize(){let e=T.hi.settings.get();this.listenTo(e,"change:allowed_audio_domains",()=>this.requestUpdate()),this.listenTo(e,"change:allowed_image_domains",()=>this.requestUpdate()),this.listenTo(e,"change:allowed_video_domains",()=>this.requestUpdate()),this.listenTo(e,"change:render_media",()=>this.requestUpdate()),this.listenTo(this.model,"change",()=>this.requestUpdate()),this.listenTo(this.model.chatbox.features,"change:moderated",()=>this.requestUpdate()),this.listenTo(this.model.chatbox.occupants,"add",this.updateIfOwnOccupant),this.listenTo(this.model.chatbox.occupants,"change:role",this.updateIfOwnOccupant),this.listenTo(this.model.chatbox.session,"change:connection_status",()=>this.requestUpdate())}updateIfOwnOccupant(e){let t=T.Tk.session.get("bare_jid");e.get("jid")===t&&this.requestUpdate()}render(){return eE`${tr(this.renderActions(),"")}`}async renderActions(){if(!this.model.collection)return"";let e=(await this.getActionButtons()).map(e=>a_.getActionsDropdownItem(e));return e.length?eE``:""}static getActionsDropdownItem(e){return eE``}async onMessageEditButtonClicked(e){e.preventDefault();let t=this.model.collection.findWhere("correcting"),s=T.u.ancestor(this,".chatbox")?.querySelector(".chat-textarea")?.value;(!s||t&&t.getMessageText()===s||await T.hi.confirm(D("Confirm"),D("You have an unsent message which will be lost if you continue. Are you sure?")))&&(t!==this.model?(t?.save("correcting",!1),this.model.save("correcting",!0)):this.model.save("correcting",!1))}async onDirectMessageRetractButtonClicked(){if("me"!==this.model.get("sender"))return T.cM.error("onMessageRetractButtonClicked called for someone else's message!");let e=D("Be aware that other XMPP/Jabber clients (and servers) may not yet support retractions and that this message may not be removed everywhere."),t=[D("Are you sure you want to retract this message?")];T.hi.settings.get("show_retraction_warning")&&(t[1]=e),await T.hi.confirm(D("Confirm"),t)&&this.model.collection.chatbox.retractOwnMessage(this.model)}async retractOtherMessage(e){let t=this.model.collection.chatbox,s=await t.retractOtherMessage(this.model,e);if(null===s){let e=D("A timeout occurred while trying to retract the message");T.hi.alert("error",D("Error"),e),T.cM.warn(e)}else if(T.u.isErrorStanza(s)){let e=D("Sorry, you're not allowed to retract this message.");T.hi.alert("error",D("Error"),e),T.cM.warn(e),T.cM.error(s)}}async onMUCMessageRetractButtonClicked(){let e=D("Be aware that other XMPP/Jabber clients (and servers) may not yet support retractions and that this message may not be removed everywhere.");if(this.model.mayBeRetracted()){let t=[D("Are you sure you want to retract this message?")];T.hi.settings.get("show_retraction_warning")&&(t[1]=e),await T.hi.confirm(D("Confirm"),t)&&this.model.collection.chatbox.retractOwnMessage(this.model)}else if(await this.model.mayBeModerated())if("me"===this.model.get("sender")){let t=[D("Are you sure you want to retract this message?")];T.hi.settings.get("show_retraction_warning")&&(t=[t[0],e,t[1]]),await T.hi.confirm(D("Confirm"),t)&&this.retractOtherMessage()}else{let t=[D("You are about to retract this message."),D("You may optionally include a message, explaining the reason for the retraction.")];T.hi.settings.get("show_retraction_warning")&&(t=[t[0],e,t[1]]);let s=await T.hi.prompt(D("Message Retraction"),t,D("Optional reason"));!1!==s&&this.retractOtherMessage(s)}else{let e=D("Sorry, you're not allowed to retract this message");T.hi.alert("error",D("Error"),e)}}onMessageRetractButtonClicked(e){e?.preventDefault?.(),this.model.collection.chatbox.get("type")===av?this.onMUCMessageRetractButtonClicked():this.onDirectMessageRetractButtonClicked()}onMediaToggleClicked(e){e?.preventDefault?.(),this.hasHiddenMedia(this.getMediaURLs())?this.model.save({hide_url_previews:!1,url_preview_transition:"fade-in"}):(this.model.get("ogp_metadata")||[]).length?this.model.set("url_preview_transition","fade-out"):this.model.save({hide_url_previews:!0,url_preview_transition:"fade-in"})}hasHiddenMedia(e){if("boolean"==typeof this.model.get("hide_url_previews"))return this.model.get("hide_url_previews");let t=T.hi.settings.get("render_media");return Array.isArray(t)?e.reduce((e,s)=>e||!iQ(t,s),!1):!t}getMediaURLs(){let e=(this.model.get("ogp_metadata")||[]).map(e=>({url:e["og:image"],is_image:!0})).filter(e=>iJ(e));return[...new Set([...ag(this.model.get("media_urls")||[],this.model.get("body")).filter(e=>iJ(e)).map(e=>e.url),...e.map(e=>e.url)])]}addMediaRenderingToggle(e){let t=this.getMediaURLs();if(t.length){let s=this.hasHiddenMedia(t);e.push({i18n_text:s?D("Show media"):D("Hide media"),handler:e=>this.onMediaToggleClicked(e),button_class:"chat-msg__action-hide-previews",icon_class:s?"fas fa-eye":"fas fa-eye-slash",name:"hide"})}}async onMessageCopyButtonClicked(e){e?.preventDefault?.(),await navigator.clipboard.writeText(this.model.getMessageText())}onMessageQuoteButtonClicked(e){e?.preventDefault?.();let t=this.model.collection.chatbox,s=T.u.ancestor(this,".chatbox")?.querySelector(".chat-textarea")?.selectionEnd,r=this.model.getMessageText().replaceAll(/^/gm,"> "),i=t.get("draft")??"";s?i=`${i.slice(0,s)} ${r} ${i.slice(s)}`:i+=r,t.save({draft:i})}async getActionButtons(){let e=[];this.model.get("editable")&&e.push({i18n_text:this.model.get("correcting")?D("Cancel Editing"):D("Edit"),handler:e=>this.onMessageEditButtonClicked(e),button_class:"chat-msg__action-edit",icon_class:"fa fa-pencil-alt",name:"edit"});let t=["groupchat","mep"].includes(this.model.get("type"))&&await this.model.mayBeModerated();return(!this.is_retracted&&(this.model.mayBeRetracted()||t)&&e.push({i18n_text:D("Retract"),handler:e=>this.onMessageRetractButtonClicked(e),button_class:"chat-msg__action-retract",icon_class:"fas fa-trash-alt",name:"retract"}),this.model.collection)?(this.addMediaRenderingToggle(e),e.push({i18n_text:D("Copy"),handler:e=>this.onMessageCopyButtonClicked(e),button_class:"chat-msg__action-copy",icon_class:"fas fa-copy",name:"copy"}),this.model.collection.chatbox.canPostMessages()&&e.push({i18n_text:D("Quote"),handler:e=>this.onMessageQuoteButtonClicked(e),button_class:"chat-msg__action-quote",icon_class:"fas fa-quote-right",name:"quote"}),T.hi.hook("getMessageActionButtons",this,e)):[]}}T.hi.elements.define("converse-message-actions",a_);var ay=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/modals/styles/image.scss"),ab={};ab.styleTagTransform=A(),ab.setAttributes=w(),ab.insert=y().bind(null,"head"),ab.domAPI=v(),ab.insertStyleElement=S(),f()(ay.Z,ab),ay.Z&&ay.Z.locals&&ay.Z.locals,T.hi.elements.define("converse-image-modal",class extends nT{constructor(e){super(e),this.src=e.src}renderModal(){let e;return e={src:this.src},eE``}getModalTitle(){return eE`${D("Image: ")}${tp(this.src)}`}});var aw=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/texture/styles/audio.scss"),aj={};aj.styleTagTransform=A(),aj.setAttributes=w(),aj.insert=y().bind(null,"head"),aj.domAPI=v(),aj.insertStyleElement=S(),f()(aw.Z,aj),aw.Z&&aw.Z.locals&&aw.Z.locals;let aS=(e,t,s)=>{let{hostname:r}=T.u.getURL(e);return eE`
    ${s||!t?eE`
    ${s?eE`${s}
    `:""} ${t?"":eE`${r}`}
    `:""}
    `},ax={debug:0,info:1,warn:2,error:3,fatal:4},aA=Object.assign({debug:console?.log?console.log.bind(console):function(){},error:console?.log?console.log.bind(console):function(){},info:console?.log?console.log.bind(console):function(){},warn:console?.log?console.log.bind(console):function(){}},console),aE={loglevel:"info",setLogLevel(e){if(!["debug","info","warn","error","fatal"].includes(e))throw Error(`Invalid loglevel: ${e}`);this.loglevel=e},log(e,t,s=""){var r;if(ax[t]this.handleGIFResponse(e))}initPlayer(){!this.load_error&&(this.options.width&&this.options.height||this.ctx.scale(this.getCanvasScale(),this.getCanvasScale()),this.frame_idx=0,this.renderImage(),this.options.autoplay&&setTimeout(()=>this.play(),this.frames[this.frame_idx]?.delay??0))}getNextFrameNo(){return 0===this.frames.length?0:(this.frame_idx+1+this.frames.length)%this.frames.length}onIterationEnd(){return this.iteration_count++,this.options.onIterationEnd?.(this.el),!this.options.loop&&(this.pause(),!0)}onAnimationFrame(e,t,s){if(!this.playing)return;if(e-tthis.onAnimationFrame(e,t,s));return}let r=this.getNextFrameNo();if(0===r&&this.onIterationEnd())return;this.frame_idx=r,this.renderImage();let i=this.frames[this.frame_idx]?.delay||8;requestAnimationFrame(t=>this.onAnimationFrame(t,e,i))}setSizes(e,t){this.canvas.width=e*this.getCanvasScale(),this.canvas.height=t*this.getCanvasScale(),this.offscreenCanvas.width=e,this.offscreenCanvas.height=t,this.offscreenCanvas.style.width=e+"px",this.offscreenCanvas.style.height=t+"px",this.offscreenCanvas.getContext("2d").setTransform(1,0,0,1,0,0)}doShowProgress(e,t,s){if(s&&this.options.show_progress_bar){let s=this.options.progress_bar_height,r=(this.canvas.height-s)/(this.ctx_scaled?this.getCanvasScale():1),i=e/t*this.canvas.width/(this.ctx_scaled?this.getCanvasScale():1),o=this.canvas.width/(this.ctx_scaled?this.getCanvasScale():1);s/=this.ctx_scaled?this.getCanvasScale():1,this.ctx.fillStyle=this.options.progress_bg_color,this.ctx.fillRect(i,r,o-i,s),this.ctx.fillStyle=this.options.progress_color,this.ctx.fillRect(0,r,i,s)}}handleGIFResponse(e){try{let t=(0,a$.parseGIF)(e);this.hdr=t.header,this.lsd=t.lsd,this.setSizes(this.options.width??this.lsd.width,this.options.height??this.lsd.height),this.frames=(0,a$.decompressFrames)(t,!0)}catch(e){this.showError()}this.initPlayer(),this.options.autoplay||this.drawPlayIcon()}drawError(){this.ctx.fillStyle="black",this.ctx.fillRect(0,0,this.options.width,this.options.height),this.ctx.strokeStyle="red",this.ctx.lineWidth=3,this.ctx.moveTo(0,0),this.ctx.lineTo(this.options.width,this.options.height),this.ctx.moveTo(0,this.options.height),this.ctx.lineTo(this.options.width,0),this.ctx.stroke()}showError(){this.load_error=!0,this.hdr={width:this.gif_el.width,height:this.gif_el.height},this.frames=[],this.drawError(),this.el.requestUpdate()}manageDisposal(e){if(e<=0)return;let t=this.offscreenCanvas.getContext("2d"),s=this.frames[e-1].disposalType;e>1&&(3===s?null!=this.disposal_restore_from_idx&&t.putImageData(this.frames[this.disposal_restore_from_idx].data,0,0):this.disposal_restore_from_idx=e-1),2===s&&t.clearRect(this.last_frame.dims.left,this.last_frame.dims.top,this.last_frame.dims.width,this.last_frame.dims.height)}renderImage(e=!0){if(!this.frames.length)return;let t=this.frame_idx;((t=parseInt(t.toString(),10))>this.frames.length-1||t<0)&&(t=0),this.manageDisposal(t);let s=this.frames[t],r=this.patchCanvas.getContext("2d"),i=this.offscreenCanvas.getContext("2d"),o=s.dims;this.frameImageData&&o.width==this.frameImageData.width&&o.height==this.frameImageData.height||(this.patchCanvas.width=o.width,this.patchCanvas.height=o.height,this.frameImageData=r.createImageData(o.width,o.height)),this.frameImageData.data.set(s.patch),r.putImageData(this.frameImageData,0,0),i.drawImage(this.patchCanvas,o.left,o.top);let a=i.getImageData(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height);this.ctx.putImageData(a,0,0),this.ctx.drawImage(this.canvas,0,0,this.canvas.width,this.canvas.height),e&&this.hovering&&this.drawPauseIcon(),this.last_frame=s}play(){this.playing=!0,requestAnimationFrame(e=>this.onAnimationFrame(e,0,0))}pause(){this.playing=!1,requestAnimationFrame(()=>this.drawPlayIcon())}drawPauseIcon(){if(!this.playing)return;this.renderImage(!1),this.ctx.fillStyle="rgb(0, 0, 0, 0.25)",this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height);let e=.1*this.canvas.height;this.ctx.lineWidth=.04*this.canvas.height,this.ctx.beginPath(),this.ctx.moveTo(this.canvas.width/2-e/2,this.canvas.height/2-e),this.ctx.lineTo(this.canvas.width/2-e/2,this.canvas.height/2+e),this.ctx.fillStyle="rgb(200, 200, 200, 0.75)",this.ctx.stroke(),this.ctx.beginPath(),this.ctx.moveTo(this.canvas.width/2+e/2,this.canvas.height/2-e),this.ctx.lineTo(this.canvas.width/2+e/2,this.canvas.height/2+e),this.ctx.fillStyle="rgb(200, 200, 200, 0.75)",this.ctx.stroke(),this.ctx.lineWidth=.02*this.canvas.height,this.ctx.strokeStyle="rgb(200, 200, 200, 0.75)",this.ctx.beginPath(),this.ctx.arc(this.canvas.width/2,this.canvas.height/2,1.5*e,0,2*Math.PI),this.ctx.stroke()}drawPlayIcon(){if(this.playing)return;this.renderImage(!1),this.ctx.fillStyle="rgb(0, 0, 0, 0.25)",this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height);let e=.1*this.canvas.height,t=new Path2D;t.moveTo(this.canvas.width/2+e,this.canvas.height/2),t.lineTo(this.canvas.width/2-e/2,this.canvas.height/2+e),t.lineTo(this.canvas.width/2-e/2,this.canvas.height/2-e),t.closePath(),this.ctx.fillStyle="rgb(200, 200, 200, 0.75)",this.ctx.fill(t),this.ctx.lineWidth=.02*this.canvas.height,this.ctx.strokeStyle="rgb(200, 200, 200, 0.75)",this.ctx.beginPath(),this.ctx.arc(this.canvas.width/2,this.canvas.height/2,1.5*e,0,2*Math.PI),this.ctx.stroke()}getCanvasScale(){return this.options.max_width&&this.hdr&&this.lsd.width>this.options.max_width?this.options.max_width/this.lsd.width:1}fetchGIF(e){let t=nA(),s=new XMLHttpRequest;return s.open("GET",e,!0),s.responseType="arraybuffer",s?.overrideMimeType("text/plain; charset=x-user-defined"),s.onload=()=>{if(200!=s.status)return this.showError(),t.reject();t.resolve(s.response)},s.onprogress=e=>e.lengthComputable&&this.doShowProgress(e.loaded,e.total,!0),s.onerror=e=>{aE.error(e),this.showError()},s.send(),t}}var aC=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/gif/styles.scss"),aT={};aT.styleTagTransform=A(),aT.setAttributes=w(),aT.insert=y().bind(null,"head"),aT.domAPI=v(),aT.insertStyleElement=S(),f()(aC.Z,aT),aC.Z&&aC.Z.locals&&aC.Z.locals,T.hi.elements.define("converse-gif",class extends eV{static get properties(){return{autoplay:{type:Boolean},noloop:{type:Boolean},progress_color:{type:String},fallback:{type:String},src:{type:String}}}constructor(){super(),this.src=null,this.autoplay=!1,this.noloop=!1,this.fallback="url",this.progress_color=null}initGIF(){let e={autoplay:this.autoplay,loop:!this.noloop};this.progress_color&&(e.progress_color=this.progress_color),this.supergif=new ak(this,e)}updated(e){if(!this.supergif||e.has("src"))return void this.initGIF();e.has("autoplay")&&(this.supergif.options.autoplay=this.autoplay),e.has("noloop")&&(this.supergif.options.loop=!this.noloop),e.has("progress_color")&&(this.supergif.options.progress_color=this.progress_color)}render(){return this.supergif?.load_error&&["url","empty"].includes(this.fallback)?this.renderErrorFallback():eE``}renderErrorFallback(){return"url"===this.fallback?tw(this.src):"empty"===this.fallback?"":void 0}setHover(){this.supergif&&(this.supergif.hovering=!0,this.hover_timeout&&clearTimeout(this.hover_timeout),this.hover_timeout=setTimeout(()=>this.unsetHover(),2e3))}unsetHover(){this.supergif&&(this.supergif.hovering=!1)}onControlsClicked(e){e.preventDefault(),this.supergif.playing?this.supergif.pause():this.supergif.frames.length>0&&(this.supergif.options.loop=!0,this.supergif.play())}});let aM=(e,t)=>eE`${t?"":eE`${e}`}`,{isURLWithImageExtension:aO}=T.u,aN=e0(class extends e7{render(e,t,s,r){return t?eE`${this.renderImage(e,t,s,r)}`:this.renderImage(e,t,s,r)}renderImage(e,t,s,r){return eE``}onError(e,t,s,r){if(!this.isConnected)return t?tw(t):eE`Image failed to load`;if(aO(e))t&&this.setValue(tw(t));else try{let i=new URL(e),o=i.pathname.split("/").pop();if(o){let e=`${o}.png`;i.pathname=i.pathname.replace(o,e),this.setValue(aN(i.toString(),t,s,r))}}catch(s){return console.error("Invalid URL:",e),t?tw(t):eE`Image failed to load`}}}),aI=e=>eE`${aN(e.src||e.url,e.href,e.onLoad,e.onClick)}`,aR=(e,t)=>{let{hostname:s}=T.u.getURL(e);return eE`
    ${t||!s?"":eE`${s}`}
    `},aD=["*","_","~","`"],aL=[...aD,"```",">"],az={"*":{name:"strong",type:"span"},_:{name:"emphasis",type:"span"},"~":{name:"strike",type:"span"},"`":{name:"preformatted",type:"span"},"```":{name:"preformatted_block",type:"block"},">":{name:"quote",type:"block"}},aP=["_",">","`","~"];function aU(e){return"string"==typeof e}function aB(e,t,s=!0){let r;if(/(^```[\s,\u200B]*\n)|(^```[\s,\u200B]*$)/.test(e.slice(t))&&(0===t||">"===e[t-1]||/\n\u200B{0,2}$/.test(e.slice(0,t))))r=e.slice(t,t+3);else if(!aL.includes(e.slice(t,t+1)))return null;else if(!function(e,t,s,r){if(r){let r=RegExp(aP.includes(e)?`^(\\p{L}|\\p{N})${e}`:`^(\\p{L}|\\p{N})\\${e}`,"u");if(s>1&&r.test(t.slice(s-1))||aF(e)&&s>0&&"\n"!==t[s-1]||aD.includes(e)&&t[s+1]===e)return!1}else{let r=RegExp(aP.includes(e)?`^${e}(\\p{L}|\\p{N})`:`^\\${e}(\\p{L}|\\p{N})`,"u");if(s",">"].includes(e)}let{addMediaURLsOffset:aq,convertASCII2Emoji:aH,getCodePointReferences:aG,getMediaURLsMetadata:aW,getShortnameReferences:aZ}=T.u;class aV extends String{constructor(e,t=0,s={}){super(e),this.embed_audio=s?.embed_audio,this.embed_videos=s?.embed_videos,this.mentions=s?.mentions||[],this.media_urls=s?.media_urls,this.nick=s?.nick,this.offset=t,this.onImgClick=s?.onImgClick,this.onImgLoad=s?.onImgLoad,this.options=s,this.payload=[],this.references=[],this.render_styling=s?.render_styling,this.show_images=s?.show_images,this.hide_media_urls=s?.hide_media_urls}shouldRenderMedia(e,t){let s;return("image"===t?s=this.show_images:"audio"===t?s=this.embed_audio:"video"===t&&(s=this.embed_videos),"boolean"==typeof s)?s:iY(e,t)}async addHyperlinkTemplate(e){let t,{url:s}=e,r=iX(s);return e.is_gif&&this.shouldRenderMedia(s,"image")?t=aM(r,this.hide_media_urls):e.is_image&&this.shouldRenderMedia(s,"image")?t=aI({src:r,href:this.hide_media_urls?null:r,onClick:this.onImgClick,onLoad:this.onImgLoad}):e.is_video&&this.shouldRenderMedia(s,"video")?t=aR(r,this.hide_media_urls):e.is_audio&&this.shouldRenderMedia(s,"audio")?t=aS(r,this.hide_media_urls):T.hi.settings.get("embed_3rd_party_media_players")&&function(e){try{let{hostname:t,pathname:s}=T.u.getURL(e);return"open.spotify.com"===t&&s.startsWith("/track/")}catch(t){return console.debug(`Could not create URL object from ${e}`),!1}}(s)&&(t=((e,t,s)=>{let{hostname:r}=T.u.getURL(t);return eE`
    ${s?"":eE`${r}`}
    `})(s.split("/track/")[1],s,this.hide_media_urls)),t||tw(r)}async addHyperlinks(e,t){let s=t+this.offset,r=aq(this.media_urls||(await aW(e,t)).media_urls||[],e,s);await Promise.all(r.filter(e=>!e.is_encrypted).map(async e=>{let s=await this.addHyperlinkTemplate(e);this.addTemplateResult(e.start+t,e.end+t,s)}))}addMapURLs(e,t){let s=/geo:([\-0-9.]+),([\-0-9.]+)(?:,([\-0-9.]+))?(?:\?(.*))?/g;for(let r of e.matchAll(s))this.addTemplateResult(r.index+t,r.index+r[0].length+t,tw(r[0].replace(s,T.hi.settings.get("geouri_replacement"))))}addEmojis(e,t){[...aZ(e.toString()),...aG(e.toString())].forEach(e=>{this.addTemplateResult(e.begin+t,e.end+t,ai(e,{add_title_wrapper:!0}))})}addMentions(e,t){let s=t+this.offset;this.mentions?.forEach(r=>{let i=Number(r.begin)-s;if(i<0||i>=s+e.length)return;let o=Number(r.end)-s,a=e.slice(i,o);if(a===this.nick){let e;this.addTemplateResult(i+t,o+t,(e={...r,mention:a},eE`${e.mention}`))}else{var l;this.addTemplateResult(i+t,o+t,(l={...r,mention:a},eE`${l.mention}`))}})}addStyling(){if(!function(e){for(let t=0;tArray.from({length:Number(e.end)},(t,s)=>Number(e.begin)+s)),s=0;for(;se.includes(s)).length){s++;continue}let{d:r,length:i}=function(e,t){let s=aB(e,t),r=s?function(e,t,s){if(!e)return 0;let r=s;if(s+=e.length,aF(e))return(s+=t.slice(s).split(/\n\u200B*[^>\u200B]/).shift().length)-r;if("span"===az[e].type){let r=t.slice(s).split("\n").shift(),i=0,o=r.indexOf(e);for(;-1!==o;){if(aB(t,s+o,!1)===e)return o+2*e.length;o=r.indexOf(e,i++)}return 0}{let r=t.slice(s+1),i=0,o=r.indexOf(e);for(;-1!==o;){if(aB(t,s+1+o,!1)===e)return o+1+2*e.length;o=r.indexOf(e,i++)}return 0}}(s,e,t):0;return r>0?{d:s,length:r}:{}}(this,s);if(r&&i){let t=aF(r),o=s+i,a=t?o:o-r.length,l="```"===r?s+r.length+1:s+r.length;t&&" "===this[l]&&(l+=1);let c=l,d=this.slice(l,a);e.push({begin:s,template:function(e,t,s,r){let i=aJ[az[e].name];return aF(e)?i(t.replace(/\n\u200B*>[ \f\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]?/g,e=>` ${"​".repeat(e.length-1)}`).replace(/\n$/,""),s,r):i(t,s,r)}(r,d,c,this.options),end:o}),s=o}s++}e.forEach(e=>this.addTemplateResult(e.begin,e.end,e.template))}trimMeMessage(){0===this.offset&&this.isMeCommand()&&(this.payload[0]=this.payload[0].substring(4))}async addAnnotations(e){let t=this.marshall(),s=0;for(let r of t)if(!r)continue;else aU(r)?(await e.call(this,r,s),s+=r.length):s=r.end}async addTemplates(){await T.hi.trigger("beforeMessageBodyTransformed",this,{synchronous:!0}),this.render_styling&&this.addStyling(),await this.addAnnotations(this.addMentions),await this.addAnnotations(this.addHyperlinks),await this.addAnnotations(this.addMapURLs),await T.hi.emojis.initialize(),await this.addAnnotations(this.addEmojis),await T.hi.trigger("afterMessageBodyTransformed",this,{synchronous:!0}),this.payload=this.marshall(),this.options.show_me_message&&this.trimMeMessage(),this.payload=this.payload.map(e=>aU(e)?e:e.template)}addTemplateResult(e,t,s){this.references.push({begin:e,end:t,template:s})}isMeCommand(){let e=this.toString();return!!e&&e.startsWith("/me ")}marshall(){let e=[this.toString()];return this.references.sort((e,t)=>t.begin-e.begin).forEach(t=>{let s=e.shift();e=[s.slice(0,t.begin),t,s.slice(t.end),...e]}),e.reduce((e,t)=>aU(t)?[...e,aH(t.replace(/\n(\u200B*\n)+/g,e=>e.length>2?` ${"​".repeat(e.length-2)} `:2===e.length?"\n​":1===e.length?"​":void 0))]:[...e,t],[])}}class aQ extends e2{static async transform(e){try{await e.addTemplates()}catch(e){console.error(e)}return e.payload}render(e,t,s){let r=new aV(e,t,Object.assign(s,{show_images:!1,embed_videos:!1,embed_audio:!1}));return eE`${tr(aQ.transform(r),eE`${r}`)}`}}let aK=e0(aQ),aJ={emphasis:(e,t,s)=>eE`_${aK(e,t,s)}_`,preformatted:e=>eE`\`${e}\``,preformatted_block:e=>eE`
    \`\`\`
    ${e}
    \`\`\`
    `,quote:(e,t,s)=>eE`
    ${aK(e,t,s)}
    `,strike:(e,t,s)=>eE`~${aK(e,t,s)}~`,strong:(e,t,s)=>eE`*${aK(e,t,s)}*`};class aY{constructor(e,t,s={}){this.offset=t,this.options=s,this.text=e}async transform(){let e=new aV(this.text,this.offset,this.options);try{await e.addTemplates()}catch(e){console.error(e)}return e.payload}render(){return eE`${tr(this.transform(),eE`${this.text}`)}`}}let aX=e0(class extends e2{render(e,t,s,r){let i=new aY(e,t,s).render();return r?.(),i}});var a1=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/chat/styles/message-body.scss"),a0={};a0.styleTagTransform=A(),a0.setAttributes=w(),a0.insert=y().bind(null,"head"),a0.domAPI=v(),a0.insertStyleElement=S(),f()(a1.Z,a0),a1.Z&&a1.Z.locals&&a1.Z.locals,T.hi.elements.define("converse-chat-message-body",class extends eV{static get properties(){return{hide_url_previews:{type:String},is_me_message:{type:Boolean},model:{type:Object},text:{type:String}}}constructor(){super(),this.text=null,this.model=null,this.hide_url_previews=null}initialize(){let e=T.hi.settings.get();this.listenTo(e,"change:allowed_audio_domains",()=>this.requestUpdate()),this.listenTo(e,"change:allowed_image_domains",()=>this.requestUpdate()),this.listenTo(e,"change:allowed_video_domains",()=>this.requestUpdate()),this.listenTo(e,"change:render_media",()=>this.requestUpdate())}onImgClick(e){e.preventDefault(),T.hi.modal.show("converse-image-modal",{src:e.target.src},e)}onImgLoad(){this.dispatchEvent(new CustomEvent("imageLoaded",{detail:this,bubbles:!0}))}render(){let e=()=>this.model.collection?.trigger("rendered",this.model),t={media_urls:this.model.get("media_urls"),mentions:this.model.get("references"),nick:this.model.chatbox.get("nick"),onImgClick:e=>this.onImgClick(e),onImgLoad:()=>this.onImgLoad(),render_styling:!this.model.get("is_unstyled")&&T.hi.settings.get("allow_message_styling"),show_me_message:!0};return"false"===this.hide_url_previews?(t.embed_audio=!0,t.embed_videos=!0,t.show_images=!0):"true"===this.hide_url_previews&&(t.embed_audio=!1,t.embed_videos=!1,t.show_images=!1),aX(this.text,0,t,e)}}),T.hi.elements.define("converse-message-versions-modal",class extends nT{renderModal(){return eE``}getModalTitle(){return D("Message versions")}});let{Strophe:a2}=T.Qr.env,{STATUS_WEIGHTS:a4}=T._G;async function a3(e,t=!1){if(!T.hi.settings.get("allow_contact_removal"))return;if(!await T.hi.confirm(D("Confirm"),D("Are you sure you want to remove this contact?")))return!1;let s=await T.hi.chats.get(e.get("jid"));s?.close();try{await e.remove(t)}catch(t){T.cM.error(t),T.hi.alert("error",D("Error"),[D("Sorry, an error occurred while trying to remove %1$s as a contact",e.getDisplayName())])}return!0}async function a6(e){let t=T.Tk.session.get("domain"),s=await T.hi.disco.supports(a2.NS.BLOCKING,t),r=await T.hi.confirm(D("Remove and decline contact request"),[D("Are you sure you want to decline the contact request from %1$s?",e.getDisplayName())],s?[{label:D("Also block this user from sending you further messages"),name:"block",type:"checkbox"}]:[]);if(r){let t=await T.hi.chats.get(e.get("jid"));e.unauthorize(),s&&Array.isArray(r)&&r.find(e=>"block"===e.name)?.value==="on"?(T.hi.blocklist.add(e.get("jid")),T.hi.toast.show("declined-and-blocked",{type:"success",body:D("Contact request declined and user blocked")}),t?.close()):T.hi.toast.show("request-declined",{type:"success",body:D("Contact request declined")}),t||e.destroy()}return this}async function a8(e){let t=T.Tk.session.get("domain");if(!await T.hi.disco.supports(a2.NS.BLOCKING,t))return!1;let s=D("Do you want to block this contact, so they cannot send you messages?");if(!await T.hi.confirm(D("Confirm"),s))return!1;(await T.hi.chats.get(e.get("jid")))?.close();try{await Promise.all([T.hi.blocklist.add(e.get("jid")),e.remove(!0)])}catch(t){T.cM.error(t),T.hi.alert("error",D("Error"),[D("Sorry, an error occurred while trying to block %1$s",e.getDisplayName())])}}async function a5(e){let t=T.Tk.session.get("domain");if(!await T.hi.disco.supports(a2.NS.BLOCKING,t))return!1;let s=D("Do you want to unblock this contact, so they can send you messages?");if(!await T.hi.confirm(s))return!1;try{await T.hi.blocklist.remove(e.get("jid"))}catch(t){T.cM.error(t),T.hi.alert("error",D("Error"),[D("Sorry, an error occurred while trying to unblock %1$s",e.getDisplayName())])}}function a9(e){T.Tk.state.roster?.get(e)?.trigger("highlight")}function a7(e,t){e?.preventDefault?.();let{roster:s}=T.Tk.state,r=s.state.get("collapsed_groups");r.includes(t)?s.state.save("collapsed_groups",r.filter(e=>e!==t)):s.state.save("collapsed_groups",[...r,t])}function le(e){let t=e instanceof T.NZ?e.getNickname():e.get("nickname"),s=e.get("jid"),r=e.getDisplayName({context:"roster"});return(r=(r=r.includes(s)?r:r.concat(` ${s}`)).includes(t)?r:r.concat(` ${t}`)).toLowerCase()}function lt(e,t){let s=T.Tk.state.roster_filter,r=s.get("type"),i="state"===r?s.get("state").toLowerCase():s.get("text").toLowerCase();if(!i)return!1;if("state"===r)return![T.Tk.labels.HEADER_REQUESTING_CONTACTS,T.Tk.labels.HEADER_UNREAD].includes(t)&&("unread_messages"===i?0===e.get("num_unread"):"online"===i?["offline","unavailable","dnd","away","xa"].includes(e.getStatus()):!e.getStatus().includes(i));if("items"===r)return!le(e).includes(i)}function ls(e,t,s){if(!s.get("filter_visible"))return!0;let r=e.getStatus();return T.hi.settings.get("hide_offline_users")&&"offline"===r?("subscribe"===e.get("ask")||"from"===e.get("subscription")||!0===e.get("requesting"))&&!lt(e,t):!lt(e,t)}function lr(e,t){if(!t.get("filter_visible"))return!0;let s=T.Tk.state.roster_filter;if("groups"===s.get("type")){let t=s.get("text")?.toLowerCase();if(!t)return!0;if(!e.toLowerCase().includes(t))return!1}return!0}function li(e,t){let{labels:s}=T.Tk,r=T.u.unique(t.get("groups")??[]);for(let i of(T.u.isOwnJID(t.get("jid"))&&!r.length?r.push(s.HEADER_UNGROUPED):t.get("requesting")?r.push(s.HEADER_REQUESTING_CONTACTS):"subscribe"===t.get("ask")?r.push(s.HEADER_PENDING_CONTACTS):void 0===t.get("subscription")?r.push(s.HEADER_UNSAVED_CONTACTS):T.hi.settings.get("roster_groups")?r.length||r.push(s.HEADER_UNGROUPED):r.push(s.HEADER_CURRENT_CONTACTS),r))e[i]?.includes(t)||(e[i]?e[i].push(t):e[i]=[t]);if(t.get("num_unread")){let r=s.HEADER_UNREAD;e[r]?e[r].push(t):e[r]=[t]}return e}function ln(e,t){let s=e.getStatus(),r=t.getStatus();if(a4[s]!==a4[r])return a4[s]r)}}function lo(e,t){let s={},{HEADER_CURRENT_CONTACTS:r,HEADER_REQUESTING_CONTACTS:i,HEADER_UNGROUPED:o,HEADER_UNREAD:a,HEADER_PENDING_CONTACTS:l,HEADER_UNSAVED_CONTACTS:c}=T.Tk.labels;s[a]=0,s[c]=1,s[i]=2,s[r]=3,s[o]=4,s[l]=5;let d=Object.keys(s),u=d.includes(e),h=d.includes(t);return u||h?u&&h?s[e]s[t]):!u&&h?s[r]s[t]):u&&!h?s[e]s[r]):void 0:e.toLowerCase()t.toLowerCase())}function la(){return[...new Set(T.Tk.state.roster.reduce((e,t)=>e.concat(t.get("groups")),[]).filter(e=>e))]}function ll(){return[...new Set([...T.Tk.state.roster.map(e=>a2.getDomainFromJid(e.get("jid"))),T.Tk.session.get("domain")])]}async function lc(e){let t,s=`${T.hi.settings.get("xhr_user_search_url")}q=${encodeURIComponent(e)}`;try{t=await fetch(s,{mode:"cors",headers:{Accept:"text/json"}})}catch(t){return T.cM.error(`Failed to fetch names for query "${e}"`),T.cM.error(t),[]}let r=await t.json();return Array.isArray(r)?r.map(e=>({label:`${e.fullname} <${e.jid}>`,value:`${e.fullname} <${e.jid}>`,...e})):(T.cM.error('Invalid JSON returned"'),[])}Object.assign(T.u,{rosterview:{removeContact:a3,declineContactRequest:a6,blockContact:a8,unblockContact:a5,highlightRosterItem:a9,toggleGroup:a7,getFilterCriteria:le,isContactFiltered:lt,shouldShowContact:ls,shouldShowGroup:lr,populateContactsMap:li,contactsComparator:ln,groupsComparator:lo,getGroupsAutoCompleteList:la,getJIDsAutoCompleteList:ll,getNamesAutoCompleteList:lc}});let{Strophe:ld}=T.Qr.env;function lu(e){let t=D("Add to blocklist");return eE``}var lh=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/modals/styles/user-details.scss"),lm={};lm.styleTagTransform=A(),lm.setAttributes=w(),lm.insert=y().bind(null,"head"),lm.domAPI=v(),lm.insertStyleElement=S(),f()(lh.Z,lm),lh.Z&&lh.Z.locals&&lh.Z.locals,T.hi.elements.define("converse-user-details-modal",class extends nT{constructor(e){super(e),this.tab="profile"}initialize(){super.initialize(),this.addListeners(),T.hi.trigger("userDetailsModalInitialized",this.model)}addListeners(){this.listenTo(this.model,"change",()=>this.requestUpdate()),this.model instanceof T.Tk.exports.ChatBox?(this.model.rosterContactAdded.then(()=>this.registerContactEventHandlers(this.model.contact)),this.registerContactEventHandlers(this.model.contact)):this.registerContactEventHandlers(this.model)}getContact(){return this.model instanceof T.Tk.exports.ChatBox?this.model.contact:this.model}shouldUpdate(e){return e.has("model")&&this.model&&(this.stopListening(),this.addListeners(),this.tab="profile",this.requestUpdate()),!0}renderModal(){return function(e){let t=e.model?.vcard,s=t?t.toJSON():{},r={...e.model.toJSON(),...s},i=e.getContact(),o=i&&!i.isUnsaved(),a=T.hi.settings.get("allow_contact_removal"),l=T.Tk.session.get("domain"),c=T.hi.disco.supports(ld.NS.BLOCKING,l).then(async t=>{let s=await T.hi.blocklist.get();t&&(s.get(e.model.get("jid"))?function(e){let t=D("Remove from blocklist");eE``}(e):lu(e))}),d=D("XMPP Address"),u=D("Email"),h=D("Full Name"),m=D("Nickname"),p=D("Role"),f=D("URL"),g=D("Groups"),v=D("Use commas to separate multiple values"),_=D("OMEMO"),y=D("Profile"),b=D("Edit"),w=[eE``];o&&w.push(eE``),T.Tk.pluggable.plugins["converse-omemo"]?.enabled(T.Tk)&&w.push(eE``);let j=i?.get("nickname")||i?.vcard?.get("fullname"),S=i?.get("groups")||[];return eE`
    ${r.fullname?eE`
    ${r.fullname}
    `:""}${i?eE`
    ${function(e){let t=e?.get("subscription");return"none"===t?D("Neither of you receive presence updates"):"to"===t?D("Only you receive presence updates"):"from"===t?D("Only they receive presence updates"):"both"===t?D("Both of you receive presence updates"):""}(i)}
    `:""} ${r.nickname?eE`
    ${r.nickname}
    `:""} ${r.url?eE``:""} ${r.email?eE``:""} ${r.role?eE`
    ${r.role}
    `:""} ${S.length?eE`
    ${S.map(e=>eE`${e}`)}
    `:""} ${i?.get("requesting")||!o||!i?eE`
    `:""} ${i?.get("requesting")?eE`
    ${function(e){let t=D("Accept");return eE``}(e)} ${function(e){let t=D("Decline");return eE``}(e)}
    `:""} ${!o?function(e){let t=D("Add as contact");return eE``}(e):""} ${!i?tr(c.then(()=>lu(e)),""):""}
    ${o?eE`
    ${"edit"===e.tab?eE`
    ${v}

    ${a&&o?function(e){let t=D("Remove as contact");return eE``}(e):""} ${tr(c.then(()=>lu(e)),"")}`:""}
    `:""} ${T.Tk.pluggable.plugins["converse-omemo"]?.enabled(T.Tk)?eE`
    ${"omemo"===e.tab?eE``:""}
    `:""}
    `}(this)}getModalTitle(){return this.model.getDisplayName()}registerContactEventHandlers(e){e&&(this.listenTo(e,"change",()=>this.requestUpdate()),this.listenTo(e,"destroy",()=>this.close()),this.listenTo(e.vcard,"change",()=>this.requestUpdate()),e.vcard&&T.hi.vcard.update(e.vcard,!0))}async addContact(e){e?.preventDefault?.(),this.modal.hide(),T.hi.modal.show("converse-add-contact-modal",{contact:this.model},e)}async updateContact(e){e?.preventDefault?.();let t=new FormData(e.target),s=(t.get("name")||"").trim(),r=t.get("groups")?.split(",").map(e=>e.trim())||[];this.getContact().update({nickname:s,groups:r}),this.modal.hide()}async removeContact(e){e?.preventDefault?.(),setTimeout(()=>a3(this.getContact()),1),this.modal.hide()}async blockContact(e){e?.preventDefault?.(),setTimeout(()=>a8(this.getContact()),1),this.modal.hide()}async unblockContact(e){e?.preventDefault?.(),setTimeout(()=>a5(this.getContact()),1),this.modal.hide()}async acceptContactRequest(e){e?.preventDefault?.(),setTimeout(()=>{T.hi.modal.show("converse-accept-contact-request-modal",{contact:this.getContact()},e)}),this.modal.hide()}async declineContactRequest(e){e?.preventDefault?.(),setTimeout(()=>a6(this.getContact())),this.modal.hide()}});let{filesize:lp}=T.Qr.env,{dayjs:lf}=T.Qr.env,{dayjs:lg}=T.Qr.env,{isGIFURL:lv}=T.u;T.hi.elements.define("converse-image",class extends eV{static get properties(){return{src:{type:String},onImgLoad:{type:Function},href:{type:String}}}constructor(){super(),this.src=null,this.href=null,this.onImgClick=null,this.onImgLoad=null}render(){return lv(this.src)&&iY(this.src,"image")?aM(iX(this.src),!0):aI({src:iX(this.src),href:this.href,onClick:this.onImgClick,onLoad:this.onImgLoad})}});var l_=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/chat/styles/unfurl.scss"),ly={};ly.styleTagTransform=A(),ly.setAttributes=w(),ly.insert=y().bind(null,"head"),ly.domAPI=v(),ly.insertStyleElement=S(),f()(l_.Z,ly),l_.Z&&l_.Z.locals&&l_.Z.locals,T.hi.elements.define("converse-message-unfurl",class extends eV{static get properties(){return{description:{type:String},image:{type:String},jid:{type:String},title:{type:String},url:{type:String},site_name:{type:String}}}constructor(){super(),this.jid=null,this.url=null,this.title=null,this.image=null,this.description=null,this.site_name=null}initialize(){let e=T.hi.settings.get();this.listenTo(e,"change:allowed_image_domains",()=>this.requestUpdate()),this.listenTo(e,"change:render_media",()=>this.requestUpdate())}render(){return(e=>{let t=e.description||"",s=e.image||"",r=e.title||"",i=e.url||"",o=s&&iK(s,"allowed_image_domains")&&T.u.isValidURL(s),a=r||t||i;return o||a?eE`
    ${o?function(e){let t=e.image||"",s=e.url||"";return eE``}(e):""} ${a?eE`
    ${r?function(e,t){let s=e.image||"",r=e.url||"",i=e.title||"";return r&&T.u.isValidURL(r)&&!T.u.isGIFURL(s)?eE`${t(i)}`:t(i??"")}(e,e=>eE`
    ${e}
    `):""} ${t?eE`

    `:""} ${i&&T.u.isValidURL(i)?eE`

    ${new URL(i).hostname}

    `:""}
    `:""}
    `:""})(this)}onImageLoad(){this.dispatchEvent(new CustomEvent("imageLoaded",{detail:this,bubbles:!0}))}});let{dayjs:lb}=T.Qr.env;var lw=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/chat/styles/retraction.scss"),lj={};lj.styleTagTransform=A(),lj.setAttributes=w(),lj.insert=y().bind(null,"head"),lj.domAPI=v(),lj.insertStyleElement=S(),f()(lw.Z,lj),lw.Z&&lw.Z.locals&&lw.Z.locals;let{Strophe:lS}=T.Qr.env,{SUCCESS:lx}=T._G;T.hi.elements.define("converse-chat-message",class extends iM{constructor(){super(),this.model_with_messages=null,this.model=null,this.observable="once"}static get properties(){return{...super.properties,model_with_messages:{type:Object},model:{type:Object}}}async initialize(){super.initialize(),await this.model_with_messages.initialized,await this.model_with_messages.messages.fetched;let e=T.hi.settings.get();this.listenTo(e,"change:render_media",()=>{this.model.save("hide_url_previews",void 0),this.requestUpdate()}),this.listenTo(this.model_with_messages,"change:first_unread_id",()=>this.requestUpdate()),this.listenTo(this.model,"change",()=>this.requestUpdate()),this.listenTo(this.model,"contact:change",()=>this.requestUpdate()),this.listenTo(this.model,"occupant:add",()=>this.requestUpdate()),this.listenTo(this.model,"occupant:change",()=>this.requestUpdate()),this.listenTo(this.model,"vcard:add",()=>this.requestUpdate()),this.listenTo(this.model,"vcard:change",()=>this.requestUpdate()),this.requestUpdate()}render(){if(!this.model)return"";if(this.show_spinner)return iI();if(this.model.get("file")&&this.model.get("upload")!==lx)return this.renderFileProgress();if(["mep"].includes(this.model.get("type")))return this.renderMEPMessage();if(["error","info"].includes(this.model.get("type")))return this.renderInfoMessage();else return this.renderChatMessage()}renderRetraction(){let e=this.model.isRetracted()?this.getRetractionText():null;return eE`${e} ${this.model.get("moderation_reason")?eE`${this.model.get("moderation_reason")}`:""}`}renderMessageText(){return(e=>{let t=D("Show more"),s="groupchat"===e.model.get("type"),r=D("Show less"),i=e.model.get("error_text")||e.model.get("error"),o=`${D("Message delivery failed.")} ${i}`,a=eE`
    ${e.model.get("spoiler_hint")} ${e.model.get("is_spoiler_visible")?r:t}
    `,l=e.model.get("is_spoiler")?`spoiler ${e.model.get("is_spoiler_visible")?"":"hidden"}`:"",c=e.model.getMessageText(),d=e.model.get("oob_url")&&c!==e.model.get("oob_url"),u=T.hi.settings.get("render_media");return eE`${e.model.get("is_spoiler")?a:""} ${e.model.get("subject")?eE`
    ${e.model.get("subject")}
    `:""} ${e.model.get("received")&&!e.model.isMeCommand()&&!s?eE``:""} ${e.model.get("edited")?function(e){let t=D("This message has been edited");return eE``}(e):""} ${d?eE`
    `:""} ${i?eE`
    ${o}
    `:""}`})(this)}renderMEPMessage(){let e=lg(this.model.get("time")).toISOString();return eE`
    ${this.model.isRetracted()?this.renderRetraction():eE`${this.model.get("reason")?eE``:""}`}
    `}renderInfoMessage(){let e=lf(this.model.get("time")).toISOString(),t=D("Retry");return eE`
    ${this.model.get("reason")?eE`${this.model.get("reason")}`:""} ${this.model.get("error_text")?eE`${this.model.get("error_text")}`:""} ${this.model.get("retry_event_id")?eE`${t}`:""}
    `}renderFileProgress(){return this.model.file?(e=>{let t=D("Uploading file:"),s=e.model.file.name,r=lp(e.model.file.size),i=e.model.occupant||e.model.contact;return eE`
    ${e.shouldShowAvatar()?eE``:""}
    ${t} ${s}, ${r}
    `})(this):""}renderChatMessage(){return(e=>{let t=D("New messages"),s=e.model.get("edited"),r=e.model_with_messages.get("first_unread_id")===e.model.get("id"),i=e.model.isFollowup(),o=e.model.isMeCommand(),a=e.model.isRetracted(),l=e.model.get("msgid"),c=e.model.get("sender"),d=e.model.get("time"),u=e.model.occupant||e.model.contact,h=iq(u),m=T.hi.settings.get("time_format"),p=lb(s||d),f=p.format(m),g=p.format("llll"),v=function(e){if("groupchat"===e.get("type")){let t=T.hi.settings.get("muc_hats").filter(e=>e).map(e=>e.toLowerCase()),s=[];t.includes("vcard_roles")&&(s=(s=e.vcard?e.vcard.get("role"):null)?s.split(",").filter(e=>e).map(e=>({title:e})):[]);let r=[...e.occupant?[e.occupant.get("role")]:[],...e.occupant?[e.occupant.get("affiliation")]:[]].filter(e=>e).filter(e=>t.includes(e.toLowerCase())).map(e=>({title:e}));return[...t.includes("xep317")&&e.occupant?.get("hats")||[],...s,...r]}return[]}(e.model),_=e.model.getDisplayName(),y=o||a,b=!y&&!i,w=e.shouldShowAvatar()&&b,j=u?.vcard?u:e.model;return eE`${r?eE`

    ${t}
    `:""}
    ${w?eE``:""}
    ${b?eE`${_} ${v.map(e=>eE`${e.title}`)} ${e.model.get("is_encrypted")?eE``:""}`:""}
    ${y?eE` ${o?eE`${o?"**":""}${_} `:""}`:""} ${a?e.renderRetraction():e.renderMessageText()}
    ${e.model.get("ogp_metadata")?.map(t=>!0===e.model.get("hide_url_previews")?"":eE``)}
    `})(this)}shouldShowAvatar(){return T.hi.settings.get("show_message_avatar")&&!this.model.isMeCommand()&&["chat","groupchat","normal"].includes(this.model.get("type"))}onImgClick(e){e.preventDefault(),T.hi.modal.show("converse-image-modal",{src:e.target.src},e)}onUnfurlAnimationEnd(){"fade-out"===this.model.get("url_preview_transition")&&this.model.save({hide_url_previews:!0,url_preview_transition:"fade-in"})}async onRetryClicked(){this.show_spinner=!0,this.requestUpdate(),await T.hi.trigger(this.model.get("retry_event_id"),{synchronous:!0}),this.model.destroy(),this.parentElement.removeChild(this)}hasMentions(){return"groupchat"===this.model.get("type")&&"them"===this.model.get("sender")&&this.model_with_messages.isUserMentioned(this.model)}getOccupantAffiliation(){return this.model.occupant?.get("affiliation")}getOccupantRole(){return this.model.occupant?.get("role")}getExtraMessageClasses(){let e=this.model.isMeCommand()||this.model.isRetracted(),t=[this.model.isFollowup()?"chat-msg--followup":null,this.model.get("is_delayed")?"delayed":null,e?"chat-msg--action":null,this.model.isRetracted()?"chat-msg--retracted":null,this.model.get("type"),this.shouldShowAvatar()?"chat-msg--with-avatar":null].map(e=>e);return"groupchat"===this.model.get("type")&&(t.push(this.getOccupantRole()??""),t.push(this.getOccupantAffiliation()??""),"them"===this.model.get("sender")&&this.hasMentions()&&t.push("mentioned")),this.model.get("correcting")&&t.push("correcting"),t.filter(e=>e).join(" ")}getRetractionText(){if(!(["groupchat","mep"].includes(this.model.get("type"))&&this.model.get("moderated_by")))return"me"===this.model.get("sender")?D("You have removed a message"):D("%1$s has removed a message",this.model.getDisplayName());{let e=this.model.get("moderated_by");if(!this.model.mod){let{occupants:t}=this.model_with_messages;this.model.mod=t.findOccupant({jid:e})||t.findOccupant({nick:lS.getResourceFromJid(e)})}let t=this.model.mod?this.model.mod.getDisplayName():D("A moderator");return D("%1$s has removed a message",t)}}showUserModal(e){"me"===this.model.get("sender")?T.hi.modal.show("converse-profile-modal",{model:T.Tk.state.xmppstatus},e):"groupchat"===this.model.get("type")?(e.preventDefault(),T.hi.modal.show("converse-muc-occupant-modal",{model:this.model.getOccupant(),message:this.model},e)):(e.preventDefault(),T.hi.modal.show("converse-user-details-modal",{model:this.model_with_messages},e))}showMessageVersionsModal(e){e.preventDefault(),T.hi.modal.show("converse-message-versions-modal",{model:this.model},e)}toggleSpoilerMessage(e){e?.preventDefault(),this.model.save({is_spoiler_visible:!this.model.get("is_spoiler_visible")})}}),T.hi.elements.define("converse-message-history",class extends eV{constructor(){super(),this.model=null,this.messages=[]}static get properties(){return{model:{type:Object},messages:{type:Array}}}render(){let e=this.messages;return e.length?oX(e,e=>e.get("id"),e=>eE`${this.renderMessage(e)}`):""}renderMessage(e){if(e.get("dangling_retraction")||e.get("dangling_moderation")||e.get("is_only_key"))return"";let t=e.get("template_hook");if("string"==typeof t)return tr(T.hi.hook(t,e,""),"");{let t=eE``,s=function(e){let t=e.collection?.models;if(!t)return;let s=t.indexOf(e),r=t[s-1];if(!r||o1(e.get("time")).isAfter(o1(r.get("time")),"day")){let t,s=o1(e.get("time")).startOf("day");return t={type:"date",time:s.toISOString(),datestring:s.format("dddd MMM Do YYYY")},eE`

    `}}(e);return s?[s,t]:t}}});var lA=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/chat/styles/chat-content.scss"),lE={};lE.styleTagTransform=A(),lE.setAttributes=w(),lE.insert=y().bind(null,"head"),lE.domAPI=v(),lE.insertStyleElement=S(),f()(lA.Z,lE),lA.Z&&lA.Z.locals&&lA.Z.locals;class l$ extends eV{constructor(){super(),this.model=null,this.scrollTop=0,this.scroll_debounce=null,this.window_top=0,this.window_bottom=0,this.scrollHandler=e=>{this.mark_scrolled_debounce&&clearTimeout(this.scroll_debounce),this.mark_scrolled_debounce=setTimeout(()=>{this.#c(e)},250),requestAnimationFrame(()=>this.#d())}}static get properties(){return{model:{type:Object},window_top:{state:!0},window_bottom:{state:!0}}}async initialize(){await this.model.initialized,await this.model.messages.fetched,this.listenTo(this.model.messages,"add",()=>this.#u()),this.listenTo(this.model.messages,"remove",()=>this.#u()),this.listenTo(this.model.messages,"reset",()=>this.#u()),this.listenTo(this.model.messages,"change",()=>this.requestUpdate()),this.listenTo(this.model.messages,"rendered",()=>T.u.debounce(()=>this.requestUpdate(),50)),this.listenTo(this.model,"historyPruned",()=>this.#d()),this.listenTo(this.model.notifications,"change",()=>this.requestUpdate()),this.listenTo(this.model.ui,"change",()=>this.requestUpdate()),this.listenTo(this.model.ui,"change:scrolled",()=>this.scrollDown()),this.window_bottom=this.model.messages.length-1,this.window_top=Math.max(0,this.window_bottom-100),this.requestUpdate()}render(){return this.model?eE`
    ${this.model.getNotificationsText()}
    ${this.model.ui?.get("chat-content-spinner-top")?iI():""}`:""}#u(){this.#d(),this.requestUpdate()}#c(e){let t=!0,s=e.target,r=0===Math.floor(s.scrollTop),i=Math.ceil(s.clientHeight-s.scrollTop)>=s.scrollHeight-Math.ceil(s.scrollHeight/20);r?(t=!1,as(this.model)):i&&T.hi.trigger("chatBoxScrolledUp",s),this.model.get("scolled")!==t&&this.model.ui.set({scrolled:t})}#d(){let e=this.model.messages.length,t=this.querySelector(".chat-content__messages"),s=Math.ceil(t.scrollHeight/5);if(Math.ceil(t.clientHeight-t.scrollTop)>=t.scrollHeight-s){this.window_top=Math.max(0,this.window_top-5),this.window_bottom=this.window_top+100;return}if(0===Math.floor(t.scrollTop)){this.window_bottom=e-1,this.window_top=Math.max(0,this.window_bottom-100);return}if(Math.floor(Math.abs(t.scrollTop))1?s-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:lq;lC&&lC(e,null);let r=t.length;for(;r--;){let i=t[r];if("string"==typeof i){let e=s(i);e!==i&&(lT(t)||(t[r]=e),i=e)}e[i]=!0}return e}function l1(e){let t=lR(null);for(let[s,r]of lk(e))lQ(e,s)&&(Array.isArray(r)?t[s]=function(e){for(let t=0;t/gm),cn=lI(/\$\{[\w\W]*/gm),co=lI(/^data-[\-\w.\u00B7-\uFFFF]+$/),ca=lI(/^aria-[\-\w]+$/),cl=lI(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),cc=lI(/^(?:\w+script|data):/i),cd=lI(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),cu=lI(/^html$/i);var ch=Object.freeze({__proto__:null,ARIA_ATTR:ca,ATTR_WHITESPACE:cd,CUSTOM_ELEMENT:lI(/^[a-z][.\w]*(-[.\w]+)+$/i),DATA_ATTR:co,DOCTYPE_NAME:cu,ERB_EXPR:ci,IS_ALLOWED_URI:cl,IS_SCRIPT_OR_DATA:cc,MUSTACHE_EXPR:cr,TMPLIT_EXPR:cn});let cm=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let s=null,r="data-tt-policy-suffix";t&&t.hasAttribute(r)&&(s=t.getAttribute(r));let i="dompurify"+(s?"#"+s:"");try{return e.createPolicy(i,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+i+" could not be created."),null}},cp=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};var cf=function e(){let t,s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"undefined"==typeof window?null:window,r=t=>e(t);if(r.version="3.2.6",r.removed=[],!s||!s.document||9!==s.document.nodeType||!s.Element)return r.isSupported=!1,r;let{document:i}=s,o=i,a=o.currentScript,{DocumentFragment:l,HTMLTemplateElement:c,Node:d,Element:u,NodeFilter:h,NamedNodeMap:m=s.NamedNodeMap||s.MozNamedAttrMap,HTMLFormElement:p,DOMParser:f,trustedTypes:g}=s,v=u.prototype,_=l0(v,"cloneNode"),y=l0(v,"remove"),b=l0(v,"nextSibling"),w=l0(v,"childNodes"),j=l0(v,"parentNode");if("function"==typeof c){let e=i.createElement("template");e.content&&e.content.ownerDocument&&(i=e.content.ownerDocument)}let S="",{implementation:x,createNodeIterator:A,createDocumentFragment:E,getElementsByTagName:$}=i,{importNode:k}=o,C=cp();r.isSupported="function"==typeof lk&&"function"==typeof j&&x&&void 0!==x.createHTMLDocument;let{MUSTACHE_EXPR:T,ERB_EXPR:M,TMPLIT_EXPR:O,DATA_ATTR:N,ARIA_ATTR:I,IS_SCRIPT_OR_DATA:R,ATTR_WHITESPACE:D,CUSTOM_ELEMENT:L}=ch,{IS_ALLOWED_URI:z}=ch,P=null,U=lX({},[...l2,...l4,...l3,...l8,...l9]),B=null,F=lX({},[...l7,...ce,...ct,...cs]),q=Object.seal(lR(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),H=null,G=null,W=!0,Z=!0,V=!1,Q=!0,K=!1,J=!0,Y=!1,X=!1,ee=!1,et=!1,es=!1,er=!1,ei=!0,en=!1,eo=!0,ea=!1,el={},ec=null,ed=lX({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),eu=null,eh=lX({},["audio","video","img","source","image","track"]),em=null,ep=lX({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),ef="http://www.w3.org/1998/Math/MathML",eg="http://www.w3.org/2000/svg",ev="http://www.w3.org/1999/xhtml",e_=ev,ey=!1,eb=null,ew=lX({},[ef,eg,ev],lH),ej=lX({},["mi","mo","mn","ms","mtext"]),eS=lX({},["annotation-xml"]),ex=lX({},["title","style","font","a","script"]),eA=null,eE=["application/xhtml+xml","text/html"],e$=null,ek=null,eC=i.createElement("form"),eT=function(e){return e instanceof RegExp||e instanceof Function},eM=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ek||ek!==e){if(e&&"object"==typeof e||(e={}),e=l1(e),e$="application/xhtml+xml"===(eA=-1===eE.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE)?lH:lq,P=lQ(e,"ALLOWED_TAGS")?lX({},e.ALLOWED_TAGS,e$):U,B=lQ(e,"ALLOWED_ATTR")?lX({},e.ALLOWED_ATTR,e$):F,eb=lQ(e,"ALLOWED_NAMESPACES")?lX({},e.ALLOWED_NAMESPACES,lH):ew,em=lQ(e,"ADD_URI_SAFE_ATTR")?lX(l1(ep),e.ADD_URI_SAFE_ATTR,e$):ep,eu=lQ(e,"ADD_DATA_URI_TAGS")?lX(l1(eh),e.ADD_DATA_URI_TAGS,e$):eh,ec=lQ(e,"FORBID_CONTENTS")?lX({},e.FORBID_CONTENTS,e$):ed,H=lQ(e,"FORBID_TAGS")?lX({},e.FORBID_TAGS,e$):l1({}),G=lQ(e,"FORBID_ATTR")?lX({},e.FORBID_ATTR,e$):l1({}),el=!!lQ(e,"USE_PROFILES")&&e.USE_PROFILES,W=!1!==e.ALLOW_ARIA_ATTR,Z=!1!==e.ALLOW_DATA_ATTR,V=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Q=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,K=e.SAFE_FOR_TEMPLATES||!1,J=!1!==e.SAFE_FOR_XML,Y=e.WHOLE_DOCUMENT||!1,et=e.RETURN_DOM||!1,es=e.RETURN_DOM_FRAGMENT||!1,er=e.RETURN_TRUSTED_TYPE||!1,ee=e.FORCE_BODY||!1,ei=!1!==e.SANITIZE_DOM,en=e.SANITIZE_NAMED_PROPS||!1,eo=!1!==e.KEEP_CONTENT,ea=e.IN_PLACE||!1,z=e.ALLOWED_URI_REGEXP||cl,e_=e.NAMESPACE||ev,ej=e.MATHML_TEXT_INTEGRATION_POINTS||ej,eS=e.HTML_INTEGRATION_POINTS||eS,q=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&eT(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(q.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&eT(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(q.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(q.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),K&&(Z=!1),es&&(et=!0),el&&(P=lX({},l9),B=[],!0===el.html&&(lX(P,l2),lX(B,l7)),!0===el.svg&&(lX(P,l4),lX(B,ce),lX(B,cs)),!0===el.svgFilters&&(lX(P,l3),lX(B,ce),lX(B,cs)),!0===el.mathMl&&(lX(P,l8),lX(B,ct),lX(B,cs))),e.ADD_TAGS&&(P===U&&(P=l1(P)),lX(P,e.ADD_TAGS,e$)),e.ADD_ATTR&&(B===F&&(B=l1(B)),lX(B,e.ADD_ATTR,e$)),e.ADD_URI_SAFE_ATTR&&lX(em,e.ADD_URI_SAFE_ATTR,e$),e.FORBID_CONTENTS&&(ec===ed&&(ec=l1(ec)),lX(ec,e.FORBID_CONTENTS,e$)),eo&&(P["#text"]=!0),Y&&lX(P,["html","head","body"]),P.table&&(lX(P,["tbody"]),delete H.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw lJ('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw lJ('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');S=(t=e.TRUSTED_TYPES_POLICY).createHTML("")}else void 0===t&&(t=cm(g,a)),null!==t&&"string"==typeof S&&(S=t.createHTML(""));lN&&lN(e),ek=e}},eO=lX({},[...l4,...l3,...l6]),eN=lX({},[...l8,...l5]),eI=function(e){let t=j(e);t&&t.tagName||(t={namespaceURI:e_,tagName:"template"});let s=lq(e.tagName),r=lq(t.tagName);return!!eb[e.namespaceURI]&&(e.namespaceURI===eg?t.namespaceURI===ev?"svg"===s:t.namespaceURI===ef?"svg"===s&&("annotation-xml"===r||ej[r]):!!eO[s]:e.namespaceURI===ef?t.namespaceURI===ev?"math"===s:t.namespaceURI===eg?"math"===s&&eS[r]:!!eN[s]:e.namespaceURI===ev?(t.namespaceURI!==eg||!!eS[r])&&(t.namespaceURI!==ef||!!ej[r])&&!eN[s]&&(ex[s]||!eO[s]):"application/xhtml+xml"===eA&&!!eb[e.namespaceURI])},eR=function(e){lB(r.removed,{element:e});try{j(e).removeChild(e)}catch(t){y(e)}},eD=function(e,t){try{lB(r.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){lB(r.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e)if(et||es)try{eR(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},eL=function(e){let s=null,r=null;if(ee)e=""+e;else{let t=lG(e,/^[\r\n\t ]+/);r=t&&t[0]}"application/xhtml+xml"===eA&&e_===ev&&(e=''+e+"");let o=t?t.createHTML(e):e;if(e_===ev)try{s=new f().parseFromString(o,eA)}catch(e){}if(!s||!s.documentElement){s=x.createDocument(e_,"template",null);try{s.documentElement.innerHTML=ey?S:o}catch(e){}}let a=s.body||s.documentElement;return(e&&r&&a.insertBefore(i.createTextNode(r),a.childNodes[0]||null),e_===ev)?$.call(s,Y?"html":"body")[0]:Y?s.documentElement:a},ez=function(e){return A.call(e.ownerDocument||e,e,h.SHOW_ELEMENT|h.SHOW_COMMENT|h.SHOW_TEXT|h.SHOW_PROCESSING_INSTRUCTION|h.SHOW_CDATA_SECTION,null)},eP=function(e){return e instanceof p&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof m)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},eU=function(e){return"function"==typeof d&&e instanceof d};function eB(e,t,s){lz(e,e=>{e.call(r,t,s,ek)})}let eF=function(e){let t=null;if(eB(C.beforeSanitizeElements,e,null),eP(e))return eR(e),!0;let s=e$(e.nodeName);if(eB(C.uponSanitizeElement,e,{tagName:s,allowedTags:P}),J&&e.hasChildNodes()&&!eU(e.firstElementChild)&&lK(/<[/\w!]/g,e.innerHTML)&&lK(/<[/\w!]/g,e.textContent)||7===e.nodeType||J&&8===e.nodeType&&lK(/<[/\w]/g,e.data))return eR(e),!0;if(!P[s]||H[s]){if(!H[s]&&eH(s)&&(q.tagNameCheck instanceof RegExp&&lK(q.tagNameCheck,s)||q.tagNameCheck instanceof Function&&q.tagNameCheck(s)))return!1;if(eo&&!ec[s]){let t=j(e)||e.parentNode,s=w(e)||e.childNodes;if(s&&t){let r=s.length;for(let i=r-1;i>=0;--i){let r=_(s[i],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,b(e))}}}return eR(e),!0}return e instanceof u&&!eI(e)||("noscript"===s||"noembed"===s||"noframes"===s)&&lK(/<\/no(script|embed|frames)/i,e.innerHTML)?(eR(e),!0):(K&&3===e.nodeType&&(t=e.textContent,lz([T,M,O],e=>{t=lW(t,e," ")}),e.textContent!==t&&(lB(r.removed,{element:e.cloneNode()}),e.textContent=t)),eB(C.afterSanitizeElements,e,null),!1)},eq=function(e,t,s){if(ei&&("id"===t||"name"===t)&&(s in i||s in eC))return!1;if(Z&&!G[t]&&lK(N,t));else if(W&&lK(I,t));else if(!B[t]||G[t]){if(!(eH(e)&&(q.tagNameCheck instanceof RegExp&&lK(q.tagNameCheck,e)||q.tagNameCheck instanceof Function&&q.tagNameCheck(e))&&(q.attributeNameCheck instanceof RegExp&&lK(q.attributeNameCheck,t)||q.attributeNameCheck instanceof Function&&q.attributeNameCheck(t))||"is"===t&&q.allowCustomizedBuiltInElements&&(q.tagNameCheck instanceof RegExp&&lK(q.tagNameCheck,s)||q.tagNameCheck instanceof Function&&q.tagNameCheck(s))))return!1}else if(em[t]);else if(lK(z,lW(s,D,"")));else if(("src"===t||"xlink:href"===t||"href"===t)&&"script"!==e&&0===lZ(s,"data:")&&eu[e]);else if(V&&!lK(R,lW(s,D,"")));else if(s)return!1;return!0},eH=function(e){return"annotation-xml"!==e&&lG(e,L)},eG=function(e){eB(C.beforeSanitizeAttributes,e,null);let{attributes:s}=e;if(!s||eP(e))return;let i={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:B,forceKeepAttr:void 0},o=s.length;for(;o--;){let{name:a,namespaceURI:l,value:c}=s[o],d=e$(a),u="value"===a?c:lV(c);if(i.attrName=d,i.attrValue=u,i.keepAttr=!0,i.forceKeepAttr=void 0,eB(C.uponSanitizeAttribute,e,i),u=i.attrValue,en&&("id"===d||"name"===d)&&(eD(a,e),u="user-content-"+u),J&&lK(/((--!?|])>)|<\/(style|title)/i,u)){eD(a,e);continue}if(i.forceKeepAttr)continue;if(!i.keepAttr||!Q&&lK(/\/>/i,u)){eD(a,e);continue}K&&lz([T,M,O],e=>{u=lW(u,e," ")});let h=e$(e.nodeName);if(!eq(h,d,u)){eD(a,e);continue}if(t&&"object"==typeof g&&"function"==typeof g.getAttributeType)if(l);else switch(g.getAttributeType(h,d)){case"TrustedHTML":u=t.createHTML(u);break;case"TrustedScriptURL":u=t.createScriptURL(u)}if(u!==c)try{l?e.setAttributeNS(l,a,u):e.setAttribute(a,u),eP(e)?eR(e):lU(r.removed)}catch(t){eD(a,e)}}eB(C.afterSanitizeAttributes,e,null)},eW=function e(t){let s=null,r=ez(t);for(eB(C.beforeSanitizeShadowDOM,t,null);s=r.nextNode();)eB(C.uponSanitizeShadowNode,s,null),eF(s),eG(s),s.content instanceof l&&e(s.content);eB(C.afterSanitizeShadowDOM,t,null)};return r.sanitize=function(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=null,a=null,c=null,u=null;if((ey=!e)&&(e="\x3c!--\x3e"),"string"!=typeof e&&!eU(e))if("function"==typeof e.toString){if("string"!=typeof(e=e.toString()))throw lJ("dirty is not a string, aborting")}else throw lJ("toString is not a function");if(!r.isSupported)return e;if(X||eM(s),r.removed=[],"string"==typeof e&&(ea=!1),ea){if(e.nodeName){let t=e$(e.nodeName);if(!P[t]||H[t])throw lJ("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof d)1===(a=(i=eL("\x3c!----\x3e")).ownerDocument.importNode(e,!0)).nodeType&&"BODY"===a.nodeName||"HTML"===a.nodeName?i=a:i.appendChild(a);else{if(!et&&!K&&!Y&&-1===e.indexOf("<"))return t&&er?t.createHTML(e):e;if(!(i=eL(e)))return et?null:er?S:""}i&&ee&&eR(i.firstChild);let h=ez(ea?e:i);for(;c=h.nextNode();)eF(c),eG(c),c.content instanceof l&&eW(c.content);if(ea)return e;if(et){if(es)for(u=E.call(i.ownerDocument);i.firstChild;)u.appendChild(i.firstChild);else u=i;return(B.shadowroot||B.shadowrootmode)&&(u=k.call(o,u,!0)),u}let m=Y?i.outerHTML:i.innerHTML;return Y&&P["!doctype"]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&lK(cu,i.ownerDocument.doctype.name)&&(m="\n"+m),K&&lz([T,M,O],e=>{m=lW(m,e," ")}),t&&er?t.createHTML(m):m},r.setConfig=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};eM(e),X=!0},r.clearConfig=function(){ek=null,X=!1},r.isValidAttribute=function(e,t,s){return ek||eM({}),eq(e$(e),e$(t),s)},r.addHook=function(e,t){"function"==typeof t&&lB(C[e],t)},r.removeHook=function(e,t){if(void 0!==t){let s=lP(C[e],t);return -1===s?void 0:lF(C[e],s,1)[0]}return lU(C[e])},r.removeHooks=function(e){C[e]=[]},r.removeAllHooks=function(){C=cp()},r}();class cg extends e2{constructor(e){if(super(e),this.it=eC,2!==e.type)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(e){if(e===eC||null==e)return this._t=void 0,this.it=e;if(e===ek)return e;if("string"!=typeof e)throw Error(this.constructor.directiveName+"() called with a non-string value");if(e===this.it)return this._t;this.it=e;let t=[e];return t.raw=t,this._t={_$litType$:this.constructor.resultType,strings:t,values:[]}}}cg.directiveName="unsafeHTML",cg.resultType=1;let cv=e0(cg);T.hi.elements.define("converse-chat-help",class extends eV{constructor(){super(),this.messages=[],this.model=null,this.type=null}static get properties(){return{chat_type:{type:String},messages:{type:Array},model:{type:Object},type:{type:String}}}render(){let e=new Date().toISOString();return[eE``,...this.messages.map(t=>this.renderHelpMessage({isodate:e,markup:cf.sanitize(t,{ALLOWED_TAGS:["strong"]})}))]}close(){this.model.set({show_help_messages:!1})}renderHelpMessage(e){return eE`
    ${cv(e.markup)}
    `}});let c_=T.Qr.env.utils,cy=e=>eE`
  • ${c_.shortnamesToEmojis(e.emoji.sn)}
  • `,{sizzle:cb}=T.Qr.env;T.hi.elements.define("converse-emoji-picker-content",class extends eV{static get properties(){return{search_results:{type:Array},current_skintone:{type:String},model:{type:Object},query:{type:String}}}constructor(){super(),this.model=null,this.current_skintone=null,this.query=null,this.search_results=null}render(){let e={current_skintone:this.current_skintone,insertEmoji:e=>this.insertEmoji(e),query:this.query,search_results:this.search_results,shouldBeHidden:e=>this.shouldBeHidden(e)};return eE`
    ${function(e){let t=D("Search results");return eE`${t}
      ${e.search_results.map(t=>cy(Object.assign({emoji:t},e)))}
    `}(e)} ${function(e){let t=T.hi.settings.get("emoji_categories");return eE`${Object.keys(t).map(s=>{var r;return t[s]?(r=Object.assign({category:s},e),eE`${D(T.hi.settings.get("emoji_category_labels")[r.category])}
      ${Object.values(T.Qr.emojis.json[r.category]).map(e=>cy(Object.assign({emoji:e},r)))}
    `):""})}
    `}(e)}
    `}firstUpdated(){this.initIntersectionObserver()}initIntersectionObserver(){if(window.IntersectionObserver){if(this.observer)this.observer.disconnect();else{let e={root:this.querySelector(".emoji-picker__lists"),threshold:[.1]},t=e=>this.setCategoryOnVisibilityChange(e);this.observer=new IntersectionObserver(t,e)}cb(".emoji-picker",this).forEach(e=>this.observer.observe(e))}}setCategoryOnVisibilityChange(e){let t,s=this.parentElement.navigator.selected,r=e.filter(e=>e.target.contains(s)).pop();if((t=r||e.reduce((e,t)=>t.intersectionRatio>=(e?.intersectionRatio||0)?t:e,null))&&t.isIntersecting){let e=t.target.getAttribute("data-category");e!==this.model.get("current_category")&&(this.parentElement.preserve_scroll=!0,T.u.safeSave(this.model,{current_category:e}))}}insertEmoji(e){e.preventDefault(),e.stopPropagation();let t=e.target,s="IMG"===t.nodeName?t.parentElement:t;this.parentElement.selectEmoji(s.getAttribute("data-emoji"))}shouldBeHidden(e){if(e.includes("_tone")){if(!this.current_skintone||!e.includes(this.current_skintone))return!0}else if(this.current_skintone&&ar().includes(e))return!0;return!(!this.query||oo(e,this.query))}});let{CHATROOMS_TYPE:cw}=T._G,{initStorage:cj}=T.u;T.hi.elements.define("converse-emoji-dropdown",class extends r2{static get properties(){return{icon_classes:{type:String},items:{type:Array},model:{type:Object}}}constructor(){super(),this.id=T.u.getUniqueId(),this.render_emojis=!1,this.state=null,this.model=null,this.addEventListener("shown.bs.dropdown",()=>this.onShown())}initModel(){return this.init_promise||(this.init_promise=(async()=>{await T.hi.emojis.initialize();let e=T.Tk.session.get("bare_jid"),t=`converse.emoji-${e}-${this.model.get("jid")}`;this.state=new T.h5({id:t}),cj(this.state,t),await new Promise(e=>this.state.fetch({success:e,error:e})),this.state.set({autocompleting:null,ac_position:null})})()),this.init_promise}render(){let e=this.model.get("type")===cw;return eE``}connectedCallback(){super.connectedCallback(),this.render_emojis=!1}async onShown(){await this.initModel(),this.render_emojis||(this.render_emojis=!0,this.requestUpdate(),await this.updateComplete),setTimeout(()=>this.querySelector(".emoji-search")?.focus())}});var cS=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/chat/styles/emoji.scss"),cx={};cx.styleTagTransform=A(),cx.setAttributes=w(),cx.insert=y().bind(null,"head"),cx.domAPI=v(),cx.insertStyleElement=S(),f()(cS.Z,cx),cS.Z&&cS.Z.locals&&cS.Z.locals;let{KEYCODES:cA}=T._G;T.hi.elements.define("converse-emoji-picker",class extends eV{static get properties(){return{current_category:{type:String,reflect:!0},current_skintone:{type:String,reflect:!0},model:{type:Object},query:{type:String,reflect:!0},state:{type:Object},render_emojis:{type:Boolean}}}constructor(){super(),this.state=null,this.model=null,this.query="",this.render_emojis=null,this._search_results=[],this.debouncedFilter=iA(e=>this.state.set({query:e.value}),250)}initialize(){super.initialize(),this.dropdown=this.closest("converse-emoji-dropdown")}firstUpdated(e){super.firstUpdated(e),this.listenTo(this.state,"change",e=>this.onModelChanged(e.changed)),this.initArrowNavigation()}get search_results(){return this._search_results}set search_results(e){this._search_results=e,this.requestUpdate()}render(){return function(e,t){let s=D("Search"),r={tone1:":raised_hand_tone1:",tone2:":raised_hand_tone2:",tone3:":raised_hand_tone3:",tone4:":raised_hand_tone4:",tone5:":raised_hand_tone5:"};return eE`
    ${t.query?"":(e=>{let t=T.hi.settings.get("emoji_categories");return eE`
      ${Object.keys(t).map(s=>{let r;return t[s]?(r=Object.assign({category:s,emoji:e.sn2Emoji(t[s])},e),eE`
    • ${r.emoji}
    • `):""})}
    `})(t)}
    ${t.render_emojis?eE``:""}
    Skin tone:
    `}(this,{current_category:this.current_category,current_skintone:this.current_skintone,onCategoryPicked:e=>this.chooseCategory(e),onSearchInputFocus:()=>this.disableArrowNavigation(),onSearchInputKeyDown:e=>this.onSearchInputKeyDown(e),onSkintonePicked:e=>this.chooseSkinTone(e),query:this.query,search_results:this.search_results,render_emojis:this.render_emojis,sn2Emoji:e=>T.u.shortnamesToEmojis(this.getTonedShortname(e))})}updated(e){e.has("query")&&this.updateSearchResults(e),e.has("current_category")&&this.setScrollPosition()}onModelChanged(e){"current_category"in e&&(this.current_category=e.current_category),"current_skintone"in e&&(this.current_skintone=e.current_skintone),"query"in e&&(this.query=e.query)}setScrollPosition(){if(this.preserve_scroll){this.preserve_scroll=!1;return}let e=this.querySelector(".emoji-lists__container--browse"),t=this.querySelector(`#emoji-picker-${this.current_category}`);t instanceof HTMLElement&&(e.scrollTop=t.offsetTop-3*t.offsetHeight+4)}updateSearchResults(e){let t=e.get("query");if(this.query)if(this.query===t)return this.search_results;else t&&this.query.includes(t)?this.search_results=this.search_results.filter(e=>oo(e.sn,this.query)):this.search_results=T.Qr.emojis.list.filter(e=>oo(e.sn,this.query));else this.search_results.length&&(this.search_results=[])}registerEvents(){this.onKeyDown=e=>this.#a(e),this.dropdown.addEventListener("hide.bs.dropdown",()=>this.onDropdownHide()),this.addEventListener("keydown",this.onKeyDown)}connectedCallback(){super.connectedCallback(),this.registerEvents()}disconnectedCallback(){this.removeEventListener("keydown",this.onKeyDown),this.disableArrowNavigation(),super.disconnectedCallback()}#a(e){this.navigator&&T.u.isVisible(this)&&(e.key===cA.ENTER?this.onEnterPressed(e):e.key!==cA.DOWN_ARROW||this.navigator.enabled||this.enableArrowNavigation(e))}onDropdownHide(){this.disableArrowNavigation(),this.dispatchEvent(new CustomEvent("emojipickerblur",{bubbles:!0}))}setCategoryForElement(e){let t=this.current_category,s=e?.getAttribute("data-category")||t;t!==s&&this.state.save({current_category:s})}selectEmoji(e){let t=this.state.get("autocompleting"),s=this.state.get("ac_position");this.state.set({autocompleting:null,query:"",ac_position:null}),this.disableArrowNavigation();let r=this.model.get("jid");this.dispatchEvent(new CustomEvent("emojiSelected",{bubbles:!0,detail:{value:e,autocompleting:t,ac_position:s,jid:r}}))}chooseSkinTone(e){e.preventDefault(),e.stopPropagation();let t=e.target,s=("IMG"===t.nodeName?t.parentElement:t).getAttribute("data-skintone").trim();this.current_skintone===s?this.state.save({current_skintone:""}):this.state.save({current_skintone:s})}chooseCategory(e){e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation();let t=e.target??e.relatedTarget,s=t.matches("li")?t:T.u.ancestor(t,"li");this.setCategoryForElement(s),this.navigator.select(s),this.navigator.enabled||this.navigator.enable()}onSearchInputKeyDown(e){let t=e.target;if(e.key===cA.TAB)if(t.value){e.preventDefault();let s=T.Qr.emojis.shortnames.find(e=>oo(e,t.value));s&&this.state.set({query:s})}else this.navigator.enabled||this.enableArrowNavigation(e);else e.key!==cA.DOWN_ARROW||this.navigator.enabled?e.key!==cA.ENTER&&e.key!==cA.DOWN_ARROW&&this.debouncedFilter(t):this.enableArrowNavigation(e)}onEnterPressed(e){e.preventDefault(),e.stopPropagation();let t=e.target;T.Qr.emojis.shortnames.includes(t.value)?this.selectEmoji(t.value):1===this.search_results.length?this.selectEmoji(this.search_results[0].sn):this.navigator.selected&&this.navigator.selected.matches(".insert-emoji")?this.selectEmoji(this.navigator.selected.getAttribute("data-emoji")):this.navigator.selected&&this.navigator.selected.matches(".emoji-category")&&this.chooseCategory(new MouseEvent("click",{relatedTarget:this.navigator.selected}))}getTonedShortname(e){return ar().includes(e)&&this.current_skintone?`${e.slice(0,e.length-1)}_${this.current_skintone}:`:e}initArrowNavigation(){if(!this.navigator){let e="li:not(.hidden):not(.emoji-skintone), .emoji-search",t={jump_to_picked:".emoji-category",jump_to_picked_selector:".emoji-category.picked",jump_to_picked_direction:tM.DIRECTION.down,picked_selector:".picked",scroll_container:this.querySelector(".emoji-picker__lists"),getSelector:t=>{if(t!==tM.DIRECTION.down)return e;{let t=this.navigator.selected&&this.navigator.selected.getAttribute("data-category");return t?`ul[data-category="${t}"] li:not(.hidden):not(.emoji-skintone), .emoji-search`:e}},onSelected:e=>{e.matches(".insert-emoji")&&this.setCategoryForElement(e.parentElement),e.matches(".insert-emoji, .emoji-category")&&e.firstElementChild.focus(),e.matches(".emoji-search")&&e.focus()}};this.navigator=new tM(this,t)}}disableArrowNavigation(){this.navigator?.disable()}enableArrowNavigation(e){e?.preventDefault?.(),e?.stopPropagation?.(),this.disableArrowNavigation(),this.navigator.enable(),this.navigator.handleKeydown(e)}}),T.hi.elements.define("converse-message-limit-indicator",class extends eV{static get properties(){return{model:{type:Object},_draft_length:{state:!0}}}constructor(){super(),this.model=null,this._draft_length=0}connectedCallback(){super.connectedCallback(),this._draft_length=this.model.get("draft")?.length??0,this.listenTo(this.model,"change:draft",()=>{this._draft_length=this.model.get("draft")?.length??0}),this.listenTo(this.model,"event:keyup",({ev:e})=>{let t=e.target;this._draft_length=t.value.length})}render(){let e=T.hi.settings.get("message_limit");if(!e)return"";var t=e-this._draft_length;let s=D("Message characters remaining");return eE`${t}`}});var cE=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/chat/styles/toolbar.scss"),c$={};c$.styleTagTransform=A(),c$.setAttributes=w(),c$.insert=y().bind(null,"head"),c$.domAPI=v(),c$.insertStyleElement=S(),f()(cE.Z,c$),cE.Z&&cE.Z.locals&&cE.Z.locals;let ck=T.Qr.env.Strophe;T.hi.elements.define("converse-chat-toolbar",class extends eV{static get properties(){return{hidden_occupants:{type:Boolean},is_groupchat:{type:Boolean},message_limit:{type:Number},model:{type:Object},show_call_button:{type:Boolean},show_emoji_button:{type:Boolean},show_send_button:{type:Boolean},show_spoiler_button:{type:Boolean}}}constructor(){super(),this.model=null,this.is_groupchat=null,this.hidden_occupants=!1,this.show_send_button=!1,this.show_spoiler_button=!1,this.show_call_button=!1,this.show_emoji_button=!1}connectedCallback(){super.connectedCallback(),this.listenTo(this.model,"change:composing_spoiler",()=>this.requestUpdate())}render(){let e=T.hi.settings.get("message_limit");return eE`${tr(this.getButtons(),"")} ${e?eE``:""} ${this.show_send_button?function(){let e=D("Send the message");return eE``}():""}`}firstUpdated(){T.hi.trigger("renderToolbar",this)}getButtons(){let e=[];if(this.show_emoji_button&&e.push(eE``),this.show_call_button){let t=this.is_groupchat?"--muc-color":"--chat-color",s=D("Start a call");e.push(eE``)}this.show_spoiler_button&&e.push(this.getSpoilerButton());let t=T.Tk.session.get("domain"),s=T.hi.disco.supports(ck.NS.HTTPUPLOAD,t);return e.push(eE`${tr(s.then(e=>this.getHTTPUploadButton(!!e)),"")}`),T.Tk.api.hook("getToolbarButtons",this,e)}getHTTPUploadButton(e){if(!e)return"";{let e=D("Choose a file to send");return eE` `}}getSpoilerButton(){let e,t=this.model;if(!this.is_groupchat&&!t.presence?.resources.length)return;e=t.get("composing_spoiler")?D("Click to write as a normal (non-spoiler) message"):D("Click to write your message as a spoiler");let s=this.is_groupchat?"--muc-color":"--chat-color",r=eE``;if(this.is_groupchat)return r;{let e=t.get("jid"),s=Promise.all(t.presence.resources.map(t=>T.hi.disco.supports(ck.NS.SPOILER,`${e}/${t.get("name")}`))).then(e=>e.reduce((e,t)=>e&&t,!0));return eE`${tr(s.then(()=>r),"")}`}}toggleFileUpload(e){e?.preventDefault?.(),e?.stopPropagation?.(),this.querySelector(".fileupload").click()}onFileSelection(e){this.model.sendFiles(e.target.files)}toggleComposeSpoilerMessage(e){e?.preventDefault?.(),e?.stopPropagation?.(),this.model.set("composing_spoiler",!this.model.get("composing_spoiler"))}toggleCall(e){e?.preventDefault?.(),e?.stopPropagation?.(),T.hi.trigger("callButtonClicked",{connection:T.hi.connection.get(),model:this.model})}});let{HEADLINES_TYPE:cC}=T._G;var cT=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/chatview/styles/chat-head.scss"),cM={};cM.styleTagTransform=A(),cM.setAttributes=w(),cM.insert=y().bind(null,"head"),cM.domAPI=v(),cM.insertStyleElement=S(),f()(cT.Z,cM),cT.Z&&cT.Z.locals&&cT.Z.locals;let{Strophe:cO}=T.Qr.env;async function cN(e){await T.hi.confirm(D("Confirm"),D("Are you sure you want to clear the messages from this conversation?"))&&await e.clearMessages()}async function cI(e,t){let s=t.replace(/^\s*/,"").match(/^\/(.*)\s*$/);if(s){let r=!1;if(r=await T.hi.hook("parseMessageForCommands",{model:e,text:t},r))return!0;if("clear"===s[1])return cN(e),!0;if("close"===s[1]){let{chatboxviews:t}=T.Tk.state;return t.get(e.get("jid"))?.close(),!0}if("help"===s[1])return e.set({show_help_messages:!1},{silent:!0}),e.set({show_help_messages:!0}),!0}return!1}function cR(e){if(!window.CSS?.supports("field-sizing","content"))if(e.target.value){let t=e.target.scrollHeight+"px";e.target.style.height!=t&&(e.target.style.height="auto",e.target.style.height=t)}else e.target.style=""}T.hi.elements.define("converse-chat-heading",class extends eV{constructor(){super(),this.jid=null}static get properties(){return{jid:{type:String}}}initialize(){let{chatboxes:e}=T.Tk.state;this.model=e.get(this.jid),this.listenTo(this.model,"change:status",()=>this.requestUpdate()),this.listenTo(this.model,"vcard:add",()=>this.requestUpdate()),this.listenTo(this.model,"vcard:change",()=>this.requestUpdate()),this.model.contact&&this.listenTo(this.model.contact,"destroy",()=>this.requestUpdate()),this.model.rosterContactAdded?.then(()=>{this.listenTo(this.model.contact,"change:nickname",()=>this.requestUpdate()),this.requestUpdate()}),this.requestUpdate()}render(){return(e=>{let{jid:t,status:s,type:r}=e.model.attributes,i=e.getHeadingButtons(),o=t=>e.showUserDetailsModal(t),a=D("The User's Profile Image"),l=e.model.getDisplayName(),c=eE``;return eE`
    ${!T.Tk.api.settings.get("singleton")?eE``:""} ${r!==cC?eE`${c}`:""}
    ${r!==cC?eE`${l}`:l}
    ${tr(ae(i),"")} ${tr(at(i),"")}
    ${s?eE`

    ${s}

    `:""}`})(this)}showUserDetailsModal(e){e.preventDefault(),this.model?.contact instanceof T.Tk.exports.Profile?T.hi.modal.show("converse-profile-modal",{model:this.model},e):T.hi.modal.show("converse-user-details-modal",{model:this.model},e)}close(e){e.preventDefault(),this.model.close()}async getHeadingButtons(){let e=[{a_class:"show-user-details-modal",handler:e=>this.showUserDetailsModal(e),i18n_text:D("Details"),i18n_title:D("See more information about this person"),icon_class:"fa-id-card",name:"details",standalone:!1}],t=T.Tk.session.get("domain");t&&await T.hi.disco.supports(cO.NS.BLOCKING,t)&&((await T.hi.blocklist.get()).get(this.model.get("jid"))?e.push({a_class:"unblock-user",handler:async e=>{e.preventDefault(),await T.hi.confirm(D("Unblock user"),[D("Are you sure you want to unblock this user?")])&&T.hi.blocklist.remove(this.model.get("jid"))},i18n_text:D("Unblock this user"),i18n_title:D("Allow this user to send you messages"),icon_class:"fa-check",name:"unblock",standalone:!1}):e.push({a_class:"block-user",handler:async e=>{if(e.preventDefault(),await T.hi.confirm(D("Block user"),[D("Are you sure you want to prevent %1$s from contacting you further?",this.model.getDisplayName())])){let e=this.model.get("jid");T.hi.blocklist.add(e),T.hi.contacts.remove(e,!0),this.model.close()}},i18n_text:D("Block this user"),i18n_title:D("Prevent this user from sending you any further messages"),icon_class:"fa-trash",name:"block",standalone:!1})),T.hi.settings.get("singleton")||e.push({a_class:"close-chatbox-button",handler:e=>this.close(e),i18n_text:D("Close"),i18n_title:D("Close and end this conversation"),icon_class:"fa-times",name:"close",standalone:"overlayed"===T.hi.settings.get("view_mode")});let{chatboxviews:s}=T.Tk.state,r=s.get(this.getAttribute("jid"));return r?T.Tk.api.hook("getHeadingButtons",r,e):e}});let{ACTIVE:cD,COMPOSING:cL}=T._G;class cz extends eV{static get properties(){return{model:{type:Object}}}constructor(){super(),this.model=null}async initialize(){await this.model.initialized,this.listenTo(this.model,"change:composing_spoiler",()=>this.requestUpdate()),this.listenTo(this.model,"change:draft",()=>this.requestUpdate()),this.listenTo(this.model,"change:hidden",()=>{if(this.model.get("hidden")){let e=this.querySelector(".spoiler-hint")?.value,t=this.querySelector(".chat-textarea")?.value;T.u.safeSave(this.model,{draft:t,draft_hint:e})}}),this.handleEmojiSelection=({detail:e})=>{this.model.get("jid")===e.jid&&this.insertIntoTextArea(e.value,e.autocompleting,e.ac_position)},document.addEventListener("emojiSelected",this.handleEmojiSelection),this.requestUpdate()}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("emojiSelected",this.handleEmojiSelection)}render(){return(e=>{let t=e.model.get("composing_spoiler"),s=t?D("Hidden message"):D("Message"),r=D("Optional hint"),i=T.hi.settings.get("message_limit"),o=T.hi.settings.get("visible_toolbar_buttons").call,a=T.hi.settings.get("visible_toolbar_buttons").emoji,l=T.hi.settings.get("show_send_button"),c=T.hi.settings.get("visible_toolbar_buttons").spoiler,d=T.hi.settings.get("show_toolbar");return eE`
    ${d?eE``:""}
    `})(this)}insertIntoTextArea(e,t=!1,s,r=" "){let i=this.querySelector(".chat-textarea");if(t)s&&"string"==typeof t?i.value=i.value.replace(RegExp(t,"g"),(i,o)=>o==s-t.length?e+r:i):i.value=e;else{let t=i.value;t&&t[t.length-1]!==r&&(t+=r),i.value=t+e+r}let o=new Event("change",{bubbles:!1,cancelable:!0});i.dispatchEvent(o),T.u.placeCaretAtEnd(i)}onEscapePressed(e){let t=this.model.messages.findLastIndex("correcting"),s=t>=0?this.model.messages.at(t):null;s&&(e.preventDefault(),s.save("correcting",!1))}onPaste(e){if(0!==e.clipboardData.files.length){e.stopPropagation(),e.preventDefault(),this.model.sendFiles(Array.from(e.clipboardData.files));return}let t=this.querySelector(".chat-textarea");if(!t)return void aE.error("onPaste: could not find textarea to paste in to!");e.preventDefault(),e.stopPropagation();let s=t.value??"",r=e.clipboardData.getData("text/plain"),i=t.selectionStart,o=s.substring(0,i),a=s.substring(t.selectionEnd),l=o.endsWith(" ")||0===o.length?"":" ",c=a.startsWith(" ")||0===a.length?"":" ";this.model.save({draft:`${o}${l}${r}${c}${a}`});let d=o.length+l.length+r.length+c.length;setTimeout(()=>t.setSelectionRange(d,d),0)}onDrop(e){0!=e.dataTransfer.files.length&&(e.preventDefault(),this.model.sendFiles(e.dataTransfer.files))}onKeyUp(e){this.model.trigger("event:keyup",{ev:e})}onKeyDown(e){let{keycodes:t}=T.Qr;if(!(e.ctrlKey||e.shiftKey&&e.key===t.ENTER||[t.SHIFT,t.META,t.ESCAPE,t.ALT].includes(e.key))){if(!e.shiftKey&&!e.altKey&&!e.metaKey){let t=e.target;if(e.key===T.Qr.keycodes.TAB){let s=T.u.getCurrentWord(t,null,/(:.*?:)/g);s.startsWith(":")&&(e.preventDefault(),e.stopPropagation(),this.model.trigger("emoji-picker-autocomplete",{target:t,value:s}))}else if(e.key===T.Qr.keycodes.FORWARD_SLASH)return;else if(e.key===T.Qr.keycodes.ESCAPE)return this.onEscapePressed(e);else if(e.key===T.Qr.keycodes.ENTER)return this.onFormSubmitted(e);else if(e.key!==T.Qr.keycodes.UP_ARROW||t.selectionEnd){if(e.key===T.Qr.keycodes.DOWN_ARROW&&t.selectionEnd===t.value.length&&this.model.get("correcting"))return this.model.editLaterMessage()}else if(!this.querySelector(".chat-textarea").value||this.model.get("correcting"))return this.model.editEarlierMessage()}this.model.get("chat_state")!==cL&&this.model.setChatState(cL)}}async onFormSubmitted(e){e?.preventDefault?.();let{chatboxviews:t}=T.Tk.state,s=this.querySelector(".chat-textarea"),r=s.value.trim();if(T.hi.settings.get("message_limit")&&r.length>T.hi.settings.get("message_limit")||!r.replace(/\s/g,"").length)return;if(!T.hi.connection.get().authenticated){let e=D("Sorry, the connection has been lost, and your message could not be sent");T.hi.alert("error",D("Error"),e),T.hi.connection.reconnect();return}let i,o={};this.model.get("composing_spoiler")&&(i=(o=this.querySelector("form.chat-message-form input.spoiler-hint")).value),T.u.addClass("disabled",s),s.setAttribute("disabled","disabled"),this.querySelector("converse-emoji-dropdown")?.dropdown.hide();let a=await cI(this.model,r),l=a?null:await this.model.sendMessage({body:r,spoiler_hint:i});(a||l)&&(o.value="",s.value="",s.style.height="auto",this.model.save({draft:""})),"overlayed"===T.hi.settings.get("view_mode")&&(t.get(this.model.get("jid")).querySelector(".chat-content__messages").parentElement.style.display="none"),s.removeAttribute("disabled"),T.u.removeClass("disabled",s),"overlayed"===T.hi.settings.get("view_mode")&&(t.get(this.model.get("jid")).querySelector(".chat-content__messages").parentElement.style.display=""),this.model.setChatState(cD,{silent:!0}),s.focus()}}T.hi.elements.define("converse-message-form",cz);var cP=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/chatview/styles/chat-bottom-panel.scss"),cU={};cU.styleTagTransform=A(),cU.setAttributes=w(),cU.insert=y().bind(null,"head"),cU.domAPI=v(),cU.insertStyleElement=S(),f()(cP.Z,cU),cP.Z&&cP.Z.locals&&cP.Z.locals;class cB extends eV{constructor(){super(),this.model=null}static get properties(){return{model:{type:Object}}}async connectedCallback(){super.connectedCallback(),await this.initialize(),this.requestUpdate()}async initialize(){await this.model.initialized,this.listenTo(this.model,"change:num_unread",()=>this.requestUpdate()),this.listenTo(this.model,"emoji-picker-autocomplete",this.autocompleteInPicker),this.addEventListener("emojipickerblur",()=>this.querySelector(".chat-textarea").focus())}render(){if(!this.model)return"";var e={model:this.model,viewUnreadMessages:e=>this.viewUnreadMessages(e)};let t=D("You have unread messages");return eE`${e.model.ui.get("scrolled")&&e.model.get("num_unread")?eE`
    ▼ ${t} ▼
    `:""}`}viewUnreadMessages(e){e?.preventDefault?.(),this.model.ui.set({scrolled:!1})}onDragOver(e){e.preventDefault()}clearMessages(e){e?.preventDefault?.(),cN(this.model)}async autocompleteInPicker(e){let{target:t,value:s}=e;await T.hi.emojis.initialize();let r=this.querySelector("converse-emoji-picker");if(r){r.state.set({ac_position:t.selectionStart,autocompleting:s,query:s});let e=this.querySelector("converse-emoji-dropdown");e?.dropdown.show()}}}T.hi.elements.define("converse-chat-bottom-panel",cB);let{CHATROOMS_TYPE:cF,INACTIVE:cq}=T._G;class cH extends eV{static get properties(){return{jid:{type:String},model:{state:!0}}}constructor(){super(),this.jid=null,this.model=null,this.viewportMediaQuery=window.matchMedia("(max-width: 768px)"),this.renderOnViewportChange=()=>this.requestUpdate()}connectedCallback(){super.connectedCallback(),this.viewportMediaQuery.addEventListener("change",this.renderOnViewportChange)}disconnectedCallback(){super.disconnectedCallback(),T.Tk.state.chatboxviews.remove(this.jid,this),this.viewportMediaQuery.removeEventListener("change",this.renderOnViewportChange)}updated(e){super.updated(e),e.has("jid")&&this.model&&this.jid!==this.model.get("jid")&&(this.stopListening(),T.Tk.state.chatboxviews.remove(this.model.get("jid"),this),this.initialize())}close(e){return e?.preventDefault?.(),this.model?.close(e)}maybeFocus(){T.hi.settings.get("auto_focus")&&this.focus()}focus(){let e=this.getElementsByClassName("chat-textarea")[0];return e&&document.activeElement!==e&&e.focus(),this}getBottomPanel(){return this.model.get("type")===cF?this.querySelector("converse-muc-bottom-panel"):this.querySelector("converse-chat-bottom-panel")}getMessageForm(){return this.model.get("type")===cF?this.querySelector("converse-muc-message-form"):this.querySelector("converse-message-form")}scrollDown(e){e?.preventDefault?.(),e?.stopPropagation?.(),this.model.ui.get("scrolled")&&this.model.ui.set({scrolled:!1}),as(this.model)}onWindowStateChanged(){document.hidden?this.model.setChatState(cq,{silent:!0}):this.model.isHidden()||this.model.clearUnreadMsgCounter()}}let{u:cG}=T.Qr.env;function cW(){document.addEventListener("mousemove",c1),document.addEventListener("mouseup",c0)}function cZ(){document.removeEventListener("mousemove",c1),document.removeEventListener("mouseup",c0)}function cV(e){for(let t of Array.from(document.getElementsByTagName("iframe")))e.addEventListener("mousedown",()=>{t.style.pointerEvents="none"},{once:!0}),e.addEventListener("mouseup",()=>{t.style.pointerEvents="initial"},{once:!0})}let cQ={};function cK(e,t=!0){if(!T.hi.settings.get("allow_dragresize"))return!0;e.preventDefault();let s=cG.ancestor(e.target,".box-flyout"),r=window.getComputedStyle(s),i=s.parentElement;i.height=parseInt(r.height.replace(/px$/,""),10),cQ.chatbox=i,cQ.direction="top",i.prev_pageY=e.pageY,t&&T.hi.trigger("startVerticalResize",i)}function cJ(e,t=!0){if(!T.hi.settings.get("allow_dragresize"))return!0;e.preventDefault();let s=cG.ancestor(e.target,".box-flyout"),r=window.getComputedStyle(s),i=s.parentElement;i.width=parseInt(r.width.replace(/px$/,""),10),cQ.chatbox=i,cQ.direction="left",i.prev_pageX=e.pageX,t&&T.hi.trigger("startHorizontalResize",i)}function cY(e){cJ(e,!1),cK(e,!1),cQ.direction="topleft",T.hi.trigger("startDiagonalResize",this)}function cX(e,t){return void 0===e?void 0:void 0===t?e:e!==t&&10>Math.abs(e-t)?t:e}function c1(e){if(!cQ.chatbox||!T.hi.settings.get("allow_dragresize"))return!0;e.preventDefault(),cQ.chatbox.resizeChatBox(e)}function c0(e){if(!cQ.chatbox||!T.hi.settings.get("allow_dragresize"))return!0;e.preventDefault();let t=cQ.chatbox.model.get("default_width"),s=cQ.chatbox.model.get("default_height"),r=cX(cQ.chatbox.height,s),i=cX(cQ.chatbox.width,t);r!==s||i!==t?cG.safeSave(cQ.chatbox.model,{height:r,width:i}):cG.safeSave(cQ.chatbox.model,{height:void 0,width:void 0}),delete cQ.chatbox,delete cQ.direction}function c2(e,t){return!(e.get("height")||e.get("width"))&&t}function c4(e){return class extends e{constructor(...e){super(e),this.model=null,T.hi.settings.listen.on("change:view_mode",()=>this.initDragResize())}updated(e){super.updated(e),e.has("model")&&this.model&&this.initDragResize()}initDragResize(){"overlayed"==T.hi.settings.get("view_mode")&&this.setupDragResize()}setupDragResize(){let e=T.u.debounce(()=>this.setDimensions(),250);window.addEventListener("resize",e),this.listenTo(this.model,"destroy",()=>window.removeEventListener("resize",e));let t=this.querySelector(".box-flyout");this.model.set(this.getDefaultDimensions());let s=window.getComputedStyle(t),r=s["min-width"],i=s["min-height"];return this.model.set("min_width",r.endsWith("px")?Number(r.replace(/px$/,"")):0),this.model.set("min_height",i.endsWith("px")?Number(i.replace(/px$/,"")):0),this.prev_pageY=0,this.prev_pageX=0,this.height=this.model.get("height"),this.width=this.model.get("width"),this}getDefaultDimensions(){let e=this.querySelector(".box-flyout");if(this.model.get("height")||this.model.get("width")){let t=e.getAttribute("style");e.removeAttribute("style");let s={default_height:e.offsetHeight,default_width:e.offsetWidth};return e.setAttribute("style",t),s}{let t=window.getComputedStyle(e);return{default_height:parseInt(t.height.replace(/px$/,""),10),default_width:parseInt(t.width.replace(/px$/,""),10)}}}setDimensions(){"overlayed"===T.hi.settings.get("view_mode")&&(this.setChatBoxWidth(this.model.get("width")),this.setChatBoxHeight(this.model.get("height")))}resizeChatBox(e){let t,s=cQ.direction;if(0===s.indexOf("top")){let s=T.hi.settings.get("dragresize_top_margin")??0,r=window.innerHeight-s;if(t=e.pageY-this.prev_pageY){let s=this.height-t;aE.debug("------------"),aE.debug(`window.innerHeight: ${window.innerHeight}`),aE.debug(`max_height: ${r}`),aE.debug(`new_height: ${s}`),aE.debug(`diff: ${t}`),this.height=this.height-t>(this.model.get("min_height")||0)?s<=r?s:r:this.model.get("min_height"),this.prev_pageY=e.pageY,this.setChatBoxHeight(this.height)}}s.includes("left")&&(t=this.prev_pageX-e.pageX)&&(this.width=this.width+t>(this.model.get("min_width")||0)?this.width+t:this.model.get("min_width"),this.prev_pageX=e.pageX,this.setChatBoxWidth(this.width))}setChatBoxHeight(e){let t=this.querySelector(".box-flyout");null!==t&&(t.style.height=e?cX(e,this.model.get("default_height"))+"px":"")}setChatBoxWidth(e){let t=e?cX(e,this.model.get("default_width"))+"px":"";this.style.width=t;let s=this.querySelector(".box-flyout");null!==s&&(s.style.width=t)}}}let{CHATROOMS_TYPE:c3}=T._G,{ACTIVE:c6}=T._G;class c8 extends c4(cH){length=200;async initialize(){let{chatboxviews:e,chatboxes:t}=T.Tk.state;e.add(this.jid,this),this.model=t.get(this.jid),this.listenTo(this.model,"change:requesting",()=>this.requestUpdate()),this.listenTo(this.model,"change:hidden",()=>!this.model.get("hidden")&&this.afterShown()),this.listenTo(this.model,"change:show_help_messages",()=>this.requestUpdate()),this.listenTo(this.model,"contact:add",()=>this.requestUpdate()),this.listenTo(this.model,"contact:change",()=>this.requestUpdate()),this.listenTo(this.model,"contact:destroy",()=>this.requestUpdate()),document.addEventListener("visibilitychange",()=>this.onWindowStateChanged()),await this.model.messages.fetched,this.model.get("hidden")||this.afterShown(),T.hi.trigger("chatBoxViewInitialized",this)}render(){return(e=>{let t=e.getHelpMessages(),s=e.model.get("show_help_messages"),r="overlayed"===T.hi.settings.get("view_mode"),i=o8(e.model);return eE`
    ${r?eE``:""} ${e.model?eE`
    ${e.model.contact?eE``:""}
    ${s?eE`
    `:""}
    `:""}
    `})(this)}getHelpMessages(){return[`/clear: ${D("Remove messages")}`,`/close: ${D("Close this chat")}`,`/me: ${D("Write in the third person")}`,`/help: ${D("Show this menu")}`]}afterShown(){this.model.setChatState(c6),this.model.clearUnreadMsgCounter(),this.maybeFocus()}}T.hi.elements.define("converse-chat",c8);var c5=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/chatview/styles/index.scss"),c9={};c9.styleTagTransform=A(),c9.setAttributes=w(),c9.insert=y().bind(null,"head"),c9.domAPI=v(),c9.insertStyleElement=S(),f()(c5.Z,c9),c5.Z&&c5.Z.locals&&c5.Z.locals;let{Strophe:c7}=T.Qr.env;T.Qr.plugins.add("converse-chatview",{dependencies:["converse-dragresize","converse-chatboxviews","converse-chat","converse-disco","converse-modal"],initialize(){T.hi.settings.extend({fetch_url_headers:!1,allowed_audio_domains:null,allowed_image_domains:null,allowed_video_domains:null,auto_focus:!0,debounced_content_rendering:!0,filter_url_query_params:null,image_urls_regex:null,message_limit:0,muc_hats:["xep317"],render_media:!0,show_message_avatar:!0,show_retraction_warning:!0,show_send_button:!0,show_toolbar:!0,time_format:"HH:mm",use_system_emojis:!0,visible_toolbar_buttons:{call:!1,clear:!0,emoji:!0,spoiler:!1}});let e={ChatBoxView:c8,ChatView:c8};Object.assign(T.Tk,e),Object.assign(T.Tk.exports,e),T.hi.listen.on("connected",()=>T.hi.disco.own.features.add(c7.NS.SPOILER)),T.hi.listen.on("chatBoxClosed",e=>{var t;return t=e.get("jid"),void(location.hash===`converse/chat?jid=${t}`&&history.pushState(null,"",window.location.pathname))})}});let{Strophe:de,u:dt}=T.Qr.env;function ds(){let e=T.Tk.state.chatboxes.add(new T.Tk.exports.ControlBox({id:"controlbox"}));return T.Tk.state.chatboxviews.get("controlbox")?.setModel(),e}function dr(e){e?.preventDefault?.();let t=T.Tk.state.chatboxes.get("controlbox")||ds();dt.safeSave(t,{closed:!1})}function di(){let e=T.Tk.state.chatboxes?.get("controlbox");e&&dt.safeSave(e,{connected:!1})}function dn(){let{chatboxviews:e}=T.Tk.state,t=e?.get("controlbox");t&&(dt.safeSave(t.model,{connected:!1}),t?.controlbox_pane&&(t.controlbox_pane.remove(),delete t.controlbox_pane))}function da(){(T.Tk.state.chatboxes.get("controlbox")||ds()).save({connected:!0})}let{Strophe:dl}=T.Qr.env,dc=Object.fromEntries([[dl.Status.ERROR,"danger"],[dl.Status.CONNECTING,"info"],[dl.Status.CONNFAIL,"danger"],[dl.Status.AUTHENTICATING,"info"],[dl.Status.AUTHFAIL,"danger"],[dl.Status.CONNECTED,"info"],[dl.Status.DISCONNECTED,"danger"],[dl.Status.DISCONNECTING,"warning"],[dl.Status.ATTACHED,"info"],[dl.Status.REDIRECT,"info"],[dl.Status.RECONNECTING,"warning"]]);T.hi.elements.define("converse-footer",class extends eV{render(){let e="fullscreen"===T.hi.settings.get("view_mode"),t=["dracula","cyberpunk"].includes(T.hi.settings.get("theme")),s=D("A big thank you to our sponsors \uD83D\uDE4F");return eE`${e?eE``:""}`}});let{ANONYMOUS:dd,EXTERNAL:du,LOGIN:dh,PREBIND:dm,CONNECTION_STATUS:dp}=T._G;function df(){let e=D("Connection URL"),t=D("HTTP or websocket URL that is used to connect to your XMPP server"),s=D("e.g. wss://example.org/xmpp-websocket");return eE`

    ${t}

    `}var dg=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/controlbox/styles/loginform.scss"),dv={};dv.styleTagTransform=A(),dv.setAttributes=w(),dv.insert=y().bind(null,"head"),dv.domAPI=v(),dv.insertStyleElement=S(),f()(dg.Z,dv),dg.Z&&dg.Z.locals&&dg.Z.locals;let{Strophe:d_}=T.Qr.env,{ANONYMOUS:dy}=T._G;class db extends eV{initialize(){let e=T.hi.settings.get();this.listenTo(e,"change:show_connection_url_input",()=>this.requestUpdate()),this.listenTo(T.Tk.state.connfeedback,"change",()=>this.requestUpdate()),this.handler=()=>this.requestUpdate()}connectedCallback(){super.connectedCallback(),T.hi.settings.listen.on("change",this.handler)}disconnectedCallback(){super.disconnectedCallback(),T.hi.settings.listen.not("change",this.handler)}render(){return(e=>{let{connfeedback:t}=T.Tk.state,s=t.get("connection_status"),r=dc?.[s]??"none",i=t.get("message");return eE`
    ${["CONNECTED","CONNECTING","AUTHENTICATING","RECONNECTING"].includes(dp[s])?eE`
    ${iI()}
    `:function(){let e=T.hi.settings.get("authentication"),t=D("Disconnected"),s=D("Click here to log in anonymously");return eE`${e==dh||e==du?function(){let e=T.hi.settings.get("authentication"),t=D("Log in"),s=D("XMPP Address"),r=T.hi.settings.get("locked_domain"),i=T.hi.settings.get("default_domain"),o=(r||i)&&D("Username")||D("user@domain"),a=T.hi.settings.get("allow_user_trust_override");return eE`
    ${r?eE`@${r}`:""}
    ${e!==du?function(){let e=D("Password");return eE`
    `}():""} ${T.hi.settings.get("show_connection_url_input")?df():""} ${a?function(e){let t=D("To improve performance, we cache your data in this browser. Uncheck this box if this is a public computer or if you want your data to be deleted when you log out. It's important that you explicitly log out, otherwise not all cached data might be deleted. Please note, when using an untrusted device, OMEMO encryption is NOT available."),s=D("This is a trusted device");return eE``}("off"!==a):""}
    `}():""} ${e==dd?eE`
    `:""} ${e==dm?eE`

    ${t}

    `:""}`}()}
    `})(this)}async onLoginFormSubmitted(e){if(e?.preventDefault(),T.hi.settings.get("authentication")===dy){let e=T.Tk.session.get("jid");return this.connect(e)}let t=e.target;(function(e){let t=e.querySelector("input[name=jid]");return!t.value||T.hi.settings.get("locked_domain")||T.hi.settings.get("default_domain")||dt.isValidJID(t.value)?(t.setCustomValidity(""),!0):(t.setCustomValidity(D("Please enter a valid XMPP address")),!1)})(t)&&(!function(e,t={}){let s=new FormData(e),r=s.get("connection-url");r?.startsWith("ws")?t.websocket_url=r:r?.startsWith("http")&&(t.bosh_service_url=r);let i=s.get("jid");if(T.hi.settings.get("locked_domain")){let e="@"+T.hi.settings.get("locked_domain");i.endsWith(e)&&(i=i.substr(0,i.length-e.length)),i=de.escapeNode(i)+e}else T.hi.settings.get("default_domain")&&!i.includes("@")&&(i=i+"@"+T.hi.settings.get("default_domain"));t.jid=i,t.password=s.get("password"),T.hi.settings.set(t),T.Tk.state.config.save({trusted:s.get("trusted")&&!0||!1})}(t),T.hi.settings.get("bosh_service_url")||T.hi.settings.get("websocket_url")||await this.discoverConnectionMethods(t),T.hi.settings.get("bosh_service_url")||T.hi.settings.get("websocket_url")?this.connect():T.hi.settings.set("show_connection_url_input",!0))}discoverConnectionMethods(e){if(!T.hi.settings.get("discover_connection_methods"))return;let t=new FormData(e).get("jid");if(t instanceof File)throw Error('Found file instead of string for "jid" field in form');let s=d_.getDomainFromJid(t);return T.hi.connection.init(t),T.hi.connection.get().discoverConnectionMethods(s)}connect(e){["converse/login","converse/register"].includes(location.hash)&&history.pushState(null,"",window.location.pathname),T.hi.connection.get()?.reset(),T.hi.user.login(e)}}T.hi.elements.define("converse-login-form",db);let{dayjs:dw}=T.Qr.env,{CONTROLBOX_TYPE:dj}=T._G;class dS extends T.Hn{defaults(){return{bookmarked:!1,box_id:"controlbox",chat_state:void 0,closed:!T.hi.settings.get("show_controlbox_by_default"),num_unread:0,time_opened:dw(0).valueOf(),type:dj,url:""}}validate(e){return e.type===dj?"embedded"===T.hi.settings.get("view_mode")&&T.hi.settings.get("singleton")?"Controlbox not relevant in embedded view mode":void 0:T.Tk.state.ChatBox.prototype.validate.call(this,e)}maybeShow(e){return e||"controlbox"!==this.get("id")?T.Tk.state.ChatBox.prototype.maybeShow.call(this,e):this}onReconnection(){this.save("connected",!0)}}class dx extends eV{async connectedCallback(){super.connectedCallback(),await T.hi.waitUntil("initialized");let{chatboxes:e}=T.Tk.state;this.model=e.get("controlbox"),this.listenTo(this.model,"change:closed",()=>this.requestUpdate()),this.requestUpdate()}render(){return eE``}}T.hi.elements.define("converse-controlbox-toggle",dx);let{Strophe:dA}=T.Qr.env,{ANONYMOUS:dE}=T._G,d$=e=>{let t=o8(e.model);return eE`
    ${"overlayed"===T.hi.settings.get("view_mode")?eE``:""} ${e.model.get("connected")?eE`
    ${T.hi.settings.get("authentication")===dE?"":eE`
    `}
    `:function(e){let t="fullscreen"===T.hi.settings.get("view_mode"),s=T.Tk.state.connfeedback.get("connection_status"),r=[dA.Status.RECONNECTING,dA.Status.CONNECTING,dA.Status.CONNECTED].includes(s),i=T.hi.settings.get("view_mode"),o=T.hi.settings.get("show_background");return eE`${o&&"fullscreen"===i?eE``:""}
    ${r?eE``:"register"===e.model.get("active-form")?eE`${t?eE``:""}${t?eE``:""}`:eE`${t?eE``:""}${t?eE``:""}`}
    `}(e)}
    `};T.hi.elements.define("converse-about-modal",class extends nT{getModalTitle(){return D("About Converse")}renderModal(){return eE`

    Converse is an open-source XMPP chat app written in JavaScript.

    Just like the XMPP protocol, Converse is built with extensibility in mind.

    Because it is open source, integrators and developers can use it to add chat functionality to their websites.

    Converse is also configurable, built with modern web technologies and extensible with plugins. It has different modes, which means it can be a full page app, an embedded chat widget, or an overlayed chat box. For a list of supported features and XMPP extensions, please see the README.

    Converse is translated into over 30 languages. You can translate it into your own language.

    Converse was created by JC Brand. You can hire me for customizations, support or to build your next project.

    If you're interested in sponsoring Converse, please visit: Github, Patreon, Liberapay or contact us.

    `}}),T.hi.elements.define("converse-controlbox-navbar",class extends eV{render(){return eE``}openAboutDialog(e){e.preventDefault(),T.hi.modal.show("converse-about-modal")}});let{LOGOUT:dk}=T._G;class dC extends c4(eV){initialize(){this.setModel();let{chatboxviews:e}=T.Tk.state;e.add("controlbox",this),this.model.get("connected")&&void 0===this.model.get("closed")&&this.model.set("closed",!T.hi.settings.get("show_controlbox_by_default")),this.viewportMediaQuery=window.matchMedia("(max-width: 768px)"),this.renderOnViewportChange=()=>this.requestUpdate(),T.hi.trigger("controlBoxInitialized",this)}connectedCallback(){super.connectedCallback(),this.viewportMediaQuery.addEventListener("change",this.renderOnViewportChange)}disconnectedCallback(){super.disconnectedCallback(),T.Tk.state.chatboxviews.remove("controlbox",this),this.viewportMediaQuery.removeEventListener("change",this.renderOnViewportChange)}setModel(){this.model=T.Tk.state.chatboxes.get("controlbox"),this.listenTo(T.Tk.state.connfeedback,"change:connection_status",()=>this.requestUpdate()),this.listenTo(this.model,"change:active-form",()=>this.requestUpdate()),this.listenTo(this.model,"change:connected",()=>this.requestUpdate()),this.requestUpdate()}render(){return"overlayed"===T.hi.settings.get("view_mode")?this.model&&!this.model.get("closed")?d$(this):"":d$(this)}close(e){e?.preventDefault?.();let t=T.hi.connection.get();if(!(e?.name==="closeAllChatBoxes"&&(t.disconnection_cause!==dk||T.hi.settings.get("show_controlbox_by_default")))&&!T.hi.settings.get("sticky_controlbox")&&"overlayed"===T.hi.settings.get("view_mode"))return T.u.safeSave(this.model,{closed:!0}),T.hi.trigger("controlBoxClosed",this),this}}T.hi.elements.define("converse-controlbox",dC);let{u:dT}=T.Qr.env,dM={controlbox:{async open(){await T.hi.waitUntil("chatBoxesFetched");let e=await T.hi.chatboxes.get("controlbox");return e||(e=await T.hi.chatboxes.create("controlbox",{},dS)),dT.safeSave(e,{closed:!1}),e},get:()=>T.Tk.state.chatboxviews.get("controlbox")}};T.hi.elements.define("converse-controlbox-navback",class extends eV{constructor(){super(),this.jid=null}static get properties(){return{jid:{type:String}}}render(){let e;return e=this.jid,eE``}});var dO=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/controlbox/styles/buttons.scss"),dN={};dN.styleTagTransform=A(),dN.setAttributes=w(),dN.insert=y().bind(null,"head"),dN.domAPI=v(),dN.insertStyleElement=S(),f()(dO.Z,dN),dO.Z&&dO.Z.locals&&dO.Z.locals,T.hi.elements.define("converse-controlbox-buttons",class extends eV{initialize(){let{chatboxes:e}=T.Tk.state;this.model=e.get("controlbox")}render(){return(e=>{let t=e.model.get("connected"),s=T.hi.settings.get("show_client_info")||T.hi.settings.get("allow_adhoc_commands");return eE``})(this)}showUserSettingsModal(e){e?.preventDefault(),T.hi.modal.show("converse-user-settings-modal",{model:T.Tk.state.xmppstatus,_converse:T.Tk},e)}closeControlBox(e){e?.preventDefault();let t=T.Tk.state.chatboxviews.get("controlbox");t?.close()}});var dI=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/controlbox/styles/_controlbox.scss"),dR={};dR.styleTagTransform=A(),dR.setAttributes=w(),dR.insert=y().bind(null,"head"),dR.domAPI=v(),dR.insertStyleElement=S(),f()(dI.Z,dR),dI.Z&&dI.Z.locals&&dI.Z.locals;let{CONTROLBOX_TYPE:dD}=T._G;T.Qr.plugins.add("converse-controlbox",{dependencies:["converse-modal","converse-chatboxes","converse-chat","converse-rosterview","converse-chatview"],enabled:e=>!e.api.settings.get("singleton"),initialize(){T.hi.settings.extend({allow_logout:!0,allow_user_trust_override:!0,default_domain:void 0,locked_domain:void 0,show_connection_url_input:!1,show_controlbox_by_default:!1,sticky_controlbox:!1}),T.hi.promises.add("controlBoxInitialized",!1),Object.assign(T.hi,dM);let e={ControlBox:dS,ControlBoxView:dC,ControlBoxToggle:dx,LoginForm:db};Object.assign(T.Tk,e),Object.assign(T.Tk.exports,e),T.hi.chatboxes.registry.add(dD,dS),T.hi.listen.on("chatBoxesFetched",da),T.hi.listen.on("clearSession",dn),T.hi.listen.on("will-reconnect",di),T.hi.waitUntil("chatBoxViewsInitialized").then(ds).catch(e=>T.cM.fatal(e))}});var dL=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/disco-views/styles/disco-browser.scss"),dz={};dz.styleTagTransform=A(),dz.setAttributes=w(),dz.insert=y().bind(null,"head"),dz.domAPI=v(),dz.insertStyleElement=S(),f()(dL.Z,dz),dL.Z&&dL.Z.locals&&dL.Z.locals,T.hi.elements.define("converse-disco-browser",class extends eV{static get properties(){return{_entity_jids:{type:Array,state:!0}}}constructor(){super(),this._entity_jids=[T.Tk.session.get("domain")]}render(){var e=this;let t=e.getDiscoInfo(),s=e._entity_jids[e._entity_jids.length-1];return eE`

    ${D("Discover Services")}

    ${tr(t.then(()=>""),eE``)} ${tr(t.then(({error:e})=>e?eE``:""),"")}
    ${tr(t.then(({identities:e})=>e?.length?eE`
    ${D("Identities")}
      ${e.map(e=>eE`
      • ${e.get("name")?eE`
      • ${D("Name")}: ${e.get("name")}
      • `:""} ${e.get("type")?eE`
      • ${D("Type")}: ${e.get("type")}
      • `:""} ${e.get("category")?eE`
      • ${D("Category")}: ${e.get("category")}
      • `:""}
    • `)}
    `:""),"")} ${tr(t.then(({items:t})=>t?.length?eE`
    ${D("Items")}
    `:""),"")} ${tr(t.then(({features:e})=>e?.length?eE`
    ${D("Features")}
      ${e.map(e=>eE`
    • ${e}
    • `)}
    `:""),"")}
    `}handleBreadcrumbClick(e,t){e.preventDefault(),this._entity_jids=[...this._entity_jids.slice(0,t+1)]}queryEntity(e){e.preventDefault();let t=new FormData(e.target);this._entity_jids=[t.get("entity_jid").trim()]}renderItem(e){return eE`${e.get("name")?`${e.get("name")} <${e.get("jid")}>`:`${e.get("jid")}`}`}addEntityJID(e,t){e.preventDefault(),this._entity_jids=[...this._entity_jids,t.get("jid")]}async getDiscoInfo(){let e=this._entity_jids[this._entity_jids.length-1],t=await T.hi.disco.entities.get(e,!0);await t.waitUntilItemsFetched;let s=t.get("error");if(s)if(["item-not-found","remote-server-not-found"].includes(s))return{error:D("No service found with that XMPP address")};else return{error:D("Error: %1$s",s)};let r=t.features?.map(e=>e.get("var"))||[];return{features:r.toSorted?.()||r,identities:t.identities||[],items:await T.hi.disco.entities.items(e)}}}),T.Qr.plugins.add("converse-disco-views",{dependencies:["converse-disco"],enabled:()=>!0,initialize(){}}),T.hi.elements.define("converse-headlines-heading",class extends eV{constructor(){super(),this.jid=null}static get properties(){return{jid:{type:String}}}async initialize(){this.model=T.Tk.state.chatboxes.get(this.jid),await this.model.initialized,this.requestUpdate()}render(){let e;return e={...this.model.toJSON(),...{display_name:this.model.getDisplayName(),heading_buttons_promise:this.getHeadingButtons()}},eE`
    ${!T.Tk.api.settings.get("singleton")?eE``:""}
    ${e.display_name}
    ${tr(at(e.heading_buttons_promise),"")} ${tr(ae(e.heading_buttons_promise),"")}
    ${e.status?eE`

    ${e.status}

    `:""}`}getHeadingButtons(){let e=[];return T.hi.settings.get("singleton")||e.push({a_class:"close-chatbox-button",handler:e=>this.close(e),i18n_text:D("Close"),i18n_title:D("Close these announcements"),icon_class:"fa-times",name:"close",standalone:"overlayed"===T.hi.settings.get("view_mode")}),T.Tk.api.hook("getHeadingButtons",this,e)}close(e){e.preventDefault(),this.model.close()}});class dP extends c4(cH){async initialize(){let{chatboxviews:e,chatboxes:t}=T.Tk.state;e.add(this.jid,this),this.model=t.get(this.jid),this.listenTo(this.model,"change:hidden",()=>this.afterShown()),this.listenTo(this.model,"destroy",this.remove),this.listenTo(this.model.messages,"add",()=>this.requestUpdate()),this.listenTo(this.model.messages,"remove",()=>this.requestUpdate()),this.listenTo(this.model.messages,"reset",()=>this.requestUpdate()),document.addEventListener("visibilitychange",()=>this.onWindowStateChanged()),await this.model.messages.fetched,this.model.maybeShow(),T.hi.trigger("headlinesBoxViewInitialized",this)}render(){let e=o8(this.model);return eE`
    ${this.model?eE`
    `:""}
    `}async close(e){return e?.preventDefault?.(),location.hash==="converse/chat?jid="+this.model.get("jid")&&history.pushState(null,"",window.location.pathname),await this.model.close(e),this}getNotifications(){return[]}afterShown(){this.model.clearUnreadMsgCounter()}}T.hi.elements.define("converse-headlines",dP);let{HEADLINES_TYPE:dU}=T._G,{HEADLINES_TYPE:dB}=T._G;class dF extends eV{initialize(){this.model=T.Tk.state.chatboxes,this.listenTo(this.model,"add",e=>this.renderIfHeadline(e)),this.listenTo(this.model,"remove",e=>this.renderIfHeadline(e)),this.listenTo(this.model,"destroy",e=>this.renderIfHeadline(e)),this.requestUpdate()}render(){var e=this;let t=e.model.filter(e=>e.get("type")===dU),s=D("Announcements");return eE`
    ${s}
    ${t.map(t=>(function(e,t){let s=D("Click to open this server message");return eE``})(e,t))}
    `}renderIfHeadline(e){return e?.get("type")===dB&&this.requestUpdate()}async openHeadline(e){e.preventDefault();let t=e.target.getAttribute("data-headline-jid");(await T.hi.headlines.get(t)).maybeShow(!0)}}T.hi.elements.define("converse-headlines-feeds-list",dF);var dq=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/headlines-view/styles/headlines.scss"),dH={};dH.styleTagTransform=A(),dH.setAttributes=w(),dH.insert=y().bind(null,"head"),dH.domAPI=v(),dH.insertStyleElement=S(),f()(dq.Z,dH),dq.Z&&dq.Z.locals&&dq.Z.locals;var dG=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/headlines-view/styles/headlines-head.scss"),dW={};dW.styleTagTransform=A(),dW.setAttributes=w(),dW.insert=y().bind(null,"head"),dW.domAPI=v(),dW.insertStyleElement=S(),f()(dG.Z,dW),dG.Z&&dG.Z.locals&&dG.Z.locals,T.Qr.plugins.add("converse-headlines-view",{dependencies:["converse-headlines","converse-dragresize","converse-chatview"],initialize(){let e={HeadlinesFeedView:dP,HeadlinesFeedsList:dF,HeadlinesPanel:dF};Object.assign(T.Tk,e),Object.assign(T.Tk.exports,e)}});var dZ=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/mam-views/styles/placeholder.scss"),dV={};dV.styleTagTransform=A(),dV.setAttributes=w(),dV.insert=y().bind(null,"head"),dV.domAPI=v(),dV.insertStyleElement=S(),f()(dZ.Z,dV),dZ.Z&&dZ.Z.locals&&dZ.Z.locals,T.hi.elements.define("converse-mam-placeholder",class extends iM{static get properties(){return{...super.properties,model:{type:Object}}}constructor(){super(),this.model=null,this.observable="once",this.intersectionRatio=.1}render(){let e;return e=this,e.model.get("fetching")?iI({classes:"hor_centered"}):eE`
    `}fetchMissingMessages(e){e?.preventDefault?.(),this.model.fetchMissingMessages()}onVisibilityChanged(e){T.hi.settings.get("auto_fill_history_gaps")&&this.isVisible&&!this.model.get("fetching")&&this.fetchMissingMessages()}});let{CHATROOMS_TYPE:dQ}=T._G;function dK(e,t){return e instanceof T.cX?eE``:t}T.Qr.plugins.add("converse-mam-views",{dependencies:["converse-mam","converse-chatview","converse-muc-views"],initialize(){T.hi.settings.extend({auto_fill_history_gaps:!0}),T.hi.listen.on("getMessageTemplate",dK)}});class dJ extends T.Hn{defaults(){return{collapsed:!1}}}let{ACTIVE:dY}=T._G;function dX(e){e.on("change:hidden",()=>(function(e){e.get("hidden")?T.hi.trigger("chatBoxMinimized",e):(e.isScrolledUp()||e.clearUnreadMsgCounter(),e.setChatState(dY),T.hi.trigger("chatBoxMaximized",e))})(e)),"controlbox"!==e.get("id")&&e.save({hidden:!!e.get("hidden"),time_minimized:e.get("time_minimized")})}function d1(e){if("controlbox"===e.model.get("id"))if(T.u.isVisible(e))return T.u.getOuterWidth(e,!0);else{let e=document.querySelector("converse-controlbox-toggle");return e?T.u.getOuterWidth(e,!0):0}return!e.model.get("hidden")&&T.u.isVisible(e)?T.u.getOuterWidth(e,!0):0}function d0(e){if(T.hi.settings.get("no_trimming")||"overlayed"!==T.hi.settings.get("view_mode"))return;let t=T.Tk.state.chatboxviews.filter(e=>!e.model.get("hidden")&&!e.model.get("closed")&&T.u.isVisible(e));if(t.length<=1)return;let s=T.u.getOuterWidth(document.querySelector("body"),!0);if(d1(t[0])!==s&&document.querySelector("converse-minimized-chats"))for(;function(){let e=document.querySelector("converse-minimized-chats");return T.Tk.state.chatboxes.pluck("hidden").includes(!0)?T.u.getOuterWidth(e,!0):0}()+function(e){let t=e?e.model.get("id"):null,s=e?T.u.getOuterWidth(e,!0):0;return Object.values(T.Tk.state.chatboxviews.xget(t)).reduce((e,t)=>e+d1(t),s)}(e)>s;){let t=function(e){e.push("controlbox");let t=0,s=T.Tk.state.chatboxes.sort().at(t);for(;e.includes(s.get("id"))||!0===s.get("hidden");)if(t++,!(s=T.Tk.state.chatboxes.at(t)))return null;return s}([e?e.model.get("id"):null]);if(t){let e=T.Tk.state.chatboxes.get(t.get("id"));e?.save("hidden",!0),d4(t)}else break}}function d2(e,t){e?.preventDefault?e.preventDefault():t=e,T.u.safeSave(t,{hidden:!1,time_opened:new Date().getTime()})}function d4(e,t){e?.preventDefault?e.preventDefault():t=e,T.u.safeSave(t,{hidden:!0,time_minimized:new Date().toISOString()})}T.hi.elements.define("converse-minimized-chats",class extends eV{async initialize(){this.model=T.Tk.state.chatboxes,await this.initToggle(),this.listenTo(this.minchats,"change:collapsed",()=>this.requestUpdate()),this.listenTo(this.model,"add",()=>this.requestUpdate()),this.listenTo(this.model,"change:fullname",()=>this.requestUpdate()),this.listenTo(this.model,"change:jid",()=>this.requestUpdate()),this.listenTo(this.model,"change:hidden",()=>this.requestUpdate()),this.listenTo(this.model,"change:name",()=>this.requestUpdate()),this.listenTo(this.model,"change:num_unread",()=>this.requestUpdate()),this.listenTo(this.model,"remove",()=>this.requestUpdate()),this.listenTo(T.Tk,"connected",()=>this.requestUpdate()),this.listenTo(T.Tk,"reconnected",()=>this.requestUpdate()),this.listenTo(T.Tk,"disconnected",()=>this.requestUpdate())}render(){return(e=>{let t=e.model.where({hidden:!0}),s=t.reduce((e,t)=>e+t.get("num_unread"),0),r=t.reduce((e,t)=>e+ +!!t.get("hidden"),0),i=e.minchats.get("collapsed");return eE`
    ${t.map(e=>eE``)}
    `})(this)}async initToggle(){let e=T.Tk.session.get("bare_jid"),t=`converse.minchatstoggle-${e}`;this.minchats=new dJ({id:t}),T.u.initStorage(this.minchats,t,"session"),await new Promise(e=>this.minchats.fetch({success:e,error:e}))}toggle(e){e?.preventDefault(),this.minchats.save({collapsed:!this.minchats.get("collapsed")})}}),T.hi.elements.define("converse-minimized-chat",class extends eV{static get properties(){return{model:{type:Object},title:{type:String},type:{type:String},num_unread:{type:Number}}}constructor(){super(),this.model=null,this.num_unread=null,this.type=null,this.title=null}render(){let e;var t=this;let s=D("Click to restore this chat");return e="chatroom"===t.type?"var(--muc-color)":"headline"===t.type?"var(--headlines-color)":"var(--chat-color)",eE``}close(e){e?.preventDefault(),this.model.close()}restore(e){e?.preventDefault(),d2(this.model)}});var d3=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/minimize/styles/minimize.scss"),d6={};d6.styleTagTransform=A(),d6.setAttributes=w(),d6.insert=y().bind(null,"head"),d6.domAPI=v(),d6.insertStyleElement=S(),f()(d3.Z,d6),d3.Z&&d3.Z.locals&&d3.Z.locals;let{CHATROOMS_TYPE:d8}=T._G;T.Qr.plugins.add("converse-minimize",{dependencies:["converse-chatview","converse-controlbox","converse-muc-views","converse-headlines-view","converse-dragresize"],enabled:e=>"overlayed"===e.api.settings.get("view_mode"),initialize(){T.hi.settings.extend({no_trimming:!1}),T.hi.promises.add("minimizedChatsInitialized");let e={MinimizedChatsToggle:dJ};Object.assign(T.Tk,e),Object.assign(T.Tk.exports,e),Object.assign(T.Tk,{minimize:{trimChats:d0,minimize:d4,maximize:d2}}),Object.assign(T.Tk.exports,{minimize:{trimChats:d0,minimize:d4,maximize:d2}}),Object.assign(T.u,{trimChats:d0,minimize:d4,maximize:d2}),T.hi.listen.on("chatBoxViewInitialized",e=>d0(e)),T.hi.listen.on("chatRoomViewInitialized",e=>d0(e)),T.hi.listen.on("controlBoxInitialized",e=>d0(e)),T.hi.listen.on("chatBoxInitialized",dX),T.hi.listen.on("chatRoomInitialized",dX),T.hi.listen.on("getHeadingButtons",(e,t)=>{if(e.model.get("type")===d8){let s={a_class:"toggle-chatbox-button",handler:t=>d4(t,e.model),i18n_text:D("Minimize"),i18n_title:D("Minimize this groupchat"),icon_class:"fa-minus",name:"minimize",standalone:"overlayed"===T.Tk.api.settings.get("view_mode")},r=t.map(e=>e.name).indexOf("signout");return r>-1?[...t.slice(0,r),s,...t.slice(r)]:[s,...t]}let s={a_class:"toggle-chatbox-button",handler:t=>d4(t,e.model),i18n_text:D("Minimize"),i18n_title:D("Minimize this chat"),icon_class:"fa-minus",name:"minimize",standalone:"overlayed"===T.Tk.api.settings.get("view_mode")},r=t.map(e=>e.name).indexOf("close");return r>-1?[...t.slice(0,r),s,...t.slice(r)]:[s,...t]});let t=iA(()=>d0(),250);T.hi.listen.on("registeredGlobalEventHandlers",()=>window.addEventListener("resize",t)),T.hi.listen.on("unregisteredGlobalEventHandlers",()=>window.removeEventListener("resize",t))}});var d5=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/affiliation-form.scss"),d9={};d9.styleTagTransform=A(),d9.setAttributes=w(),d9.insert=y().bind(null,"head"),d9.domAPI=v(),d9.insertStyleElement=S(),f()(d5.Z,d9),d5.Z&&d5.Z.locals&&d5.Z.locals;let{Strophe:d7,sizzle:ue}=T.Qr.env;T.hi.elements.define("converse-muc-affiliation-form",class extends eV{static get properties(){return{muc:{type:Object},jid:{type:String},affiliation:{type:String},alert_message:{type:String,attribute:!1},alert_type:{type:String,attribute:!1}}}constructor(){super(),this.jid=null,this.muc=null,this.affiliation=null}render(){return(e=>{let t=D("Change affiliation"),s=D("New affiliation"),r=D("Reason"),i=e.muc.getOwnOccupant().getAssignableAffiliations();return eE`
    ${e.alert_message?eE``:""}
    `})(this)}alert(e,t){this.alert_message=e,this.alert_type=t}async assignAffiliation(e){e.stopPropagation(),e.preventDefault(),this.alert();let t=new FormData(e.target),s=t.get("affiliation"),r={jid:this.jid,reason:t.get("reason")},i=this.muc.get("jid");try{await T.u.muc.setAffiliation(s,i,[r])}catch(e){null===e?this.alert(D("Timeout error while trying to set the affiliation"),"danger"):ue(`not-allowed[xmlns="${d7.NS.STANZAS}"]`,e).length?this.alert(D("Sorry, you're not allowed to make that change"),"danger"):this.alert(D("Sorry, something went wrong while trying to set the affiliation"),"danger"),T.cM.error(e);return}await this.muc.occupants.fetchMembers();let o=new CustomEvent("affiliationChanged",{bubbles:!0});this.dispatchEvent(o)}});var ut=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/role-form.scss"),us={};us.styleTagTransform=A(),us.setAttributes=w(),us.insert=y().bind(null,"head"),us.domAPI=v(),us.insertStyleElement=S(),f()(ut.Z,us),ut.Z&&ut.Z.locals&&ut.Z.locals;let{Strophe:ur,sizzle:ui}=T.Qr.env;T.hi.elements.define("converse-muc-role-form",class extends eV{static get properties(){return{muc:{type:Object},jid:{type:String},role:{type:String},alert_message:{type:String,attribute:!1},alert_type:{type:String,attribute:!1}}}constructor(){super(),this.muc=null,this.nick=null,this.jid=null}render(){return(e=>{let t=D("Change role"),s=D("New Role"),r=D("Reason"),i=e.muc.getOwnOccupant().getAssignableRoles();return eE`
    `})(this)}alert(e,t){this.alert_message=e,this.alert_type=t}assignRole(e){e.stopPropagation(),e.preventDefault(),this.alert();let t=new FormData(e.target),s=this.muc.getOccupant(t.get("jid")||t.get("nick")),r=t.get("role"),i=t.get("reason");this.muc.setRole(s,r,i,()=>{let e=new CustomEvent("roleChanged",{bubbles:!0});this.dispatchEvent(e)},e=>{ui(`not-allowed[xmlns="${ur.NS.STANZAS}"]`,e).length?this.alert(D("You're not allowed to make that change"),"danger"):(this.alert(D("Sorry, something went wrong while trying to set the role"),"danger"),T.u.isErrorObject(e)&&T.cM.error(e))})}}),T.hi.elements.define("converse-muc-message-form",class extends cz{async initialize(){super.initialize(),await this.model.initialized,this.initMentionAutoComplete()}render(){return(e=>{let t=e.model.get("composing_spoiler"),s=t?D("Hidden message"):D("Message"),r=D("Optional hint"),i=T.hi.settings.get("message_limit"),o=T.hi.settings.get("visible_toolbar_buttons").call,a=T.hi.settings.get("visible_toolbar_buttons").emoji,l=T.hi.settings.get("show_send_button"),c=T.hi.settings.get("visible_toolbar_buttons").spoiler,d=T.hi.settings.get("show_toolbar");return eE`
    ${d?eE``:""}
    `})(this)}shouldAutoComplete(){let e=this.model instanceof T.GB?this.model.collection.chatroom:this.model;return e?e.session.get("connection_status")===T.Qr.ROOMSTATUS.ENTERED&&!(e.features.get("moderated")&&"visitor"===e.getOwnRole()):(T.cM.debug("Could not determine MUC for MUCMessageForm element"),!1)}initMentionAutoComplete(){this.auto_complete=new ou(this,{auto_first:!0,min_chars:T.hi.settings.get("muc_mention_autocomplete_min_chars"),match_current_word:!0,list:()=>this.getAutoCompleteList(),filter:"contains"==T.hi.settings.get("muc_mention_autocomplete_filter")?oo:oa,ac_triggers:["Tab","@"],include_triggers:[],item:(e,t)=>(function(e,t,s){let r;s=s.trim();let i=T.hi.settings.get("muc_mention_autocomplete_show_avatar");if(i){let s=t.label.toLowerCase();r=e.occupants.findWhere(e=>{if(e.getDisplayName()?.toLowerCase()?.startsWith(s)||e.get("nickname")?.toLowerCase()?.startsWith(s)||e.get("jid")?.toLowerCase()?.startsWith(s))return e})}let o=RegExp("("+s+")","ig"),a=s?t.split(o):[t];return eE`
  • ${i?eE``:""} ${a.map(e=>s&&e.match(o)?eE`${e}`:e)}
  • `})(this.model,e,t)}),this.auto_complete.on("suggestion-box-selectcomplete",()=>this.auto_completing=!1)}getAutoCompleteList(){return this.model.getAllKnownNicknames().map(e=>({label:e,value:`@${e}`}))}onKeyDown(e){this.shouldAutoComplete()&&this.auto_complete.onKeyDown(e)||super.onKeyDown(e)}onKeyUp(e){this.shouldAutoComplete()&&this.auto_complete.auto_completing&&this.auto_complete.evaluate(e),super.onKeyUp(e)}});var un=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/nickname-form.scss"),uo={};uo.styleTagTransform=A(),uo.setAttributes=w(),uo.insert=y().bind(null,"head"),uo.domAPI=v(),uo.insertStyleElement=S(),f()(un.Z,uo),un.Z&&un.Z.locals&&un.Z.locals,T.hi.elements.define("converse-muc-nickname-form",class extends eV{constructor(){super(),this.jid=null,this.model=null}static get properties(){return{jid:{type:String}}}shouldUpdate(e){if(e.has("jid")&&this.jid){let{chatboxes:e}=T.Tk.state;this.model=e.get(this.jid)}return!0}render(){return(e=>{let t=D("Nickname"),s=e.model?.isEntered()?D("Change nickname"):D("Enter groupchat"),r=T.hi.settings.get("muc_show_logs_before_join")?D("Choose a nickname to enter"):D("Please choose your nickname"),i=e.model?.get("nickname_validation_message");return eE`

    ${i}

    `})(this)}submitNickname(e){e.preventDefault();let t=e.target.nick.value.trim();t&&(this.model.isEntered()?(this.model.setNickname(t),this.closeModal()):this.model.join(t))}closeModal(){document.querySelector("converse-muc-nickname-modal").close()}});var ua=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/muc-bottom-panel.scss"),ul={};ul.styleTagTransform=A(),ul.setAttributes=w(),ul.insert=y().bind(null,"head"),ul.domAPI=v(),ul.insertStyleElement=S(),f()(ua.Z,ul),ua.Z&&ua.Z.locals&&ua.Z.locals,T.hi.elements.define("converse-muc-bottom-panel",class extends cB{async initialize(){await super.initialize(),this.listenTo(this.model,"change:hidden_occupants",()=>this.requestUpdate()),this.listenTo(this.model,"change:num_unread_general",()=>this.requestUpdate()),this.listenTo(this.model.features,"change:moderated",()=>this.requestUpdate()),this.listenTo(this.model.occupants,"add",this.renderIfOwnOccupant),this.listenTo(this.model.occupants,"change:role",this.renderIfOwnOccupant),this.listenTo(this.model.session,"change:connection_status",()=>this.requestUpdate())}render(){return this.model?(e=>{let t=D("You have unread messages"),s=e.model.session.get("connection_status"),r=D("You're not allowed to send messages in this room");return s===T.Qr.ROOMSTATUS.ENTERED?eE`${e.model.ui.get("scrolled")&&e.model.get("num_unread_general")?eE`
    ▼ ${t} ▼
    `:""} ${e.model.canPostMessages()?eE``:eE`${r}`}`:s!=T.Qr.ROOMSTATUS.NICKNAME_REQUIRED?"":T.hi.settings.get("muc_show_logs_before_join")?eE``:void 0})(this):""}renderIfOwnOccupant(e){let t=T.Tk.session.get("bare_jid");e.get("jid")===t&&this.requestUpdate()}sendButtonClicked(e){if(e.delegateTarget?.dataset.action==="sendMessage"){let t=this.querySelector("converse-muc-message-form");t?.onFormSubmitted(e)}}});let uc=T.Qr.env.utils;function ud(e){o||function(){let e;(o={}).owner={label:D("Owner"),classname:"badge-groupchat"},o.admin={label:D("Admin"),classname:"badge-info"},o.member={label:D("Member"),classname:"badge-info"},o.moderator={label:D("Moderator"),classname:"badge-info"},o.visitor={label:D("Visitor"),classname:"badge-secondary"};for(let t=1;t<5&&(!e||Object.values(e).find(e=>e>1));t++){let s={};for(let r of Object.values(o))(!e||(e[r.shortlabel]??0)>=2)&&(r.shortlabel=r.label.substr(0,t).toLocaleUpperCase(),s[r.shortlabel]??=0,s[r.shortlabel]++);e=s}}();let t=o[e];return t?eE`${t.shortlabel}`:""}async function uu(e){let t=await T.hi.hook("getOccupantActionButtons",e,[]);if(!t?.length)return"";let s=t.map(e=>eE``);return eE``}T.hi.elements.define("converse-muc-invite-modal",class extends nT{constructor(e){super(e),this.id="converse-muc-invite-modal",this.muc=e.muc}renderModal(){return(e=>{let t=D("Invite"),s=D("user@example.org"),r=D("Please enter a valid XMPP address"),i=D("XMPP Address"),o=D("Optional reason for the invitation");return eE`
    ${e.state.get("invalid_invite_jid")?eE`
    ${r}
    `:""}
    `})(this)}getModalTitle(){return D("Invite someone to this groupchat")}getAutoCompleteList(){return T.Tk.state.roster.map(e=>({label:e.getDisplayName(),value:e.get("jid")}))}submitInviteForm(e){e.preventDefault();let t=new FormData(e.target),s=t.get("invitee_jids")?.trim(),r=t.get("reason");uc.isValidJID(s)?(this.muc.directInvite(s,r),this.modal.hide()):this.state.set({invalid_invite_jid:!0})}});var uh=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/occupant-bottom-panel.scss"),um={};um.styleTagTransform=A(),um.setAttributes=w(),um.insert=y().bind(null,"head"),um.domAPI=v(),um.insertStyleElement=S(),f()(uh.Z,um),uh.Z&&uh.Z.locals&&uh.Z.locals,T.hi.elements.define("converse-occupant-bottom-panel",class extends cB{static get properties(){return{model:{type:Object,noAccessor:!0},muc:{type:Object}}}constructor(){super(),this.muc=null}async initialize(){await super.initialize(),this.listenTo(this.muc.session,"change:connection_status",()=>this.requestUpdate())}render(){return this.model?(e=>{let t=D("You have unread messages"),s=e.muc.session.get("connection_status"),r=D("This user is not currently in this groupchat and can't receive messages."),i=D("Invite this user to join this groupchat"),o=D("Open a one-on-one chat with this user"),a=D("Open Chat"),l=D("Invite");return s===T.Qr.ROOMSTATUS.ENTERED?eE`${e.muc.ui.get("scrolled")&&e.model.get("num_unread")?eE`
    ▼ ${t} ▼
    `:""} ${e.canPostMessages()?eE``:eE`

    ${r}

    ${e.model.get("jid")?eE` `:""}
    `}`:""})(this):""}canPostMessages(){return this.muc.isEntered()&&"offline"!==this.model.get("show")}openChat(){let e=this.model.get("jid");return e?T.hi.chats.open(e,{},!0):T.hi.alert("error",D("Error"),"Could not find XMPP address")}invite(){let e=this.model.get("jid");return T.hi.listen.once("roomInviteSent",()=>T.hi.alert("info",D("Success"),D("The user has been invited to join this groupchat"))),e?this.muc.directInvite(e):T.hi.alert("error",D("Error"),"Could not find XMPP address")}}),T.hi.elements.define("converse-muc-occupant-list-item",class extends iM{constructor(){super(),this.muc=null,this.observable="once"}static get properties(){return{...super.properties,model:{type:T.Hn},muc:{type:T.XB}}}async initialize(){super.initialize(),await this.muc.initialized,this.listenTo(this.model,"change",()=>this.requestUpdate()),this.listenTo(this.model,"vcard:add",()=>this.requestUpdate()),this.listenTo(this.model,"vcard:change",()=>this.requestUpdate()),this.requestUpdate()}render(){return this.muc?(e=>{let t,s,r=e.model,{show:i,presence:o,affiliation:a}=e.model.attributes,l=iB[i||o],c=r.get("role");"chat"!==i&&(i||"online"!==o)?"dnd"===i?[t,s]=["fa fa-minus-circle","chat-status-busy"]:"away"===i||"xa"===i?[t,s]=["fa fa-circle","chat-status-away"]:[t,s]=["fa fa-circle","chat-status-offline"]:[t,s]=["fa fa-circle","chat-status-online"];let d=o5(r);return eE`
  • ${d?eE`${d}`:""}
    ${r.getDisplayName()} ${"owner"===a?ud("owner"):""} ${"admin"===a?ud("admin"):""} ${"member"===a?ud("member"):""} ${"moderator"===c?ud("moderator"):""} ${"visitor"===c?ud("visitor"):""} ${tr(uu(r))}
  • `})(this):""}onOccupantClicked(e,t){e.preventDefault(),this.muc.getOwnOccupant()===t?T.hi.modal.show("converse-profile-modal",{model:T.Tk.state.xmppstatus},e):this.muc.save({sidebar_view:`occupant:${t.id}`})}});let up=e=>{let t=D("Filter"),s=D("Filter by name"),r=D("Filter by status"),i=D("Any"),o=D("Online"),a=D("Chatty"),l=D("Busy"),c=D("Away"),d=D("Extended Away"),u=D("Offline"),h=e.model.get("state"),m=e.model.get("text"),p=e.model.get("type"),f="overlayed"===T.hi.settings.get("view_mode");return eE`
    `};var uf=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/muc-occupant.scss"),ug={};ug.styleTagTransform=A(),ug.setAttributes=w(),ug.insert=y().bind(null,"head"),ug.domAPI=v(),ug.insertStyleElement=S(),f()(uf.Z,ug),uf.Z&&uf.Z.locals&&uf.Z.locals;let{u:uv}=T.Qr.env;T.hi.elements.define("converse-muc-occupant",class extends eV{constructor(){super(),this.muc_jid=null,this.occupant_id=null}static get properties(){return{muc_jid:{type:String},occupant_id:{type:String}}}async initialize(){super.initialize();let{chatboxes:e}=T.Tk.state;this.muc=e.get(this.muc_jid),await this.muc.initialized,this.model=this.muc.occupants.get(this.occupant_id),this.requestUpdate()}render(){return this.muc?(e=>{let t=D("Hide"),s=D("No participant data found"),r=D("Participants"),i=D("Show details"),o=e.model?.get("jid"),a=e.model?.get("nick"),l=T.u.firstCharToUpperCase(e.model?.get("role")),c=T.u.firstCharToUpperCase(e.model?.get("affiliation")),d=e.model?.get("hats")?.length?e.model.get("hats").map(({title:e})=>e):[];return eE`${e.model?eE`
    `:""}
      ${e.model?eE`${a?eE`
    • ${a}
    • `:""}
    • ${o?eE`${o}`:""}
    • ${c&&"None"!==c?eE`${c}`:""} ${l?eE`${l}`:""} ${d.length?eE`${d.map(e=>eE`${e}`)}`:""}
    • `:eE`
    • ${s}
    • `}
    ${e.model?eE`
    `:""}
    `})(this):""}openChat(e){T.hi.chats.open(e,{},!0)}closeSidebar(){uv.safeSave(this.muc,{hidden_occupants:!0})}showOccupantModal(e){e?.preventDefault?.(),T.hi.modal.show("converse-muc-occupant-modal",{model:this.model},e)}getVcard(){let e=this.model;if(e.vcard)return e.vcard;let t=e?.get("jid")||e?.get("from");return t?T.Tk.state.vcards.get(t):null}addToContacts(){let e=this.model.get("jid");e&&T.hi.modal.show("converse-add-contact-modal",{state:new T.Hn({jid:e})})}toggleForm(e){"row-form"===uv.ancestor(e.target,".toggle-form").getAttribute("data-form")?this.show_role_form=!this.show_role_form:this.show_affiliation_form=!this.show_affiliation_form,this.requestUpdate()}});var u_=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/styles/status.scss"),uy={};uy.styleTagTransform=A(),uy.setAttributes=w(),uy.insert=y().bind(null,"head"),uy.domAPI=v(),uy.insertStyleElement=S(),f()(u_.Z,uy),u_.Z&&u_.Z.locals&&u_.Z.locals;var ub=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/muc-occupants.scss"),uw={};uw.styleTagTransform=A(),uw.setAttributes=w(),uw.insert=y().bind(null,"head"),uw.domAPI=v(),uw.insertStyleElement=S(),f()(ub.Z,uw),ub.Z&&ub.Z.locals&&ub.Z.locals;let{initStorage:uj}=T.u;T.hi.elements.define("converse-muc-occupants",class extends eV{constructor(){super(),this.jid=null}static get properties(){return{jid:{type:String}}}initialize(){let e=`_converse.occupants-filter-${this.jid}`;this.filter=new T.ax,this.filter.id=e,uj(this.filter,e),this.filter.fetch();let{chatboxes:t}=T.Tk.state;this.model=t.get(this.jid);let s=iA(()=>this.requestUpdate(),200,{maxWait:1e3});this.listenTo(this.model,"change",()=>this.requestUpdate()),this.listenTo(this.model.occupants,"add",s),this.listenTo(this.model.occupants,"change",s),this.listenTo(this.model.occupants,"remove",s),this.listenTo(this.model.occupants,"sort",s),this.listenTo(this.model.features,"change:open",()=>this.requestUpdate()),this.model.initialized.then(()=>this.requestUpdate())}render(){return(e=>{let t=1===e.model.occupants?D("Participant"):D("Participants"),s=D("Hide"),r=D("Show filter"),i=D("Hide filter"),o=e.model.get("filter_visible"),a=D("Invite someone"),l=D("Invite someone to join this groupchat"),c=[];return e.model.invitesAllowed()&&c.push(eE`${a}`),e.model.occupants.length>5&&c.push(eE`${o?i:r}`),c.length?c.push(eE`${s}`):c.push(eE``),eE`
    ${e.model.occupants.length} ${t} ${1===c.length?c[0]:eE``}
      ${o?eE``:""} ${oX(e.model.occupants.models,e=>e.get("jid"),t=>!function(e,t){if(!e.model.get("filter_visible"))return!1;let s=e.filter.get("type"),r="state"===s?e.filter.get("state").toLowerCase():e.filter.get("text").toLowerCase();if(!r)return!1;if("state"===s){let e=t.get("presence");return"online"===r?["offline","unavailable"].includes(e):"ofline"===r?"online"===e:!t.get("show")?.includes(r)}if("items"===s)return!t.getDisplayName().toLowerCase().includes(r)}(e,t)?eE``:"")}
    `})(this)}showInviteModal(e){e.preventDefault(),T.hi.modal.show("converse-muc-invite-modal",{muc:this.model},e)}toggleFilter(e){e?.preventDefault?.(),T.u.safeSave(this.model,{filter_visible:!this.model.get("filter_visible")})}closeSidebar(e){e?.preventDefault?.(),T.u.safeSave(this.model,{hidden_occupants:!0})}});var uS=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/muc-sidebar.scss"),ux={};ux.styleTagTransform=A(),ux.setAttributes=w(),ux.insert=y().bind(null,"head"),ux.domAPI=v(),ux.insertStyleElement=S(),f()(uS.Z,ux),uS.Z&&uS.Z.locals&&uS.Z.locals,T.hi.elements.define("converse-muc-sidebar",class extends eV{constructor(){super(),this.jid=null}static get properties(){return{jid:{type:String}}}initialize(){let{chatboxes:e}=T.Tk.state;this.model=e.get(this.jid),this.listenTo(this.model,"change",()=>this.requestUpdate()),this.listenTo(this.model.features,"change:open",()=>this.requestUpdate()),this.model.initialized.then(()=>this.requestUpdate())}render(){let e=this.model.get("sidebar_view")||"",t=e.split("occupant:").pop();return eE`${e?.startsWith("occupant:")?eE``:eE``}`}closeSidebar(e){e?.preventDefault?.(),T.u.safeSave(this.model,{hidden_occupants:!0})}});var uA=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/muc-chat-content.scss"),uE={};uE.styleTagTransform=A(),uE.setAttributes=w(),uE.insert=y().bind(null,"head"),uE.domAPI=v(),uE.insertStyleElement=S(),f()(uA.Z,uE),uA.Z&&uA.Z.locals&&uA.Z.locals,T.hi.elements.define("converse-muc-chat-content",class extends l${async initialize(){await super.initialize(),this.listenTo(this.model,"change:hidden_occupants",()=>this.requestUpdate()),this.listenTo(this.model.occupants,"change",()=>this.requestUpdate())}});let{CHATROOMS_TYPE:u$}=T._G;T.hi.elements.define("converse-muc-chatarea",class extends eV{static get properties(){return{jid:{type:String},show_help_messages:{type:Boolean},type:{type:String}}}constructor(){super(),this.jid=null,this.type=null,this.split=null,this.viewportMediaQuery=window.matchMedia("(max-width: 768px)")}async initialize(){this.model=await T.hi.rooms.get(this.jid),this.listenTo(this.model,"change:show_help_messages",()=>this.requestUpdate()),this.listenTo(this.model,"change:hidden_occupants",()=>this.requestUpdate()),this.listenTo(this.model.session,"change:connection_status",()=>this.requestUpdate()),this.#h(),this.requestUpdate()}render(){return this.model?(e=>{let t,s,r=T.hi.settings.get("show_send_button"),i=T.hi.settings.get("view_mode");return"overlayed"===i?(t="d-none d-md-flex col-s-10 col-md-8",s="col-xs-12 col-s-2 col-md-4"):"fullscreen"===i?(t="d-none d-md-flex col-md-8 col-xl-10",s="col-xs-12 col-md-4 col-xl-2"):"embedded"===i&&(t="d-flex col-8",s="col-4"),eE`
    ${e.model?.get("show_help_messages")?eE`
    `:""}
    ${e.model&&e.shouldShowSidebar()?eE``:""}`})(this):""}updated(e){super.updated(e),e.has("jid")&&this.model&&this.jid!==this.model.get("jid")&&(this.stopListening(),this.initialize())}#h(e){!this.model?.get("hidden_occupants")&&(e?e.matches:this.viewportMediaQuery.matches)&&this.model?.save("hidden_occupants",!0)}connectedCallback(){super.connectedCallback(),this.hideSidebarIfSmallViewport=this.#h.bind(this),this.viewportMediaQuery.addEventListener("change",this.hideSidebarIfSmallViewport)}disconnectedCallback(){super.disconnectedCallback(),this.viewportMediaQuery?.removeEventListener("change",this.hideSidebarIfSmallViewport)}shouldShowSidebar(){return!this.model.get("hidden_occupants")&&this.model.session.get("connection_status")===T.Qr.ROOMSTATUS.ENTERED}getHelpMessages(){let e=T.hi.settings.get("muc_disable_slash_commands"),t=Array.isArray(e)?e:[];return[`/admin: ${D("Change user's affiliation to admin")}`,`/ban: ${D("Ban user by changing their affiliation to outcast")}`,`/clear: ${D("Clear the chat area")}`,`/close: ${D("Close this groupchat")}`,`/deop: ${D("Change user role to participant")}`,`/destroy: ${D("Remove this groupchat")}`,`/help: ${D("Show this menu")}`,`/kick: ${D("Kick user from groupchat")}`,`/me: ${D("Write in 3rd person")}`,`/member: ${D("Grant membership to a user")}`,`/modtools: ${D("Opens up the moderator tools GUI")}`,`/mute: ${D("Remove user's ability to post messages")}`,`/nick: ${D("Change your nickname")}`,`/op: ${D("Grant moderator role to user")}`,`/owner: ${D("Grant ownership of this groupchat")}`,`/register: ${D("Register your nickname")}`,`/revoke: ${D("Revoke the user's current affiliation")}`,`/subject: ${D("Set groupchat subject")}`,`/topic: ${D("Set groupchat subject (alias for /subject)")}`,`/voice: ${D("Allow muted user to post messages")}`].filter(e=>t.every(t=>!e.startsWith(t+"<",9))).filter(e=>this.model.getAllowedCommands().some(t=>e.startsWith(t+"<",9)))}}),T.hi.elements.define("converse-muc-destroyed",class extends eV{constructor(){super(),this.jid=null}static get properties(){return{jid:{type:String}}}connectedCallback(){super.connectedCallback(),this.model=T.Tk.state.chatboxes.get(this.jid)}render(){let e=this.model.get("destroyed_reason");var t={moved_jid:this.model.get("moved_jid"),reason:e,onSwitch:e=>this.onSwitch(e)};let s=D("This groupchat no longer exists"),r=D('The following reason was given: "%1$s"',t.reason||"");return eE`

    ${s}

    ${t.reason?eE`

    ${r}

    `:""} ${t.moved_jid?(e=>{let t=D("The conversation has moved to a new address. Click the link below to enter.");return eE`

    ${t}

    `})(t):""}`}async onSwitch(e){e.preventDefault();let t=this.model.get("moved_jid");(await T.hi.rooms.get(t,{},!0)).maybeShow(!0),this.model.destroy()}}),T.hi.elements.define("converse-muc-disconnected",class extends eV{constructor(){super(),this.jid=null}static get properties(){return{jid:{type:String}}}connectedCallback(){super.connectedCallback(),this.model=T.Tk.state.chatboxes.get(this.jid)}render(){let e=this.model.session.get("disconnection_message");if(!e)return;let t=[e],s=this.model.session.get("disconnection_actor");s&&t.push(D("This action was done by %1$s.",s));let r=this.model.session.get("disconnection_reason");return r&&t.push(D('The reason given is: "%1$s".',r)),eE`

    ${t[0]}

    ${t.slice(1).map(e=>eE`

    ${e}

    `)}
    `}});var uk=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/modals/styles/config.scss"),uC={};uC.styleTagTransform=A(),uC.setAttributes=w(),uC.insert=y().bind(null,"head"),uC.domAPI=v(),uC.insertStyleElement=S(),f()(uk.Z,uC),uk.Z&&uk.Z.locals&&uk.Z.locals;let uT=T.Qr.env.utils,{sizzle:uM,u:uO}=T.Qr.env;T.hi.elements.define("converse-muc-config-modal",class extends nT{constructor(e){super(e),this.id="converse-muc-config-modal"}initialize(){super.initialize(),this.addListeners()}addListeners(){this.listenTo(this.model,"change",()=>this.requestUpdate()),this.listenTo(this.model.features,"change:passwordprotected",()=>this.requestUpdate()),this.listenTo(this.model.session,"change:config_stanza",()=>this.requestUpdate())}renderModal(){return(e=>{let t=T.hi.settings.get("roomconfig_whitelist"),s=[],r="",i=D("Loading configuration form"),o=e.model.session.get("config_stanza");if(o){let a=uT.toStanza(o),{fields:l}=T.fQ.parseXForm(a);t.length&&(l=l.filter(e=>t.includes(e.var)));let c={new_password:!e.model.features.get("passwordprotected"),fixed_username:e.model.get("jid")};s=l.map(e=>uT.xFormField2TemplateResult(e,c)),r=a.querySelector("instructions")?.textContent,i=a.querySelector("title")?.textContent}let a=D("Save");return eE`
    ${i}${i!==r?eE`

    ${r}

    `:""} ${s.length&&e.model.features.get("vcard-temp")?eE`
    `:""} ${s.length?s:iI({classes:"hor_centered"})}
    ${s.length?eE`
    `:""}
    `})(this)}shouldUpdate(e){return e.has("model")&&this.model&&(this.stopListening(),this.addListeners(),this.getConfig()),!0}getModalTitle(){return D("Configure %1$s",this.model.getDisplayName())}async getConfig(){let e=await this.model.fetchRoomConfiguration();this.model.session.set("config_stanza",e.outerHTML)}async setAvatar(e){if(!this.model.features.get("vcard-temp"))return;let t=new FormData(e.target).get("avatar_image");if(t?.size){let e=iZ?t:await iV(t),s=new FileReader;s.onloadend=async()=>{let e={image:btoa(s.result),image_type:t.type};await T.hi.vcard.set(this.model.get("jid"),e)},s.readAsBinaryString(e)}}async submitConfigForm(e){e.preventDefault();let t=uM(':input:not([type=button]):not([type=submit]):not([name="avatar_image"][type="file"])',e.target).map(uO.webForm2xForm).filter(e=>e);try{await this.model.sendConfiguration(t)}catch(t){T.cM.error(t);let e=D("Sorry, an error occurred while trying to submit the config form.")+" "+D("Check your browser's developer console for details.");T.hi.alert("error",D("Error"),e)}try{await this.setAvatar(e)}catch(e){T.cM.fatal(e),this.alert([D("Sorry, an error happened while trying to save the groupchat avatar."),D("You can check your browser's developer console for any error output.")].join(" "));return}await this.model.refreshDiscoInfo(),this.modal.hide()}});var uN=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/muc-details-modal.scss"),uI={};uI.styleTagTransform=A(),uI.setAttributes=w(),uI.insert=y().bind(null,"head"),uI.domAPI=v(),uI.insertStyleElement=S(),f()(uN.Z,uI),uN.Z&&uN.Z.locals&&uN.Z.locals,T.hi.elements.define("converse-muc-details-modal",class extends nT{initialize(){super.initialize(),this.listenTo(this.model,"change",()=>this.requestUpdate()),this.listenTo(this.model.features,"change",()=>this.requestUpdate()),this.listenTo(this.model.occupants,"add",()=>this.requestUpdate()),this.listenTo(this.model.occupants,"change",()=>this.requestUpdate())}renderModal(){return(e=>{let t=e.config.toJSON(),s=e.features.toJSON(),r=e.occupants.filter(e=>"offline"!==e.get("show")).length,i=D("XMPP address"),o=D("Message archiving"),a=D("Messages are archived on the server"),l=D("Description"),c=D("Features"),d=D("Hidden"),u=D("This groupchat is not publicly searchable"),h=D("This groupchat is restricted to members only"),m=D("Members only"),p=D("Moderated"),f=D("Participants entering this groupchat need to request permission to write"),g=D("Name"),v=D("This groupchat does not require a password upon entry"),_=D("No password required"),y=D("Not anonymous"),b=D("All other groupchat participants can see your XMPP address"),w=D("Not moderated"),j=D("Participants entering this groupchat can write right away"),S=D("Online users"),x=D("Open"),A=D("Anyone can join this groupchat"),E=D("This groupchat requires a password before entry"),$=D("Password protected"),k=D("Persistent"),C=D("This groupchat persists even if it's unoccupied"),T=D("Public"),M=D("This groupchat is publicly searchable"),O=D("Semi-anonymous"),N=D("Only moderators can see your XMPP address"),I=D("Temporary"),R=D("This groupchat will disappear once the last person leaves");return eE`

    ${g}: ${e.get("name")}

    ${i}:


    ${l}:

    ${e.get("subject")?(e=>{let t=e.get("subject"),s=D("Topic"),r=D("Topic author");return eE`

    ${s}:

    ${r}: ${t&&t.author}

    `})(e):""}

    ${S}: ${r}

    ${c}:

      ${s.passwordprotected?eE`
    • ${$} - ${E}
    • `:""} ${s.unsecured?eE`
    • ${_} - ${v}
    • `:""} ${s.hidden?eE`
    • ${d} - ${u}
    • `:""} ${s.public_room?eE`
    • ${T} - ${M}
    • `:""} ${s.membersonly?eE`
    • ${m} - ${h}
    • `:""} ${s.open?eE`
    • ${x} - ${A}
    • `:""} ${s.persistent?eE`
    • ${k} - ${C}
    • `:""} ${s.temporary?eE`
    • ${I} - ${R}
    • `:""} ${s.nonanonymous?eE`
    • ${y} - ${b}
    • `:""} ${s.semianonymous?eE`
    • ${O} - ${N}
    • `:""} ${s.moderated?eE`
    • ${p} - ${f}
    • `:""} ${s.unmoderated?eE`
    • ${w} - ${j}
    • `:""} ${s.mam_enabled?eE`
    • ${o} - ${a}
    • `:""}

    `})(this.model)}getModalTitle(){return D("Groupchat info")}}),T.hi.elements.define("converse-muc-nickname-modal",class extends nT{renderModal(){return eE``}getModalTitle(){return D("Change your nickname")}});var uR=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/texture/styles/texture.scss"),uD={};uD.styleTagTransform=A(),uD.setAttributes=w(),uD.insert=y().bind(null,"head"),uD.domAPI=v(),uD.insertStyleElement=S(),f()(uR.Z,uD),uR.Z&&uR.Z.locals&&uR.Z.locals,customElements.define("converse-texture",class extends eW{static get properties(){return{embed_audio:{type:Boolean},embed_videos:{type:Boolean},mentions:{type:Array},nick:{type:String},offset:{type:Number},onImgClick:{type:Function},onImgLoad:{type:Function},render_styling:{type:Boolean},show_images:{type:Boolean},hide_media_urls:{type:Boolean},show_me_message:{type:Boolean},text:{type:String}}}createRenderRoot(){return this}constructor(){super(),this.nick=null,this.onImgClick=null,this.onImgLoad=null,this.text=null,this.embed_audio=!1,this.embed_videos=!1,this.hide_media_urls=!1,this.mentions=[],this.offset=0,this.render_styling=!1,this.show_image_urls=!0,this.show_images=!1,this.show_me_message=!1}render(){let e={embed_audio:this.embed_audio,embed_videos:this.embed_videos,hide_media_urls:this.hide_media_urls,mentions:this.mentions,nick:this.nick,onImgClick:this.onImgClick,onImgLoad:this.onImgLoad,render_styling:this.render_styling,show_images:this.show_images,show_me_message:this.show_me_message};return aX(this.text,this.offset,e)}});var uL=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/muc-head.scss"),uz={};uz.styleTagTransform=A(),uz.setAttributes=w(),uz.insert=y().bind(null,"head"),uz.domAPI=v(),uz.insertStyleElement=S(),f()(uL.Z,uz),uL.Z&&uL.Z.locals&&uL.Z.locals,T.hi.elements.define("converse-muc-heading",class extends eV{async initialize(){let{chatboxes:e}=T.Tk.state;this.model=e.get(this.getAttribute("jid")),this.listenTo(this.model,"change",()=>this.requestUpdate()),this.listenTo(this.model,"vcard:add",()=>this.requestUpdate()),this.listenTo(this.model,"vcard:change",()=>this.requestUpdate()),this.user_settings=await T.Tk.api.user.settings.getModel(),this.listenTo(this.user_settings,"change:mucs_with_hidden_subject",()=>this.requestUpdate()),await this.model.initialized;let t=this.model.occupants.findOccupant({jid:T.Tk.session.get("bare_jid")});t&&this.updateIfOwnOccupant(t),this.listenTo(this.model.occupants,"add",this.updateIfOwnOccupant),this.listenTo(this.model.occupants,"change:affiliation",this.updateIfOwnOccupant),this.listenTo(this.model.occupants,"change:role",this.updateIfOwnOccupant),this.listenTo(this.model.session,"change:connection_status",()=>this.requestUpdate()),this.requestUpdate()}render(){return this.model?(e=>{let t=e.model.toJSON(),s=e.user_settings?.get("mucs_with_hidden_subject",[])?.includes(e.model.get("jid")),r=e.getHeadingButtons(s),i=D("Hide the groupchat topic"),o=t.subject?t.subject.text:"",a=o&&!s;return eE`
    ${!T.Tk.api.settings.get("singleton")?eE``:""}
    ${e.model.getDisplayName()}
    ${tr(ae(r),"")} ${tr(at(r),"")}
    ${a?eE`

    `:""}`})(this):""}updateIfOwnOccupant(e){let t=T.Tk.session.get("bare_jid");e.get("jid")===t&&this.requestUpdate()}showRoomDetailsModal(e){e.preventDefault(),T.hi.modal.show("converse-muc-details-modal",{model:this.model},e)}showNicknameModal(e){e.preventDefault(),T.hi.modal.show("converse-muc-nickname-modal",{model:this.model},e)}toggleTopic(e){e?.preventDefault?.(),this.model.toggleSubjectHiddenState()}toggleOccupants(e){e?.preventDefault?.(),e?.stopPropagation?.(),this.model.save({hidden_occupants:!this.model.get("hidden_occupants")})}showConfigModal(e){e.preventDefault(),T.hi.modal.show("converse-muc-config-modal",{model:this.model},e)}close(e){e.preventDefault(),this.model.close()}destroy(e){e.preventDefault(),oR(this.model)}getHeadingButtons(e){let t=[];t.push({i18n_text:D("Details"),i18n_title:D("Show more information about this groupchat"),handler:e=>this.showRoomDetailsModal(e),a_class:"show-muc-details-modal",icon_class:"fa-info-circle",name:"details"}),"owner"===this.model.getOwnAffiliation()&&t.push({i18n_text:D("Configure"),i18n_title:D("Configure this groupchat"),handler:e=>this.showConfigModal(e),a_class:"configure-chatroom-button",icon_class:"fa-wrench",name:"configure"}),t.push({i18n_text:D("Nickname"),i18n_title:D("Change the nickname you're using in this groupchat"),handler:e=>this.showNicknameModal(e),a_class:"open-nickname-modal",icon_class:"fa-smile",name:"nickname"});let s=this.model.get("subject");if(s&&s.text&&t.push({i18n_text:e?D("Show topic"):D("Hide topic"),i18n_title:e?D("Show the topic message in the heading"):D("Hide the topic in the heading"),handler:e=>this.toggleTopic(e),a_class:"hide-topic",icon_class:"fa-minus-square",name:"toggle-topic"}),t.push({i18n_text:this.model.get("hidden_occupants")?D("Show participants"):D("Hide participants"),i18n_title:this.model.get("hidden_occupants")?D("Show the groupchat participants"):D("Hide the groupchat participants"),handler:e=>this.toggleOccupants(e),icon_class:"fa-users"}),this.model.session.get("connection_status")===T.Qr.ROOMSTATUS.ENTERED){let e=this.model.getAllowedCommands();e.includes("modtools")&&t.push({i18n_text:D("Moderate"),i18n_title:D("Moderate this groupchat"),handler:()=>oP(this.model),a_class:"moderate-chatroom-button",icon_class:"fa-user-cog",name:"moderate"}),e.includes("destroy")&&t.push({i18n_text:D("Destroy"),i18n_title:D("Remove this groupchat"),handler:e=>this.destroy(e),a_class:"destroy-chatroom-button",icon_class:"fa-trash",name:"destroy"})}T.hi.settings.get("singleton")||t.push({i18n_text:D("Leave"),i18n_title:D("Leave and close this groupchat"),handler:async e=>{e.stopPropagation();let t=[D("Are you sure you want to leave this groupchat?")];await T.hi.confirm(D("Confirm"),t)&&this.close(e)},a_class:"close-chatbox-button",standalone:"overlayed"===T.hi.settings.get("view_mode"),icon_class:"fa-sign-out-alt",name:"signout"});let{chatboxviews:r}=T.Tk.state,i=r.get(this.getAttribute("jid"));return i?T.Tk.api.hook("getHeadingButtons",i,t):Promise.resolve(t)}}),T.hi.elements.define("converse-muc-password-form",class extends eV{static get properties(){return{jid:{type:String}}}constructor(){super(),this.jid=null}connectedCallback(){super.connectedCallback();let{chatboxes:e}=T.Tk.state;this.model=e.get(this.jid),this.listenTo(this.model,"change:password_validation_message",()=>this.requestUpdate()),this.requestUpdate()}render(){return(e=>{let t=D("This groupchat requires a password"),s=D("Password: "),r=D("Submit");return eE`

    ${e.validation_message}

    `})({jid:this.model.get("jid"),submitPassword:e=>this.submitPassword(e),validation_message:this.model.get("password_validation_message")})}submitPassword(e){e.preventDefault();let t=this.querySelector("input[type=password]").value;this.model.join(this.model.get("nick"),t),this.model.set("password_validation_message",null)}});class uP extends c4(cH){length=300;is_chatroom=!0;async initialize(){this.model=await T.hi.rooms.get(this.jid),T.Tk.state.chatboxviews.add(this.jid,this),this.setAttribute("id",this.model.get("box_id")),this.listenTo(this.model.session,"change:connection_status",this.onConnectionStatusChanged),this.listenTo(this.model.session,"change:view",()=>this.requestUpdate()),document.addEventListener("visibilitychange",()=>this.onWindowStateChanged()),this.onConnectionStatusChanged(),this.model.maybeShow(),T.hi.trigger("chatRoomViewInitialized",this)}render(){let e=this.model?o8(this.model):"";return eE`
    ${"overlayed"===T.hi.settings.get("view_mode")?eE``:""} ${this.model?eE`
    ${function(e){let t=e.session.get("view"),s=e.get("jid"),r=T.Qr.ROOMSTATUS,i=e.session.get("connection_status");return t===T.Qr.MUC.VIEWS.CONFIG?eE``:eE`${i==r.PASSWORD_REQUIRED?eE``:""} ${i==r.ENTERED?eE``:""} ${i==r.CONNECTING?iI({class:"vertically-centered"}):""} ${i==r.NICKNAME_REQUIRED?function(e){let t=e.get("jid");return T.hi.settings.get("muc_show_logs_before_join")?eE``:eE``}(e):""} ${i==r.DISCONNECTED?eE``:""} ${i==r.BANNED?eE``:""} ${i==r.DESTROYED?eE``:""}`}(this.model)}
    `:""}
    `}onConnectionStatusChanged(){this.model.session.get("connection_status")===T.Qr.ROOMSTATUS.CONNECTING&&(this.model.session.save({disconnection_actor:void 0,disconnection_message:void 0,disconnection_reason:void 0}),this.model.save({moved_jid:void 0,password_validation_message:void 0,reason:void 0})),this.requestUpdate()}}T.hi.elements.define("converse-muc",uP);var uU=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/index.scss"),uB={};uB.styleTagTransform=A(),uB.setAttributes=w(),uB.insert=y().bind(null,"head"),uB.domAPI=v(),uB.insertStyleElement=S(),f()(uU.Z,uB),uU.Z&&uU.Z.locals&&uU.Z.locals;let{Strophe:uF}=T.Qr.env,{CHATROOMS_TYPE:uq}=T._G;T.Qr.MUC.VIEWS={CONFIG:"config-form"},T.Qr.plugins.add("converse-muc-views",{dependencies:["converse-modal","converse-dragresize","converse-controlbox","converse-chatview"],initialize(){let{_converse:e}=this;T.hi.settings.extend({auto_list_rooms:!1,cache_muc_messages:!0,locked_muc_nickname:!1,modtools_disable_query:[],muc_disable_slash_commands:!1,muc_mention_autocomplete_filter:"contains",muc_mention_autocomplete_min_chars:0,muc_mention_autocomplete_show_avatar:!0,muc_roomid_policy:null,muc_roomid_policy_hint:null,muc_search_service:"api@search.jabber.network",roomconfig_whitelist:[],show_retraction_warning:!0});let t={ChatRoomView:uP,MUCView:uP};Object.assign(e,t),Object.assign(e.exports,t),T.hi.settings.get("muc_domain")||T.hi.listen.on("serviceDiscovered",async e=>{e?.get("var")===uF.NS.MUC&&!e.entity.get("jid").includes("@")&&await e.entity.getIdentity("conference","text")&&T.hi.settings.set("muc_domain",uF.getDomainFromJid(e.get("from")))}),T.hi.listen.on("clearsession",()=>{let t=e.chatboxviews.get("controlbox");t&&t.roomspanel&&(t.roomspanel.model.destroy(),t.roomspanel.remove(),delete t.roomspanel)}),T.hi.listen.on("chatBoxClosed",e=>{var t;e.get("type")===uq&&(t=e.get("jid"),location.hash===`converse/room?jid=${t}`&&history.pushState(null,"",window.location.pathname))}),T.hi.listen.on("parseMessageForCommands",oU),T.hi.listen.on("confirmDirectMUCInvitation",oI)}});var uH=s("./node_modules/favico.js-slevomat/favico.js"),uG=s.n(uH);let{Strophe:uW,u:uZ}=T.Qr.env,{isEmptyMessage:uV,isTestEnv:uQ}=uZ,uK="Notification"in window;function uJ(e){return uQ()||(T.Tk.state.chatboxes.get(e)?.isHidden()??!1)||document.hidden}function uY(){return uQ()||uK&&T.hi.settings.get("show_desktop_notifications")&&"granted"===Notification.permission}function uX(){a?.badge(0),a=null,navigator.clearAppBadge?.().catch(e=>T.cM.error("Could not clear unread count in app badge "+e))}function u1(){if(T.hi.settings.get("show_tab_notifications")){a=a??new T.Qr.env.Favico({type:"circle",animation:"pop"});let e=T.Tk.state.chatboxes.models.reduce((e,t)=>e+(t.get("num_unread")||0),0);a.badge(e),navigator.setAppBadge?.(e).catch(e=>T.cM.error("Could set unread count in app badge - "+e))}}function u0(e,t,s){let r=T.Tk.session.get("bare_jid");return e.reduce((e,i)=>e||i.uri&&[r,`${t}/${s}`].includes(i.uri.replace(/^xmpp:/,"")),!1)}async function u2(e){if(!e?.body&&!e?.message)return!1;let t=e.from,s=e.from_muc,r=T.hi.settings.get("notify_all_room_messages"),i=T.Tk.state.chatboxes.get(s),o=uW.getResourceFromJid(t),a=o&&uW.unescapeNode(o)||"",l=!1,c=i.get("nick");T.hi.settings.get("notify_nicknames_without_references")&&(l=RegExp(`\\b${c}\\b`).test(e.body));let d=a!==c,u=!0===r||Array.isArray(r)&&r.includes(s)||u0(e.references,s,c)||l;return!!d&&!!u&&await T.hi.hook("shouldNotifyOfGroupMessage",e,!0)}async function u4(e){if(!e.from_muc)return!1;let t=await T.hi.rooms.get(e.from_muc);if(!t)return!1;let s=t.get("nick"),r=e.from_muc,i=T.hi.settings.get("notify_all_room_messages");return!0===i||Array.isArray(i)&&i.includes(r)||u0(e.references,r,s)}async function u3(e){if(!await function(e){let{attrs:t}=e;if(!t||t.is_forwarded)return!1;if("groupchat"===t.type)return u2(t);if("info"===t.type)return u4(t);if(t.is_headline)return uJ(t);let s=T.Tk.session.get("bare_jid"),r=uW.getBareJidFromJid(t.from)===s;return!uV(t)&&!r&&("all"===T.hi.settings.get("show_desktop_notifications")||uJ(t))}(e))return!1;T.hi.trigger("messageNotification",e);try{!function(){if(T.hi.settings.get("play_sounds")&&void 0!==window.Audio){let e=new Audio(T.hi.settings.get("sounds_path")+"msg_received.ogg"),t=e.canPlayType("audio/ogg");if("probably"===t)return e.play();let s=new Audio(T.hi.settings.get("sounds_path")+"msg_received.mp3"),r=s.canPlayType("audio/mp3");"probably"===r?s.play():"maybe"===t?e.play():"maybe"===r&&s.play()}}()}catch(e){T.cM.error(e)}!function(e){let t,s,r,{attrs:i}=e;if(i.is_error||!uY())return;let o=i.from,a=uW.getBareJidFromJid(o);if("info"==i.type)t=i.message;else if("headline"===i.type)if(!(!a.includes("@")||T.hi.settings.get("allow_non_roster_messaging")))return;else t=D("Notification from %1$s",a);else if(a.includes("@"))if("groupchat"===i.type)t=D("%1$s says",uW.getResourceFromJid(o));else{if(void 0===T.Tk.state.roster)return T.cM.error("Could not send notification, because roster is undefined");if(void 0!==(s=T.Tk.state.roster.get(a)))t=D("%1$s says",s.getDisplayName());else{if(!T.hi.settings.get("allow_non_roster_messaging"))return;t=D("%1$s says",a)}}else t=D("Notification from %1$s",a);if("info"==i.type)r=i.reason;else if(!(r=i.is_encrypted?i.plaintext:i.body))return;let l=new Notification(t,{body:r,lang:L.getLocale(),icon:T.hi.settings.get("notification_icon"),requireInteraction:!T.hi.settings.get("notification_delay")});T.hi.settings.get("notification_delay")&&setTimeout(()=>l.close(),T.hi.settings.get("notification_delay")),l.onclick=function(e){e.preventDefault(),window.focus(),T.Tk.state.chatboxes.get(a).maybeShow(!0)}}(e)}function u6(e){uY()&&function(e){if("error"===e.klass||"warn"===e.klass){let t=new Notification(e.subject,{body:e.message,lang:L.getLocale(),icon:T.hi.settings.get("notification_icon")});setTimeout(t.close.bind(t),5e3)}}(e)}function u8(e){uY()&&T.hi.settings.get("show_chat_state_notifications")&&function(e){if(T.hi.settings.get("chatstate_notification_blacklist")?.includes(e.get("jid")))return;let t=e.presence.get("show"),s=null;if("offline"===t?s=D("has gone offline"):"away"===t?s=D("has gone away"):"dnd"===t?s=D("is busy"):"online"===t&&(s=D("has come online")),null===s)return;let r=new Notification(e.getDisplayName(),{body:s,lang:L.getLocale(),icon:T.hi.settings.get("notification_icon")});setTimeout(()=>r.close(),5e3)}(e)}function u5(e){uY()&&function(e){let t=new Notification(e.getDisplayName(),{body:D("wants to be your contact"),lang:L.getLocale(),icon:T.hi.settings.get("notification_icon")});setTimeout(()=>t.close(),5e3)}(e)}function u9(){uK&&!["denied","granted"].includes(Notification.permission)&&Notification.requestPermission()}T.Qr.env.Favico=uG(),T.Qr.plugins.add("converse-notification",{dependencies:["converse-chatboxes"],initialize(){T.hi.settings.extend({chatstate_notification_blacklist:[],notification_delay:5e3,notification_icon:"/images/logo/conversejs-filled.svg",notify_all_room_messages:!1,notify_nicknames_without_references:!1,play_sounds:!0,show_chat_state_notifications:!1,show_desktop_notifications:!0,show_tab_notifications:!0,sounds_path:T.hi.settings.get("assets_path")+"/sounds/"}),T.hi.listen.on("clearSession",uX),T.hi.waitUntil("chatBoxesInitialized").then(()=>{let{chatboxes:e}=T.Tk.state;e.on("change:num_unread",u1)}),T.hi.listen.on("pluginsInitialized",function(){T.hi.listen.on("contactRequest",u5),T.hi.listen.on("contactPresenceChanged",u8),T.hi.listen.on("message",u3),T.hi.listen.on("feedback",u6),T.hi.listen.on("connected",u9)})}});let{Strophe:u7,$iq:he,sizzle:ht,u:hs}=T.Qr.env;T.hi.elements.define("converse-change-password-form",class extends eV{static get properties(){return{passwords_mismatched:{type:Boolean},alert_message:{type:String}}}initialize(){this.passwords_mismatched=!1,this.alert_message=""}render(){return(e=>{let t=D("Submit"),s=D("The new passwords must match"),r=D("New password"),i=D("Confirm new password");return eE`
    ${e.alert_message?eE``:""}
    ${e.passwords_mismatched?eE`${s}`:""}
    `})(this)}checkPasswordsMatch(e){let t=new FormData(e.target.form??e.target),s=t.get("password"),r=t.get("password_check");return this.passwords_mismatched=s&&s!==r,this.passwords_mismatched}async onSubmit(e){if(e.preventDefault(),this.checkPasswordsMatch(e))return;let t=T.Tk.session.get("domain"),s=he({type:"get",to:t}).c("query",{xmlns:u7.NS.REGISTER}),r=await T.hi.sendIQ(s);if(null===r){this.alert_message=D("Timeout error");return}if(ht(`error service-unavailable[xmlns="${u7.NS.STANZAS}"]`,r).length){this.alert_message=D("Your server does not support password reset");return}if(hs.isErrorStanza(r)){this.alert_message=D("Your server responded with an unknown error, check the console for details"),T.cM.error("Could not set password"),T.cM.error(r);return}let i=r.querySelector("username").textContent,o=new FormData(e.target).get("password"),a=he({type:"set",to:t}).c("query",{xmlns:u7.NS.REGISTER}).c("username",{},i).c("password",{},o),l=await T.hi.sendIQ(a);null===l?this.alert_message=D("Timeout error while trying to set your password"):ht(`error not-allowed[xmlns="${u7.NS.STANZAS}"]`,l).length?this.alert_message=D("Your server does not allow password reset"):ht(`error forbidden[xmlns="${u7.NS.STANZAS}"]`,l).length||hs.isErrorStanza(l)?this.alert_message=D("You are not allowed to change your password"):T.hi.alert("info",D("Success"),[D("Your new password has been set")])}});var hr=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/profile/modals/styles/profile.scss"),hi={};hi.styleTagTransform=A(),hi.setAttributes=w(),hi.insert=y().bind(null,"head"),hi.domAPI=v(),hi.insertStyleElement=S(),f()(hr.Z,hi),hr.Z&&hr.Z.locals&&hr.Z.locals;class hn extends nT{static properties={_submitting:{state:!0},_show_clear_button:{type:Boolean,state:!0},model:{type:T.Hn},tab:{type:String}};constructor(e){super(e),this.tab="status",this._show_clear_button=!1}initialize(){super.initialize(),this.listenTo(this.model,"change",this.render),this.addEventListener("shown.bs.modal",()=>{this.querySelector('input[name="status_message"]')?.focus()},!1),T.hi.trigger("profileModalInitialized",this.model)}willUpdate(e){e.has("model")&&(this._show_clear_button=!!this.model.get("status_message"))}getModalTitle(){return D("Your Profile")}renderModal(){return(e=>{let t={...e.model.toJSON(),...e.model.vcard?.toJSON()},s=D("Email"),r=D("Full Name"),i=D("XMPP Address"),o=D("Nickname"),a=D("Role"),l=D("Save and close"),c=D("Use commas to separate multiple roles. Your roles are shown next to your name on your chat messages."),d=D("URL"),u=D("Status"),h=D("OMEMO"),m=D("Profile"),p=D("Reset Password"),f=new Map;return f.set("status",eE``),f.set("profile",eE``),function(){let e=T.Tk.api.connection.get()._sasl_mechanism;return(!e||![].includes[e.mechname])&&!["external","anonymous"].includes(T.hi.settings.get("authentication"))}()&&f.set("passwordreset",eE``),T.Tk.pluggable.plugins["converse-omemo"]?.enabled(T.Tk)&&f.set("omemo",eE``),eE`${f.size?eE``:""}
    ${f.get("passwordreset")?eE`
    ${"status"===e.tab?(e=>{let t=D("Away"),s=D("Busy"),r=D("Online"),i=D("Set status"),o=D("Away for long"),a=D("Personal status message"),l=e.model.get("show")||e.model.get("presence"),c=e.model.get("status_message");return eE`
    `})(e):""}
    `:""}
    ${t.jid}
    ${c}
    ${e._submitting?eE``:eE``}
    ${f.get("passwordreset")?eE`
    ${"passwordreset"===e.tab?eE``:""}
    `:""} ${f.get("omemo")?eE`
    ${"omemo"===e.tab?eE``:""}
    `:""}
    `})(this)}renderModalFooter(){return T.hi.settings.get("allow_logout")?eE``:""}async setVCard(e){let t=T.Tk.session.get("bare_jid");try{await T.hi.vcard.set(t,e)}catch(e){return T.cM.fatal(e),this.alert([D("Sorry, an error happened while trying to save your profile data."),D("You can check your browser's developer console for any error output.")].join(" ")),!1}return!0}async onProfileFormSubmitted(e){e.preventDefault(),this._submitting=!0;let t=new FormData(e.target),s=t.get("avatar_image"),r={fn:t.get("fn"),nickname:t.get("nickname"),role:t.get("role"),email:t.get("email"),url:t.get("url")};if(s?.size){let e=await iV(s),t=new FileReader;t.onloadend=async()=>{Object.assign(r,{image:btoa(t.result),image_type:s.type}),await this.setVCard(r)&&(this._submitting=!1,this.modal.hide())},t.readAsBinaryString(e)}else Object.assign(r,{image:this.model.vcard.get("image"),image_type:this.model.vcard.get("image_type")}),await this.setVCard(r)&&(this.modal.hide(),T.hi.toast.show("vcard-updated",{type:"success",body:D("Profile updated successfully")})),this._submitting=!1}onStatusFormSubmitted(e){let t,s;e.preventDefault();let r=new FormData(e.target),i=r.get("chat_status");"online"===i?s="online":t=i,this.model.save({status_message:r.get("status_message"),presence:s,show:t}),this.alert(D("Status updated"),"info")}clearStatusMessage(e){e&&e.preventDefault&&e.preventDefault(),this._show_clear_button=!1,this.querySelector('input[name="status_message"]').value=""}async logOut(e){e?.preventDefault(),this.close(),await T.hi.confirm(D("Confirm"),D("Are you sure you want to log out?"))&&T.hi.user.logout()}}T.hi.elements.define("converse-profile-modal",hn);var ho=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/profile/modals/styles/user-settings.scss"),ha={};ha.styleTagTransform=A(),ha.setAttributes=w(),ha.insert=y().bind(null,"head"),ha.domAPI=v(),ha.insertStyleElement=S(),f()(ho.Z,ha),ho.Z&&ho.Z.locals&&ho.Z.locals,T.hi.elements.define("converse-user-settings-modal",class extends nT{constructor(e){super(e);let t=T.hi.settings.get("show_client_info"),s=T.hi.settings.get("allow_adhoc_commands");t&&s||t?this.tab="about":s&&(this.tab="commands")}renderModal(){return(e=>{let t=D("%1$s Open Source %2$s XMPP chat client brought to you by %3$s Opkode %2$s",'',"",''),s=D("%1$s Translate %2$s it into your own language",'',""),r=T.hi.settings.get("show_client_info"),i=T.hi.settings.get("allow_adhoc_commands");return eE`${r&&i?(e=>{let t=D("About"),s=D("Commands"),r=D("Services"),i=T.hi.settings.get("show_client_info"),o=T.hi.settings.get("allow_adhoc_commands"),a=T.Tk.pluggable.plugins["converse-disco-views"]?.enabled(T.Tk),l=+!!i+ +!!o+ +!!a>=2;return eE`${l?eE``:""}`})(e):""}
    ${r?eE`

    ${T.Tk.VERSION_NAME}

    ${cv(cf.sanitize(t))}

    ${cv(cf.sanitize(s))}

    `:""} ${i?eE`
    `:""} ${T.Tk.pluggable.plugins["converse-disco-views"]?.enabled(T.Tk)?eE`
    ${"disco"===e.tab?eE``:""}
    `:""}
    `})(this)}getModalTitle(){return D("Settings")}});var hl=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/profile/styles/profile.scss"),hc={};hc.styleTagTransform=A(),hc.setAttributes=w(),hc.insert=y().bind(null,"head"),hc.domAPI=v(),hc.insertStyleElement=S(),f()(hl.Z,hc),hl.Z&&hl.Z.locals&&hl.Z.locals,T.hi.elements.define("converse-user-profile",class extends eV{initialize(){this.model=T.Tk.state.profile,this.listenTo(this.model,"change",()=>this.requestUpdate()),this.listenTo(this.model,"vcard:add",()=>this.requestUpdate()),this.listenTo(this.model,"vcard:change",()=>this.requestUpdate())}render(){return(e=>{let t,s,r=e.model.get("show"),i=e.model.get("presence")||"online",o=r||i,a=e.model.get("status_message")||D("I am %1$s",function(e){if("chat"===e)return D("online");if("dnd"===e)return D("busy");if("xa"===e)return D("away for long");if("away"===e)return D("away");if("offline"===e)return D("offline");else return D(e)||D("online")}(o)),l=D("Update your profile"),c=D("Click to change your chat status");return"chat"!==r&&(r||"online"!==i)?"dnd"===r?[t,s]=["fa fa-minus-circle chat-status","chat-status-busy"]:"away"===r||"xa"===r?[t,s]=["fa fa-circle chat-status","chat-status-away"]:[t,s]=["fa fa-circle chat-status","comment"]:[t,s]=["fa fa-circle chat-status","chat-status-online"],eE``})(this)}showProfileModal(e,t="status"){e?.preventDefault(),T.hi.modal.show("converse-profile-modal",{model:this.model,tab:t},e)}}),T.Qr.plugins.add("converse-profile",{dependencies:["converse-status","converse-modal","converse-vcard","converse-chatboxviews","converse-adhoc-views"],initialize(){T.hi.settings.extend({show_client_info:!0})}});let{CHATROOMS_TYPE:hd}=T._G,{hexToArrayBuffer:hu,isAudioURL:hh,isError:hm,isImageURL:hp,isVideoURL:hf}=T.u;function hg(e){e=e.replace(/^05/,"");for(let t=1;t<8;t++){let s=8*t+t-1;e=e.slice(0,s)+" "+e.slice(s)}return e}async function hv(e,t,s){let r=await crypto.subtle.importKey("raw",hu(t),"AES-GCM",!1,["decrypt"]),i={name:"AES-GCM",iv:hu(e)};return crypto.subtle.decrypt(i,r,s)}async function h_(e){let t;try{t=await fetch(e)}catch(t){return T.cM.error(`${t.name}: Failed to download encrypted media: ${e}`),T.cM.error(t),null}if(t.status>=200&&t.status<400)return t.arrayBuffer()}async function hy(e){let t,s=new URL(e),r="localhost"===window.location.hostname&&"localhost"===s.hostname?"http":"https",i=s.toString().replace(/^aesgcm/,r),o=await h_(i);if(null===o)return T.cM.error(`Could not decrypt a received encrypted file ${s.toString()} since it could not be downloaded`),Error(D("Error: could not decrypt a received encrypted file, because it could not be downloaded"));let a=s.hash.slice(1),l=a.substring(a.length-64),c=a.replace(l,"");try{t=await hv(c,l,o)}catch(e){return T.cM.error(`Could not decrypt file ${s.toString()}`),T.cM.error(e),null}let[d,u]=s.pathname.split("/").pop().split("."),h=iW[u];try{let e=new File([t],d,{type:h});return URL.createObjectURL(e)}catch(e){return T.cM.error(`Could not decrypt file ${s.toString()}`),T.cM.error(e),null}}function hb(e){T.Tk.state.config.get("trusted")&&e.addAnnotations((t,s)=>(function(e,t,s){let r=[];try{T.u.withinString(e,(e,t,s)=>(r.push({url:e,start:t,end:s}),e),{start:/\b(aesgcm:\/\/)/gi})}catch(e){T.cM.debug(e);return}r.forEach(e=>{let r=hy(e.url).then(t=>(function(e,t,s){if(hm(t))return eE`

    ${t.message}

    `;if(hp(e))return aI({src:t,onClick:s.onImgClick,onLoad:s.onImgLoad});if(hh(e))return aS(t);if(hf(e))return aR(t);{let s=D('Download file "%1$s"',tp(e));return eE`${s}`}})(e.url,t,s)),i=eE`${tr(r,"")}`;s.addTemplateResult(e.start+t,e.end+t,i)})})(t,s,e))}function hw(e){e.listenTo(e.model.messages,"add",t=>{t.get("is_encrypted")&&!t.get("is_error")&&e.model.save("omemo_supported",!0)}),e.listenTo(e.model,"change:omemo_supported",()=>{!e.model.get("omemo_supported")&&e.model.get("omemo_active")?e.model.set("omemo_active",!1):e.querySelector("converse-chat-toolbar")?.requestUpdate()}),e.listenTo(e.model,"change:omemo_active",()=>{e.querySelector("converse-chat-toolbar").requestUpdate()})}async function hj(e){return Promise.all((await T.u.omemo.getDevicesForContact(e)).map(e=>T.u.omemo.generateFingerprint(e)))}function hS(e){e.stopPropagation(),e.preventDefault();let t=T.u.ancestor(e.target,"converse-chat-toolbar");if(!t.model.get("omemo_supported")){let e;return e=t.model.get("type")===hd?[D("Cannot use end-to-end encryption in this groupchat, either the groupchat has some anonymity or not all participants support OMEMO.")]:[D("Cannot use end-to-end encryption because %1$s uses a client that doesn't support OMEMO.",t.model.contact.getDisplayName())],T.hi.alert("error",D("Error"),e)}t.model.save({omemo_active:!t.model.get("omemo_active")})}function hx(e,t){let s,r,i=e.model,o=i.get("type")===hd;if(i.get("omemo_supported")){let e=D("Messages are being sent in plaintext"),t=D("Messages are sent encrypted");s=i.get("omemo_active")?t:e}else s=o?D("This groupchat needs to be members-only and non-anonymous in order to support OMEMO encrypted messages"):D("OMEMO encryption is not supported");return r=i.get("omemo_supported")?i.get("omemo_active")?o?"var(--muc-color)":"var(--chat-color)":"var(--error-color)":"var(--disabled-color)",t.push(eE``),t}Object.assign(T.u,{omemo:{...T.u.omemo,formatFingerprint:hg}});let{u:hA}=T.Qr.env,hE=(e,t)=>{let s=D("Trusted"),r=D("Untrusted"),i=D("Choose which devices you trust for OMEMO encrypted communication"),o=hA.getUniqueId(),a=hA.getUniqueId(),l=-1!==t.get("trusted");return t.get("bundle")&&t.get("bundle").fingerprint?eE`
  • ${D("Device ID")}: ${t?.get("id")||""}
    ${hg(t.get("bundle").fingerprint)}
  • `:""};T.hi.elements.define("converse-omemo-fingerprints",class extends eV{constructor(){super(),this.jid=null,this.show_inactive_devices=!1}static get properties(){return{jid:{type:String},show_inactive_devices:{type:Boolean,state:!0}}}async initialize(){this.devicelist=await T.hi.omemo.devicelists.get(this.jid,!0),this.listenTo(this.devicelist.devices,"change:bundle",()=>this.requestUpdate()),this.listenTo(this.devicelist.devices,"change:trusted",()=>this.requestUpdate()),this.listenTo(this.devicelist.devices,"remove",()=>this.requestUpdate()),this.listenTo(this.devicelist.devices,"add",()=>this.requestUpdate()),this.listenTo(this.devicelist.devices,"reset",()=>this.requestUpdate()),this.requestUpdate()}render(){return this.devicelist?(e=>{let t=D("OMEMO Fingerprints"),s=D("No OMEMO-enabled devices found"),r=e.devicelist.devices,i=D("Show inactive devices"),o=r?.filter(e=>!1!==e.get("active")),a=r?.filter(e=>!1===e.get("active"));return eE`
    • ${t}
    • ${o.length?o.map(t=>hE(e,t)):eE`
    • ${s}
    • `}
    • ${a.length&&e.show_inactive_devices?eE`${a.map(t=>hE(e,t))}`:""}
    `})(this):""}toggleDeviceTrust(e){let t=e.target;this.devicelist.devices.get(t.getAttribute("name")).save("trusted",parseInt(t.value,10))}toggleShowInactiveDevices(e){e.preventDefault(),this.show_inactive_devices=!this.show_inactive_devices}});let h$=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]],hk=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],hC=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];class hT{constructor(e,t){if(void 0==e.length)throw Error(e.length+"/"+t);let s=0;for(;s=256;)e-=255;return hM.EXP_TABLE[e]},EXP_TABLE:Array(256),LOG_TABLE:Array(256)};for(let e=0;e<8;e++)hM.EXP_TABLE[e]=1<=0;)t^=hO.G15<=0;)t^=hO.G18<>>=1;return t},getPatternPosition:e=>hk[e-1],getMask(e,t,s){switch(e){case 0:return(t+s)%2==0;case 1:return t%2==0;case 2:return s%3==0;case 3:return(t+s)%3==0;case 4:return(Math.floor(t/2)+Math.floor(s/3))%2==0;case 5:return t*s%2+t*s%3==0;case 6:return(t*s%2+t*s%3)%2==0;case 7:return(t*s%3+(t+s)%2)%2==0;default:throw Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial(e){let t=new hT([1],0);for(let s=0;s5&&(s+=3+o-5)}for(let r=0;rh$.length)throw Error("Too long data");return i}(this.text,this.errorCorrectLevel),this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[new hI(this.text)]}static get PAD0(){return 236}static get PAD1(){return 17}isDark(e,t){if(e<0||this.moduleCount<=e||t<0||this.moduleCount<=t)throw Error(e+","+t);return this.modules[e][t]}getModuleCount(){return this.moduleCount}make(){this.makeImpl(!1,this.getBestMaskPattern())}makeImpl(e,t){this.moduleCount=4*this.typeNumber+17,this.modules=Array(this.moduleCount);for(let e=0;e=7&&this.setupTypeNumber(e),null==this.dataCache&&(this.dataCache=hN.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)}setupPositionProbePattern(e,t){for(let s=-1;s<=7;s++)if(!(e+s<=-1)&&!(this.moduleCount<=e+s))for(let r=-1;r<=7;r++)t+r<=-1||this.moduleCount<=t+r||(0<=s&&s<=6&&(0==r||6==r)||0<=r&&r<=6&&(0==s||6==s)||2<=s&&s<=4&&2<=r&&r<=4?this.modules[e+s][t+r]=!0:this.modules[e+s][t+r]=!1)}getBestMaskPattern(){let e=0,t=0;for(let s=0;s<8;s++){this.makeImpl(!0,s);let r=hO.getLostPoint(this);(0==s||e>r)&&(e=r,t=s)}return t}setupTimingPattern(){for(let e=8;e>s&1)==1;this.modules[Math.floor(s/3)][s%3+this.moduleCount-8-3]=r}for(let s=0;s<18;s++){let r=!e&&(t>>s&1)==1;this.modules[s%3+this.moduleCount-8-3][Math.floor(s/3)]=r}}setupTypeInfo(e,t){let s=this.errorCorrectLevel<<3|t,r=hO.getBCHTypeInfo(s);for(let t=0;t<15;t++){let s=!e&&(r>>t&1)==1;t<6?this.modules[t][8]=s:t<8?this.modules[t+1][8]=s:this.modules[this.moduleCount-15+t][8]=s}for(let t=0;t<15;t++){let s=!e&&(r>>t&1)==1;t<8?this.modules[8][this.moduleCount-t-1]=s:t<9?this.modules[8][15-t-1+1]=s:this.modules[8][15-t-1]=s}this.modules[this.moduleCount-8][8]=!e}mapData(e,t){let s=-1,r=this.moduleCount-1,i=7,o=0;for(let a=this.moduleCount-1;a>0;a-=2)for(6==a&&a--;;){for(let s=0;s<2;s++)if(null==this.modules[r][a-s]){let l=!1;o>>i&1)==1),hO.getMask(t,r,a-s)&&(l=!l),this.modules[r][a-s]=l,-1==--i&&(o++,i=7)}if((r+=s)<0||this.moduleCount<=r){r-=s,s=-s;break}}}static createData(e,t,s){let r=hR.getRSBlocks(e,t),i=new hD;for(let t=0;t8*o)throw Error("code length overflow. ("+i.getLengthInBits()+">"+8*o+")");for(i.getLengthInBits()+4<=8*o&&i.put(0,4);i.getLengthInBits()%8!=0;)i.putBit(!1);for(;!(i.getLengthInBits()>=8*o)&&(i.put(hN.PAD0,8),!(i.getLengthInBits()>=8*o));){;i.put(hN.PAD1,8)}return hN.createBytes(i,r)}static createBytes(e,t){let s=0,r=0,i=0,o=Array(t.length),a=Array(t.length);for(let l=0;l=0?h.get(t):0}}let l=0;for(let e=0;e65536?(t[0]=240|(1835008&s)>>>18,t[1]=128|(258048&s)>>>12,t[2]=128|(4032&s)>>>6,t[3]=128|63&s):s>2048?(t[0]=224|(61440&s)>>>12,t[1]=128|(4032&s)>>>6,t[2]=128|63&s):s>128?(t[0]=192|(1984&s)>>>6,t[1]=128|63&s):t[0]=s,this.parsedData.push(t)}this.parsedData=Array.prototype.concat.apply([],this.parsedData),this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}getLength(){return this.parsedData.length}write(e){for(let t=0,s=this.parsedData.length;t>>7-e%8&1)==1}put(e,t){for(let s=0;s>>t-s-1&1)==1)}getLengthInBits(){return this.length}putBit(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}}var hL=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/shared/qrcode/qrcode.scss"),hz={};hz.styleTagTransform=A(),hz.setAttributes=w(),hz.insert=y().bind(null,"head"),hz.domAPI=v(),hz.insertStyleElement=S(),f()(hL.Z,hz),hL.Z&&hL.Z.locals&&hL.Z.locals,T.hi.elements.define("converse-qr-code",class extends eV{static get properties(){return{text:{type:String},width:{type:String},height:{type:String}}}#m;constructor(){super(),this.#m=null,this.text=null,this.width="200px",this.height="200px",this.colorDark="#000000",this.colorLight="#ffffff",this.correctLevel=2}render(){let e=this.#m.getModuleCount(),t=e+8,s=[];for(let t=0;t`);return e$`${s}`}shouldUpdate(e){return!this.#m||e.has("text")||e.has("correctLevel")?(this.title=this.text,this.#m=new hN(this.text,this.correctLevel),this.#m.make(),super.shouldUpdate(e)||!0):super.shouldUpdate(e)}});let{Strophe:hP,sizzle:hU,u:hB}=T.Qr.env;T.hi.elements.define("converse-omemo-profile",class extends eV{async initialize(){let e=T.Tk.session.get("bare_jid");this.devicelist=await T.hi.omemo.devicelists.get(e,!0),await this.setAttributes(),this.listenTo(this.devicelist.devices,"change:bundle",()=>this.requestUpdate()),this.listenTo(this.devicelist.devices,"reset",()=>this.requestUpdate()),this.listenTo(this.devicelist.devices,"reset",()=>this.requestUpdate()),this.listenTo(this.devicelist.devices,"remove",()=>this.requestUpdate()),this.listenTo(this.devicelist.devices,"add",()=>this.requestUpdate()),this.requestUpdate()}async setAttributes(){this.device_id=await T.hi.omemo.getDeviceID(),this.current_device=this.devicelist.devices.get(this.device_id),this.other_devices=this.devicelist.devices.filter(e=>e.get("id")!==this.device_id)}render(){return this.devicelist?(e=>{let t=D("This device"),s=D("OMEMO fingerprint"),r=D("Generate new keys and fingerprint"),i=e?.current_device?.get("bundle").fingerprint;return eE`
    • ${t}
    • ${s}:
      ${i?eE`${hg(e.current_device.get("bundle").fingerprint)}`:iI()}
    • ${i?eE``:""}
    • ${D("Device ID")}: ${e?.current_device?.get("id")||""}
    ${e.other_devices?.length?function(e){let t=D("Other OMEMO-enabled devices"),s=D("Checkbox to select fingerprints of all other OMEMO devices"),r=D("Remove checked devices and close"),i=D("Select all");return eE`
    • ${e.other_devices?.map(e=>eE`${e.get("bundle")&&e.get("bundle").fingerprint?function(e){let t=D("Checkbox for selecting the following fingerprint");return eE`
    • `}(e):function(e){let t=D("Device without a fingerprint"),s=D("Checkbox for selecting the following device");return eE`
    • `}(e)}`)}
    `}(e):""}
    `})(this):iI()}selectAll(e){let t=hB.ancestor(e.target,"li");for(;t;)t.querySelector('input[type="checkbox"]').checked=e.target.checked,t=t.nextElementSibling}async removeSelectedFingerprints(e){e.preventDefault(),e.stopPropagation(),e.target.querySelector(".select-all").checked=!1;let t=hU('.fingerprint-removal-item input[type="checkbox"]:checked',e.target).map(e=>e.value);try{await this.devicelist.removeOwnDevices(t)}catch(e){T.cM.error(e),T.Tk.api.alert(hP.LogLevel.ERROR,D("Error"),[D("Sorry, an error occurred while trying to remove the devices.")])}await this.setAttributes(),this.requestUpdate()}async generateOMEMODeviceBundle(e){e.preventDefault(),await T.hi.confirm(D("Confirm"),D("Are you sure you want to generate new OMEMO keys? This will remove your old keys and all previously encrypted messages will no longer be decryptable on this device."))&&(await T.hi.omemo.bundle.generate(),await this.setAttributes(),this.requestUpdate())}});var hF=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/omemo-views/styles/omemo.scss"),hq={};hq.styleTagTransform=A(),hq.setAttributes=w(),hq.insert=y().bind(null,"head"),hq.domAPI=v(),hq.insertStyleElement=S(),f()(hF.Z,hq),hF.Z&&hF.Z.locals&&hF.Z.locals,T.Qr.plugins.add("converse-omemo-views",{enabled(e){let t=e.pluggable.plugins;return t["converse-bosh"]?.enabled()},dependencies:["converse-chatview","converse-omemo"],initialize(){T.hi.listen.on("chatBoxViewInitialized",hw),T.hi.listen.on("chatRoomViewInitialized",hw),T.hi.listen.on("getToolbarButtons",hx),T.hi.listen.on("afterMessageBodyTransformed",hb),T.hi.listen.on("userDetailsModalInitialized",e=>{hj(e.get("jid")).catch(e=>T.cM.error(e))}),T.hi.listen.on("profileModalInitialized",()=>{hj(T.Tk.session.get("bare_jid")).catch(e=>T.cM.error(e))})}});let{Strophe:hH,$iq:hG}=T.Qr.env,{CHATROOMS_TYPE:hW}=T._G;async function hZ(e,t){if(!t.jid)return;let s=T.Tk.session.get("bare_jid");if(!await T.hi.disco.supports(hH.NS.PUSH,e||s))return void T.cM.warn(`Not disabling push app server "${t.jid}", no disco support from your server.`);let r=hG({type:"set"});e!==s&&r.attrs({to:e}),r.c("disable",{xmlns:hH.NS.PUSH,jid:t.jid}),t.node&&r.attrs({node:t.node}),T.hi.sendIQ(r).catch(e=>{T.cM.error(`Could not disable push app server for ${t.jid}`),T.cM.error(e)})}async function hV(e,t){if(!t.jid||!t.node)return;if(!await T.hi.disco.getIdentity("pubsub","push",t.jid))return T.cM.warn(`Not enabling push the service "${t.jid}", it doesn't have the right disco identtiy.`);let s=await Promise.all([T.hi.disco.supports(hH.NS.PUSH,t.jid),T.hi.disco.supports(hH.NS.PUSH,e)]);if(!s[0]&&!s[1])return void T.cM.warn(`Not enabling push app server "${t.jid}", no disco support from your server.`);let r=hG({type:"set"});return e!==T.Tk.session.get("bare_jid")&&r.attrs({to:e}),r.c("enable",{xmlns:hH.NS.PUSH,jid:t.jid,node:t.node}),t.secret&&r.c("x",{xmlns:hH.NS.XFORM,type:"submit"}).c("field",{var:"FORM_TYPE"}).c("value").t(`${hH.NS.PUBSUB}#publish-options`).up().up().c("field",{var:"secret"}).c("value").t(t.secret),T.hi.sendIQ(r)}async function hQ(e){e||(e=T.Tk.session.get("bare_jid"));let t=T.Tk.session.get("push_enabled")||[];if(t.includes(e))return;let s=T.hi.settings.get("push_app_servers").filter(e=>!e.disable),r=T.hi.settings.get("push_app_servers").filter(e=>e.disable),i=s.map(t=>hV(e,t)),o=r.map(t=>hZ(e,t));try{await Promise.all(i.concat(o))}catch(e){T.cM.error("Could not enable or disable push App Server"),e&&T.cM.error(e)}finally{t.push(e)}T.Tk.session.save("push_enabled",t)}function hK(e){e.get("type")==hW&&hQ(hH.getDomainFromJid(e.get("jid")))}let{Strophe:hJ}=T.Qr.env;async function hY(e){await T.hi.waitUntil("controlBoxInitialized");let{chatboxes:t}=T.Tk.state;t.get("controlbox").set({"active-form":e})}function hX(e){"#converse/login"===location.hash?(e?.preventDefault(),hY("login")):"#converse/register"===location.hash&&(e?.preventDefault(),hY("register"))}hJ.addNamespace("PUSH","urn:xmpp:push:0"),T.Qr.plugins.add("converse-push",{initialize(){T.hi.settings.extend({push_app_servers:[],enable_muc_push:!1}),T.hi.listen.on("statusInitialized",()=>hQ()),T.hi.settings.get("enable_muc_push")&&T.hi.listen.on("chatBoxesInitialized",()=>T.Tk.state.chatboxes.on("add",hK))}});let h1=()=>{let e=D("Already have a chat account?"),t=D("Go back to login");return eE`

    ${e}

    `};var h0=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/register/styles/register.scss"),h2={};h2.styleTagTransform=A(),h2.setAttributes=w(),h2.insert=y().bind(null,"head"),h2.domAPI=v(),h2.insertStyleElement=S(),f()(h0.Z,h2),h0.Z&&h0.Z.locals&&h0.Z.locals;let{Strophe:h4,sizzle:h3,$iq:h6}=T.Qr.env,{CONNECTION_STATUS:h8}=T._G;class h5 extends eV{static get properties(){return{status:{type:String},domain:{type:String},service_url:{type:String},alert_message:{type:String},alert_type:{type:String}}}constructor(){super(),this.urls=[],this.fields={},this.domain=null,this.alert_type="info",this.setErrorMessage=e=>this.setMessage(e,"danger"),this.setFeedbackMessage=e=>this.setMessage(e,"info")}initialize(){this.reset(),this.listenTo(T.Tk,"connectionInitialized",()=>this.registerHooks());let e=T.hi.settings.get();this.listenTo(e,"change:show_connection_url_input",()=>this.requestUpdate());let t=T.hi.settings.get("registration_domain");t?this.fetchRegistrationForm(t):this.status=0}render(){return eE`${this.alert_message?eE``:""} ${0===this.status?function(e){let t=T.hi.settings.get("registration_domain"),s=D("Create your account"),r=D("Please enter the XMPP provider to register with:"),i=!t&&0===e.status;return eE`
    ${s}
    ${t||function(e){let t=T.hi.settings.get("domain_placeholder"),s=D("Tip: A list of public XMPP providers is available"),r=D("here"),i=T.hi.settings.get("providers_link");return eE`

    ${s} ${r}.

    ${T.hi.settings.get("show_connection_url_input")?df():""}`}(e)}
    ${i?function(){let e=D("Fetch registration form"),t=D("Already have a chat account?"),s=D("Go back to login");return eE`

    ${t}

    `}():""}
    `}(this):""} ${1===this.status?function(e){let t=T.hi.settings.get("registration_domain"),s=D("Cancel");return eE`
    ${iI({classes:"hor_centered"})} ${t?"":eE``}
    `}(this):""} ${2===this.status?(e=>{let t=D("Choose a different provider"),s=D("Account Registration:"),r=D("Register"),i=T.hi.settings.get("registration_domain");return eE`
    ${s} ${e.domain}

    ${e.title}

    ${e.instructions}

    ${e.form_fields}
    ${e.fields?eE``:""} ${i?"":eE``} ${h1()}
    `})(this):""} ${3===this.status?h1():""}`}setMessage(e,t){this.alert_type=t,this.alert_message=e}registerHooks(){let e=T.hi.connection.get(),t=e._connect_cb.bind(e);e._connect_cb=(e,s,r)=>{this._registering?this.getRegistrationFields(e,s)&&(this._registering=!1):t(e,s,r)}}getRegistrationFields(e,t){let s=T.hi.connection.get();s.connected=!0;let r="_reqToData"in s._proto?s._proto._reqToData(e):e;if(!r)return;if(s._proto._connect_cb(r)===h4.Status.CONNFAIL)return this.status=0,this.setErrorMessage(D("Sorry, we're unable to connect to your chosen provider.")),!1;let i=r.getElementsByTagName("register"),o=r.getElementsByTagName("mechanism");if(0===i.length&&0===o.length)return s._proto._no_auth_received(t),!1;if(0===i.length)return s._changeConnectStatus(h4.Status.REGIFAIL),this.alert_type="danger",this.setErrorMessage(D("Sorry, the given provider does not support in band account registration. Please try with a different provider.")),!0;s._addSysHandler(e=>this.onRegistrationFields(e),null,"iq",null,null);let a=h6({type:"get"}).c("query",{xmlns:h4.NS.REGISTER}).tree();return a.setAttribute("id",s.getUniqueId("sendIQ")),s.send(a),s.connected=!1,!0}onRegistrationFields(e){return"error"===e.getAttribute("type")?(this.reportErrors(e),T.hi.settings.get("registration_domain")?this.status=3:this.status=0):(this.setFields(e),1===this.status&&this.renderRegistrationForm(e)),!1}reset(e){Object.assign(this,{fields:{},urls:[],title:"",instructions:"",registered:!1,_registering:!1,domain:null,form_type:null}),e&&Object.assign(this,e)}onFormSubmission(e){e?.preventDefault?.();let t=e.target;null===t.querySelector("input[name=domain]")?this.submitRegistrationForm(t):this.onProviderChosen(t)}onProviderChosen(e){let t=e.querySelector("input[name=domain]")?.value;if(t){let s=new FormData(e),r=null;if(T.hi.settings.get("show_connection_url_input"))if((r=s.get("connection-url")).startsWith("wss:"))T.hi.settings.set("websocket_url",r);else if(r.startsWith("https:"))T.hi.settings.set("bosh_service_url",r);else{this.alert_message=D("Invalid connection URL, only HTTPS and WSS accepted"),this.alert_type="danger",this.status=0,this.requestUpdate();return}this.fetchRegistrationForm(t.trim(),r?.trim())}else this.status=0}fetchRegistrationForm(e,t){return this.status=1,this.reset({_registering:!0,domain:h4.getDomainFromJid(e),service_url:t}),T.hi.connection.init(),T.hi.connection.get()?.connect(this.domain,"",(e,t)=>this.onConnectStatusChanged(e,t)),!1}onConnectStatusChanged(e,t){if(T.cM.debug("converse-register: onConnectStatusChanged"),[h4.Status.DISCONNECTED,h4.Status.CONNFAIL,h4.Status.REGIFAIL,h4.Status.NOTACCEPTABLE,h4.Status.CONFLICT].includes(e))T.cM.warn(`Problem during registration: Strophe.Status is ${h8[e]}`),this.abortRegistration(t);else if(e===h4.Status.REGISTERED){if(T.cM.debug("Registered successfully."),T.hi.connection.get().reset(),["converse/login","converse/register"].includes(window.location.hash)&&history.pushState(null,"",window.location.pathname),hY("login"),this.fields.password&&this.fields.username){let e=T.hi.connection.get();e.connect(this.fields.username.toLowerCase()+"@"+this.domain.toLowerCase(),this.fields.password,e.onConnectStatusChanged),this.setFeedbackMessage(D("Now logging you in"))}else this.setFeedbackMessage(D("Registered successfully"));this.reset()}}getLegacyFormFields(){return[...Object.keys(this.fields).map(e=>"username"===e?to({domain:` @${this.domain}`,name:e,type:"text",label:e,value:"",required:!0}):ti({label:e,name:e,placeholder:e,required:!0,type:"password"===e||"email"===e?e:"text",value:""})),...this.urls.map(e=>tn({label:"",value:e}))]}getFormFields(e){if("xform"!==this.form_type)return this.getLegacyFormFields();{let{fields:t}=T.fQ.parseXForm(e);return t?.map(e=>T.u.xFormField2TemplateResult(e,{domain:this.domain}))??[]}}renderRegistrationForm(e){this.form_fields=this.getFormFields(e),this.status=2}async reportErrors(e){if(await T.fQ.parseErrorStanza(e) instanceof T.R0.ConflictError)return void this.setErrorMessage(`${D("Registration failed.")} ${D("Please try a different username.")}`);let t=Array.from(e.querySelectorAll("error"));t.length?this.setErrorMessage(`${D("Registration failed.")}${t.reduce((e,t)=>`${e} ${t.textContent}`,"")}`):this.setErrorMessage(D("The provider rejected your registration attempt. Please check the values you entered for correctness."))}renderProviderChoiceForm(e){e?.preventDefault?.();let t=T.hi.connection.get();t._proto._abortAllRequests(),t.reset(),this.status=0}abortRegistration(e){let t=T.hi.connection.get();if(t._proto._abortAllRequests(),t.reset(),[1,2].includes(this.status)&&T.hi.settings.get("registration_domain"))return void this.fetchRegistrationForm(T.hi.settings.get("registration_domain"));this.alert_message=e,this.alert_type="danger",this.status=0,this.requestUpdate()}submitRegistrationForm(e){let t=h3(":input:not([type=button]):not([type=submit])",e),s=h6({type:"set",id:T.u.getUniqueId()}).c("query",{xmlns:h4.NS.REGISTER});"xform"===this.form_type?(s.c("x",{xmlns:h4.NS.XFORM,type:"submit"}),t.map(e=>T.u.webForm2xForm(e)).filter(e=>e).forEach(e=>s.cnode(e).up())):t.forEach(e=>s.c(e.getAttribute("name"),{},e.value));let r=T.hi.connection.get();r._addSysHandler(e=>this.#p(e),null,"iq",null,null),r.send(s),this.setFields(s.tree())}setFields(e){let t=e.querySelector("query"),s=h3(`x[xmlns="${h4.NS.XFORM}"]`,t);s.length>0?this.setFieldsFromXForm(s.pop()):this.setFieldsFromLegacy(t)}setFieldsFromLegacy(e){[].forEach.call(e.children,e=>{if("instructions"===e.tagName.toLowerCase()){this.instructions=h4.getText(e);return}if("x"===e.tagName.toLowerCase()){"jabber:x:oob"===e.getAttribute("xmlns")&&this.urls.concat(h3("url",e).map(e=>e.textContent));return}this.fields[e.tagName.toLowerCase()]=h4.getText(e)}),this.form_type="legacy"}setFieldsFromXForm(e){this.title=e.querySelector("title")?.textContent??"",this.instructions=e.querySelector("instructions")?.textContent??"",e.querySelectorAll("field").forEach(e=>{let t=e.getAttribute("var");t?this.fields[t.toLowerCase()]=e.querySelector("value")?.textContent??"":T.cM.warn("Found field we couldn't parse")}),this.form_type="xform"}#p(e){let t=T.hi.connection.get();if("error"===e.getAttribute("type")){T.cM.info("Registration failed."),this.reportErrors(e);let s=e.getElementsByTagName("error");if(1!==s.length)return t._changeConnectStatus(h4.Status.REGIFAIL,"unknown"),!1;let r=s[0].firstElementChild.tagName.toLowerCase();"conflict"===r?t._changeConnectStatus(h4.Status.CONFLICT,r):"not-acceptable"===r?t._changeConnectStatus(h4.Status.NOTACCEPTABLE,r):t._changeConnectStatus(h4.Status.REGIFAIL,r)}else t._changeConnectStatus(h4.Status.REGISTERED,null);return!1}}T.hi.elements.define("converse-registration-form",h5);class h9 extends eV{render(){let e=D("Create an account"),t=D("Don't have a chat account?");return this.shouldShow()?eE`

    ${t}

    `:""}shouldShow(){return T.hi.settings.get("allow_registration")&&!T.hi.settings.get("auto_login")&&T.Tk.pluggable.plugins["converse-register"].enabled(T.Tk)}}T.hi.elements.define("converse-register-link",h9);let{Strophe:h7}=T.Qr.env,{CONNECTION_STATUS:me}=T._G;h7.addNamespace("REGISTER","jabber:iq:register");let mt=Object.keys(h7.Status).reduce((e,t)=>Math.max(e,h7.Status[t]),0);h7.Status.REGIFAIL=mt+1,h7.Status.REGISTERED=mt+2,h7.Status.CONFLICT=mt+3,h7.Status.NOTACCEPTABLE=mt+5,T.Qr.plugins.add("converse-register",{dependencies:["converse-controlbox"],enabled:()=>!0,initialize(){me[h7.Status.REGIFAIL]="REGIFAIL",me[h7.Status.REGISTERED]="REGISTERED",me[h7.Status.CONFLICT]="CONFLICT",me[h7.Status.NOTACCEPTABLE]="NOTACCEPTABLE",T.hi.settings.extend({allow_registration:!0,domain_placeholder:D(" e.g. conversejs.org"),providers_link:"https://providers.xmpp.net/",registration_domain:""}),Object.assign(T.Tk.exports,{RegisterLink:h9,RegistrationForm:h5}),hX(),addEventListener("hashchange",hX)}});let{Strophe:ms}=T.Qr.env,{OPENED:mr}=T._G;class mi extends T.Hn{defaults(){return{muc_domain:T.hi.settings.get("muc_domain"),toggle_state:mr,collapsed_domains:[]}}initialize(){super.initialize(),T.hi.settings.listen.on("change:muc_domain",e=>this.setDomain(e))}setDomain(e){T.hi.settings.get("locked_muc_domain")||this.save("muc_domain",ms.getDomainFromJid(e))}}let{Strophe:mn,$iq:mo,sizzle:ma}=T.Qr.env;mn.addNamespace("MUCSEARCH","https://xmlns.zombofant.net/muclumbus/search/1.0");let ml={};async function mc(e){let t,s=T.hi.settings.get("muc_search_service"),r=mo({type:"get",from:T.Tk.session.get("bare_jid"),to:s}).c("search",{xmlns:mn.NS.MUCSEARCH}).c("set",{xmlns:mn.NS.RSM}).c("max").t(10).up().up().c("x",{xmlns:mn.NS.XFORM,type:"submit"}).c("field",{var:"FORM_TYPE",type:"hidden"}).c("value").t("https://xmlns.zombofant.net/muclumbus/search/1.0#params").up().up().c("field",{var:"q",type:"text-single"}).c("value").t(e).up().up().c("field",{var:"sinname",type:"boolean"}).c("value").t("true").up().up().c("field",{var:"sindescription",type:"boolean"}).c("value").t("false").up().up().c("field",{var:"sinaddr",type:"boolean"}).c("value").t("true").up().up().c("field",{var:"min_users",type:"text-single"}).c("value").t("1").up().up().c("field",{var:"key",type:"list-single"}).c("value").t("address").up().c("option").c("value").t("nusers").up().up().c("option").c("value").t("address");try{t=await T.hi.sendIQ(r)}catch(e){return T.cM.error(e),[]}return ma(`result[xmlns="${mn.NS.MUCSEARCH}"] item`,t).map(e=>{let t=e.getAttribute("address");return{label:`${e.querySelector("name")?.textContent} (${t})`,value:t}})}function md(e){return ml[e]||(ml[e]=mc(e)),ml[e]}var mu=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/muc-views/styles/add-muc-modal.scss"),mh={};mh.styleTagTransform=A(),mh.setAttributes=w(),mh.insert=y().bind(null,"head"),mh.domAPI=v(),mh.insertStyleElement=S(),f()(mu.Z,mh),mu.Z&&mu.Z.locals&&mu.Z.locals;let mm=T.Qr.env.utils,{Strophe:mp}=T.Qr.env;T.hi.elements.define("converse-add-muc-modal",class extends nT{initialize(){super.initialize(),this.requestUpdate(),this.addEventListener("shown.bs.modal",()=>{this.querySelector('input[name="chatroom"]')?.focus()},!1)}renderModal(){return(e=>{let t,s=D("Join");t=T.hi.settings.get("locked_muc_domain")?D("Groupchat name"):D("Groupchat name or address");let r=T.hi.settings.get("muc_roomid_policy_hint"),i=T.hi.settings.get("muc_search_service");return eE`
    ${i?eE``:""}
    ${r?eE`
    ${cv(cf.sanitize(r,{ALLOWED_TAGS:["b","br","em"]}))}
    `:""}
    ${!T.hi.settings.get("locked_muc_nickname")?(()=>{let e=D("Nickname"),t=D("This field is required");return eE`
    `})():""}
    `})(this)}getModalTitle(){return D("Enter a new Groupchat")}parseRoomDataFromEvent(e){let t,s=new FormData(e),r=s.get("chatroom")?.trim();if(T.hi.settings.get("locked_muc_nickname")){if(!(t=T.Tk.exports.getDefaultMUCNickname()))throw Error("Using locked_muc_nickname but no nickname found!")}else t=s.get("nickname").trim();return{jid:r,nick:t}}normalizeNode(e){return e.trim().replace(/\s+/g,"-").replace(/\u0142/g,"l").replace(/[^\x00-\x7F]/g,e=>e.normalize("NFD").replace(/[\u0300-\u036f]/g,"")).replace(/[^a-zA-Z0-9-]/g,"-").replace(/-+/g,"-").replace(/[^a-zA-Z0-9]$/g,"").toLowerCase()}async openChatRoom(e){let t;e.preventDefault();let s=this.querySelector("converse-autocomplete");if((await s.onChange()).error_message)return;let{escapeNode:r,getNodeFromJid:i,getDomainFromJid:o}=mp,a=e.target,l=this.parseRoomDataFromEvent(a),c={nick:l.nick??void 0};if(T.hi.settings.get("locked_muc_domain")||!mm.isValidJID(l.jid)){let e=await mm.muc.getDefaultMUCService();e&&(c.name=l.jid,c.auto_configure=!0,c.roomconfig={roomname:l.jid},t=`${this.normalizeNode(l.jid)}@${e}`.toLowerCase())}t||(t=`${r(i(l.jid))}@${o(l.jid)}`.toLowerCase()),T.hi.rooms.open(t,{...c,jid:t},!0),a.reset(),this.modal.hide()}async validateMUCJID(e){if(0===e.length)return D("Invalid groupchat address, it cannot be empty.");if(e.split("/").length-1>0)return D("Invalid groupchat address, a forward slash is not allowed.");if(e.split("@").length-1>1)return D("Invalid groupchat address, more than one @ sign is not allowed.");if(e.startsWith("@")||e.endsWith("@"))return D("Invalid groupchat address, it cannot start or end with an @ sign.");if(!e.includes("@")&&!await mm.muc.getDefaultMUCService())return D("No default groupchat service found. You'll need to specify the full address, for example room@conference.example.org");let t=T.hi.settings.get("muc_roomid_policy");if(t&&T.hi.settings.get("muc_domain")){(T.hi.settings.get("locked_muc_domain")||!mm.isValidJID(e))&&(e=`${mp.escapeNode(e)}@${T.hi.settings.get("muc_domain")}`);let s=mp.getNodeFromJid(e),r=mp.getDomainFromJid(e);if(T.hi.settings.get("muc_domain")===r&&!t.test(s))return D("Groupchat id is invalid.")}return""}});let{Strophe:mf,$iq:mg,sizzle:mv}=T.Qr.env,{getAttributes:m_}=T.u;T.hi.elements.define("converse-muc-list-modal",class extends nT{constructor(e){super(e),this.items=[],this.loading_items=!1}initialize(){super.initialize(),this.listenTo(this.model,"change:muc_domain",this.onDomainChange),this.listenTo(this.model,"change:feedback_text",()=>this.requestUpdate()),this.addEventListener("shown.bs.modal",()=>T.hi.settings.get("locked_muc_domain")&&this.updateRoomsList()),this.model.save("feedback_text","")}renderModal(){let e;return e=Object.assign(this.model.toJSON(),{show_form:!T.hi.settings.get("locked_muc_domain"),server_placeholder:this.model.get("muc_domain")||D("conference.example.org"),items:this.items,loading_items:this.loading_items,openRoom:e=>this.openRoom(e),setDomainFromEvent:e=>this.setDomainFromEvent(e),submitForm:e=>this.showRooms(e),toggleRoomInfo:e=>this.toggleRoomInfo(e)}),eE`${e.show_form?(e=>{let t=D("Show groupchats"),s=D("Server address");return eE`
    `})(e):""}
      ${e.loading_items?eE`
    • ${iI()}
    • `:""} ${e.feedback_text?eE`
    • ${e.feedback_text}
    • `:""} ${oX(e.items,e=>e.jid,t=>((e,t)=>{let s=D("Show more information on this groupchat"),r=D("Click to open this groupchat");return eE`
    • `})(e,t))}
    `}getModalTitle(){return D("Query for Groupchats")}openRoom(e){e.preventDefault();let t=e.target,s=t.getAttribute("data-room-jid"),r=t.getAttribute("data-room-name");this.modal.hide(),T.hi.rooms.open(s,{name:r},!0)}toggleRoomInfo(e){e.preventDefault();let t=T.u.ancestor(e.target,".room-item"),s=t.querySelector("div.room-info");s?(T.u.slideIn(s).then(T.u.removeElement),t.querySelector("a.room-info").classList.remove("selected")):(t.insertAdjacentElement("beforeend",T.u.getElementFromTemplateResult(iI())),T.hi.disco.info(e.target.getAttribute("data-room-jid"),null).then(e=>{t.querySelector("span.spinner").remove(),t.querySelector("a.room-info").classList.add("selected"),t.insertAdjacentHTML("beforeend",T.u.getElementFromTemplateResult((e=>{let t=D("Description:"),s=D("Groupchat XMPP Address:"),r=D("Participants:"),i=D("Features:"),o=D("Requires authentication"),a=D("Hidden"),l=D("Requires an invitation"),c=D("Moderated"),d=D("Non-anonymous"),u=D("Open"),h=D("Permanent"),m=D("Public"),p=D("Semi-anonymous"),f=D("Temporary"),g=D("Unmoderated");return eE`

    ${s} ${e.jid}

    ${t} ${e.desc}

    ${r} ${e.occ}

    ${i}

      ${e.passwordprotected?eE`
    • ${o}
    • `:""} ${e.hidden?eE`
    • ${a}
    • `:""} ${e.membersonly?eE`
    • ${l}
    • `:""} ${e.moderated?eE`
    • ${c}
    • `:""} ${e.nonanonymous?eE`
    • ${d}
    • `:""} ${e.open?eE`
    • ${u}
    • `:""} ${e.persistent?eE`
    • ${h}
    • `:""} ${e.publicroom?eE`
    • ${m}
    • `:""} ${e.semianonymous?eE`
    • ${p}
    • `:""} ${e.temporary?eE`
    • ${f}
    • `:""} ${e.unmoderated?eE`
    • ${g}
    • `:""}

    `})({jid:e.getAttribute("from"),desc:mv('field[var="muc#roominfo_description"] value',e).shift()?.textContent,occ:mv('field[var="muc#roominfo_occupants"] value',e).shift()?.textContent,hidden:mv('feature[var="muc_hidden"]',e).length,membersonly:mv('feature[var="muc_membersonly"]',e).length,moderated:mv('feature[var="muc_moderated"]',e).length,nonanonymous:mv('feature[var="muc_nonanonymous"]',e).length,open:mv('feature[var="muc_open"]',e).length,passwordprotected:mv('feature[var="muc_passwordprotected"]',e).length,persistent:mv('feature[var="muc_persistent"]',e).length,publicroom:mv('feature[var="muc_publicroom"]',e).length,semianonymous:mv('feature[var="muc_semianonymous"]',e).length,temporary:mv('feature[var="muc_temporary"]',e).length,unmoderated:mv('feature[var="muc_unmoderated"]',e).length})))}).catch(e=>T.cM.error(e)))}onDomainChange(){T.hi.settings.get("auto_list_rooms")&&this.updateRoomsList()}onRoomsFound(e){this.loading_items=!1;let t=e?mv("query item",e):[];return t.length?(this.model.set({feedback_text:D("Groupchats found")},{silent:!0}),this.items=t.map(m_)):(this.items=[],this.model.set({feedback_text:D("No groupchats found")},{silent:!0})),this.requestUpdate(),!0}updateRoomsList(){let e=mg({to:this.model.get("muc_domain"),from:T.hi.connection.get().jid,type:"get"}).c("query",{xmlns:mf.NS.DISCO_ITEMS});T.hi.sendIQ(e).then(e=>this.onRoomsFound(e)).catch(()=>this.onRoomsFound())}showRooms(e){e.preventDefault(),this.loading_items=!0,this.requestUpdate();let t=new FormData(e.target);this.model.setDomain(t.get("server")),this.updateRoomsList()}setDomainFromEvent(e){this.model.setDomain(e.target.value)}setNick(e){this.model.save({nick:e.target.value})}});var my=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/roomslist/styles/roomsgroups.scss"),mb={};mb.styleTagTransform=A(),mb.setAttributes=w(),mb.insert=y().bind(null,"head"),mb.domAPI=v(),mb.insertStyleElement=S(),f()(my.Z,mb),my.Z&&my.Z.locals&&my.Z.locals;let{CLOSED:mw}=T._G,{isUniView:mj}=T.u;function mS(e){return mj()&&!e.get("hidden")}function mx(e,t){let s=D("Leave this groupchat"),r=t.get("num_unread_general")||t.get("has_activity");return eE`
  • ${t.get("num_unread")?eE`${o5(t)}`:t.get("has_activity")?eE``:""} ${t.getDisplayName()}
  • `}let{Strophe:mA}=T.Qr.env,{initStorage:mE}=T.u,{CHATROOMS_TYPE:m$,CLOSED:mk,OPENED:mC}=T._G;function mT(){return window.matchMedia("(prefers-color-scheme: dark)").matches?T.hi.settings.get("dark_theme"):T.hi.settings.get("theme")}function mM(){if(!T.hi.settings.get("auto_insert"))return;let e=T.hi.settings.get("root");if(!e.querySelector("converse-root")&&!e.matches?.("converse-root")){let t=document.createElement("converse-root"),s=e.querySelector("body");s?s.appendChild(t):e.appendChild(t)}}T.hi.elements.define("converse-rooms-list",class extends eV{initialize(){let e=T.Tk.session.get("bare_jid"),t=`converse.roomspanel${e}`;this.model=new mi({id:t}),T.Tk.state.roomslist=this.model,mE(this.model,t),this.model.fetch();let{chatboxes:s}=T.Tk.state;this.listenTo(s,"add",this.renderIfChatRoom),this.listenTo(s,"remove",this.renderIfChatRoom),this.listenTo(s,"destroy",this.renderIfChatRoom),this.listenTo(s,"change",this.renderIfRelevantChange),this.listenTo(s,"vcard:add",()=>this.requestUpdate()),this.listenTo(s,"vcard:change",()=>this.requestUpdate()),this.listenTo(this.model,"change",()=>this.requestUpdate()),this.requestUpdate()}render(){return(e=>{let t=T.hi.settings.get("muc_grouped_by_domain"),s=e.getRoomsToShow(),r=D("Click to toggle the list of open groupchats"),i=D("Groupchats"),o=D("Query server"),a=D("Add groupchat"),l=D("Bookmarks"),c=e.model.get("toggle_state")===mw,d=[eE`${a}`,eE`${o}`,eE`${l}`];return eE`
      ${t?function(e,t){let s=new Map;for(let e of t){let t=e.get("jid").split("@").at(-1).toLowerCase();s.has(t)?s.get(t).push(e):s.set(t,[e])}let r=Array.from(s.keys());return r.sort(),r.map(t=>(function(e,t,s){let r=D("Click to hide these rooms"),i=e.model.get("collapsed_domains").includes(t);return eE`
      ${t}
        ${s.map(t=>mx(e,t))}
      `})(e,t,s.get(t)))}(e,s):s.map(t=>mx(e,t))}
    `})(this)}renderIfChatRoom(e){T.u.muc.isChatRoom(e)&&this.requestUpdate()}renderIfRelevantChange(e){let t=["bookmarked","hidden","name","num_unread","num_unread_general","has_activity"],s=e.changed||{};T.u.muc.isChatRoom(e)&&Object.keys(s).filter(e=>t.includes(e)).length&&this.requestUpdate()}getRoomsToShow(){let{chatboxes:e}=T.Tk.state,t=e.filter(e=>e.get("type")===m$&&!e.get("closed"));return t.sort((e,t)=>e.getDisplayName().toLowerCase()<=t.getDisplayName().toLowerCase()?-1:1),t}async openRoom(e){e.preventDefault();let t=T.u.ancestor(e.target,".open-room"),s=t.getAttribute("data-room-name"),r=t.getAttribute("data-room-jid"),i={name:s||mA.unescapeNode(mA.getNodeFromJid(r))||r};await T.hi.rooms.open(r,i,!0)}async closeRoom(e){e.preventDefault();let t=e.currentTarget,s=t.getAttribute("data-room-name"),r=t.getAttribute("data-room-jid");await T.hi.confirm(D("Confirm"),D("Are you sure you want to leave the groupchat %1$s?",s))&&(await T.hi.rooms.get(r)).close()}toggleRoomsList(e){e?.preventDefault?.();let t=this.querySelector(".open-rooms-list");this.model.get("toggle_state")===mk?T.u.slideOut(t).then(()=>this.model.save({toggle_state:mC})):T.u.slideIn(t).then(()=>this.model.save({toggle_state:mk}))}toggleDomainList(e,t){e?.preventDefault?.();let s=this.model.get("collapsed_domains");s.includes(t)?this.model.save({collapsed_domains:s.filter(e=>e!==t)}):this.model.save({collapsed_domains:[...s,t]})}}),T.Qr.plugins.add("converse-roomslist",{dependencies:["converse-singleton","converse-controlbox","converse-muc","converse-bookmarks"],initialize(){T.hi.settings.extend({muc_grouped_by_domain:!1}),T.hi.listen.on("clearSession",()=>{T.u.shouldClearCache(T.Tk)&&T.Tk.state.roomslist?.destroy()})}});var mO=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/rootview/styles/root.scss"),mN={};mN.styleTagTransform=A(),mN.setAttributes=w(),mN.insert=y().bind(null,"head"),mN.domAPI=v(),mN.insertStyleElement=S(),f()(mO.Z,mN),mO.Z&&mO.Z.locals&&mO.Z.locals;class mI extends eV{render(){let e=T.hi.settings.get("singleton")?["converse-singleton"]:[];return e.push(`converse-${T.hi.settings.get("view_mode")}`),eE`${T.hi.settings.get("show_background")?eE``:""}`}initialize(){this.setAttribute("id","conversejs"),this.setThemeAttributes();let e=T.hi.settings.get();this.listenTo(e,"change:view_mode",()=>this.setThemeAttributes()),this.listenTo(e,"change:singleton",()=>this.setThemeAttributes()),window.matchMedia("(prefers-color-scheme: dark)").addListener(()=>this.setThemeAttributes()),window.matchMedia("(prefers-color-scheme: light)").addListener(()=>this.setThemeAttributes())}setThemeAttributes(){let e=mT();this.className="",this.classList.add("container-fluid"),this.classList.add("g-0"),this.classList.add("conversejs"),this.classList.add(`converse-${T.hi.settings.get("view_mode")}`),this.classList.add(`theme-${e}`),this.setAttribute("data-bs-theme",e),this.setAttribute("data-converse-theme",e);let t=L.getLocale();this.setAttribute("lang",t),T.hi.settings.get("rtl_langs").includes(t)?this.setAttribute("dir","rtl"):this.setAttribute("dir","ltr"),this.requestUpdate()}}var mR=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/rootview/styles/background.scss"),mD={};mD.styleTagTransform=A(),mD.setAttributes=w(),mD.insert=y().bind(null,"head"),mD.domAPI=v(),mD.insertStyleElement=S(),f()(mR.Z,mD),mR.Z&&mR.Z.locals&&mR.Z.locals,T.hi.elements.define("converse-bg",class extends eV{static get properties(){return{logo:{type:Boolean}}}initialize(){this.setThemeAttributes();let e=T.hi.settings.get();this.listenTo(e,"change:view_mode",()=>this.setThemeAttributes()),this.listenTo(e,"change:singleton",()=>this.setThemeAttributes()),window.matchMedia("(prefers-color-scheme: dark)").addListener(()=>this.setThemeAttributes()),window.matchMedia("(prefers-color-scheme: light)").addListener(()=>this.setThemeAttributes())}render(){return eE`${"cyberpunk"===T.hi.settings.get("theme")?eE`
    ${[...Array(20).keys()].map(()=>eE`
    `)}
    ${[...Array(60).keys()].map(()=>eE`
    `)}
    `:""} ${this.hasAttribute("logo")?eE`
    converse.js
    ${"overlayed"===T.hi.settings.get("view_mode")?eE`
    `:""}
    `:""}`}setThemeAttributes(){let e=mT();this.classList.add(`theme-${e}`),this.setAttribute("data-converse-theme",e),this.setAttribute("data-bs-theme",e),this.requestUpdate()}}),T.Qr.plugins.add("converse-rootview",{initialize(){T.hi.settings.extend({auto_insert:!0,dark_theme:"dracula",rtl_langs:["ar","fa","he","ug"],show_background:!1,theme:"classic"}),T.hi.listen.on("chatBoxesInitialized",mM),T.hi.elements.define("converse-root",mI)}});let mL={dnd:D("This contact is busy"),online:D("This contact is online"),offline:D("This contact is offline"),unavailable:D("This contact is unavailable"),xa:D("This contact is away for an extended period"),away:D("This contact is away")};function mz(e){let t=D("Click to remove %1$s as a contact",e.model.getDisplayName());return eE`${D("Remove")}`}function mP(e){let t=D("Click to show more details about %1$s",e.model.getDisplayName());return eE`${D("Details")}`}class mU extends iM{constructor(){super(),this.model=null,this.observable="once"}static get properties(){return{...super.properties,model:{type:Object}}}initialize(){this.listenTo(this.model,"change",()=>this.requestUpdate()),this.listenTo(this.model,"highlight",()=>this.requestUpdate()),this.listenTo(this.model,"vcard:add",()=>this.requestUpdate()),this.listenTo(this.model,"vcard:change",()=>this.requestUpdate()),this.listenTo(this.model,"presence:change",()=>this.requestUpdate())}render(){if(this.model instanceof T.Tk.exports.RosterContact){if(!0===this.model.get("requesting"))return(e=>{let t=o5(e.model),s=e.model.get("jid"),r=e.model.getDisplayName(),i=D("Click to accept the contact request from %1$s (XMPP address: %2$s)",r,s),o=D("Click to decline the contact request from %1$s (XMPP address: %2$s)",r,s),a=D("Click to chat with %1$s (XMPP address: %2$s)",r,s),l=[eE`${D("Accept as contact")}`,mP(e),eE`${D("Remove")}`];return eE`${t?eE`${t}`:""} ${r} `})(this);else if(!this.model.get("subscription"))return(e=>{let t=o5(e.model),s=e.model.getDisplayName(),r=e.model.get("jid"),i=D("Click to chat with %1$s (XMPP address: %2$s)",s,r),o=[mP(e),function(e){let t=D("Click to add %1$s as a contact",e.model.getDisplayName());return eE`${D("Save as contact")}`}(e),...T.hi.settings.get("allow_contact_removal")?[mz(e)]:[]];return eE`${t?eE`${t}`:""} ${s} `})(this)}return(e=>{let t,s,r=T.Tk.session.get("bare_jid"),i=e.model.getStatus()||"offline";"online"===i?[t,s]=["fa fa-circle","chat-status-online"]:"dnd"===i?[t,s]=["fa fa-minus-circle","chat-status-busy"]:"away"===i?[t,s]=["fa fa-circle","chat-status-away"]:[t,s]=["fa fa-circle","chat-status-offline"];let o=r===e.model.get("jid"),a=mL[i],l=o5(e.model),c=e.model.getDisplayName({context:"roster"}),d=e.model.get("jid"),u=o?D("Click to chat with yourself"):D("Click to chat with %1$s (XMPP address: %2$s)",c,d),h=[mP(e),...T.hi.settings.get("allow_contact_removal")&&!o?[mz(e)]:[]];return eE`${["both","to"].includes(e.model.get("subscription"))?eE``:""} ${l?eE`${l}`:""} ${c} `})(this)}openChat(e){e?.preventDefault?.(),T.hi.chats.open(this.model.get("jid"),{},!0)}addContact(e){e?.preventDefault?.(),T.hi.modal.show("converse-add-contact-modal",{contact:this.model},e)}async removeContact(e){e?.preventDefault?.(),await a3(this.model,!0)}async showUserDetailsModal(e){e?.preventDefault?.(),e.preventDefault(),this.model instanceof T.Tk.exports.Profile?T.hi.modal.show("converse-profile-modal",{model:this.model},e):T.hi.modal.show("converse-user-details-modal",{model:this.model},e)}async blockContact(e){e?.preventDefault?.(),await a8(this.model)}async acceptRequest(e){e?.preventDefault?.(),T.hi.modal.show("converse-accept-contact-request-modal",{contact:this.model},e)}async declineRequest(e){e?.preventDefault?.(),a6(this.model)}}T.hi.elements.define("converse-roster-contact",mU);var mB=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/rosterview/modals/styles/add-contact.scss"),mF={};mF.styleTagTransform=A(),mF.setAttributes=w(),mF.insert=y().bind(null,"head"),mF.domAPI=v(),mF.insertStyleElement=S(),f()(mB.Z,mF),mB.Z&&mB.Z.locals&&mB.Z.locals;let{Strophe:mq}=T.Qr.env;class mH extends nT{constructor(){super(),this.contact=null}initialize(){super.initialize(),this.listenTo(this.contact,"change",()=>this.requestUpdate()),this.requestUpdate(),this.addEventListener("shown.bs.modal",()=>this.querySelector('input[name="jid"]')?.focus(),!1)}renderModal(){return(e=>{let t=D("Add"),s=D("name@example.org"),r=D("Groups"),i=D("Use commas to separate multiple values"),o=D("Name"),a=T.hi.settings.get("xhr_user_search_url"),l=D("XMPP Address"),c=a?D("Search name or XMPP address"):l;return eE``})(this)}getModalTitle(){return D("Add a Contact")}validateSubmission(e){return!e||e.split("@").filter(e=>!!e).length<2?(this.alert(D("Please enter a valid XMPP address"),"danger",!1),!1):!this.contact&&T.Tk.state.roster.get(mq.getBareJidFromJid(e))?(this.alert(D("This contact has already been added"),"danger",!1),!1):(this.alert(null),!0)}async afterSubmission(e,t,s){T.hi.contacts.add({jid:e,name:t,groups:s}).catch(e=>{T.cM.error(e),T.hi.toast.show("contact-add-error",{type:"danger",body:D("Sorry, something went wrong while adding the contact")})}),T.hi.chats.open(e,{},!0),this.alert(null),T.hi.toast.show("contact-added",{type:"success",body:D("Contact added successfully")}),this.modal.hide()}async addContactFromForm(e){let t;e.preventDefault();let s=e.target,r=new FormData(s),i=(r.get("jid")||"").trim();if(T.hi.settings.get("xhr_user_search_url")){let e=i.match(/^(.*) <(.*)>$/);if(!e)return void this.alert(D('Invalid value for the name and XMPP address. Please use the format "Name ".'),"danger",!1);t=e[1].trim(),i=e[2].trim()}else t=(r.get("name")||"").trim();if(this.validateSubmission(i)){let e=r.get("groups")?.split(",").map(e=>e.trim()).filter(e=>e)||[];this.afterSubmission(i,t,e),s.reset()}}}T.hi.elements.define("converse-add-contact-modal",mH);class mG extends nT{constructor(e){super(e),this.contact=null}initialize(){super.initialize(),this.listenTo(this.contact,"change",()=>this.requestUpdate()),this.requestUpdate(),this.addEventListener("shown.bs.modal",()=>this.querySelector('input[name="name"]')?.focus(),!1)}renderModal(){return(e=>{let t=D("Accept"),s=D("Groups"),r=D("Use commas to separate multiple values"),i=D("Name"),o=D("XMPP Address");return eE``})(this)}getModalTitle(){return D("Contact Request")}async acceptContactRequest(e){e.preventDefault();let t=new FormData(e.target),s=(t.get("name")||"").trim(),r=t.get("groups")?.split(",").map(e=>e.trim()).filter(e=>e)||[];try{await T.Tk.state.roster.sendContactAddIQ({jid:this.contact.get("jid"),name:s,groups:r}),this.contact.authorize().subscribe()}catch(e){T.cM.error(e),T.hi.toast.show("accept-request-error",{type:"danger",body:D("Sorry, something went wrong while accepting the contact request")});return}this.contact.save({nickname:s,groups:r}),T.hi.toast.show("accept-request-success",{type:"success",body:D("Successfully accepted the contact request")}),this.modal.hide()}}T.hi.elements.define("converse-accept-contact-request-modal",mG);class mW extends nT{initialize(){super.initialize(),this.listenTo(this.model,"change",()=>this.requestUpdate()),this.requestUpdate(),this.addEventListener("shown.bs.modal",()=>this.querySelector('input[name="jid"]')?.focus(),!1)}renderModal(){return(e=>{let t=D("Start Chat"),s=D("XMPP Address"),r=e.model.get("error");return eE``})(this)}getModalTitle(){return D("Start a new chat")}validateSubmission(e){return!e||e.split("@").filter(e=>!!e).length<2?(this.model.set("error",D("Please enter a valid XMPP address")),!1):(this.model.set("error",null),!0)}async afterSubmission(e,t){try{await T.hi.chats.open(t,{},!0)}catch(e){T.cM.error(e),this.model.set("error",D("Sorry, something went wrong"));return}this.model.clear(),this.modal.hide()}async startChatFromForm(e){e.preventDefault();let t=e.target,s=(new FormData(t).get("jid")||"").trim();this.validateSubmission(s)&&this.afterSubmission(t,s)}}T.hi.elements.define("converse-new-chat-modal",mW);class mZ extends nT{static get properties(){return{...super.properties,filter_text:{type:String}}}constructor(){super(),this.filter_text=""}async initialize(){super.initialize(),this.blocklist=await T.hi.blocklist.get(),this.listenTo(this.blocklist,"add",()=>this.requestUpdate()),this.listenTo(this.blocklist,"remove",()=>this.requestUpdate()),this.listenTo(this.blocklist,"change",()=>this.requestUpdate()),this.addEventListener("shown.bs.modal",()=>{this.querySelector('input[name="blocklist_filter"]')?.focus()},!1),this.requestUpdate()}renderModal(){if(!this.blocklist)return eE``;var e=this;if(!e.blocklist.length)return eE`

    ${D("No blocked XMPP addresses")}

    `;{let t=e.filter_text?e.blocklist.filter(t=>t.get("jid").toLowerCase().includes(e.filter_text.toLowerCase())):e.blocklist;return eE`
    ${e.blocklist.length>5?eE`

    ${D("%1$s blocked users shown",t.length)}

    `:""} ${t.length?eE`
    `:""}
    ${e.blocklist.length>5?eE`
    `:""}
      ${oX(t,e=>e.get("jid"),e=>eE`
    • `)}
    `}}getModalTitle(){return D("Blocklist")}async unblockUsers(e){e.preventDefault();let t=[...new FormData(e.target).entries()].filter(e=>"on"===e[1]).map(e=>e[0]);await T.hi.blocklist.remove(t);let s=t.length>1?D("Successfully unblocked %1$s XMPP addresses",t.length):D("Successfully unblocked one XMPP address");T.hi.toast.show("blocked",{type:"success",body:s})}toggleSelectAll(e){let t=e.target.checked;this.querySelectorAll('input[type="checkbox"]').forEach(e=>e.checked=t)}}T.hi.elements.define("converse-blocklist-modal",mZ);let{isUniView:mV}=T.u;function mQ(e){let t=e.get("jid"),s=[];if(mV()){let e=T.Tk.state.chatboxes.get(t);e&&!e.get("hidden")&&s.push("open")}let r=e.get("ask"),i=e.get("requesting"),o=e.get("subscription");return"subscribe"===r||"from"===o?s.push("pending-xmpp-contact"):!0===i?s.push("requesting-xmpp-contact"):("both"===o||"to"===o||T.u.isSameBareJID(t,T.hi.connection.get().jid))&&(s.push("current-xmpp-contact"),s.push(o),s.push(e.getStatus())),eE`
  • `}let mK=e=>{let t=D("Filter"),s=D("Filter by contact name"),r=D("Filter by group name"),i=D("Filter by status"),o=D("Any"),a=D("Unread"),{offline:l,xa:c,away:d,dnd:u,chat:h,online:m}=iB,p=e.model.get("state"),f=e.model.get("text"),g=e.model.get("type");return eE`
    `},{CLOSED:mJ}=T._G,{initStorage:mY}=T.u,{CLOSED:mX,OPENED:m1}=T._G;class m0 extends eV{async initialize(){let e=T.Tk.session.get("bare_jid"),t=`converse.contacts-panel${e}`;this.model=new T.Hn({id:t}),mY(this.model,t),this.model.fetch(),await T.hi.waitUntil("rosterInitialized");let{chatboxes:s,presences:r,roster:i}=T.Tk.state;this.listenTo(T.Tk,"rosterContactsFetched",()=>this.requestUpdate()),this.listenTo(r,"change:show",()=>this.requestUpdate()),this.listenTo(s,"change:hidden",()=>this.requestUpdate()),this.listenTo(i,"add",()=>this.requestUpdate()),this.listenTo(i,"destroy",()=>this.requestUpdate()),this.listenTo(i,"remove",()=>this.requestUpdate()),this.listenTo(i,"change",()=>this.requestUpdate()),this.listenTo(i,"presence:change",()=>this.requestUpdate()),this.listenTo(i.state,"change",()=>this.requestUpdate()),this.listenTo(this.model,"change",()=>this.requestUpdate()),T.hi.trigger("rosterViewInitialized")}render(){return(e=>{let t=D("Contacts"),s=D("Click to toggle contacts"),r=D("Add a contact"),i=D("Start a new chat"),o=D("Show block list"),{state:a}=T.Tk,l=[...a.roster||[],...T.hi.settings.get("show_self_in_roster")?[a.xmppstatus]:[]],c=l.reduce((e,t)=>li(e,t),{}),d=Object.keys(c).filter(t=>lr(t,e.model)),u=e.model.get("toggle_state")===mJ;d.sort(lo);let h=D("Show filter"),m=D("Hide filter"),p=e.model.get("filter_visible"),f=[];if(T.hi.settings.get("allow_contact_requests")&&f.push(eE`${r}`),T.hi.settings.get("allow_non_roster_messaging")&&f.push(eE`${i}`),f.push(eE`${o}`),l.length>5&&f.push(eE`${p?m:h}`),"debug"===T.hi.settings.get("loglevel")){let t=D("Re-sync contacts");f.push(eE`${t}`)}return eE`
    ${p?eE``:""} ${oX(d,e=>e,t=>{let s=c[t].filter(s=>ls(s,t,e.model));return s.sort(ln),s.length?(e=>{let t=D("Click to hide these contacts"),s=T.Tk.state.roster.state.get("collapsed_groups");return eE`
    ${e.name}  ${e.contacts[0].get("requesting")?eE``:""}
      ${oX(e.contacts,e=>e.get("jid"),mQ)}
    `})({contacts:s,name:t}):""})}
    `})(this)}showAddContactModal(e){T.hi.modal.show("converse-add-contact-modal",{model:new T.Hn},e)}showNewChatModal(e){T.hi.modal.show("converse-new-chat-modal",{model:new T.Hn},e)}showBlocklistModal(e){T.hi.modal.show("converse-blocklist-modal",{},e)}async syncContacts(e){e?.preventDefault();let{roster:t}=T.Tk.state;this.syncing_contacts=!0,this.requestUpdate(),t.data.save("version",null),await t.fetchFromServer(),T.hi.user.presence.send(),this.syncing_contacts=!1,this.requestUpdate()}toggleRoster(e){e?.preventDefault?.();let t=this.querySelector(".list-container.roster-contacts");this.model.get("toggle_state")===mX?tj(t).then(()=>this.model.save({toggle_state:m1})):tS(t).then(()=>this.model.save({toggle_state:mX}))}toggleFilter(e){e?.preventDefault?.(),this.model.save({filter_visible:!this.model.get("filter_visible")})}}T.hi.elements.define("converse-roster",m0);var m2=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/rosterview/styles/approval-alert.scss"),m4={};m4.styleTagTransform=A(),m4.setAttributes=w(),m4.insert=y().bind(null,"head"),m4.domAPI=v(),m4.insertStyleElement=S(),f()(m2.Z,m4),m2.Z&&m2.Z.locals&&m2.Z.locals;let{u:m3}=T.Qr.env;class m6 extends eV{static properties={contact:{type:T.Dn}};constructor(){super(),this.contact=null}initialize(){super.initialize(),this.listenTo(this.contact,"change",()=>this.requestUpdate())}render(){if(this.contact.get("requesting")){let e;return e=this,e.contact?eE`

    ${D("%1$s would like to be your contact",e.contact.getDisplayName())}

    `:""}if(m3.roster.isUnsavedContact(this.contact)){let e;return this.contact.get("hide_contact_add_alert")?"":(e=this,e.contact?eE`

    ${D("Would you like to add %1$s as a contact?",e.contact.getDisplayName())}

    `:"")}return""}async acceptRequest(e){e.preventDefault(),T.hi.modal.show("converse-accept-contact-request-modal",{contact:this.contact},e)}async declineRequest(e){e.preventDefault(),a6(this.contact)}showAddContactModal(e){e.preventDefault(),T.hi.modal.show("converse-add-contact-modal",{contact:this.contact},e)}async close(e){e.preventDefault(),this.contact.save({hide_contact_add_alert:!0})}}T.hi.elements.define("converse-contact-approval-alert",m6);var m8=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/rosterview/styles/roster.scss"),m5={};m5.styleTagTransform=A(),m5.setAttributes=w(),m5.insert=y().bind(null,"head"),m5.domAPI=v(),m5.insertStyleElement=S(),f()(m8.Z,m5),m8.Z&&m8.Z.locals&&m8.Z.locals,T.Qr.plugins.add("converse-rosterview",{dependencies:["converse-roster","converse-modal","converse-chatboxviews","converse-blocklist"],initialize(){T.hi.settings.extend({allow_contact_removal:!0,hide_offline_users:!1,roster_groups:!0,xhr_user_search_url:null}),T.hi.promises.add("rosterViewInitialized");let e={AcceptContactRequestModal:mG,AddContactModal:mH,BlockListModal:mZ,NewChatModal:mW,RosterContactView:mU,RosterFilter:T.ax,RosterView:m0};Object.assign(T.Tk,e),Object.assign(T.Tk.exports,e),T.hi.listen.on("chatBoxesInitialized",()=>{T.Tk.state.chatboxes.on("destroy",e=>a9(e.get("jid"))),T.Tk.state.chatboxes.on("change:hidden",e=>a9(e.get("jid")))})}});var m9=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/singleton/singleton.scss"),m7={};m7.styleTagTransform=A(),m7.setAttributes=w(),m7.insert=y().bind(null,"head"),m7.domAPI=v(),m7.insertStyleElement=S(),f()(m9.Z,m7),m9.Z&&m9.Z.locals&&m9.Z.locals,T.Qr.plugins.add("converse-singleton",{enabled:e=>e.api.settings.get("singleton"),initialize(){T.hi.settings.extend({allow_logout:!1,allow_muc_invitations:!1,hide_muc_server:!0});let e=T.hi.settings.get("auto_join_rooms"),t=T.hi.settings.get("auto_join_private_chats");if(!Array.isArray(e)&&!Array.isArray(t))throw Error("converse-singleton: auto_join_rooms must be an Array");if(0===e.length&&0===t.length)throw Error("If you set singleton set to true, you need to specify auto_join_rooms or auto_join_private_chats");if(e.length>0&&t.length>0)throw Error("It doesn't make sense to have singleton set to true and auto_join_rooms or auto_join_private_chats set to more then one, since only one chat room may be open at any time.")}}),T.hi.elements.define("converse-dragresize",class extends eV{render(){return eE`
    `}}),T.Qr.plugins.add("converse-dragresize",{initialize(){T.hi.settings.extend({allow_dragresize:!0,dragresize_top_margin:0}),T.hi.listen.on("registeredGlobalEventHandlers",cW),T.hi.listen.on("unregisteredGlobalEventHandlers",cZ),T.hi.listen.on("startDiagonalResize",cV),T.hi.listen.on("startHorizontalResize",cV),T.hi.listen.on("startVerticalResize",cV),T.hi.listen.on("shouldDestroyOnClose",c2)}});var pe=s("./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[3]!./node_modules/@rspack/core/dist/cssExtractLoader.js!./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].use[3]!./src/plugins/fullscreen/styles/fullscreen.scss"),pt={};pt.styleTagTransform=A(),pt.setAttributes=w(),pt.insert=y().bind(null,"head"),pt.domAPI=v(),pt.insertStyleElement=S(),f()(pe.Z,pt),pe.Z&&pe.Z.locals&&pe.Z.locals;let{isUniView:ps}=T.u;T.Qr.plugins.add("converse-fullscreen",{enabled:()=>ps(),initialize(){T.hi.settings.extend({chatview_avatar_height:50,chatview_avatar_width:50,hide_open_bookmarks:!0,show_controlbox_by_default:!0,sticky_controlbox:!0})}}),T.Tk.__=L.__,Object.assign(T.Qr.env,{i18n:L}),Object.assign(T.Tk.env,{i18n:L}),T.Tk.exports.CustomElement=eV;let pr=T.Qr.initialize;T.Qr.initialize=function(e,t){return Array.isArray(e.whitelisted_plugins)?e.whitelisted_plugins=e.whitelisted_plugins.concat(iU):e.whitelisted_plugins=iU,pr(e,t)};let pi=T.Qr},"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":function(e){"use strict";var t=[];function s(e){for(var s=-1,r=0;r0?" ".concat(s.layer):""," {")),r+=s.css,i&&(r+="}"),s.media&&(r+="}"),s.supports&&(r+="}"),(o=s.sourceMap)&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),e.styleTagTransform(r,t,e.options)},remove:function(){!function(e){if(null!==e.parentNode)e.parentNode.removeChild(e)}(t)}}}},"./node_modules/style-loader/dist/runtime/styleTagTransform.js":function(e){"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},"./src/i18n/locales lazy recursive ^\\.\\/.*\\/LC_MESSAGES\\/converse\\.po$":function(e,t,s){var r={"./fa/LC_MESSAGES/converse.po":["./src/i18n/locales/fa/LC_MESSAGES/converse.po","7625"],"./ko/LC_MESSAGES/converse.po":["./src/i18n/locales/ko/LC_MESSAGES/converse.po","2701"],"./es/LC_MESSAGES/converse.po":["./src/i18n/locales/es/LC_MESSAGES/converse.po","8958"],"./pt_BR/LC_MESSAGES/converse.po":["./src/i18n/locales/pt_BR/LC_MESSAGES/converse.po","629"],"./ca/LC_MESSAGES/converse.po":["./src/i18n/locales/ca/LC_MESSAGES/converse.po","6034"],"./uk/LC_MESSAGES/converse.po":["./src/i18n/locales/uk/LC_MESSAGES/converse.po","967"],"./af/LC_MESSAGES/converse.po":["./src/i18n/locales/af/LC_MESSAGES/converse.po","762"],"./mr/LC_MESSAGES/converse.po":["./src/i18n/locales/mr/LC_MESSAGES/converse.po","1831"],"./sq/LC_MESSAGES/converse.po":["./src/i18n/locales/sq/LC_MESSAGES/converse.po","5079"],"./he/LC_MESSAGES/converse.po":["./src/i18n/locales/he/LC_MESSAGES/converse.po","7459"],"./da/LC_MESSAGES/converse.po":["./src/i18n/locales/da/LC_MESSAGES/converse.po","7873"],"./pl/LC_MESSAGES/converse.po":["./src/i18n/locales/pl/LC_MESSAGES/converse.po","8810"],"./ta/LC_MESSAGES/converse.po":["./src/i18n/locales/ta/LC_MESSAGES/converse.po","1888"],"./zh_CN/LC_MESSAGES/converse.po":["./src/i18n/locales/zh_CN/LC_MESSAGES/converse.po","5758"],"./fr/LC_MESSAGES/converse.po":["./src/i18n/locales/fr/LC_MESSAGES/converse.po","5518"],"./de/LC_MESSAGES/converse.po":["./src/i18n/locales/de/LC_MESSAGES/converse.po","138"],"./bg/LC_MESSAGES/converse.po":["./src/i18n/locales/bg/LC_MESSAGES/converse.po","4335"],"./hi/LC_MESSAGES/converse.po":["./src/i18n/locales/hi/LC_MESSAGES/converse.po","7281"],"./nl_BE/LC_MESSAGES/converse.po":["./src/i18n/locales/nl_BE/LC_MESSAGES/converse.po","2887"],"./zh_TW/LC_MESSAGES/converse.po":["./src/i18n/locales/zh_TW/LC_MESSAGES/converse.po","432"],"./be/LC_MESSAGES/converse.po":["./src/i18n/locales/be/LC_MESSAGES/converse.po","5866"],"./gl/LC_MESSAGES/converse.po":["./src/i18n/locales/gl/LC_MESSAGES/converse.po","8867"],"./eu/LC_MESSAGES/converse.po":["./src/i18n/locales/eu/LC_MESSAGES/converse.po","2698"],"./ug/LC_MESSAGES/converse.po":["./src/i18n/locales/ug/LC_MESSAGES/converse.po","881"],"./it/LC_MESSAGES/converse.po":["./src/i18n/locales/it/LC_MESSAGES/converse.po","1503"],"./lt/LC_MESSAGES/converse.po":["./src/i18n/locales/lt/LC_MESSAGES/converse.po","6986"],"./ru/LC_MESSAGES/converse.po":["./src/i18n/locales/ru/LC_MESSAGES/converse.po","2343"],"./cs/LC_MESSAGES/converse.po":["./src/i18n/locales/cs/LC_MESSAGES/converse.po","3040"],"./ja/LC_MESSAGES/converse.po":["./src/i18n/locales/ja/LC_MESSAGES/converse.po","5452"],"./sv/LC_MESSAGES/converse.po":["./src/i18n/locales/sv/LC_MESSAGES/converse.po","1250"],"./eo/LC_MESSAGES/converse.po":["./src/i18n/locales/eo/LC_MESSAGES/converse.po","2"],"./tr/LC_MESSAGES/converse.po":["./src/i18n/locales/tr/LC_MESSAGES/converse.po","8379"],"./ro/LC_MESSAGES/converse.po":["./src/i18n/locales/ro/LC_MESSAGES/converse.po","1268"],"./th/LC_MESSAGES/converse.po":["./src/i18n/locales/th/LC_MESSAGES/converse.po","2766"],"./mn/LC_MESSAGES/converse.po":["./src/i18n/locales/mn/LC_MESSAGES/converse.po","969"],"./oc/LC_MESSAGES/converse.po":["./src/i18n/locales/oc/LC_MESSAGES/converse.po","8723"],"./hu/LC_MESSAGES/converse.po":["./src/i18n/locales/hu/LC_MESSAGES/converse.po","1859"],"./pt/LC_MESSAGES/converse.po":["./src/i18n/locales/pt/LC_MESSAGES/converse.po","3043"],"./vi/LC_MESSAGES/converse.po":["./src/i18n/locales/vi/LC_MESSAGES/converse.po","1103"],"./nb/LC_MESSAGES/converse.po":["./src/i18n/locales/nb/LC_MESSAGES/converse.po","9196"],"./si/LC_MESSAGES/converse.po":["./src/i18n/locales/si/LC_MESSAGES/converse.po","3701"],"./ar/LC_MESSAGES/converse.po":["./src/i18n/locales/ar/LC_MESSAGES/converse.po","6450"],"./fi/LC_MESSAGES/converse.po":["./src/i18n/locales/fi/LC_MESSAGES/converse.po","7470"],"./nl/LC_MESSAGES/converse.po":["./src/i18n/locales/nl/LC_MESSAGES/converse.po","6824"],"./id/LC_MESSAGES/converse.po":["./src/i18n/locales/id/LC_MESSAGES/converse.po","4837"],"./el/LC_MESSAGES/converse.po":["./src/i18n/locales/el/LC_MESSAGES/converse.po","7989"]};function i(e){if(!s.o(r,e))return Promise.resolve().then(function(){var t=Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t});var t=r[e],i=t[0];return s.e(t[1]).then(function(){return s.t(i,19)})}i.keys=()=>Object.keys(r),i.id="./src/i18n/locales lazy recursive ^\\.\\/.*\\/LC_MESSAGES\\/converse\\.po$",e.exports=i}},t={};function s(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(o.exports,o,o.exports,s),o.loaded=!0,o.exports}s.m=e,s.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;s.t=function(r,i){if(1&i&&(r=this(r)),8&i||"object"==typeof r&&r&&(4&i&&r.__esModule||16&i&&"function"==typeof r.then))return r;var o=Object.create(null);s.r(o);var a={};e=e||[null,t({}),t([]),t(t)];for(var l=2&i&&r;"object"==typeof l&&!~e.indexOf(l);l=t(l))Object.getOwnPropertyNames(l).forEach(e=>{a[e]=()=>r[e]});return a.default=()=>r,s.d(o,a),o}})(),s.d=(e,t)=>{for(var r in t)s.o(t,r)&&!s.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},s.f={},s.e=e=>Promise.all(Object.keys(s.f).reduce((t,r)=>(s.f[r](e,t),t),[])),s.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),s.u=e=>"chunkjs.cjs/"+({10:"locales/dayjs/x-pseudo-js",106:"locales/dayjs/eo-js",1103:"locales/vi-LC_MESSAGES-converse-po",1146:"locales/dayjs/fa-js",1220:"locales/dayjs/pt-js",1250:"locales/sv-LC_MESSAGES-converse-po",1268:"locales/ro-LC_MESSAGES-converse-po",1290:"locales/dayjs/es-pr-js",1296:"locales/dayjs/nl-js",138:"locales/de-LC_MESSAGES-converse-po",139:"locales/dayjs/lb-js",1418:"locales/dayjs/km-js",147:"locales/dayjs/gom-latn-js",1503:"locales/it-LC_MESSAGES-converse-po",1526:"locales/dayjs/tzm-latn-js",1727:"locales/dayjs/nn-js",1767:"locales/dayjs/rw-js",1793:"locales/dayjs/rn-js",1831:"locales/mr-LC_MESSAGES-converse-po",1859:"locales/hu-LC_MESSAGES-converse-po",1868:"locales/dayjs/de-at-js",1888:"locales/ta-LC_MESSAGES-converse-po",1907:"locales/dayjs/nl-be-js",1919:"locales/dayjs/bn-bd-js",1940:"locales/dayjs/en-il-js",2:"locales/eo-LC_MESSAGES-converse-po",2030:"locales/dayjs/mi-js",2044:"locales/dayjs/sw-js",2182:"locales/dayjs/lv-js",2257:"locales/dayjs/ky-js",2259:"locales/dayjs/br-js",2300:"locales/dayjs/ug-cn-js",2343:"locales/ru-LC_MESSAGES-converse-po",2368:"locales/dayjs/de-js",2592:"locales/dayjs/ar-dz-js",2636:"locales/dayjs/en-ca-js",2637:"locales/dayjs/gu-js",2668:"locales/dayjs/az-js",2698:"locales/eu-LC_MESSAGES-converse-po",2701:"locales/ko-LC_MESSAGES-converse-po",2766:"locales/th-LC_MESSAGES-converse-po",2887:"locales/nl_BE-LC_MESSAGES-converse-po",2988:"locales/dayjs/ku-js",3005:"locales/dayjs/uz-js",3040:"locales/cs-LC_MESSAGES-converse-po",3043:"locales/pt-LC_MESSAGES-converse-po",313:"locales/dayjs/sl-js",3167:"locales/dayjs/zh-tw-js",3269:"locales/dayjs/ar-js",3290:"locales/dayjs/pa-in-js",333:"locales/dayjs/ar-kw-js",3337:"locales/dayjs/uk-js",3382:"locales/dayjs/en-au-js",3701:"locales/si-LC_MESSAGES-converse-po",3760:"locales/dayjs/bm-js",3847:"locales/dayjs/cy-js",3849:"locales/dayjs/sv-js",3854:"locales/dayjs/mr-js",3859:"locales/dayjs/tk-js",4078:"locales/dayjs/bs-js",414:"locales/dayjs/ms-js",4237:"locales/dayjs/hy-am-js",4278:"locales/dayjs/yo-js",432:"locales/zh_TW-LC_MESSAGES-converse-po",4334:"locales/dayjs/pl-js",4335:"locales/bg-LC_MESSAGES-converse-po",4421:"locales/dayjs/ga-js",4449:"locales/dayjs/is-js",457:"locales/dayjs/es-js",4640:"locales/dayjs/ro-js",4644:"locales/dayjs/es-mx-js",4686:"locales/dayjs/kk-js",4751:"locales/dayjs/dv-js",4837:"locales/id-LC_MESSAGES-converse-po",4856:"locales/dayjs/zh-js",4915:"locales/dayjs/gd-js",4921:"locales/dayjs/me-js",4976:"locales/dayjs/fi-js",5062:"locales/dayjs/fr-ca-js",5079:"locales/sq-LC_MESSAGES-converse-po",5105:"locales/dayjs/be-js",5118:"locales/dayjs/bo-js",527:"locales/dayjs/sr-cyrl-js",5305:"locales/dayjs/ca-js",5348:"locales/dayjs/am-js",5442:"locales/dayjs/tr-js",5452:"locales/ja-LC_MESSAGES-converse-po",5453:"locales/dayjs/fo-js",5518:"locales/fr-LC_MESSAGES-converse-po",5556:"locales/dayjs/jv-js",5557:"locales/dayjs/ar-ly-js",5617:"locales/dayjs/tl-ph-js",5632:"locales/dayjs/ss-js",5641:"locales/dayjs/ar-ma-js",5687:"locales/dayjs/zh-hk-js",5758:"locales/zh_CN-LC_MESSAGES-converse-po",5866:"locales/be-LC_MESSAGES-converse-po",5908:"locales/dayjs/id-js",5990:"locales/dayjs/ko-js",6026:"locales/dayjs/en-ie-js",6034:"locales/ca-LC_MESSAGES-converse-po",6097:"locales/dayjs/en-in-js",6116:"locales/dayjs/fy-js",6117:"locales/dayjs/my-js",6130:"locales/dayjs/nb-js",6173:"locales/dayjs/gl-js",6178:"locales/dayjs/oc-lnc-js",6191:"locales/dayjs/ta-js",6201:"locales/dayjs/es-us-js",6218:"locales/dayjs/bi-js",6252:"locales/dayjs/lt-js",6274:"locales/dayjs/sd-js",629:"locales/pt_BR-LC_MESSAGES-converse-po",6339:"locales/dayjs/cv-js",6402:"locales/dayjs/ar-tn-js",6450:"locales/ar-LC_MESSAGES-converse-po",6485:"locales/dayjs/da-js",6684:"locales/dayjs/si-js",6706:"locales/dayjs/bg-js",6824:"locales/nl-LC_MESSAGES-converse-po",6827:"locales/dayjs/ka-js",6909:"locales/dayjs/tg-js",6986:"locales/lt-LC_MESSAGES-converse-po",7018:"locales/dayjs/it-ch-js",7086:"locales/dayjs/hr-js",7132:"locales/dayjs/sv-fi-js",7143:"locales/dayjs/vi-js",7168:"locales/dayjs/de-ch-js",7195:"locales/dayjs/es-do-js",7281:"locales/hi-LC_MESSAGES-converse-po",7289:"locales/dayjs/cs-js",7327:"locales/dayjs/kn-js",7333:"locales/dayjs/et-js",7420:"locales/dayjs/tlh-js",7433:"locales/dayjs/hu-js",7459:"locales/he-LC_MESSAGES-converse-po",7464:"locales/dayjs/en-nz-js",7470:"locales/fi-LC_MESSAGES-converse-po",762:"locales/af-LC_MESSAGES-converse-po",7625:"locales/fa-LC_MESSAGES-converse-po",7649:"locales/dayjs/it-js",7692:"locales/dayjs/ru-js",7697:"locales/dayjs/tzm-js",7721:"locales/dayjs/pt-br-js",7732:"locales/dayjs/sr-js",7748:"locales/dayjs/en-sg-js",7842:"locales/dayjs/hi-js",7873:"locales/da-LC_MESSAGES-converse-po",7896:"locales/dayjs/en-tt-js",794:"locales/dayjs/ja-js",7989:"locales/el-LC_MESSAGES-converse-po",804:"locales/dayjs/bn-js",8086:"locales/dayjs/sq-js",8284:"locales/dayjs/fr-ch-js",8379:"locales/tr-LC_MESSAGES-converse-po",8408:"locales/dayjs/he-js",8535:"locales/dayjs/mn-js",8589:"locales/dayjs/mt-js",8605:"locales/dayjs/sk-js",8619:"locales/dayjs/th-js",8659:"locales/dayjs/ar-iq-js",8723:"locales/oc-LC_MESSAGES-converse-po",8741:"locales/dayjs/eu-js",881:"locales/ug-LC_MESSAGES-converse-po",8810:"locales/pl-LC_MESSAGES-converse-po",8867:"locales/gl-LC_MESSAGES-converse-po",8923:"locales/dayjs/uz-latn-js",8958:"locales/es-LC_MESSAGES-converse-po",9002:"locales/dayjs/tzl-js",9079:"locales/dayjs/ur-js",9105:"locales/dayjs/tet-js",9117:"locales/dayjs/ml-js",9196:"locales/nb-LC_MESSAGES-converse-po",9236:"locales/dayjs/en-gb-js",924:"locales/dayjs/el-js",9369:"locales/dayjs/zh-cn-js",946:"locales/dayjs/ne-js",949:"locales/dayjs/te-js",9505:"locales/dayjs/ht-js",9618:"locales/dayjs/ar-sa-js",967:"locales/uk-LC_MESSAGES-converse-po",9685:"locales/dayjs/se-js",969:"locales/mn-LC_MESSAGES-converse-po",974:"locales/dayjs/af-js",9763:"locales/dayjs/mk-js",978:"locales/dayjs/fr-js",9836:"locales/dayjs/ms-my-js",9863:"locales/dayjs/en-js",9986:"locales/dayjs/lo-js"})[e]+".js",s.miniCssF=e=>""+e+".css",s.g=(()=>{if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}})(),s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="converse.js:";s.l=function(r,i,o,a){if(e[r])return void e[r].push(i);if(void 0!==o)for(var l,c,d=document.getElementsByTagName("script"),u=0;u{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.nc=void 0,s.p="/dist/",s.rv=()=>"1.4.11",(()=>{var e={9633:0};s.f.j=function(t,r){var i=s.o(e,t)?e[t]:void 0;if(0!==i)if(i)r.push(i[2]);else{var o=new Promise((s,r)=>i=e[t]=[s,r]);r.push(i[2]=o);var a=s.p+s.u(t),l=Error();s.l(a,function(r){if(s.o(e,t)&&(0!==(i=e[t])&&(e[t]=void 0),i)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;l.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",l.name="ChunkLoadError",l.type=o,l.request=a,i[1](l)}},"chunk-"+t,t)}};var t=(t,r)=>{var i,o,[a,l,c]=r,d=0;if(a.some(t=>0!==e[t])){for(i in l)s.o(l,i)&&(s.m[i]=l[i]);c&&c(s)}for(t&&t(r);d{"use strict";let e={},t={plugins:{add(t,s){if(void 0!==e[t])throw TypeError(`Error: plugin with name "${t}" has already been registered!`);e[t]=s}},initialize:(e={})=>t.load(e).initialize(e),load:(r={})=>(r.assets_path&&(s.p=r.assets_path),s("./src/index.js"),Object.keys(e).forEach(s=>t.plugins.add(s,e[s])),t)};window.converse=t;let r=new CustomEvent("converse-loaded",{detail:{converse:t}});window.dispatchEvent(r)})()})(); //# sourceMappingURL=converse.min.js.map