>=1}else{for(a=1,i=0;i>=1}d--,d==0&&(d=2**p,p++),delete s[u]}else for(a=o[u],i=0;i
>=1;d--,d==0&&(d=2**p,p++),o[l]=f++,u=String(c)}if(u!==``){if(Object.prototype.hasOwnProperty.call(s,u)){if(u.charCodeAt(0)<256){for(i=0;i
>=1}else{for(a=1,i=0;i
>=1}d--,d==0&&(d=2**p,p++),delete s[u]}else for(a=o[u],i=0;i
>=1;d--,d==0&&(d=2**p,p++)}for(a=2,i=0;i
>=1;for(;;)if(h<<=1,g==n-1){m.push(r(h));break}else g++;return m.join(``)},decompress:function(e){return e==null?``:e==``?null:o._decompress(e.length,32768,function(n){return e.charCodeAt(n)})},_decompress:function(n,r,i){var a=[],o=4,s=4,c=3,l=``,u=[],d,f,p,m,h,g,_,v={val:i(0),position:r,index:1};for(d=0;d<3;d+=1)a[d]=d;for(p=0,h=2**2,g=1;g!=h;)m=v.val&v.position,v.position>>=1,v.position==0&&(v.position=r,v.val=i(v.index++)),p|=+(m>0)*g,g<<=1;switch(p){case 0:for(p=0,h=2**8,g=1;g!=h;)m=v.val&v.position,v.position>>=1,v.position==0&&(v.position=r,v.val=i(v.index++)),p|=+(m>0)*g,g<<=1;_=e(p);break;case 1:for(p=0,h=2**16,g=1;g!=h;)m=v.val&v.position,v.position>>=1,v.position==0&&(v.position=r,v.val=i(v.index++)),p|=+(m>0)*g,g<<=1;_=e(p);break;case 2:return``}for(a[3]=_,f=_,u.push(_);;){if(v.index>n)return``;for(p=0,h=2**c,g=1;g!=h;)m=v.val&v.position,v.position>>=1,v.position==0&&(v.position=r,v.val=i(v.index++)),p|=+(m>0)*g,g<<=1;switch(_=p){case 0:for(p=0,h=2**8,g=1;g!=h;)m=v.val&v.position,v.position>>=1,v.position==0&&(v.position=r,v.val=i(v.index++)),p|=+(m>0)*g,g<<=1;a[s++]=e(p),_=s-1,o--;break;case 1:for(p=0,h=2**16,g=1;g!=h;)m=v.val&v.position,v.position>>=1,v.position==0&&(v.position=r,v.val=i(v.index++)),p|=+(m>0)*g,g<<=1;a[s++]=e(p),_=s-1,o--;break;case 2:return u.join(``)}if(o==0&&(o=2**c,c++),a[_])l=a[_];else if(_===s)l=f+f.charAt(0);else return null;u.push(l),a[s++]=f+l.charAt(0),o--,f=l,o==0&&(o=2**c,c++)}}};return o})();typeof define==`function`&&define.amd?define(function(){return r}):n!==void 0&&n!=null?n.exports=r:typeof angular<`u`&&angular!=null&&angular.module(`LZString`,[]).factory(`LZString`,function(){return r})}))(),Io=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20viewBox='0%200%2084%2062'%3e%3crect%20width='64'%20height='48'%20x='18'%20y='2'%20fill='%23fff'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3crect%20width='32'%20height='48'%20x='2'%20y='12'%20fill='%23fff'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3cpath%20fill='%234169E1'%20d='M14%2052a4%204%200%201%201-8%200%204%204%200%200%201%208%200Zm64-42a4%204%200%201%201-8%200%204%204%200%200%201%208%200Z'/%3e%3c/svg%3e`,Lo=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20viewBox='0%200%2082%2062'%3e%3crect%20width='78'%20height='58'%20x='2'%20y='2'%20fill='%23999'%20fill-opacity='.3'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3crect%20width='18'%20height='46'%20x='8'%20y='8'%20fill='%23fff'%20stroke='%23999'%20stroke-width='2'%20rx='1'/%3e%3crect%20width='18'%20height='46'%20x='32'%20y='8'%20fill='%23fff'%20stroke='%23999'%20stroke-width='2'%20rx='1'/%3e%3crect%20width='18'%20height='46'%20x='56'%20y='8'%20fill='%23fff'%20stroke='%23999'%20stroke-width='2'%20rx='1'/%3e%3c/svg%3e`,Ro=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20viewBox='0%200%2084%2062'%3e%3crect%20width='64'%20height='48'%20x='18'%20y='2'%20fill='%23fff'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3cpath%20fill='%23999'%20fill-opacity='.3'%20d='M19%203h62v10H19z'/%3e%3cpath%20stroke='%234169E1'%20stroke-width='2'%20d='M43%208a2%202%200%201%201-4%200%202%202%200%200%201%204%200Z'/%3e%3cpath%20stroke='%23999'%20stroke-width='2'%20d='M52%208a2%202%200%201%201-4%200%202%202%200%200%201%204%200Zm9%200a2%202%200%201%201-4%200%202%202%200%200%201%204%200Z'/%3e%3crect%20width='32'%20height='48'%20x='2'%20y='12'%20fill='%23fff'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3cpath%20fill='%23999'%20fill-opacity='.3'%20d='M3%2049h30v10H3z'/%3e%3cpath%20stroke='%234169E1'%20stroke-width='2'%20d='M11%2054a2%202%200%201%201-4%200%202%202%200%200%201%204%200Z'/%3e%3cpath%20stroke='%23999'%20stroke-width='2'%20d='M20%2054a2%202%200%201%201-4%200%202%202%200%200%201%204%200Zm9%200a2%202%200%201%201-4%200%202%202%200%200%201%204%200Z'/%3e%3c/svg%3e`,zo=200,Bo=10;async function Vo(){let{masto:e}=u(),n=e.v1.followedTags.list({limit:zo}).values(),r=[],i=0;do{let{value:e,done:a}=await n.next();if(a||e?.length===0)break;r.push(...e),i++}while(ie.name.localeCompare(n.name)),r.length&&setTimeout(()=>{I.account.set(`followedTags`,{tags:r,updatedAt:Date.now()})},1),r}var Ho=1440*60*1e3;async function Uo(){try{let{tags:e,updatedAt:n}=I.account.get(`followedTags`)||{};return e?.length?(Date.now()-n>Ho&&Vo(),e):await Vo()}catch{return[]}}var Wo=document.createElement(`div`),Go=e=>{if(!e||e.indexOf(`#`)===-1)return[];Wo.innerHTML=e;let n=Wo.querySelectorAll(`a.hashtag`);return n.length?Array.from(n).map(e=>e.innerText.trim().replace(/^[^#]*#+/,``)):[]};function Ko({children:e}){if(typeof e==`string`)return e;let[n,r]=L(``);return _(()=>{Promise.resolve(e).then(r)},[e]),n}var qo=[`following`,`mentions`,`notifications`,`list`,`public`,`trending`,`search`,`hashtag`,`bookmarks`,`favourites`,`profile`],Jo={following:{id:`7ZJHdw`},notifications:{id:`iDNBZe`},list:{id:`h16FyT`},public:{id:`tXgQpk`},search:{id:`A1taO8`},"account-statuses":{id:`AeXO77`},bookmarks:{id:`7Ff7ia`},favourites:{id:`zZOZj7`},hashtag:{id:`GP8RLS`},trending:{id:`4_iCqx`},mentions:{id:`_bZzdR`},profile:{id:`vERlcd`}},Yo={list:[{text:{id:`DUMt1y`},name:`id`,notRequired:!0}],public:[{text:{id:`OgyJSr`},name:`local`,type:`checkbox`},{text:{id:`sGH11W`},name:`instance`,type:`text`,placeholder:{id:`7defFj`},notRequired:!0}],trending:[{text:{id:`sGH11W`},name:`instance`,type:`text`,placeholder:{id:`7defFj`},notRequired:!0}],search:[{text:{id:`dmloPh`},name:`query`,type:`text`,placeholder:{id:`UHDQDE`},notRequired:!0}],"account-statuses":[{text:`@`,name:`id`,type:`text`,placeholder:`cheeaun@mastodon.social`}],hashtag:[{text:`#`,name:`hashtag`,type:`text`,placeholder:{id:`a6oTWs`},pattern:`[^#]+`},{text:{id:`eK4SL_`},name:`media`,type:`checkbox`},{text:{id:`sGH11W`},name:`instance`,type:`text`,placeholder:{id:`7defFj`},notRequired:!0}]},Xo={following:{id:`home`,title:(e,n)=>n===0?K._({id:`i0qMbr`}):K._({id:`following.title`}),path:`/`,icon:`home`},mentions:{id:`mentions`,title:{id:`_bZzdR`},path:`/mentions`,icon:`at`},notifications:{id:`notifications`,title:{id:`iDNBZe`},path:`/notifications`,icon:`notification`},list:{id:({id:e})=>e?`list`:`lists`,title:({id:e})=>e?Si(e):K._({id:`h16FyT`}),path:({id:e})=>e?`/l/${e}`:`/l`,icon:`list`,excludeViewMode:({id:e})=>e?[]:[`multi-column`]},public:{id:`public`,title:({local:e})=>e?K._({id:`d5zxa4`}):K._({id:`4ERYY7`}),subtitle:({instance:e})=>e||u().instance,path:({local:e,instance:n})=>`/${n}/p${e?`/l`:``}`,icon:({local:e})=>e?`building`:`earth`},trending:{id:`trending`,title:{id:`4_iCqx`},subtitle:({instance:e})=>e||u().instance,path:({instance:e})=>`/${e}/trending`,icon:`chart`},search:{id:`search`,title:({query:e})=>e?`“${e}”`:K._({id:`A1taO8`}),path:({query:e})=>e?`/search?q=${encodeURIComponent(e)}&type=statuses`:`/search`,icon:`search`,excludeViewMode:({query:e})=>e?[]:[`multi-column`]},profile:{id:`profile`,title:{id:`vERlcd`},path:()=>`/a/${T()}?replies=1`,icon:`user`,altIcon:()=>{let e=B();return{url:e?.info?.avatarStatic||e?.info?.avatar,type:`avatar`}}},"account-statuses":{id:`account-statuses`,title:r(async({id:e})=>{let n=await u().masto.v1.accounts.$select(e).fetch();return n.username||n.acct||n.displayName}),path:({id:e})=>`/a/${e}`,icon:`user`},bookmarks:{id:`bookmarks`,title:{id:`7Ff7ia`},path:`/b`,icon:`bookmark`},favourites:{id:`favourites`,title:{id:`zZOZj7`},path:`/f`,icon:`heart`},hashtag:{id:`hashtag`,title:({hashtag:e})=>e,subtitle:({instance:e})=>e||u().instance,path:({hashtag:e,instance:n,media:r})=>`${n?`/${n}`:``}/t/${e.split(/\s+/).join(`+`)}${r?`?media=1`:``}`,icon:`hashtag`}};function Zo({onClose:e}){let{_:r}=l(),i=W(o),{shortcuts:a}=i,[s,c]=L(!1),[u,d]=L(!1),[f]=ar();return z(`div`,{id:`shortcuts-settings-container`,class:`sheet`,tabindex:`-1`,children:[!!e&&z(`button`,{type:`button`,class:`sheet-close`,onClick:e,children:z(X,{icon:`x`,alt:K._({id:`yz7wBu`})})}),z(`header`,{children:z(`h2`,{children:[z(X,{icon:`shortcut`}),` `,z(j,{id:`CTqTgr`}),` `,z(`sup`,{style:{fontSize:12,opacity:.5,textTransform:`uppercase`},children:z(j,{id:`A1As8l`})})]})}),z(`main`,{children:[z(`p`,{children:z(j,{id:`CIHAsy`})}),z(`div`,{class:`shortcuts-view-mode`,children:[{value:`float-button`,label:K._({id:`qwdOim`}),imgURL:Io},{value:`tab-menu-bar`,label:K._({id:`UxBoCm`}),imgURL:Ro},{value:`multi-column`,label:K._({id:`uvDfdW`}),imgURL:Lo}].map(({value:e,label:n,imgURL:r})=>{let a=i.settings.shortcutsViewMode===e||e===`float-button`&&!i.settings.shortcutsViewMode;return z(`label`,{class:a?`checked`:``,children:[z(`input`,{type:`radio`,name:`shortcuts-view-mode`,value:e,checked:a,onChange:e=>{o.settings.shortcutsViewMode=e.target.value}}),` `,z(`img`,{src:r,alt:``,width:`80`,height:`58`}),` `,z(`span`,{children:n})]},e)})}),a.length>0?z(n,{children:[z(`ol`,{class:`shortcuts-list`,ref:f,children:a.filter(Boolean).map((e,s)=>{let l=Object.values(e).join(`-`),{type:u}=e;if(!Xo[u])return null;let{icon:d,title:f,subtitle:p,excludeViewMode:m}=Xo[u];f=typeof f==`function`?f(e,s):r(f),p=typeof p==`function`?p(e,s):r(p),typeof d==`function`&&(d=d(e,s)),typeof m==`function`&&(m=m(e,s));let h=m?.includes(i.settings.shortcutsViewMode);return z(`li`,{children:[z(X,{icon:d}),z(`span`,{class:`shortcut-text`,children:[z(Ko,{children:f}),p&&z(n,{children:[` `,z(`small`,{class:`ib insignificant`,children:p})]}),h&&z(`span`,{class:`tag`,children:z(j,{id:`5KJFnN`})})]}),z(`span`,{class:`shortcut-actions`,children:[z(`button`,{type:`button`,class:`plain small`,disabled:s===0,onClick:()=>{let n=Array.from(o.shortcuts);if(s>0){let r=o.shortcuts[s-1];n[s-1]=e,n[s]=r,o.shortcuts=n}},children:z(X,{icon:`arrow-up`,alt:K._({id:`QyioBP`})})}),z(`button`,{type:`button`,class:`plain small`,disabled:s===a.length-1,onClick:()=>{let n=Array.from(o.shortcuts);if(s{c({shortcut:e,shortcutIndex:s})},children:z(X,{icon:`pencil`,alt:K._({id:`ePK91l`})})})]})]},l)})}),a.length===1&&i.settings.shortcutsViewMode!==`float-button`&&z(`div`,{class:`ui-state insignificant`,children:[z(X,{icon:`info`}),` `,z(`small`,{children:z(j,{id:`3Xq4Zi`})})]})]}):z(`div`,{class:`ui-state insignificant`,children:[z(`p`,{children:i.settings.shortcutsViewMode===`multi-column`?K._({id:`3xIN-E`}):K._({id:`vLxvHT`})}),z(`p`,{children:z(j,{id:`Fq4zw3`,components:{0:z(`br`,{}),1:z(`a`,{href:`#`,onClick:e=>{e.preventDefault(),o.shortcuts=[{type:`following`},{type:`notifications`}]}})}})})]}),z(`p`,{class:`insignificant`,children:a.length>=9&&(i.settings.shortcutsViewMode===`multi-column`?K._({id:`RqXfsz`,values:{SHORTCUTS_LIMIT:9}}):K._({id:`EVRO_o`,values:{SHORTCUTS_LIMIT:9}}))}),z(`p`,{style:{display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[z(`button`,{type:`button`,class:`light`,onClick:()=>d(!0),children:z(j,{id:`bgVLbt`})}),z(`button`,{type:`button`,disabled:a.length>=9,onClick:()=>c(!0),children:[z(X,{icon:`plus`}),` `,z(`span`,{children:i.settings.shortcutsViewMode===`multi-column`?K._({id:`Vh3ADI`}):K._({id:`9tmn6W`})})]})]})]}),s&&z(zt,{onClick:e=>{e.target===e.currentTarget&&c(!1)},children:z($o,{shortcut:s.shortcut,shortcutIndex:s.shortcutIndex,onSubmit:({result:e,mode:n})=>{n===`edit`?o.shortcuts[s.shortcutIndex]=e:o.shortcuts.push(e)},onClose:()=>c(!1)})}),u&&z(zt,{onClick:e=>{e.target===e.currentTarget&&d(!1)},children:z(es,{shortcuts:a,onClose:()=>d(!1)})})]})}var Qo={list:{id:`1qL-L-`},search:{id:`dmTmkQ`},hashtag:{id:`E8laYz`}};function $o({onSubmit:e,disabled:n,shortcut:r,shortcutIndex:i,onClose:s}){let{_:c}=l(),u=!!r,[d,f]=L(r?.type||null),[p,m]=L(`default`),[h,g]=L([]),[v,y]=L([]);_(()=>{(async()=>{if(d===`list`)try{m(`loading`),g(await yi()),m(`default`)}catch{m(`error`)}})(),(async()=>{if(d===`hashtag`)try{y(await Vo())}catch{}})()},[d]);let b=a();return _(()=>{if(u&&d&&Yo[d]){let e=b.current;Yo[d].forEach(({name:n,type:i})=>{let a=e.querySelector(`[name="${n}"]`);a&&r[n]&&(i===`checkbox`?a.checked=r[n]===`on`:a.value=r[n])})}},[u,d]),z(`div`,{id:`shortcut-settings-form`,class:`sheet`,children:[!!s&&z(`button`,{type:`button`,class:`sheet-close`,onClick:s,children:z(X,{icon:`x`,alt:K._({id:`yz7wBu`})})}),z(`header`,{children:z(`h2`,{children:u?K._({id:`pe1jog`}):K._({id:`Lsxpe5`})})}),z(`main`,{tabindex:`-1`,children:z(`form`,{ref:b,onSubmit:n=>{n.preventDefault();let r=new FormData(n.target),i={};r.forEach((e,n)=>{i[n]=e?.trim(),n===`instance`&&(i[n]=i[n].replace(/^https?:\/\//,``).replace(/\/+$/,``),i[n]=i[n].replace(/^@?[^@]+@/,``))}),i.type&&(e({result:i,mode:u?`edit`:`add`}),n.target.reset(),f(null),s?.())},children:[z(`p`,{children:z(`label`,{children:[z(`span`,{children:z(j,{id:`cklVjM`})}),z(`select`,{required:!0,disabled:n,onChange:e=>{f(e.target.value)},defaultValue:u?r.type:void 0,name:`type`,dir:`auto`,children:[z(`option`,{}),qo.map(e=>z(`option`,{value:e,children:c(Jo[e])}))]})]})}),Yo[d]?.map?.(({text:e,name:i,type:a,placeholder:o,pattern:s,notRequired:l})=>d===`list`?z(`p`,{children:z(`label`,{children:[z(`span`,{children:z(j,{id:`2BBAbc`})}),z(`select`,{name:`id`,required:!l,disabled:n||p===`loading`,defaultValue:u?r.id:void 0,dir:`auto`,children:[z(`option`,{value:``}),h.map(e=>z(`option`,{value:e.id,children:e.title}))]})]})}):z(`p`,{children:z(`label`,{children:[z(`span`,{children:c(e)}),` `,z(`input`,{type:a,switch:a===`checkbox`||void 0,name:i,placeholder:c(o),required:a===`text`&&!l,disabled:n,list:d===`hashtag`?`followed-hashtags-datalist`:null,autocorrect:`off`,autocapitalize:`off`,spellCheck:!1,pattern:s,dir:`auto`}),d===`hashtag`&&v.length>0&&z(`datalist`,{id:`followed-hashtags-datalist`,children:v.map(e=>z(`option`,{value:e.name}))})]})})),!!Qo[d]&&z(`p`,{class:`form-note insignificant`,children:[z(X,{icon:`info`}),c(Qo[d])]}),z(`footer`,{children:[z(`button`,{type:`submit`,class:`block`,disabled:n||p===`loading`,children:u?K._({id:`tfDRzk`}):K._({id:`m16xKo`})}),u&&z(`button`,{type:`button`,class:`light danger`,onClick:()=>{o.shortcuts.splice(i,1),s?.()},children:z(j,{id:`t_YqKh`})})]})]})})]})}function es({shortcuts:e,onClose:r}){let{_:i}=l(),{masto:s}=u(),c=m(()=>!e||!e.filter(Boolean).length?``:(0,Fo.compressToEncodedURIComponent)(JSON.stringify(e.filter(Boolean))),[e]),[d,f]=L(``),[p,h]=L(`default`),g=m(()=>{if(!d)return h(`default`),null;try{let e=JSON.parse((0,Fo.decompressFromEncodedURIComponent)(d));if(!Array.isArray(e))throw Error(`Not an array`);return h(`default`),e}catch{try{let e=JSON.parse(d);if(!Array.isArray(e))throw Error(`Not an array`);return h(`default`),e}catch{return h(`error`),null}}},[d]),_=o.shortcuts.length>0,v=a();return z(`div`,{id:`import-export-container`,class:`sheet`,children:[!!r&&z(`button`,{type:`button`,class:`sheet-close`,onClick:r,children:z(X,{icon:`x`,alt:K._({id:`yz7wBu`})})}),z(`header`,{children:z(`h2`,{children:z(j,{id:`OOa7_5`,components:{0:z(`small`,{class:`ib insignificant`})}})})}),z(`main`,{tabindex:`-1`,children:[z(`section`,{children:[z(`h3`,{children:[z(X,{icon:`arrow-down-circle`,size:`l`,class:`insignificant`}),` `,z(`span`,{children:z(j,{id:`l3s5ri`})})]}),z(`p`,{class:`field-button`,children:[z(`input`,{ref:v,type:`text`,name:`import`,placeholder:K._({id:`tBmklN`}),class:`block`,onInput:e=>{f(e.target.value)},dir:`auto`}),wo&&z(`button`,{type:`button`,class:`plain2 small`,onClick:()=>{o.showQrScannerModal={onClose:({text:e}={})=>{e&&(f(e),v.current.value=e,v.current.dispatchEvent(new Event(`input`)))}}},children:z(X,{icon:`scan`,alt:K._({id:`XDwkfO`})})}),o.settings.shortcutSettingsCloudImportExport&&z(`button`,{type:`button`,class:`plain2 small`,disabled:p===`cloud-downloading`,onClick:async()=>{h(`cloud-downloading`);let e=T();Y(K._({id:`jFdM_T`}));try{let n=(await s.v1.accounts.relationships.fetch({id:[e]}))[0];if(n){let{note:e=``}=n;if(/(.*)<\/phanpy-shortcuts-settings>/.test(e)){let n=e.match(/(.*)<\/phanpy-shortcuts-settings>/)[1],{v:r,dt:i,data:a}=JSON.parse(n);v.current.value=a,v.current.dispatchEvent(new Event(`input`))}}h(`default`)}catch{h(`error`),Y(K._({id:`gCDfX-`}))}},title:K._({id:`5I1YZO`}),children:[z(X,{icon:`cloud`}),z(X,{icon:`arrow-down`,size:`s`})]})]}),!!g&&Array.isArray(g)&&z(n,{children:[z(`p`,{children:[z(`b`,{children:g.length}),` shortcut`,g.length>1?`s`:``,` `,z(`small`,{class:`insignificant`,children:[`(`,d.length,` characters)`]})]}),z(`ol`,{class:`import-settings-list`,children:g.map(r=>z(`li`,{children:[z(`span`,{style:{opacity:+!!e.some(e=>Object.keys(e).every(n=>{if(!(n in r))return!0;let i=r[n];return i===``||i==null?!0:e[n]===i}))},children:`*`}),z(`span`,{children:[i(Jo[r.type]),r.type===`list`&&!!r.id&&` ⚠️`,` `,Yo[r.type]?.map?.(({text:e,name:a,type:o})=>r[a]?z(n,{children:[z(`span`,{class:`tag collapsed insignificant`,children:[i(e),`:`,` `,o===`checkbox`?r[a]===`on`?`✅`:`❌`:r[a]]}),` `]}):null)]})]}))}),z(`p`,{children:[z(`small`,{children:z(j,{id:`o6sElH`})}),z(`br`,{}),z(`small`,{children:[`⚠️`,` `,z(j,{id:`N4z4P_`})]})]})]}),p===`error`&&z(`p`,{class:`error`,children:z(`small`,{children:[`⚠️ `,z(j,{id:`ZhsPEb`})]})}),z(`p`,{children:[_&&z(n,{children:[z(ut,{confirmLabel:K._({id:`6MzUUU`}),menuFooter:z(`div`,{class:`footer`,children:z(j,{id:`nl8sCE`})}),onClick:()=>{let e=g.filter(e=>!o.shortcuts.some(n=>Object.keys(n).every(r=>n[r]===e[r])));if(!e.length){Y(K._({id:`o6L30P`}));return}let n=[...o.shortcuts,...e],i=n.length>9;i&&(n=n.slice(0,9)),o.shortcuts=n,Y(i?K._({id:`SBmqmC`,values:{SHORTCUTS_LIMIT:9}}):K._({id:`QO9uTx`})),r?.()},children:z(`button`,{type:`button`,class:`plain2`,disabled:!g,children:z(j,{id:`c89gCv`})})}),` `]}),z(ut,{confirmLabel:_?K._({id:`6ZjzWP`}):K._({id:`DWumLi`}),menuItemClassName:_?`danger`:void 0,onClick:()=>{o.shortcuts=g,Y(K._({id:`QO9uTx`})),r?.()},children:z(`button`,{type:`button`,class:`plain2`,disabled:!g,children:_?K._({id:`uIp8WL`}):K._({id:`Sjnlwj`})})})]})]}),z(`section`,{children:[z(`h3`,{children:[z(X,{icon:`arrow-up-circle`,size:`l`,class:`insignificant`}),` `,z(`span`,{children:z(j,{id:`GS-Mus`})})]}),z(`p`,{class:`field-button`,children:[z(`input`,{style:{width:`100%`},type:`text`,value:c,readOnly:!0,onClick:e=>{if(e.target.value){e.target.select();try{navigator.clipboard.writeText(e.target.value),Y(K._({id:`cWtH-v`}))}catch{Y(K._({id:`yUWyHa`}))}}},dir:`auto`}),z(`button`,{type:`button`,class:`plain2 small`,disabled:!c,onClick:()=>{o.showQrCodeModal={text:c}},children:z(X,{icon:`qrcode`,alt:K._({id:`gCX4Z9`})})}),o.settings.shortcutSettingsCloudImportExport&&z(`button`,{type:`button`,class:`plain2 small`,disabled:p===`cloud-uploading`,onClick:async()=>{h(`cloud-uploading`);let e=T();try{let n=(await s.v1.accounts.relationships.fetch({id:[e]}))[0];if(n){let{note:r=``}=n,i=``,a=JSON.stringify({v:`1`,dt:Date.now(),data:c});i=/(.*)<\/phanpy-shortcuts-settings>/.test(r)?r.replace(/(.*)<\/phanpy-shortcuts-settings>/,`${a}`):`${r}\n\n\n${a}`,Y(K._({id:`fVybCv`})),await s.v1.accounts.$select(e).note.create({comment:i}),h(`default`),Y(K._({id:`5w02SH`}))}}catch{h(`error`),Y(K._({id:`aVsTYo`}))}},title:K._({id:`oivBcO`}),children:[z(X,{icon:`cloud`}),z(X,{icon:`arrow-up`,size:`s`})]})]}),z(`p`,{children:[z(`button`,{type:`button`,class:`plain2`,disabled:!c,onClick:()=>{try{navigator.clipboard.writeText(c),Y(K._({id:`-Kq2vY`}))}catch{Y(K._({id:`tFvxZF`}))}},children:[z(X,{icon:`clipboard`}),` `,z(`span`,{children:z(j,{id:`he3ygx`})})]}),` `,navigator?.share&&navigator?.canShare?.({text:c})&&z(`button`,{type:`button`,class:`plain2`,disabled:!c,onClick:()=>{try{navigator.share({text:c})}catch{alert(K._({id:`TtG3Uh`}))}},children:[z(X,{icon:`share`}),` `,z(`span`,{children:z(j,{id:`Z8lGw6`})})]}),` `,c.length>0&&z(`small`,{class:`insignificant ib`,children:z(j,{id:`IPXOXm`,values:{0:c.length}})})]}),!!c&&z(`details`,{children:[z(`summary`,{class:`insignificant`,children:z(`small`,{children:z(j,{id:`e5E-WH`})})}),z(`textarea`,{style:{width:`100%`},rows:10,readOnly:!0,children:JSON.stringify(e.filter(Boolean),null,2)})]})]}),o.settings.shortcutSettingsCloudImportExport&&z(`footer`,{children:z(`p`,{children:[z(X,{icon:`cloud`}),` `,z(j,{id:`Cxr3Kn`})]})})]})]})}ye(o,e=>{for(let[n,r,i,a]of e)/^show/i.test(r)&&!i&&ni()});function ts(){let{_:e}=l(),r=W(o),i=Ne(),a=ie(),s=rn();return _(()=>{setTimeout(de,1e3)},[]),z(n,{children:[s&&!!r.showCompose&&z(zt,{class:`solid ${r.composerState.minimized?`min`:``}`,minimized:!!r.composerState.minimized,children:z(Se,{replyToStatus:typeof r.showCompose==`boolean`?window.__COMPOSE__?.replyToStatus||null:r.showCompose.replyToStatus,replyMode:o.showCompose?.replyMode||window.__COMPOSE__?.replyMode||`all`,editStatus:o.showCompose?.editStatus||window.__COMPOSE__?.editStatus||null,draftStatus:o.showCompose?.draftStatus||window.__COMPOSE__?.draftStatus||null,quoteStatus:o.showCompose?.quoteStatus||window.__COMPOSE__?.quoteStatus||null,sharedData:window.__SHARED_DATA__||null,onClose:n=>{let{newStatus:r,instance:s,type:c,scheduledAt:l}=n||{};o.showCompose=!1,window.__COMPOSE__=null,window.__SHARED_DATA__=null,r&&(o.reloadStatusPage++,l&&o.reloadScheduledPosts++,Y({text:{post:e(l?{id:`IrX0sj`}:{id:`aTyHBW`}),reply:e(l?{id:`-38pse`}:{id:`lZdBKl`}),edit:e({id:`a5BN7l`})}[c||`post`],delay:1e3,duration:1e4,onClick:e=>{e.hideToast(),o.prevLocation=a,i(l?`/sp`:s?`/${s}/s/${r.id}`:`/s/${r.id}`)}}))}})}),s&&!!r.showSettings&&z(zt,{onClose:()=>{o.showSettings=!1},children:z($r,{onClose:()=>{o.showSettings=!1}})}),s&&!!r.showAccounts&&z(zt,{onClose:()=>{o.showAccounts=!1},children:z(Tr,{onClose:()=>{o.showAccounts=!1}})}),!!r.showAccount&&z(zt,{onClose:()=>{o.showAccount=!1},children:z(Ki,{account:r.showAccount?.account||r.showAccount,instance:r.showAccount?.instance,onClose:({destination:e}={})=>{o.showAccount=!1}})}),!!r.showOpenLink&&z(zt,{onClose:()=>{o.showOpenLink=!1},children:z(Ma,{url:r.showOpenLink.url,linkText:r.showOpenLink.linkText,onClose:()=>{o.showOpenLink=!1}})}),s&&!!r.showDrafts&&z(zt,{onClose:()=>{o.showDrafts=!1},children:z(qi,{onClose:()=>o.showDrafts=!1})}),!!r.showMediaModal&&z(zt,{onClick:e=>{(e.target===e.currentTarget||e.target.classList.contains(`media`))&&(o.showMediaModal=!1)},children:z(ja,{mediaAttachments:r.showMediaModal.mediaAttachments,instance:r.showMediaModal.instance,index:r.showMediaModal.mediaIndex,statusID:r.showMediaModal.statusID,onClose:()=>{o.showMediaModal=!1}})}),s&&!!r.showShortcutsSettings&&z(zt,{onClose:()=>{o.showShortcutsSettings=!1},children:z(Zo,{onClose:()=>o.showShortcutsSettings=!1})}),!!r.showGenericAccounts&&z(zt,{onClose:()=>{o.showGenericAccounts=!1},children:z(Xi,{instance:r.showGenericAccounts.instance,excludeRelationshipAttrs:r.showGenericAccounts.excludeRelationshipAttrs,postID:r.showGenericAccounts.postID,onClose:()=>o.showGenericAccounts=!1,blankCopy:r.showGenericAccounts.blankCopy})}),!!r.showMediaAlt&&z(zt,{onClose:e=>{o.showMediaAlt=!1},children:z(ea,{alt:r.showMediaAlt.alt||r.showMediaAlt,lang:r.showMediaAlt?.lang,onClose:()=>{o.showMediaAlt=!1}})}),!!r.showEmbedModal&&z(zt,{class:`solid`,onClose:()=>{o.showEmbedModal=!1},children:z(Yi,{html:r.showEmbedModal.html,url:r.showEmbedModal.url,width:r.showEmbedModal.width,height:r.showEmbedModal.height,onClose:()=>{o.showEmbedModal=!1}})}),s&&!!r.showReportModal&&z(zt,{onClose:()=>{o.showReportModal=!1},children:z(Po,{account:r.showReportModal.account,post:r.showReportModal.post,onClose:()=>{o.showReportModal=!1}})}),!!r.showQrCodeModal&&z(zt,{class:`solid`,onClose:()=>{o.showQrCodeModal=!1},children:z(To,{text:r.showQrCodeModal.text,arena:r.showQrCodeModal.arena,backgroundMask:r.showQrCodeModal.backgroundMask,caption:r.showQrCodeModal.caption,onClose:()=>{o.showQrCodeModal=!1},onScannerClick:r.showQrCodeModal.onScannerClick})}),!!r.showQrScannerModal&&z(zt,{class:`solid`,onClose:()=>{o.showQrScannerModal=!1},children:z(ko,{checkValidity:r.showQrScannerModal.checkValidity,actionableText:r.showQrScannerModal.actionableText,onClose:(...e)=>{r.showQrScannerModal.onClose&&r.showQrScannerModal.onClose(...e),o.showQrScannerModal=!1}})}),s&&!!r.showImportExportAccounts&&z(zt,{onClose:()=>{o.showImportExportAccounts=!1},children:z(Qi,{onClose:()=>{o.showImportExportAccounts=!1},exportDisabled:typeof r.showImportExportAccounts==`object`?r.showImportExportAccounts.exportDisabled:!1})})]})}var ns=(e,n)=>{$e(`g>${e}`,e=>{document.querySelector(`#modal-container > *`)||e.metaKey||e.ctrlKey||e.altKey||n(e)},{useKey:!0})},rs=pe(function(){let e=Ne();return ns(`h`,()=>e(`/`)),ns(`n`,()=>e(`/notifications`)),ns(`s`,()=>{o.showSettings=!0}),ns(`p`,()=>{let n=B();if(n){let{instanceURL:r}=n,{id:i}=n.info;e(`/${r}/a/${i}`)}}),ns(`b`,()=>e(`/b`)),null});function is({accountID:e,onChange:n}){let{_:r}=l(),{masto:i}=u(),[a,o]=L(`default`),[s,c]=L(null),[d,f]=L(null),p=d!==null;return z(`p`,{class:`follow-request-buttons`,children:[z(`button`,{type:`button`,disabled:a===`loading`||p,onClick:()=>{Ut.trigger(`success`),o(`loading`),c(`accept`),(async()=>{try{let r=await i.v1.followRequests.$select(e).authorize();if(!r?.followedBy)throw Error(`Follow request not accepted`);f(r),n()}catch{}o(`default`)})()},children:z(j,{id:`g3UF2V`})}),` `,z(`button`,{type:`button`,disabled:a===`loading`||p,class:`light danger`,onClick:()=>{Ut.trigger(`light`),o(`loading`),c(`reject`),(async()=>{try{let r=await i.v1.followRequests.$select(e).reject();if(r?.followedBy)throw Error(`Follow request not rejected`);f(r),n()}catch{o(`default`)}})()},children:z(j,{id:`1t_NnN`})}),z(`span`,{class:`follow-request-states`,children:p&&s?s===`accept`?z(X,{icon:`check-circle`,alt:r({id:`bzMKg7`}),class:`follow-accepted`}):z(X,{icon:`x-circle`,alt:r({id:`ekCRTP`}),class:`follow-rejected`}):z(oe,{hidden:a!==`loading`})})]})}var as={mention:`comment`,status:`notification`,reblog:`rocket`,follow:`follow`,follow_request:`follow-add`,favourite:`heart`,poll:`poll`,update:`pencil`,"admin.sign_up":`account-edit`,"admin.report":`account-warning`,severed_relationships:`heart-break`,moderation_warning:`alert`,emoji_reaction:`emoji2`,reaction:`emoji2`,"pleroma:emoji_reaction":`emoji2`,annual_report:`celebrate`,quote:`quote`,quoted_update:`pencil`};function os({account:e,emoji:n,emojiURL:r}){let i,a;return typeof r==`string`?i=r:(i=r?.url,a=r?.staticUrl),z(j,{id:`i5uN6K`,values:{account:e,emojiObject:i?z(ct,{url:i,staticUrl:a,alt:n}):n}})}var ss={status:({account:e})=>z(j,{id:`idiIxW`,values:{account:e}}),reblog:({count:e,account:n,postsCount:r,postType:i,components:{Subject:a}})=>z(j,{id:`jkt9P5`,values:{0:Ze(e),1:Ze(e),count:e,postsCount:r,postType:i,account:n},components:{0:z(a,{clickable:e>1}),1:z(`span`,{title:e}),2:z(a,{clickable:e>1}),3:z(`span`,{title:e})}}),follow:({account:e,count:n,components:{Subject:r}})=>z(j,{id:`-71G9C`,values:{0:Ze(n),count:n,account:e},components:{0:z(r,{clickable:n>1}),1:z(`span`,{title:n})}}),follow_request:({account:e})=>z(j,{id:`eh6NHW`,values:{account:e}}),favourite:({account:e,count:n,postsCount:r,postType:i,components:{Subject:a}})=>z(j,{id:`RqX1mR`,values:{0:Ze(n),1:Ze(n),count:n,postsCount:r,postType:i,account:e},components:{0:z(a,{clickable:n>1}),1:z(`span`,{title:n}),2:z(a,{clickable:n>1}),3:z(`span`,{title:n})}}),poll:()=>K._({id:`kIlJaS`}),"poll-self":()=>K._({id:`kpjzdN`}),"poll-voted":()=>K._({id:`moT7M8`}),update:({account:e})=>e?z(j,{id:`W-eFn3`,values:{account:e}}):K._({id:`uzt17m`}),"favourite+reblog":({count:e,account:n,postsCount:r,postType:i,components:{Subject:a}})=>z(j,{id:`NunZZQ`,values:{0:Ze(e),1:Ze(e),count:e,postsCount:r,postType:i,account:n},components:{0:z(a,{clickable:e>1}),1:z(`span`,{title:e}),2:z(a,{clickable:e>1}),3:z(`span`,{title:e})}}),quoted_update:({account:e})=>z(j,{id:`pkB7ti`,values:{account:e}}),"admin.sign_up":({account:e,count:n,components:{Subject:r}})=>z(j,{id:`eDkKRi`,values:{0:Ze(n),count:n,account:e},components:{0:z(r,{clickable:n>1}),1:z(`span`,{title:n})}}),"admin.report":({account:e,targetAccount:n})=>z(j,{id:`eNfCmq`,values:{account:e,targetAccount:n}}),severed_relationships:({name:e})=>z(j,{id:`Xl9v6-`,values:{name:e},components:{0:z(`i`,{})}}),moderation_warning:()=>z(`b`,{children:z(j,{id:`YqffEv`})}),emoji_reaction:os,reaction:os,"pleroma:emoji_reaction":os,annual_report:({year:e})=>z(j,{id:`INLTzH`,values:{year:e}})},cs={account_suspension:({from:e,targetName:n})=>z(j,{id:`uRkcgw`,values:{from:e,targetName:n},components:{0:z(`i`,{}),1:z(`i`,{})}}),domain_block:({from:e,targetName:n,followersCount:r,followingCount:i})=>z(j,{id:`Q3yArs`,values:{from:e,targetName:n,followersCount:r,followingCount:i},components:{0:z(`i`,{}),1:z(`i`,{})}}),user_domain_block:({targetName:e,followersCount:n,followingCount:r})=>z(j,{id:`RQKWUa`,values:{targetName:e,followersCount:n,followingCount:r},components:{0:z(`i`,{})}})},ls={none:{id:`ipnHrn`},disable:{id:`jw0eSZ`},mark_statuses_as_sensitive:{id:`v9jO-F`},delete_statuses:{id:`raUMBQ`},sensitive:{id:`w2OpMr`},silence:{id:`mlycBx`},suspend:{id:`Fz4lZ1`}},us=30;function ds({notification:e,instance:r,isStatic:i,disableContextMenu:a}){let{_:s}=l(),{masto:c}=u(),{id:d,status:f,account:p,report:m,event:h,moderation_warning:g,annualReport:_,_ids:v,_accounts:y,_statuses:b,_groupKeys:x,sampleAccounts:S,notificationsCount:C,groupKey:w,_notificationsCount:E,_sampleAccountsCount:D}=e,{type:O}=e;if((O===`mention`||O===`quote`)&&!f)return null;let k=f?.reblog||f,A=k?.id,M=T(),N=M===p?.id,P=f?.poll?.voted,F=!!f?.inReplyToAccountId&&f?.inReplyToAccountId!==M&&f?.account?.id===M,I=0,L=0;if(O===`favourite+reblog`){if(y)for(let e of y)e._types?.includes(`favourite`)&&I++,e._types?.includes(`reblog`)&&L++;!L&&I&&(O=`favourite`),!I&&L&&(O=`reblog`)}let R;R=O===`poll`?ss[N?`poll-self`:P?`poll-voted`:`poll`]:ss[O]?ss[O]:K._({id:`ODqZt1`,values:{type:O}});let B=({clickable:e,...n})=>e?z(`b`,{tabIndex:`0`,onClick:ie,...n}):z(`b`,{...n}),ee=C>0&&C>S?.length,te=ee?`remote`:`local`;if(typeof R==`function`){let n=(O===`favourite`||O===`reblog`||O===`admin.sign_up`)&&C?ee?C:S?.length:y?.length||S?.length||+!!p,r=b?.length||+!!f;if(O===`admin.report`){let e=m?.targetAccount;e&&(R=R({account:z(qe,{account:p,showAvatar:!0}),targetAccount:z(qe,{account:e,showAvatar:!0})}))}else if(O===`severed_relationships`){let e=h?.targetName;e&&(R=R({name:e}))}else if((O===`emoji_reaction`||O===`pleroma:emoji_reaction`)&&e.emoji){let n=e.emoji_url||f?.emojis?.find?.(n=>n?.shortcode===e.emoji.replace(/^:/,``).replace(/:$/,``));R=R({account:z(qe,{account:p,showAvatar:!0}),emoji:e.emoji,emojiURL:n})}else R=R(O===`annual_report`?{...e.annualReport}:{account:p?z(qe,{account:p,showAvatar:!0}):S?.[0]&&z(qe,{account:S[0],showAvatar:!0}),count:n,postsCount:r,postType:F?`reply`:`post`,components:{Subject:B}})}let V=e.createdAt&&new Date(e.createdAt).toLocaleString(),ne={"favourite+reblog":K._({id:`-XOeb-`}),favourite:K._({id:`LQFF6J`}),reblog:K._({id:`phQpSa`}),follow:K._({id:`Ih01jh`})}[O]||K._({id:`bPwFdf`}),re=(O===`favourite+reblog`||O===`favourite`||O===`reblog`||O===`admin.sign_up`)&&te===`remote`,ie=()=>{re?o.showGenericAccounts={heading:ne,accounts:y,fetchAccounts:async()=>{let e=await Promise.allSettled(x.map(async e=>[e,(await c.v2.notifications.$select(e).accounts.list().values().next()).value])),n=[];for(let r of e){let[e,i]=r.value,a=/^favourite/.test(e)?`favourite`:/^reblog/.test(e)?`reblog`:null;for(let e of i){let r=n.find(n=>n.id===e.id);r&&a?r._types.push(a):(a&&(e._types=[a]),n.push(e))}}return{done:!0,value:n}},showReactions:O===`favourite+reblog`,postID:Ae(A,r)}:o.showGenericAccounts={heading:ne,accounts:y,showReactions:O===`favourite+reblog`,excludeRelationshipAttrs:O===`follow`?[`followedBy`]:[],postID:Ae(A,r)}};if(f?.filtered){let e=f?.account?.id===M,n=pt(f.filtered,`notifications`);if(!N&&!e&&n?.action===`hide`)return null}return z(`div`,{class:`notification notification-${O}`,"data-notification-id":v||d,"data-group-key":x?.join(` `)||w,tabIndex:`0`,onMouseEnter:e=>{e.shiftKey},children:[z(`div`,{class:`notification-type notification-${O}`,title:V,children:O===`favourite+reblog`?z(n,{children:[z(X,{icon:`rocket`,size:`xl`,alt:O,class:`reblog-icon`}),z(X,{icon:`heart`,size:`xl`,alt:O,class:`favourite-icon`})]}):O===`mention+quote`?z(n,{children:[z(X,{icon:`comment`,size:`xl`,alt:O,class:`mention-icon`}),z(X,{icon:`quote`,size:`xl`,alt:O,class:`quote-icon`})]}):z(X,{icon:as[O]||`notification`,size:`xl`,alt:O})}),z(`div`,{class:`notification-content`,children:[O!==`mention`&&O!==`quote`&&O!==`mention+quote`&&z(n,{children:[z(`p`,{children:R}),O===`follow_request`&&z(is,{accountID:p.id}),O===`severed_relationships`&&z(`div`,{children:[cs[h.type]({from:r,...h}),z(`br`,{}),z(`a`,{href:`https://${r}/severed_relationships`,target:`_blank`,rel:`noopener`,children:z(j,{id:`YL6Y8P`,components:{0:z(X,{icon:`external`,size:`s`})}})}),`.`]}),O===`moderation_warning`&&!!g&&z(`div`,{children:[s(ls[g.action]()),z(`br`,{}),z(`a`,{href:`/disputes/strikes/${g.id}`,target:`_blank`,rel:`noopener`,children:z(j,{id:`YL6Y8P`,components:{0:z(X,{icon:`external`,size:`s`})}})})]}),O===`annual_report`&&z(`div`,{children:z(Z,{to:`/annual_report/${_?.year}`,children:z(j,{id:`5PGPvG`})})})]}),y?.length>1&&z(`p`,{class:`avatars-stack`,children:[y.slice(0,us).map(e=>z(n,{children:[z(`a`,{href:e.url,rel:`noopener`,class:`account-avatar-stack`,onClick:n=>{n.preventDefault(),o.showAccount=e},children:[z(vt,{url:e.avatarStatic,size:y.length<=10?`xxl`:y.length<20?`xl`:`l`,alt:`${e.displayName} @${e.acct}`,squircle:e?.bot},e.id),O===`favourite+reblog`&&z(`div`,{class:`account-sub-icons`,children:e._types.map(e=>z(X,{icon:as[e],size:`s`,class:`${e}-icon`}))})]},e.id),` `]},e.id)),re?z(`button`,{type:`button`,class:`small plain`,"data-group-keys":x?.join(` `),onClick:ie,children:[`+`,(O===`favourite`||O===`reblog`||O===`admin.sign_up`)&&C-y.length,z(X,{icon:`chevron-down`})]}):z(`button`,{type:`button`,class:`small plain`,onClick:ie,children:[y.length>us&&`+${y.length-us}`,z(X,{icon:`chevron-down`})]})]}),!y?.length&&S?.length>1&&z(`p`,{class:`avatars-stack`,children:[S.map(e=>z(n,{children:[z(`a`,{href:e.url,rel:`noopener`,class:`account-avatar-stack`,onClick:n=>{n.preventDefault(),o.showAccount=e},children:z(vt,{url:e.avatarStatic,size:`xxl`,alt:`${e.displayName} @${e.acct}`,squircle:e?.bot},e.id)},e.id),` `]},e.id)),C>S.length&&f?.id&&z(Z,{to:r?`/${r}/s/${f.id}`:`/s/${f.id}`,class:`button small plain centered`,children:[`+`,C-S.length,z(X,{icon:`chevron-right`})]})]}),b?.length>1&&z(`ul`,{class:`notification-group-statuses`,children:b.map(e=>z(`li`,{children:z(fs,{class:`status-link status-type-${O}`,to:r?`/${r}/s/${e.id}`:`/s/${e.id}`,children:z(Mt,{status:e,size:`s`,previewMode:!0,allowContextMenu:!0,allowFilters:!0})})},e.id))}),f&&(!b?.length||b?.length<=1)&&z(fs,{class:`status-link status-type-${O}`,to:r?`/${r}/s/${A}`:`/s/${A}`,onContextMenu:a?void 0:e=>{let n=e.target.querySelector(`.status`);if(n){if(e.metaKey)return;e.preventDefault(),n.dispatchEvent(new MouseEvent(`contextmenu`,{clientX:e.clientX,clientY:e.clientY}))}},children:i?z(Mt,{status:k,size:`s`,readOnly:!0,allowContextMenu:!0,allowFilters:!0}):z(Mt,{statusID:A,size:`s`,readOnly:!0,allowContextMenu:!0,allowFilters:!0})})]})]})}function fs(e){let{_:n}=l(),r=kt();return z(Z,{...e,"data-read-more":n({id:`8fZueG`}),ref:r})}var ps=pe(ds,(e,n)=>e.notification?.id===n.notification?.id);`serviceWorker`in navigator&&navigator.serviceWorker.addEventListener(`message`,e=>{let{type:n,id:r,accessToken:i}=e?.data||{};n===`notification`&&(o.routeNotification={id:r,accessToken:i})});var ms=pe(function(){let{_:e}=l();if(!(`serviceWorker`in navigator))return null;let{routeNotification:n}=W(o),{id:r,accessToken:i}=n||{},[a,s]=L(!1);N(()=>{if(!r||!i)return;let{instance:e}=u(),{masto:n,instance:a}=u({accessToken:i}),c=e===a,l=i?be(i):B();(async()=>{let i=await n.v1.notifications.$select(r).fetch();if(i&&l){let n=l.instanceURL,{type:a,status:u,account:d}=i,f=!!document.querySelector(`#modal-container > *`),p=a===`follow`&&!!d?.id,m=!!d?.id,h=!!u?.id;p&&c?o.showAccount={account:d,instance:n}:f||!c||m&&h?s({id:r,account:l,notification:i,sameInstance:c}):h?location.hash=`/${e}/s/${u.id}`:p?location.hash=`/${e}/a/${d.id}`:location.hash=`/notifications`}})()},[r,i]),N(()=>{navigator?.clearAppBadge&&navigator.clearAppBadge()},[]),an(e=>{e&&navigator?.clearAppBadge&&navigator.clearAppBadge()});let c=()=>{s(!1),o.routeNotification=null,/\/notifications\?id=/i.test(location.hash)&&(location.hash=`/notifications`)};if(a){let{id:n,account:r,notification:i,sameInstance:o}=a;return z(zt,{onClick:e=>{e.target===e.currentTarget&&c()},children:z(`div`,{class:`sheet`,tabIndex:`-1`,children:[z(`button`,{type:`button`,class:`sheet-close`,onClick:c,children:z(X,{icon:`x`,alt:e({id:`yz7wBu`})})}),z(`header`,{children:z(`b`,{children:z(j,{id:`5-87Pq`})})}),z(`main`,{children:[!o&&z(`p`,{children:z(j,{id:`k9N0Xk`})}),z(`div`,{class:`notification-peek`,onClick:e=>{let{target:n}=e;(e.target.tagName===`BUTTON`||e.target.tagName===`A`)&&c()},children:z(ps,{instance:r.instanceURL,notification:i,isStatic:!0})}),z(`div`,{style:{textAlign:`end`},children:z(Z,{to:`/notifications`,class:`button light`,onClick:c,children:[z(`span`,{children:z(j,{id:`_WA_tl`})}),` `,z(X,{icon:`arrow-right`})]})})]})]})})}return null}),hs=({limit:e}={})=>{let n=I.account.get(`searchHistory`)||[];return e?n.slice(0,e):n},gs=10,_s=(e,n=null)=>{if(!e?.trim?.())return;let r=hs(),i=r.findIndex(r=>r.query===e&&r.queryType===n);i!==-1&&r.splice(i,1),r.unshift({query:e.trim(),queryType:n,timestamp:Date.now()});let a=r.slice(0,gs);I.account.set(`searchHistory`,a)},vs=(e,n=null)=>{let r=hs().filter(r=>!(r.query===e&&r.queryType===n));I.account.set(`searchHistory`,r)},ys=()=>{I.account.set(`searchHistory`,[])},bs=(e,n,r)=>{let i,a,o;if(n===`statuses`)i=z(j,{id:`o1mMWT`,values:{query:e},components:{0:z(`q`,{})}}),a=`/search?q=${encodeURIComponent(e)}&type=statuses`,o=`document`;else if(n===`accounts`)i=z(j,{id:`cDoNQr`,values:{query:e},components:{0:z(`q`,{})}}),a=`/search?q=${encodeURIComponent(e)}&type=accounts`,o=`group`;else if(n===`hashtags`){let[,n=`#`,s=e]=e.match(/^([##])?(.*)$/);i=z(j,{id:`mFfcu0`,values:{hashtag:`${n}${s}`},components:{0:z(`mark`,{})}}),a=`/${r}/t/${s}`,o=`hashtag`}else i=z(j,{id:`48oDit`,values:{query:e},components:{0:z(`small`,{class:`insignificant`})}}),a=`/search?q=${encodeURIComponent(e)}`,o=`search`;return{label:i,to:a,icon:o}},xs=w((e,n)=>{let{_:r}=l(),{instance:i}=u(),[o,s]=ce(),[c,d]=L(!1),[f,p]=L(o.get(`q`)||``),h=o.get(`type`),g=a(null),_=a(null);F(n,()=>({setValue:e=>{p(e)},focus:()=>{_.current.focus()},select:()=>{_.current.select()},blur:()=>{_.current.blur()}}));let v=m(()=>hs({limit:5}),[e?.hidden]),y=m(()=>{if(!f)return[];let e=v.filter(e=>e.query===f?!1:e.query.toLowerCase().includes(f.toLowerCase())).slice(0,2).map(e=>({...bs(e.query,e.queryType,i),queryType:e.queryType,isRecentSearch:!0,historyItem:e}));return[{...bs(f,null,i),top:!h&&!/\s/.test(f),hidden:!!h},...e,{...bs(f,`statuses`,i),hidden:/^https?:/.test(f),top:/\s/.test(f),queryType:`statuses`},{...bs(f,`hashtags`,i),hidden:/^[@@]/.test(f)||/^https?:/.test(f)||/\s/.test(f),top:/^[##]/.test(f),type:`link`,queryType:`hashtags`},{label:z(j,{id:`gEoOUj`,values:{query:f},components:{0:z(`mark`,{})}}),to:`/${f}`,hidden:!/^https?:/.test(f),top:/^https?:/.test(f),type:`link`,icon:`arrow-right`},{...bs(f,`accounts`,i),queryType:`accounts`}].sort((e,n)=>{if(h){if(e.queryType===h)return-1;if(n.queryType===h)return 1}return e.top&&!n.top?-1:!e.top&&n.top?1:0}).filter(({hidden:e})=>!e)},[f,h,i]);return z(`form`,{ref:g,class:`search-popover-container`,onSubmit:n=>{if(n.preventDefault(),/\/search/.test(location.hash))if(f){let e={q:f};h&&(e.type=h),s(e)}else s({});else f?location.hash=`/search?q=${encodeURIComponent(f)}${h?`&type=${h}`:``}`:location.hash=`/search`;_s(f,h),e?.onSubmit?.(n)},children:[z(`input`,{ref:_,value:f,name:`q`,type:`search`,placeholder:r({id:`A1taO8`}),dir:`auto`,autocomplete:`off`,autocorrect:`off`,autocapitalize:`off`,spellCheck:`false`,enterKeyHint:`search`,onSearch:e=>{e.target.value||s({})},onInput:e=>{p(e.target.value),d(!0)},onFocus:()=>{d(!0);let e=g.current?.querySelector(`.search-popover-item`);e&&e.classList.add(`focus`)},onBlur:()=>{setTimeout(()=>{d(!1)},100),g.current?.querySelector(`.search-popover-item.focus`)?.classList.remove(`focus`)},onKeyDown:n=>{let{key:r}=n;switch(r){case`Escape`:d(!1);break;case`Down`:case`ArrowDown`:if(n.preventDefault(),c){let e=g.current.querySelector(`.search-popover-item.focus`);if(e){let n=e.nextElementSibling;for(;n&&n.hidden;)n=n.nextElementSibling;n&&(n.classList.add(`focus`),Array.from(n.parentElement.children).filter(e=>e!==n).forEach(e=>{e.classList.remove(`focus`)}))}else{let e=g.current.querySelector(`.search-popover-item`);e&&e.classList.add(`focus`)}}break;case`Up`:case`ArrowUp`:if(n.preventDefault(),c){let e=document.querySelector(`.search-popover-item.focus`);if(e){let n=e.previousElementSibling;for(;n&&n.hidden;)n=n.previousElementSibling;n&&(n.classList.add(`focus`),Array.from(n.parentElement.children).filter(e=>e!==n).forEach(e=>{e.classList.remove(`focus`)}))}else{let e=document.querySelectorAll(`.search-popover-item`),n=e[e.length-1];n&&n.classList.add(`focus`)}}break;case`Enter`:if(c){let r=document.querySelector(`.search-popover-item.focus`);r&&(n.preventDefault(),r.click()),d(!1),e?.onSubmit?.(n)}break}}}),z(`div`,{class:`search-popover`,hidden:!c,children:[!f&&v.length>0&&z(`div`,{class:`search-popover-recent-searches`,children:[z(`div`,{class:`search-popover-header`,children:[z(X,{icon:`history`,size:`s`}),z(j,{id:`4R1B1H`})]}),v.map((n,r)=>{let{label:a,to:o,icon:s}=bs(n.query,n.queryType,i);return z(Z,{to:o,class:`search-popover-item ${r===0?`focus`:``}`,onClick:r=>{_s(n.query,n.queryType),e?.onSubmit?.(r)},children:[z(X,{icon:s,class:`more-insignificant`}),z(`span`,{children:a})]},`${n.query}-${n.queryType}-${n.timestamp}`)}),z(Z,{to:`/search`,class:`search-popover-item search-history-see-all`,children:[z(X,{icon:`more2`,class:`more-insignificant`}),z(`span`,{children:z(j,{id:`gukqfD`})})]})]}),y.map(({label:n,to:r,icon:i,queryType:a,isRecentSearch:o,historyItem:s},c)=>z(Z,{to:r,class:`search-popover-item ${o?`search-popover-item-recent`:``} ${c===0?`focus`:``}`,onClick:n=>{o||_s(f,a),e?.onSubmit?.(n)},children:[z(X,{icon:i,class:`more-insignificant`}),z(`span`,{children:n})]},o?`recent-${s.query}-${s.queryType}-${s.timestamp}`:`suggestion-${a||`general`}-${c}`))]})]})}),Ss=pe(function({onClose:e=()=>{}}){let n=W(o),[r,i]=L(!1),s=a(null);_(()=>{if(n.showSearchCommand){let{query:e}=n.showSearchCommand;i(!0),setTimeout(()=>{e&&s.current?.setValue?.(e),s.current?.focus?.()},150),o.showSearchCommand=!1}},[n.showSearchCommand]),$e([`Slash`,`/`],e=>{i(!0),setTimeout(()=>{s.current?.focus?.(),s.current?.select?.()},0)},{useKey:!0,preventDefault:!0,ignoreEventWhen:e=>{let n=/\/search/.test(location.hash),r=/\/yip/.test(location.hash),i=!!document.querySelector(`#modal-container > *`);return e.key===`/`?!1:n||r||i||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey}});let c=()=>{i(!1),e()};$e(`esc`,e=>{s.current?.blur?.(),c()},{enabled:r,enableOnFormTags:!0,preventDefault:!0,useKey:!0,ignoreEventWhen:e=>e.metaKey||e.ctrlKey||e.altKey||e.shiftKey});let l=!r;return z(`div`,{id:`search-command-container`,hidden:l,onClick:e=>{e.target===e.currentTarget&&c()},children:z(xs,{ref:s,hidden:l,onSubmit:()=>{c()}})})});function Cs({lists:e}){return z(n,{children:[z(Nt,{to:`/l`,children:z(`span`,{children:z(j,{id:`BHWx-g`})})}),z(rt,{}),e?.map(e=>z(Nt,{to:`/l/${e.id}`,children:z(`span`,{children:[e.title,e.exclusive&&z(n,{children:[` `,z(Ei,{})]})]})},e.id))]})}function ws(){let{_:e,_:r}=l(),{instance:i}=u(),s=W(o),{shortcuts:c,settings:d}=s;if(!c.length)return null;let f=d.shortcutsViewMode===`multi-column`||!d.shortcutsViewMode&&d.shortcutsColumnsMode,p=a(),m=a(),h=a(!1),g=c.map((e,n)=>{let{type:a,...o}=e;if(!Xo[a])return null;let{id:s,path:c,title:l,subtitle:u,icon:d,altIcon:f}=Xo[a];return typeof s==`function`&&(s=s(o,n)),typeof c==`function`&&(c=c({...o,instance:o.instance||i},n)),typeof l==`function`?l=l(o,n):l?.id&&(l=r(l)),typeof u==`function`?u=u(o,n):u?.id&&(u=r(u)),typeof d==`function`&&(d=d(o,n)),typeof f==`function`&&(f=f(o,n)),s===`lists`&&(h.current=!0),{id:s,path:c,title:l,subtitle:u,icon:d,altIcon:f}}).filter(Boolean);_(()=>{if(s.settings.shortcutsViewMode===`tab-menu-bar`&&m.current){let e=setTimeout(()=>{let e=m.current?.querySelector(`.is-active`);e&&e.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`center`})},100);return()=>clearTimeout(e)}},[]);let v=Ne();$e([`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`],e=>{let n=parseInt(e.key,10)-1;if(n/^[1-9]$/.test(e.key)?!1:e.metaKey||e.ctrlKey||e.altKey||e.shiftKey});let[y,b]=L([]),x=a(),S=a(),[C,w]=L(void 0);_(()=>{C===`open`&&yi().then(b)},[C]);let T=Jt(()=>{w(`open`)},{threshold:600,detect:`touch`,cancelOnMovement:!0}),E=Jt(()=>{o.showAccounts=!0},{threshold:600,detect:`touch`,cancelOnMovement:!0});return f?null:z(`div`,{id:`shortcuts`,children:s.settings.shortcutsViewMode===`tab-menu-bar`?z(n,{children:[z(`nav`,{ref:m,class:`tab-bar`,onContextMenu:e=>{e.preventDefault(),o.showShortcutsSettings=!0},children:z(`ul`,{children:g.map(({id:e,path:r,title:i,subtitle:a,icon:s,altIcon:c},l)=>{let u=e===`lists`?{ref:S,onContextMenu(e){e.preventDefault(),e.stopPropagation(),w(`open`)},...T()}:e===`profile`?{onContextMenu(e){e.preventDefault(),e.stopPropagation(),o.showAccounts=!0},...E()}:{};return z(`li`,{children:z(Z,{class:a?`has-subtitle`:``,to:r,onClick:n=>{if(n.target.classList.contains(`is-active`)){n.preventDefault();let r=document.getElementById(`${e}-page`);if(r){r.scrollTop=0;let e=r.querySelector(`.updates-button`);e&&e.click()}}},...u,children:[c?.url?c?.type===`avatar`?z(vt,{staticUrl:c.url,size:`l`}):z(`img`,{src:c.url,alt:``,class:`shortcut-icon`,loading:`lazy`,decoding:`async`,fetchPriority:`low`}):z(X,{icon:s,size:`xl`}),z(`span`,{children:[z(Ko,{children:i}),a&&z(n,{children:[z(`br`,{}),z(`small`,{children:a})]})]})]})},`${l}-${e}-${i}-${a}-${r}`)})})}),z(at,{ref:x,state:C,anchorRef:S,onClose:()=>{w(void 0)},overflow:`auto`,viewScroll:`close`,gap:4,boundingBoxPadding:yt(),portal:{target:document.body},children:z(Cs,{lists:y})})]}):z(tt,{instanceRef:p,overflow:`auto`,viewScroll:`close`,menuClassName:`glass-menu shortcuts-menu`,gap:8,position:`anchor`,onMenuChange:e=>{e.open&&h.current&&yi().then(b)},menuButton:z(`button`,{type:`button`,id:`shortcuts-button`,class:`plain`,onContextMenu:e=>{e.preventDefault(),o.showShortcutsSettings=!0},onTransitionStart:e=>{try{let{target:n}=e;getComputedStyle(n).pointerEvents===`none`&&p.current?.closeMenu?.()}catch{}},children:z(X,{icon:`shortcut`,size:`xl`,alt:e({id:`CTqTgr`})})}),children:g.map(({id:e,path:r,title:i,subtitle:a,icon:o},s)=>e===`lists`?z(Lt,{menuClassName:`glass-menu`,overflow:`auto`,gap:-8,label:z(n,{children:[z(X,{icon:o,size:`l`}),z(`span`,{class:`menu-grow`,children:z(Ko,{children:i})}),z(X,{icon:`chevron-right`})]}),children:z(Cs,{lists:y})}):z(Nt,{to:r,class:`glass-menu-item`,children:[z(X,{icon:o,size:`l`}),` `,z(`span`,{class:`menu-grow`,children:[z(`span`,{children:z(Ko,{children:i})}),a&&z(n,{children:[` `,z(`small`,{class:`more-insignificant`,children:a})]})]}),z(`span`,{class:`menu-shortcut hide-until-focus-visible`,children:s+1})]},`${s}-${e}-${i}-${a}-${r}`))})})}var Ts=pe(ws),Es=80;function Ds({account:e,instance:n}){let{_:r}=l();if(!e)return null;let{followersCount:i,followingCount:s,statusesCount:c,id:d,hideCollections:f}=e,p=n?`/${n}/a/${d}`:`/a/${d}`,{masto:m}=u({instance:n}),h=a();async function g(e){return d?((e||!h.current)&&(h.current=m.v1.accounts.$select(d).followers.list({limit:Es}).values()),await h.current.next()):{value:[],done:!0}}let _=a();async function v(e){return d?((e||!_.current)&&(_.current=m.v1.accounts.$select(d).following.list({limit:Es}).values()),await _.current.next()):{value:[],done:!0}}return z(`div`,{class:`account-container mini`,children:z(`div`,{class:`account-metadata-box`,children:z(`div`,{class:`stats`,children:[z(`div`,{tabIndex:0,onClick:()=>{setTimeout(()=>{o.showGenericAccounts={id:`followers`,heading:r({id:`x5LEuB`}),fetchAccounts:g,instance:n,blankCopy:f?r({id:`BRV_wh`}):void 0}},0)},children:z(j,{id:`TbttfX`,values:{0:Ze(i),1:Ze(i),followersCount:i},components:{0:z(`span`,{title:i}),1:z(`span`,{title:i})}})}),z(`div`,{class:`insignificant`,tabIndex:0,onClick:()=>{setTimeout(()=>{o.showGenericAccounts={heading:r({id:`following.stats`}),fetchAccounts:v,instance:n,blankCopy:f?r({id:`BRV_wh`}):void 0}},0)},children:z(j,{id:`SGcIK-`,values:{0:Ze(s),followingCount:s},components:{0:z(`span`,{title:s})}})}),z(Z,{class:`insignificant`,to:p,children:z(j,{id:`C4x3-X`,values:{0:Ze(c),1:Ze(c),statusesCount:c},components:{0:z(`span`,{title:c}),1:z(`span`,{title:c})}})})]})})})}function Os(e){let n=[],r=[],i=0;for(let a=0;a10&&(r.length>e.length/4||i>=3)){let i=r.map(e=>e.id);if(r.length>e.length*3/4)n=[...n,{id:i,items:r,type:`boosts`}];else{let e=Math.floor(n.length/2);n=[...n.slice(0,e),{id:i,items:r,type:`boosts`},...n.slice(e)]}return n}else return e}var ks=100;function As(e,n){let r=I.account.get(`boostedStatusIDs`)||{},i=e.filter(e=>{if(!e.reblog)return!0;let i=`${n}-${e.reblog.id}`,a=r[i];return a&&a!==e.id?!1:(r[i]=e.id,!0)}),a=Object.keys(r);return a.length>ks&&a.slice(0,a.length-ks).forEach(e=>{delete r[e]}),I.account.set(`boostedStatusIDs`,r),i}function js(e,n){if(!n)return e;let r=T();return e.filter(e=>{if(!e?.filtered)return!0;let i=e?.account?.id===r,a=pt(e.filtered,n);return!(!i&&a?.action===`hide`)})}function Ms(e,n){let r=[],i=0;e.forEach(n=>{for(let e=0;ee.id===n.id))return;if(r[e].find(e=>e.id===n.inReplyToId)||r[e].find(e=>e.inReplyToId===n.id)){r[e].push(n);return}}let a=e.find(e=>e.id===n.inReplyToId);a&&(r[i++]=[n,a])});for(let e=0;er[n].includes(e))&&(r[e]=[...r[e],...r[n]],r[e]=r[e].filter((e,n,r)=>r.findIndex(n=>n.id===e.id)===n),r.splice(n,1),n--);r.forEach(e=>{e.sort((e,n)=>!e.inReplyToId&&!n.inReplyToId?Date.parse(e.createdAt)-Date.parse(n.createdAt):e.inReplyToId===n.id?1:n.inReplyToId===e.id||!e.inReplyToId?-1:n.inReplyToId?Date.parse(e.createdAt)-Date.parse(n.createdAt):1)}),r.forEach(e=>{let n=e[0].account.id;e.forEach(e=>{e.account.id!==n&&(e._differentAuthor=!0)})}),r.length;let a=[],s=[],c=[];return e.forEach(e=>{if(e.reblog){a.push(e);return}for(let n=0;nn.id===e.id)){if(s.includes(n))return;let e=r[n];e.sort((e,n)=>Date.parse(e.createdAt)-Date.parse(n.createdAt));let i=e[0].account.id;a.push({id:e.map(e=>e.id),items:e,type:e.every(e=>e.account.id===i)?`thread`:`conversation`}),s.push(n);return}if(e.inReplyToId&&e.inReplyToAccountId!==e.account.id){let r=Ae(e.id,n);o.statusReply[r]||c.push({sKey:r,inReplyToId:e.inReplyToId})}a.push(e)}),c?.length&&setTimeout(()=>{let{masto:e}=u({instance:n});async function r(){for(let r=0;rsetTimeout(e,1e3))}catch{}}}if(Xe(`@mastodon/fetch-multiple-statuses`)){let i=c.map(({inReplyToId:e})=>e);(async()=>{try{let a=await e.v1.statuses.list({id:i});if(a?.length)for(let e of a){O(e,n,{skipThreading:!0});let r=c.find(({inReplyToId:n})=>n===e.id)?.sKey;r&&(o.statusReply[r]={id:e.id,instance:n})}else r()}catch{r()}})()}else r()},10),a}var Ns=r((e,n)=>n.v1.statuses.$select(e).fetch());async function Ps(e,n){let r=await Uo();if(!r.length)return;let{statusFollowedTags:i}=o,a=[];if(e.forEach(e=>{if(e.reblog)return;let{id:o,content:s,tags:c=[]}=e,l=Ae(o,n);if(i[l]?.length)return;let u=Go(s);if(!u.length&&!c.length)return;let d=r.reduce((e,n)=>((u.some(e=>e.toLowerCase()===n.name.toLowerCase())||c.some(e=>e.name.toLowerCase()===n.name.toLowerCase()))&&e.push(n.name),e),[]);d.length&&a.push({item:e,sKey:l,followedTags:d})}),a.length){let e=await ze(a.map(e=>e.item.account));if(!e)return;a.forEach(n=>{let{item:r,sKey:a,followedTags:o}=n,s=e[r.account.id];s&&!s.following&&(i[a]=o)})}}function Fs(){o.statusFollowedTags={}}function Is({scrollableRef:e,distanceFromStart:n=1,distanceFromEnd:r=1,scrollThresholdStart:i=10,scrollThresholdEnd:a=10,direction:o=`vertical`,distanceFromStartPx:s,distanceFromEndPx:c}={}){let[l,u]=L(null),[d,f]=L(!1),[p,m]=L(!1),[h,g]=L(!1),[_,v]=L(!1),y=o===`vertical`;return N(()=>{let o=e.current;if(!o)return{};let l=y?o.scrollTop:o.scrollLeft;function d(){let{scrollTop:e,scrollLeft:d,scrollHeight:p,scrollWidth:h,clientHeight:_,clientWidth:b}=o,x=y?e:d,S=y?p:h,C=y?_:b,w=Math.abs(x-l),T=s||Math.min(C*n,S,x),E=c||Math.min(C*r,S,S-x-C);w>=(l=S),g(x<=T),v(x+C>=S-E)}return o.addEventListener(`scroll`,d,{passive:!0}),()=>o.removeEventListener(`scroll`,d)},[n,r,i,a]),{scrollDirection:l,reachStart:d,reachEnd:p,nearReachStart:h,nearReachEnd:_,init:()=>{e.current&&e.current.dispatchEvent(new Event(`scroll`))}}}function Ls({scrollableRef:e,distanceFromStart:n=1,distanceFromEnd:r=1,scrollThresholdStart:i=10,scrollThresholdEnd:o=10,direction:s=`vertical`,distanceFromStartPx:c,distanceFromEndPx:l,init:u}={},d){if(!d)return;let f=s===`vertical`,p=a(null),m=a(null),h=Ge(()=>{let a=!1,s=!1,u=!1,h=!1,{scrollTop:g,scrollLeft:_,scrollHeight:v,scrollWidth:y,clientHeight:b,clientWidth:x}=e.current,S=f?g:_,C=f?v:y,w=f?b:x,T=S-p.current,E=T>0,D=E?o:i,O=c||Math.min(w*n,C,S),k=l||Math.min(w*r,C,C-S-w);Math.abs(T)>=D&&(m.current=E?`end`:`start`,p.current=S),a=S<=0,s=S+w>=C,u=S<=O,h=S+w>=C-k,d({scrollDirection:m.current,reachStart:a,reachEnd:s,nearReachStart:u,nearReachEnd:h})},500,{leading:!1});return N(()=>{let n=e.current;return n&&(p.current=n[f?`scrollTop`:`scrollLeft`],n.addEventListener(`scroll`,h,{passive:!0})),()=>{n&&n.removeEventListener(`scroll`,h)}},[]),_(()=>{u&&e.current&&queueMicrotask(()=>{e.current.dispatchEvent(new Event(`scroll`))})},[u]),{resetScrollDirection:()=>{m.current=null}}}function Rs({class:e,statusID:n,status:r,instance:i,parent:a,onMediaClick:s}){let{_:c}=l(),u=Ae(n,i),d=W(o);if(r||(r=d.statuses[u]||d.statuses[n],u=Ae(r?.id,i)),!r)return null;let{account:{acct:f,avatar:p,avatarStatic:g,id:_,url:v,displayName:y,username:b,emojis:x,bot:S,group:C},id:w,repliesCount:E,reblogged:D,reblogsCount:O,favourited:k,favouritesCount:A,bookmarked:j,poll:M,muted:N,sensitive:P,spoilerText:F,visibility:I,language:L,editedAt:R,filtered:B,card:ee,createdAt:te,inReplyToId:V,inReplyToAccountId:ne,content:re,mentions:ie,mediaAttachments:ae,reblog:H,uri:U,url:oe,emojis:se,_deleted:G,_pinned:ce}=r;if(!ae?.length)return null;let le=e=>{e.shiftKey},ue=m(()=>T(),[]),de=m(()=>ue&&ue===_,[_,ue]),K=xe(Gt),fe=!de&&pt(B,K);if(fe?.action===`hide`)return null;let pe=P,me=(h()[`reading:expand:media`]?.toLowerCase()||`default`)===`show_all`,q=a||`div`;return ae.map((n,a)=>{let o=`${u}-${n.id}`,l=fe?.titlesStr;return z(q,{"data-state-post-id":u,onMouseEnter:le,"data-spoiler-text":F||(P?c({id:`FKojeB`}):void 0),"data-filtered-text":fe?c(l?{id:`7FGvtQ`,values:{filterTitleStr:l}}:{id:`03Qqf9`}):void 0,class:`
+ media-post
+ ${fe?`filtered`:``}
+ ${pe?`has-spoiler`:``}
+ ${me?`show-media`:``}
+ `,children:z(Bt,{class:e,media:n,lang:L,to:`/${i}/s/${w}?media-only=${a+1}`,onClick:s?e=>s(e,a,n,r):void 0})},o)})}var zs=pe(Rs);function Bs(e){let{_:r}=l(),i=W(o),{masto:s,instance:c,authenticated:d}=u(),[f,p]=m(()=>{let e=g();return[e.find(e=>e.info.id===T())||e[0],e.length>1]},[]),h=i.settings.shortcutsViewMode===`tab-menu-bar`&&i.shortcuts.some(e=>e.type===`profile`),_=p&&!h,v=(i.settings.shortcutsViewMode===`multi-column`||!i.settings.shortcutsViewMode&&i.settings.shortcutsColumnsMode)&&!i.shortcuts.find(e=>e.type===`following`),y=Jt(()=>{o.showAccounts=!0},{threshold:600,detect:`touch`,cancelOnMovement:!0}),b=a(),[x,S]=L(void 0),C=yt([0,0,i.settings.shortcutsViewMode===`tab-menu-bar`?50:0,0]),w=a();async function E(e){return(e||!w.current)&&(w.current=s.v1.mutes.list({limit:80}).values()),await w.current.next()}let D=a();async function O(e){return(e||!D.current)&&(D.current=s.v1.blocks.list({limit:80}).values()),await D.current.next()}let k=a();return z(n,{children:[z(`button`,{ref:b,type:`button`,class:`button plain nav-menu-button ${_?`with-avatar`:``} ${x===`open`?`active`:``}`,style:{position:`relative`},onClick:()=>{k.current=Date.now(),S(e=>e?void 0:`open`)},onContextMenu:e=>{e.preventDefault(),o.showAccounts=!0},...y(),children:[_&&z(vt,{url:f?.info?.avatar||f?.info?.avatarStatic,size:`l`,squircle:f?.info?.bot}),z(X,{icon:`menu`,size:_?`s`:`l`,alt:r({id:`zucql-`})})]}),z(at,{menuClassName:`nav-menu`,state:x,anchorRef:b,onClose:()=>{S(void 0)},containerProps:{style:{zIndex:10},onClick:()=>{Date.now()-k.current}},portal:{target:document.body},...e,overflow:`auto`,viewScroll:`close`,position:`anchor`,align:`center`,boundingBoxPadding:C,unmountOnClose:!0,children:[!!i.appVersion?.commitHash&&i.appVersion.commitHash!==`67947a9`&&z(`div`,{class:`top-menu`,children:[z(Q,{onClick:()=>{confirm(r({id:`Djbaby`}))&&(async()=>{try{location.reload()}catch{}})()},children:[z(X,{icon:`sparkles`,class:`sparkle-icon`,size:`l`}),` `,z(`span`,{children:z(j,{id:`95IFnD`})})]}),z(rt,{})]}),z(`section`,{children:[z(Nt,{to:`/`,children:[z(X,{icon:`home`,size:`l`}),` `,z(`span`,{children:z(j,{id:`i0qMbr`})})]}),d?z(n,{children:[v&&z(Nt,{to:`/following`,children:[z(X,{icon:`following`,size:`l`}),` `,z(`span`,{children:z(j,{id:`following.title`})})]}),z(Nt,{to:`/catchup`,children:[z(X,{icon:`history2`,size:`l`}),z(`span`,{children:z(j,{id:`xrl8fj`})})]}),Xe(`@mastodon/mentions`)&&z(Nt,{to:`/mentions`,children:[z(X,{icon:`at`,size:`l`}),` `,z(`span`,{children:z(j,{id:`_bZzdR`})})]}),z(Nt,{to:`/notifications`,children:[z(X,{icon:`notification`,size:`l`}),` `,z(`span`,{children:z(j,{id:`iDNBZe`})}),i.notificationsShowNew&&z(`sup`,{title:r({id:`isRobC`}),style:{opacity:.5},children:[` `,`•`]})]}),z(rt,{}),f?.info?.id&&z(Nt,{to:`/${c}/a/${f.info.id}`,children:[z(X,{icon:`user`,size:`l`}),` `,z(`span`,{children:z(j,{id:`vERlcd`})})]}),z(Vs,{menuState:x}),z(Nt,{to:`/b`,children:[z(X,{icon:`bookmark`,size:`l`}),` `,z(`span`,{children:z(j,{id:`7Ff7ia`})})]}),z(Lt,{menuClassName:`nav-submenu`,overflow:`auto`,gap:-8,label:z(n,{children:[z(X,{icon:`more`,size:`l`}),z(`span`,{class:`menu-grow`,children:z(j,{id:`24misb`})}),z(X,{icon:`chevron-right`})]}),children:[z(Nt,{to:`/f`,children:[z(X,{icon:`heart`,size:`l`}),` `,z(`span`,{children:z(j,{id:`zZOZj7`})})]}),z(Nt,{to:`/fh`,children:[z(X,{icon:`hashtag`,size:`l`}),` `,z(`span`,{children:z(j,{id:`Xi1_bw`})})]}),z(Nt,{to:`/sp`,children:[z(X,{icon:`schedule`,size:`l`}),` `,z(`span`,{children:z(j,{id:`-GkIdc`})})]}),z(rt,{}),Xe(`@mastodon/filters`)&&z(Nt,{to:`/ft`,children:[z(X,{icon:`filters`,size:`l`}),` `,z(`span`,{children:z(j,{id:`cSev-j`})})]}),z(Q,{onClick:()=>{o.showGenericAccounts={id:`mute`,heading:r({id:`sOKhEA`}),fetchAccounts:E,excludeRelationshipAttrs:[`muting`]}},children:[z(X,{icon:`mute`,size:`l`}),` `,z(`span`,{children:z(j,{id:`n1sANU`})})]}),z(Q,{onClick:()=>{o.showGenericAccounts={id:`block`,heading:r({id:`nL8nlr`}),fetchAccounts:O,excludeRelationshipAttrs:[`blocking`]}},children:[z(X,{icon:`block`,size:`l`}),` `,z(`span`,{children:z(j,{id:`r3RRWo`})})]}),` `]}),z(rt,{}),z(Q,{onClick:()=>{o.showAccounts=!0},children:[z(X,{icon:`group`,size:`l`}),` `,z(`span`,{children:z(j,{id:`7e0O8Z`})})]})]}):z(n,{children:[z(rt,{}),z(Nt,{to:`/login`,children:[z(X,{icon:`user`,size:`l`}),` `,z(`span`,{children:z(j,{id:`sQia9P`})})]})]})]}),z(`section`,{children:[z(rt,{}),z(Nt,{to:`/search`,children:[z(X,{icon:`search`,size:`l`}),` `,z(`span`,{children:z(j,{id:`A1taO8`})})]}),!i.settings.hideTrendingTimeline&&z(Nt,{to:`/${c}/trending`,children:[z(X,{icon:`chart`,size:`l`}),` `,z(`span`,{children:z(j,{id:`4_iCqx`})})]}),!i.settings.hideLocalTimeline&&z(Nt,{to:`/${c}/p/l`,children:[z(X,{icon:`building`,size:`l`}),` `,z(`span`,{children:z(j,{id:`d5zxa4`})})]}),!i.settings.hideFederatedTimeline&&z(Nt,{to:`/${c}/p`,children:[z(X,{icon:`earth`,size:`l`}),` `,z(`span`,{children:z(j,{id:`4ERYY7`})})]}),d?z(n,{children:[z(rt,{className:`divider-grow`}),z(Q,{onClick:()=>{o.showKeyboardShortcutsHelp=!0},children:[z(X,{icon:`keyboard`,size:`l`}),` `,z(`span`,{children:z(j,{id:`77Emn0`})})]}),z(Q,{onClick:()=>{o.showShortcutsSettings=!0},children:[z(X,{icon:`shortcut`,size:`l`}),` `,z(`span`,{children:z(j,{id:`8Kudkr`})})]}),z(Q,{onClick:()=>{o.showSettings=!0},children:[z(X,{icon:`gear`,size:`l`}),` `,z(`span`,{children:z(j,{id:`uVbUP8`})})]})]}):z(n,{children:[z(rt,{}),z(Q,{onClick:()=>{o.showSettings=!0},children:[z(X,{icon:`gear`,size:`l`}),` `,z(`span`,{children:z(j,{id:`uVbUP8`})})]})]})]})]})]})}function Vs({menuState:e}){let r=Xe(`@mastodon/lists`),[i,a]=L([]);return _(()=>{r&&e===`open`&&yi().then(a)},[e,r]),i.length>0?z(Lt,{menuClassName:`nav-submenu`,overflow:`auto`,gap:-8,label:z(n,{children:[z(X,{icon:`list`,size:`l`}),z(`span`,{class:`menu-grow`,children:z(j,{id:`h16FyT`})}),z(X,{icon:`chevron-right`})]}),children:[z(Nt,{to:`/l`,children:z(`span`,{children:z(j,{id:`BHWx-g`})})}),i?.length>0&&z(n,{children:[z(rt,{}),i.map(e=>z(Nt,{to:`/l/${e.id}`,children:z(`span`,{children:[e.title,e.exclusive&&z(n,{children:[` `,z(Ei,{})]})]})},e.id))]})]}):r&&z(Nt,{to:`/l`,children:[z(X,{icon:`list`,size:`l`}),z(`span`,{children:z(j,{id:`h16FyT`})})]})}var Hs=pe(Bs),Us={block:`start`,inline:`center`,behavior:`instant`},Ws=`.timeline-pagination button[data-pagination-trigger="prev"]`,Gs=`.timeline-pagination button[data-pagination-trigger="next"]`,Ks=`.timeline-item, .timeline-item-alt`;function qs(e){return $e(`j, shift+j`,(n,r)=>{if(n.shiftKey!==r.shift)return;let i=document.activeElement.closest(Ks),a=i?.getBoundingClientRect(),o=Array.from(e.current?.querySelectorAll(Ks)||[]).filter(e=>!!e.offsetHeight);if(i&&a.top0){let n=o.indexOf(i),a=o[n+1];if(r.shift&&(a=o.find((e,r)=>r>n&&!e.classList.contains(`timeline-item-alt`))),a)a.focus(),a.scrollIntoView(Us);else{let n=e.current.querySelector(Gs);n&&n.click()}}else{let e=o.find(e=>{let n=e.getBoundingClientRect();return n.top>=44&&n.left>=0});e&&(e.focus(),e.scrollIntoView(Us))}},{useKey:!0,ignoreEventWhen:e=>e.metaKey||e.ctrlKey||e.altKey||e.key.toLowerCase()!==`j`})}function Js(e){return $e(`k, shift+k`,(n,r)=>{if(n.shiftKey!==r.shift)return;let i=document.activeElement.closest(Ks),a=i?.getBoundingClientRect(),o=Array.from(e.current?.querySelectorAll(Ks)||[]).filter(e=>!!e.offsetHeight);if(i&&a.top0){let n=o.indexOf(i),a=o[n-1];if(r.shift&&(a=o.findLast((e,r)=>r{let n=e.getBoundingClientRect();return n.top>=44&&n.left>=0});e&&(e.focus(),e.scrollIntoView(Us))}},{useKey:!0,ignoreEventWhen:e=>e.metaKey||e.ctrlKey||e.altKey||e.key.toLowerCase()!==`k`})}function Ys(){return $e([`enter`,`o`],(e,n)=>{let r=document.activeElement;if(r?.matches(Ks))if(n.keys.join(``)===`o`){let e=r.querySelector(`a.media:not(.status-card a.media)`);if(e){let n=e.getAttribute(`href`);if(/media\-only=/i.test(n)){let e=n.replace(/media\-only=/i,`media=`);setTimeout(()=>{location.hash=e},100)}else e.click()}else r.click()}else r.click()},{useKey:!0,ignoreEventWhen:e=>e.key===`Enter`?!1:e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.key.toLowerCase()!==`o`})}function Xs({title:e,titleComponent:r,id:i,instance:s,emptyText:c,errorText:u,useItemID:d,boostsCarousel:f,fetchItems:p=()=>{},checkForUpdates:h=()=>{},checkForUpdatesInterval:g=15e3,headerStart:v,headerEnd:b,timelineStart:x,refresh:S,view:C,filterContext:w,showFollowedTags:T,showReplyParent:E,clearWhenRefresh:D}){let{_:O}=l(),k=W(o),[A,M]=L([]),[N,P]=L(`start`),[F,I]=L(!1),[R,B]=L(!1),[ee,te]=L(!0),V=a();__BENCHMARK.start(`timeline-${i}-load`);let re=m(()=>ne(),[]),ie=C!==`media`,ae=a(0),H=Je(e=>{B(!1),P(`loading`),(async()=>{try{let n=ae.current=Date.now(),{done:r,value:a}=await p(e);if(n!==ae.current)return;if(Array.isArray(a)){let[n,i]=a.reduce((e,n)=>(n._pinned?e[0].push(n):e[1].push(n),e),[[],[]]);a=i,a=js(a,w),ie&&(f&&(a=Os(a)),a=Ms(a,s)),n.length&&(a=n.concat(a)),M(e?a:e=>[...e,...a]),a.length||(r=!0),I(!r)}else I(!1);P(`default`),__BENCHMARK.end(`timeline-${i}-load`)}catch{P(`error`),e&&!A.length&&u&&Y(u)}finally{H.cancel()}})()},1e3,{leading:!0}),U=qs(V),oe=Js(V),se=Ys(),G=A.length>0&&N!==`loading`&&R,ce=y(()=>{G&&H(!0),V.current?.scrollTo({top:0,behavior:`smooth`})},[H,G]),le=$e(`.`,ce,{useKey:!0,ignoreEventWhen:e=>e.key===`.`?!1:e.metaKey||e.ctrlKey||e.altKey||e.shiftKey}),ue=a(),[de,K]=L(!1),fe=y(({scrollDirection:e,nearReachStart:n,reachStart:r})=>{if(ue.current){let r=e===`end`&&!n;ue.current.hidden=r}K(n),r&&H(!0)},[K,H]),{resetScrollDirection:pe}=Ls({scrollableRef:V,distanceFromEnd:2,scrollThresholdStart:44},fe);_(()=>{V.current?.scrollTo({top:0}),H(!0)},[]);let me=a(!0);_(()=>{if(me.current){me.current=!1;return}D&&A?.length&&(H.cancel?.(),M([])),H(!0)},[D,S]);let q=a(C);_(()=>{q.current!==C&&(q.current=C,M([]))},[C]);let he=y(async({disableIdleCheck:e=!1}={})=>{let n=V.current?getComputedStyle(V.current).pointerEvents===`none`:!1;k.settings.autoRefresh&&V.current.scrollTop<16&&(e||window.__IDLE__)&&!ec()&&!n?H(!0):await h()&&B(!0)},[i,H,h,k.settings.autoRefresh]),ge=a();return an(e=>{if(e){let e=Date.now()-ge.current;(!ge.current||e>1e3*3)&&he({disableIdleCheck:!0})}else ge.current=Date.now();te(e)},[h,he,k.settings.autoRefresh]),Ue(he,ee&&!R?g*(de?1:2):null),z(Gt.Provider,{value:w,children:z(`div`,{id:`${i}-page`,class:`deck-container ${re?`deck-container-media-first`:``}`,ref:e=>{V.current=e,U.current=e,oe.current=e,se.current=e,le.current=e},tabIndex:`-1`,onClick:e=>{ue.current&&e.target.closest(`.timeline-item, .timeline-item-alt`)&&setTimeout(()=>{ue.current.hidden=!1,pe()},250)},children:z(`div`,{class:`timeline-deck deck`,children:[z(`header`,{ref:ue,onClick:e=>{e.target.closest(`a, button`)||V.current?.scrollTo({top:0,behavior:`smooth`})},onDblClick:e=>{e.target.closest(`a, button`)||H(!0)},class:N===`loading`?`loading`:``,children:[z(`div`,{class:`header-grid`,children:[z(`div`,{class:`header-side`,children:[z(Hs,{}),v??z(Z,{to:`/`,class:`button plain home-button`,children:z(X,{icon:`home`,size:`l`,alt:O({id:`i0qMbr`})})})]}),e&&(r||z(`h1`,{children:e})),z(`div`,{class:`header-side`,children:!!b&&b})]}),G&&z(`button`,{class:`updates-button shiny-pill`,type:`button`,onClick:ce,children:[z(X,{icon:`arrow-up`}),` `,z(j,{id:`2yr1_p`})]})]}),!!x&&z(`div`,{class:`timeline-start ${N===`loading`?`loading`:``}`,children:x}),A.length?z(n,{children:[z(`ul`,{class:`timeline ${C?`timeline-${C}`:``}`,children:[A.map(e=>z(Zs,{status:e,instance:s,useItemID:d,filterContext:w,view:C,showFollowedTags:T,showReplyParent:E,mediaFirst:re},e.id+e?._pinned+C)),F&&N===`loading`&&(C===`media`?null:z(n,{children:[z(`li`,{style:{height:`20vh`},children:z(Mt,{skeleton:!0,mediaFirst:re})}),z(`li`,{style:{height:`25vh`},children:z(Mt,{skeleton:!0,mediaFirst:re})})]}))]}),N===`default`&&(F?z(He,{root:V.current,rootMargin:`0px 0px ${screen.height*1.5}px 0px`,onChange:e=>{e&&H()},children:z(`button`,{type:`button`,class:`plain block`,onClick:()=>H(),style:{marginBlockEnd:`6em`},children:z(j,{id:`uXRAkV`})})}):z(`p`,{class:`ui-state insignificant`,children:z(j,{id:`2EYeAZ`})}))]}):N===`loading`?z(`ul`,{class:`timeline`,children:Array.from({length:5}).map((e,n)=>C===`media`?z(`div`,{style:{height:`50vh`}}):z(`li`,{children:z(Mt,{skeleton:!0,mediaFirst:re})},n))}):N!==`error`&&N!==`start`&&z(`p`,{class:`ui-state`,children:c}),N===`error`&&z(`p`,{class:`ui-state`,children:[u,z(`br`,{}),z(`br`,{}),z(`button`,{type:`button`,onClick:()=>H(!A.length),children:z(j,{id:`KDw4GX`})})]})]})})})}var Zs=pe(({status:e,instance:n,useItemID:r,filterContext:i,view:a,showFollowedTags:o,showReplyParent:s,mediaFirst:c})=>{let{_:u}=l(),{id:d,reblog:f,items:p,type:m,_pinned:h}=e;h&&(r=!1);let g=f?.id||d,_=n?`/${n}/s/${g}`:`/s/${g}`;if(p){let e=qt(p,i),a=``;if(m===`boosts`?a=K._({id:`NuqppG`,values:{0:e.length}}):m===`pinned`&&(a=u({id:`GlfmCu`})),m===`boosts`||m===`pinned`){let o=new Set;if(e.sort((e,n)=>{let r=pt(e.filtered,i),a=pt(n.filtered,i);return r&&r?.action!==`blur`&&o.add(e.id),a&&a?.action!==`blur`&&o.add(n.id),r&&!a?1:!r&&a?-1:0}),o.size>=2){let n=[],r=[];e.forEach(e=>{o.has(e.id)?r.push(e):n.push(e)});let i=[];for(let e=0;e{let{id:i,reblog:a,_pinned:o,_grouped:s}=e;if(s)return z(`li`,{class:`timeline-item-carousel-group`,children:e.posts.map(e=>{let{id:i,reblog:a,_pinned:o}=e,s=a?.id||i,c=n?`/${n}/s/${s}`:`/s/${s}`;return o&&(r=!1),z(Z,{class:`status-carousel-link timeline-item-alt`,to:c,children:r?z(Mt,{statusID:i,instance:n,size:`s`}):z(Mt,{status:e,instance:n,size:`s`})})})},i);let l=a?.id||i,u=n?`/${n}/s/${l}`:`/s/${l}`;return o&&(r=!1),z(`li`,{children:z(Z,{class:`status-carousel-link timeline-item-alt`,to:u,children:r?z(Mt,{statusID:i,instance:n,size:`s`,contentTextWeight:!0,enableCommentHint:!0,mediaFirst:c}):z(Mt,{status:e,instance:n,size:`s`,contentTextWeight:!0,enableCommentHint:!0,mediaFirst:c})})},i)})})},`timeline-${d}`)}let s=e.length>3;return e.map((a,c)=>{let{id:l,_differentAuthor:u}=a,d=n?`/${n}/s/${l}`:`/s/${l}`,f=c>0&&c0||s&&f&&(m===`thread`||m===`conversation`&&!u&&!e[c-1]._differentAuthor&&!e[c+1]._differentAuthor),g=c===0,_=c===e.length-1;return z(`li`,{class:`timeline-item-container timeline-item-container-type-${m} timeline-item-container-${g?`start`:_?`end`:`middle`} ${u?`timeline-item-diff-author`:``}`,children:z(Z,{class:`status-link timeline-item`,to:d,children:h?z($s,{status:a,instance:n,filterContext:i}):r?z(Mt,{statusID:l,instance:n,enableCommentHint:_,showFollowedTags:o}):z(Mt,{status:a,instance:n,enableCommentHint:_,showFollowedTags:o})})},`timeline-${l}`)})}let v=`timeline-${d+h}`;return a===`media`?r?z(zs,{class:`timeline-item`,parent:`li`,statusID:d,instance:n},v):z(zs,{class:`timeline-item`,parent:`li`,status:e,instance:n},v):z(`li`,{children:z(Z,{class:`status-link timeline-item`,to:_,children:r?z(Mt,{statusID:d,instance:n,enableCommentHint:!0,showFollowedTags:o,showReplyParent:s,mediaFirst:c}):z(Mt,{status:e,instance:n,enableCommentHint:!0,showFollowedTags:o,showReplyParent:s,mediaFirst:c})})},v)},(e,n)=>(e.status?.id||``).toString()===(n.status?.id||``).toString()&&e.instance===n.instance&&e.view===n.view);function Qs({title:e,class:n,children:r}){let{_:i}=l(),o=a(),s=a(),c=a(),[u,d]=L(!1);return _(()=>{setTimeout(()=>{d(!0)},1)},[]),z(`div`,{class:`status-carousel ${n}`,children:[z(`header`,{children:[z(`h3`,{children:e}),z(`span`,{children:[z(`button`,{ref:s,type:`button`,class:`small plain2`,onClick:()=>{let e=Math.min(320,o.current?.offsetWidth)*(Re()?1:-1);o.current?.scrollBy({left:e,behavior:`smooth`})},children:z(X,{icon:`chevron-left`,alt:i({id:`DHhJ7s`})})}),` `,z(`button`,{ref:c,type:`button`,class:`small plain2`,onClick:()=>{let e=Math.min(320,o.current?.offsetWidth)*(Re()?-1:1);o.current?.scrollBy({left:e,behavior:`smooth`})},children:z(X,{icon:`chevron-right`,alt:i({id:`hXzOVo`})})})]})]}),z(`ul`,{ref:o,children:[z(He,{class:`status-carousel-beacon`,onChange:e=>{s.current&&(s.current.disabled=e)}}),r[0],u&&r.slice(1),z(He,{class:`status-carousel-beacon`,onChange:e=>{c.current&&(c.current.disabled=e)}})]})]})}function $s({status:e,instance:r,filterContext:i}){let{_:a}=l(),s=W(o),{id:c,visibility:u,language:d}=e,f=Ot(e),p=Ae(c,r),m=pt(e.filtered,i);return z(`article`,{class:`status compact-thread ${u===`direct`?`visibility-direct`:``}`,tabindex:`-1`,children:[z(`div`,{class:`status-thread-badge-container`,children:z(Rt,{index:s.statusThreadNumber[p]})}),z(`div`,{class:`content-compact`,title:f,lang:d,dir:`auto`,children:m&&m?.action!==`blur`?z(`b`,{class:`status-filtered-badge badge-meta horizontal`,title:m?.titlesStr||``,children:m?.titlesStr?z(j,{id:`sr6maL`,values:{0:m.titlesStr},components:{0:z(`span`,{}),1:z(`span`,{})}}):z(`span`,{children:z(j,{id:`03Qqf9`})})}):z(n,{children:[f,e.sensitive&&e.spoilerText&&z(n,{children:[` `,z(`span`,{class:`spoiler-badge`,children:z(X,{icon:`eye-close`,size:`s`,alt:a({id:`gnKo7f`})})})]})]})})]})}function ec(){return!!document.querySelector(`.deck-backdrop, #modal-container > *`)}var tc=20,nc=1983,rc=`${nc}-01`,ic=J(()=>{try{let e=document.createElement(`input`);return e.setAttribute(`type`,`month`),e.type===`month`}catch{return!1}});function ac({columnMode:e,...r}){let{i18n:i,_:s}=l(),c=W(o),{id:d,...p}=e?{id:r.id}:k(),h=a(new URLSearchParams({replies:1})),[,g]=f(e=>e+1,0),v=y(e=>{let n=h.current;typeof e==`function`?e(n):e instanceof URLSearchParams?([...n.keys()].forEach(e=>n.delete(e)),e.forEach((e,r)=>n.set(r,e))):Object.entries(e).forEach(([e,r])=>{r?n.set(e,r):n.delete(e)}),g()},[]),[b,x]=e?[h.current,v]:ce(),S=y((n,r)=>{let i=new URLSearchParams(e?{replies:1}:void 0);r!==void 0&&i.set(n,r),x(i)},[x]),w=y((e,n)=>{let r=new URLSearchParams(b.toString());r.get(e)?r.delete(e):r.set(e,n??`1`),x(r)},[x,b]),E=b.get(`month`),D=!b.get(`replies`),A=!!b.get(`boosts`),M=b.get(`tagged`),N=!!b.get(`media`),{masto:P,instance:F,authenticated:I}=u({instance:p?.instance}),{masto:R,instance:B}=u(),ee=a(),te=[E,D,A,M,N],[V,re]=L(),ie=a(0);_(()=>{ie.current=0},te);let ae=m(()=>ne(),[]),H=m(()=>F===B,[F,B]),[U,oe]=L(!1);_(()=>{H&&V?.acct&&(async()=>{oe(await hi(F))})()},[F,H,V?.acct]);async function se(n){let r=/^\d{4}-[01]\d$/.test(E),i=E?.split?.(`-`)?.[0]>=nc;if(r&&i){if(!V)return{value:[],done:!0};let[e,r]=E.split(`-`),i=parseInt(r,10)-1,a=new Date(e,i,0),o=`${a.getFullYear()}-${(a.getMonth()+1).toString().padStart(2,`0`)}-${a.getDate().toString().padStart(2,`0`)}`,s=new Date(e,i+1,1),c=`${s.getFullYear()}-${(s.getMonth()+1).toString().padStart(2,`0`)}-${s.getDate().toString().padStart(2,`0`)}`,l;n?(l=tc+1,ie.current=0):(l=tc+ie.current+1,ie.current+=tc);let u=await P.v2.search.list({q:`from:${V.acct} after:${o} before:${c}`,type:`statuses`,limit:l,offset:ie.current});if(u?.statuses?.length){let e=u.statuses.slice(0,tc);return e.forEach(e=>{O(e,F)}),{value:e,done:u.statuses.length<=tc}}else return{value:[],done:!0}}let a=[];if(n&&!e){let{value:e}=await P.v1.accounts.$select(d).statuses.list({pinned:!0}).values().next();if(e?.length&&!M&&!N){let n=e.map(e=>(O(e,F),{...e,_pinned:!0}));if(n.length>=3){let e=n.map(e=>e.id);a.push({id:e,items:n,type:`pinned`})}else a.push(...n)}}(n||!ee.current)&&(ee.current=P.v1.accounts.$select(d).statuses.list({limit:tc,exclude_replies:D,exclude_reblogs:A,only_media:N||void 0,tagged:M}).values());let{value:o,done:s}=await ee.current.next();if(o?.length){if(!Xe(`@mastodon/pinned-posts`)&&a.length){let e=[];e=a[0]?.type===`pinned`?a[0].id:a.filter(e=>e._pinned).map(e=>e.id),e.every(e=>o.some(n=>n.id===e))&&(a=[])}a.push(...o),o.forEach(e=>{O(e,F)})}return{value:a,done:s}}let[G,le]=L([]),ue=s({id:`_cKnpj`});if(V?.acct){let e=(/@/.test(V.acct)?``:`@`)+V.acct,n=V?.displayName?`${V.displayName} (${e})`:e;if(M&&N)ue=s({id:`lYyloN`,values:{tagged:M,accountDisplay:n}});else if(M)ue=s({id:`8ZPzp0`,values:{tagged:M,accountDisplay:n}});else if(E){let[e,r]=E.split(`-`);ue=s({id:`Did6le`,values:{monthYear:new Date(+e,r-1,1).toLocaleString(i.locale,{month:`long`,year:`numeric`}),accountDisplay:n}})}else ue=N?s({id:`dFu2-z`,values:{accountDisplay:n}}):n}he(ue,`/:instance?/a/:id`);let de=y(()=>cc(d,P),[d,P]);_(()=>{(async()=>{try{re(await de())}catch{}if(!ae)try{le(await P.v1.accounts.$select(d).featuredTags.list())}catch{}})()},[d,ae]);let{displayName:K,acct:fe,emojis:pe}=V||{},me=m(()=>V?.id===T(),[V?.id]),q=a(),ge=m(()=>{let r=(e?D:!D)||A||M||N||!!E,a=c.accounts[`${d}@${F}`],l=e=>{let n=new URLSearchParams(b.toString());for(let[r,i]of Object.entries(e))i==null?n.delete(r):n.set(r,i);let r=n.toString();return r?`?${r}`:``};return z(n,{children:[e?z(Ds,{account:V,instance:F}):z(Ui,{instance:F,account:a||d,fetchAccount:de,authenticated:I,standalone:!0,showEndorsements:!0}),!ae&&z(`div`,{class:`filter-bar`,ref:q,style:{position:`relative`},children:[r?z(Z,{to:`/${F}/a/${d}`,class:`insignificant filter-clear`,title:s({id:`I9EnzM`}),onClick:n=>{e&&(n.preventDefault(),S())},children:z(X,{icon:`x`,size:`l`,alt:s({id:`I9EnzM`})})},`clear-filters`):z(X,{icon:`filter`,class:`insignificant`,size:`l`,alt:s({id:`cSev-j`})}),z(`div`,{class:`filter-bar-group`,children:[z(`label`,{children:[z(`input`,{type:`checkbox`,checked:!D,disabled:!!E,onChange:()=>{w(`replies`,`1`),Y(s(D?{id:`t9yqkt`}:{id:`BHjZV6`}))}}),z(j,{id:`N8UzTV`})]}),z(`label`,{children:[z(`input`,{type:`checkbox`,checked:!A,disabled:!!E,onChange:()=>{w(`boosts`,`0`),Y(s(A?{id:`Wk2coq`}:{id:`63FG7O`}))}}),z(j,{id:`puY2t0`})]})]}),z(Z,{to:`/${F}/a/${d}${l({media:N?null:`1`})}`,onClick:n=>{e&&(n.preventDefault(),w(`media`,`1`)),N||Y(s({id:`rKpfPY`}))},class:N?`is-active`:``,children:z(j,{id:`xYilR2`})}),G.length>0&&z(`div`,{class:`filter-bar-group`,children:[...G].sort((e,n)=>e.name===M?-1:+(n.name===M)).map(n=>z(Z,{to:`/${F}/a/${d}${l({tagged:M===n.name?null:n.name})}`,onClick:r=>{if(e){r.preventDefault();let e=new URLSearchParams(b.toString());e.get(`tagged`)===n.name?e.delete(`tagged`):e.set(`tagged`,n.name),x(e)}M!==n.name&&Y(s({id:`L-HFfr`,values:{0:n.name}}))},class:M===n.name?`is-active`:``,children:z(`span`,{children:[z(`span`,{class:`more-insignificant`,children:`#`}),n.name]})},n.id))}),U&&!e&&z(n,{children:[z(`div`,{class:`filter-bar-separator`}),ic()?z(`label`,{class:`filter-field ${E?`is-active`:``}`,children:[z(X,{icon:`month`,size:`l`}),z(`input`,{type:`month`,disabled:!V?.acct,value:E||``,min:rc,max:new Date().toISOString().slice(0,7),onInput:e=>{let{value:n,validity:r}=e.currentTarget;if(!r.valid)return;x(n?{month:n}:{});let[a,o]=n.split(`-`),c=parseInt(o,10)-1;Y(s({id:`0WUFGD`,values:{0:new Date(a,c).toLocaleString(i.locale,{month:`long`,year:`numeric`})}}))}})]}):z(oc,{class:`filter-field ${E?`is-active`:``}`,disabled:!V?.acct,value:E||``,min:rc,max:new Date().toISOString().slice(0,7),onInput:e=>{let{value:n,validity:r}=e;r.valid&&x(n?{month:n}:{})}}),z(`button`,{type:`button`,class:`filter-field`,onClick:()=>{o.showSearchCommand={query:me?`from:me `:`from:${V?.acct} `}},children:z(X,{icon:`search`,size:`l`,alt:s(me?{id:`BmW9JG`}:{id:`h7t_Tx`,values:{0:V?.username}})})})]})]})]})},[d,F,I,G,de,U,...te]);_(()=>{let e=[...q.current?.querySelectorAll(`.is-active`)??[]];if(!e.length)return;let n=q.current.offsetWidth,r=Math.min(...e.map(e=>e.offsetLeft)),i=Math.max(...e.map(e=>e.offsetLeft+e.offsetWidth))-r;q.current.scrollTo({behavior:`smooth`,left:i>=n?r:r-(n-i)/2})},[G,U,...te]);let _e=m(()=>V?.url?URL.parse(V.url)?.hostname:null,[V]),ve=!!V&&F!==_e;return z(n,{children:[z(Xs,{title:`${V?.acct?`@`+V.acct:s({id:`-owNNn`})}`,titleComponent:z(`h1`,{class:`header-double-lines header-account`,children:[z(`b`,{children:z(lt,{text:K,emojis:pe,resolverURL:V?.url})}),z(`div`,{children:z(`span`,{class:`bidi-isolate`,children:[`@`,fe]})})]}),id:`account-statuses`,instance:F,emptyText:s({id:`-k97fV`}),errorText:s({id:`scd9lw`}),fetchItems:se,useItemID:!0,view:N||ae?`media`:void 0,boostsCarousel:!me&&c.settings.boostsCarousel,timelineStart:ge,refresh:[D,A,M,N,E+V?.acct].toString(),headerEnd:z(tt,{portal:!0,overflow:`auto`,viewScroll:`close`,position:`anchor`,menuButton:z(`button`,{type:`button`,class:`plain`,children:z(X,{icon:`more`,size:`l`,alt:s({id:`2FYpfJ`})})}),children:[z(Q,{disabled:!ve,onClick:()=>{(async()=>{try{let{masto:e}=u({instance:_e}),{id:n}=await e.v1.accounts.lookup({acct:V.acct});location.hash=`/${_e}/a/${n}`}catch{alert(s({id:`FgdLx0`}))}})()},children:[z(X,{icon:`transfer`}),` `,z(`small`,{class:`menu-double-lines`,children:z(j,{id:`6GZBJp`,values:{0:_e?z(n,{children:[` `,`(`,z(`b`,{children:C.toUnicode(_e)}),`)`]}):null}})})]}),!H&&z(Q,{onClick:()=>{(async()=>{try{let{id:e}=await R.v1.accounts.lookup({acct:V.acct+`@`+F});location.hash=`/${B}/a/${e}`}catch{alert(s({id:`FgdLx0`}))}})()},children:[z(X,{icon:`transfer`}),` `,z(`small`,{class:`menu-double-lines`,children:z(j,{id:`SiegcM`,values:{currentInstance:B},components:{0:z(`b`,{})}})})]})]})},d),fe&&!me&&z(`data`,{class:`compose-data`,value:JSON.stringify({draftStatus:{status:`@${fe} `}})})]})}function oc(e){let{i18n:n}=l(),{class:r,disabled:i,value:o,min:s,max:c,onInput:u=()=>{}}=e,[d,f]=o?.split(`-`)||[],p=a(),m=a(),h=(e,n)=>{let[r,i]=s?.split(`-`)||[],[a,o]=c?.split(`-`)||[];return!(na||n===r&&eo)};return z(`div`,{class:r,children:[z(X,{icon:`month`,size:`l`}),z(`select`,{ref:p,disabled:i,value:f||``,onInput:e=>{let{value:n}=e.currentTarget,r=m.current.value;if(!h(n,r))return{value:``,validity:{valid:!1}};u({value:n?`${r}-${n}`:``,validity:{valid:!0}})},children:[z(`option`,{value:``,children:z(j,{id:`HajiZl`})}),z(`option`,{disabled:!0,children:`-----`}),Array.from({length:12},(e,r)=>z(`option`,{value:(r+1).toString().padStart(2,`0`),children:new Date(0,r).toLocaleString(n.locale,{month:`long`})},r))]}),` `,z(`input`,{ref:m,type:`number`,disabled:i,value:d||new Date().getFullYear(),min:s?.slice(0,4)||nc,max:c?.slice(0,4)||new Date().getFullYear(),onInput:e=>{let{value:n,validity:r}=e.currentTarget,i=p.current.value;if(!r.valid||!h(i,n))return{value:``,validity:{valid:!1}};u({value:n?`${n}-${i}`:``,validity:{valid:!0}})},style:{width:`4.5em`}})]})}function sc(e,n){return n.v1.accounts.$select(e).fetch()}var cc=r(sc,{expires:1800*1e3});function lc(){let{year:e}=k();he(e?`${e} #Wrapstodon`:`#Wrapstodon`,`/annual_report/:year`);let{masto:r,instance:i}=u(),[a,o]=L(null),[s,c]=L(`default`);_(()=>{e&&(async()=>{c(`loading`),o(await r.v1.annualReports.$select(e).fetch()),c(`default`)})()},[e]);let{accounts:l,annualReports:d,statuses:f}=a||{},p=d?.find(n=>n.year==e)?.data,m=new Date;return z(`div`,{id:`annual-report-page`,class:`deck-container`,tabIndex:`-1`,children:[z(`div`,{class:`report ${s===`loading`?`loading-mask`:``}`,children:[z(`h1`,{children:[e,` #Wrapstodon`]}),!!p&&z(`dl`,{children:Object.entries(p).map(([e,r])=>{let a={};return Array.isArray(r)&&r.forEach(e=>{Object.entries(e).forEach(([e,n])=>{typeof n==`number`&&(a[e]=(a[e]||0)+n)})}),z(n,{children:[z(`dt`,{children:e}),z(`dd`,{class:`report-${e}`,children:Array.isArray(r)?z(`table`,{children:[z(`thead`,{children:z(`tr`,{children:Object.entries(r[0]).map(([e,n])=>z(`th`,{class:e!==`month`&&typeof n==`number`?`number`:``,children:e}))})}),z(`tbody`,{children:r.map(n=>z(`tr`,{children:Object.entries(n).map(([n,r])=>z(`td`,{class:n!==`month`&&typeof r==`number`?`number`:``,style:{"--percentage":typeof r==`number`?`${r/a[n]*100}%`:0},children:r&&/(accountId)/i.test(n)&&/^(mostRebloggedAccounts|commonlyInteractedWithAccounts)$/i.test(e)?l?.find(e=>e.id===r)?z(qe,{account:l?.find(e=>e.id===r),showAvatar:!0}):`👻`:n===`month`?m.setMonth(r-1)&&m.toLocaleString(void 0,{month:`long`}):typeof r==`number`?r.toLocaleString():r}))}))})]}):typeof r==`object`?/^(topStatuses)$/i.test(e)?z(`dl`,{children:Object.entries(r).map(([e,r])=>z(n,{children:[z(`dt`,{children:e}),z(`dd`,{children:r&&z(Z,{to:`/${i}/s/${r}`,children:z(Mt,{status:f?.find(e=>e.id===r),size:`s`,readOnly:!0,showCommentCount:!0})})})]}))}):z(`table`,{children:z(`tbody`,{children:Object.entries(r).map(([e,n])=>z(`tr`,{children:[z(`th`,{children:e}),z(`td`,{class:typeof n==`number`?`number`:``,children:n})]}))})}):typeof r==`string`?r:JSON.stringify(r,null,2)})]})})})]}),z(`hr`,{}),z(`p`,{style:{textAlign:`center`},children:z(Z,{to:`/`,children:z(j,{id:`iWpEwy`})})})]})}var uc=20;function dc(){let{_:e}=l();he(e({id:`7Ff7ia`}),`/b`);let{masto:n,instance:r}=u(),i=a();async function o(e){return(e||!i.current)&&(i.current=n.v1.bookmarks.list({limit:uc}).values()),await i.current.next()}return z(Xs,{title:e({id:`7Ff7ia`}),id:`bookmarks`,emptyText:e({id:`8k2w6G`}),errorText:e({id:`UoL-FC`}),instance:r,fetchItems:o})}var fc=``+new URL(`catch-up-O5q5C75Z.png`,import.meta.url).href,pc=`home`,mc=`catchup`,hc=[{label:{id:`Ov9hfp`},value:1},{label:{id:`tVE2wM`},value:2},{label:{id:`8-HOWa`},value:3},{label:{id:`1o-mEC`},value:4},{label:{id:`dZZ8oA`},value:5},{label:{id:`lpPucp`},value:6},{label:{id:`r9r5X6`},value:7},{label:{id:`I9uBFA`},value:8},{label:{id:`pBYFlb`},value:9},{label:{id:`wvL7OJ`},value:10},{label:{id:`7Vb-qD`},value:11},{label:{id:`VU1Pnd`},value:12},{label:{id:`vpc27K`},value:13,beyond:!0}],gc={original:{id:`HxF6Fk`},replies:{id:`N8UzTV`},quotes:{id:`eWLklq`},boosts:{id:`puY2t0`},followedTags:{id:`lCLRBe`},groups:{id:`zhrjek`},filtered:{id:`03Qqf9`}},_c=[`createdAt`,`repliesCount`,`favouritesCount`,`reblogsCount`,`density`],vc=[null,`account`],yc=J(e=>new Intl.DateTimeFormat(e||void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`numeric`,minute:`numeric`}));function bc(e){return e?.id||e?.quotedStatus?.id}function xc(){let{i18n:r,_:i,_:s}=l(),d=yc(r.locale);he(`Catch-up`,`/catchup`);let{masto:p,instance:h}=u(),[g,v]=ce(),b=g.get(`id`),[x,S]=L(`start`),[C,w]=L(!1),E=m(()=>T(),[]),D=e=>e===E,O=Xe(`@pixelfed/home-include-reblogs`);async function k({maxCreatedAt:e}){let n=[],r=p.v1.timelines.home.list({limit:40}),i=r.values();mainloop:for(;;)try{O&&r.params&&(typeof r.params==`string`?r.params+=`&include_reblogs=true`:r.params.include_reblogs=!0);let{value:a}=await i.next();if(a?.length){await Ps(a,h);let r=!1;for(let i=0;i=e){let e=!D(s.reblog?.account?.id||s.account.id)&&pt(s.reblog?.filtered||s.filtered,pc);if(e?.action===`hide`)continue;s._filtered=e;let i=Ae(s.id,h);s._followedTags=o.statusFollowedTags[i]?[...o.statusFollowedTags[i]]:[],n.push(s),r=!0}if(!r)break mainloop}}else break mainloop;await new Promise(e=>setTimeout(e,1e3))}catch{break mainloop}return n.forEach(e=>{if(e?.inReplyToId){let r=n.find(n=>n.id===e.inReplyToId);r&&!r.inReplyToId&&(r._thread=!0)}}),n}let[A,M]=L([]),P=a(),F=a(),R=m(()=>e(),[]),B=y(async({duration:e}={})=>{let n=Date.now(),r=e?n-e:null;S(`loading`);let i=await k({maxCreatedAt:r}),a=`${R}-${ft()}`;try{await Wt.catchup.set(a,{id:a,posts:i,count:i.length,startAt:r,endAt:n}),v({id:a})}catch{}},[]);_(()=>{b?(async()=>{let e=await Wt.catchup.get(b);e&&(e.posts.sort((e,n)=>e.createdAt>n.createdAt?1:-1),M(e.posts),S(`results`))})():x===`results`&&(M([]),S(`start`))},[b]);let[ee,te]=f(e=>e+1,0),[V,ne]=L(null),[re,ie]=L([]);_(()=>{let e=new Set(re.map(e=>e.id));for(let n=sessionStorage.length-1;n>=0;n--){let r=sessionStorage.key(n);if(r?.startsWith(`${mc}-`)){let n=r.replace(`${mc}-`,``);e.has(n)||I.session.del(r)}}},[re]),_(()=>{(async()=>{try{let n=await Wt.catchup.keys();if(n.length){let r=e(),i=n.filter(e=>e.startsWith(`${r}-`));if(i.length){let e=await Wt.catchup.getMany(i);e.sort((e,n)=>n.endAt-e.endAt);let n=e.slice(0,3),r=e.slice(3);ie(n.map(e=>{let{id:n,count:r,startAt:i,endAt:a}=e;return{id:n,count:r,startAt:i,endAt:a}})),ne(n[0].endAt),e=null,n=null,queueMicrotask(()=>{r.length&&Wt.catchup.delMany(r.map(e=>e.id)).then(()=>{r=null}).catch(e=>{})});return}}}catch{}ie([])})()},[ee]),_(()=>{x===`start`&&te()},[x===`start`]);let[ae,H]=m(()=>{let e=0,n=0,r=0,i=0,a=0,o=0,s=0,c={};for(let l of A){l._filtered&&l._filtered?.action!==`blur`?(e++,l.__FILTER=`filtered`):l.group?(n++,l.__FILTER=`groups`):l.reblog?(r++,l.__FILTER=`boosts`):Yt()&&bc(l.quote)?(i++,l.__FILTER=`quotes`):l._followedTags?.length?(o++,l.__FILTER=`followedTags`):l.inReplyToId&&l.inReplyToAccountId!==l.account?.id?(a++,l.__FILTER=`replies`):(s++,l.__FILTER=`original`);let u=l.reblog||l;if(l.__FILTER!==`filtered`&&u.card?.url&&u.card?.image&&u.card?.type===`link`){let{card:e,favouritesCount:n,reblogsCount:r}=u,{url:i}=e;if(i=i.replace(/\/$/,``),!c[i])c[i]={postID:u.id,card:e,shared:1,sharers:[l.account],likes:n,boosts:r};else{if(c[i].sharers.find(e=>e.id===l.account.id))continue;c[i].shared++,c[i].sharers.push(l.account),c[i].postID!==u.id&&(c[i].likes+=n,c[i].boosts+=r)}}}let l=[];for(let e in c)l.push({url:e,...c[e]});if(l.sort((e,n)=>e.shared>n.shared?-1:e.sharedn.boosts?-1:e.boostsn.likes?-1:e.likesn.quotes?-1:+(e.quotes10)linksLoop:for(let e=10;e{if(!b)return;let e=I.session.getJSON(`${mc}-${b}`);e&&(e.selectedFilterCategory!==void 0&&se(e.selectedFilterCategory),e.selectedAuthor!==void 0&&G(e.selectedAuthor),e.sortBy!==void 0&&K(e.sortBy),e.sortOrder!==void 0&&pe(e.sortOrder),e.groupBy!==void 0&&q(e.groupBy),e.showTopLinks!==void 0&&w(e.showTopLinks))},[b]),_(()=>{if(!b||x!==`results`)return;let e={selectedFilterCategory:U,selectedAuthor:W,sortBy:de,sortOrder:fe,groupBy:me,showTopLinks:C};I.session.setJSON(`${mc}-${b}`,e)},[b,x,U,W,de,fe,me,C]);let[ge,_e,ve]=m(()=>{let e={},n=new Map,r=A.filter(r=>{let i=U===`all`||r.__FILTER===U;return i&&(e[r.account.id]=r.account,n.set(r.account.id,(n.get(r.account.id)||0)+1)),i}),i={};return r.forEach(e=>{e.reblog&&(i[e.reblog.id]?(i[e.reblog.id].__BOOSTERS?i[e.reblog.id].__BOOSTERS.add(e.account):i[e.reblog.id].__BOOSTERS=new Set([e.account]),e.__HIDDEN=!0):i[e.reblog.id]=e)}),W&&n.has(W)&&(r=r.filter(e=>e.account.id===W||[...e.__BOOSTERS||[]].find(e=>e.id===W))),[r,e,Object.fromEntries(n)]},[U,W,A]),ye=m(()=>{let e={};return ge.forEach(n=>{e[n.id]=n}),e},[ge]),be=m(()=>Object.keys(ve).sort((e,n)=>ve[n]-ve[e]),[ve]),xe=m(()=>{let e={};return be.forEach((n,r)=>{e[n]=r}),ge.filter(e=>!e.__HIDDEN).sort((n,r)=>{if(me===`account`){let i=n.account.id,a=r.account.id,o=e[i]-e[a];if(o!==0)return o}if(de!==`createdAt`&&(n=n.reblog||n,r=r.reblog||r,de!==`density`&&n[de]===r[de]))return n.createdAt>r.createdAt?1:-1;if(de===`density`){let e=Ec(n),i=Ec(r);return fe===`asc`?e>i?1:-1:i>e?1:-1}return fe===`asc`?n[de]>r[de]?1:-1:r[de]>n[de]?1:-1})},[ge,de,fe,me,be]),Se=a(null),Ce=a(null),we=a(!1);_(()=>{A.length>100||we.current||Ce.current&&(ir(Ce.current,{duration:200}),we.current=!0)},[A,Ce]);let Te=A.length>160?`3d`:`2d`,Ee=m(()=>Te===`2d`?A.map(e=>{let n=ye[e.id];return z(`span`,{class:`post-dot ${n?`post-dot-highlight`:``}`},e.id)}):null,[ye]),De=m(()=>Te!==`3d`||!A?.length?null:Ac(A,`createdAt`,320).map((e,n)=>z(`div`,{class:`posts-bin`,children:e.map(e=>{let n=ye[e.id];return z(`span`,{class:`post-dot ${n?`post-dot-highlight`:``}`},e.id)})},n)),[ye]),Oe=a(null);N(()=>{if(!b||x!==`results`||!Oe.current||!xe.length)return;let e=I.session.getJSON(`${mc}-${b}`);if(e?.scrollTop!==void 0&&e.scrollTop>0){let n=setTimeout(()=>{Oe.current&&Oe.current.scrollTo({top:e.scrollTop,behavior:`instant`})},100);return()=>clearTimeout(n)}},[b,x,xe.length]),_(()=>{if(!b||x!==`results`||!Oe.current)return;let e=()=>{if(!Oe.current)return;let e=I.session.getJSON(`${mc}-${b}`)||{};e.scrollTop=Oe.current.scrollTop,I.session.setJSON(`${mc}-${b}`,e)},n=Oe.current;return n.addEventListener(`scroll`,e,{passive:!0}),()=>{n.removeEventListener(`scroll`,e)}},[b,x]);let J=m(()=>V?(Date.now()-V)/1e3/60/60:null,[V,le]);_(()=>{if(x!==`results`)return;W&&_e[W]&&_e[W].username;let e=Y({duration:5e3,text:s({id:`XKZRZ_`,values:{selectedFilterCategory:U,sortBy:de,sortOrder:fe,groupBy:me}})});return()=>{e?.hideToast?.()}},[x,U,W,de,fe,me,_e]),_(()=>{if(W&&_e[W]){let e=Ce.current.querySelector(`[data-author="${W}"]`),n=Ce.current?.getBoundingClientRect(),r=e?.getBoundingClientRect();r.leftn.right?e.scrollIntoView({block:`nearest`,inline:`center`,behavior:`smooth`}):r.top<0&&e.scrollIntoView({block:`nearest`,inline:`nearest`,behavior:`smooth`})}},[W,_e]);let[ke,je]=L(!1),Me=`.catchup-list > li > a`,Ne=$e(`j`,()=>{let e=document.activeElement.closest(Me),n=e?.getBoundingClientRect(),r=Array.from(Oe.current.querySelectorAll(Me));if(e&&n.top0){let n=r[r.indexOf(e)+1];n&&(n.focus(),n.scrollIntoView({block:`center`,inline:`center`,behavior:`instant`}))}else{let e=r.find(e=>e.getBoundingClientRect().top>=0);e&&(e.focus(),e.scrollIntoView({block:`nearest`,inline:`center`,behavior:`instant`}))}},{useKey:!0,preventDefault:!0,ignoreEventWhen:e=>e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.key.toLowerCase()!==`j`}),Pe=$e(`k`,()=>{let e=document.activeElement.closest(Me),n=e?.getBoundingClientRect(),r=Array.from(Oe.current.querySelectorAll(Me));if(e&&n.top0){let n=r[r.indexOf(e)-1];n&&(n.focus(),n.scrollIntoView({block:`center`,inline:`center`,behavior:`instant`}))}else{let e=r.find(e=>{let n=e.getBoundingClientRect();return n.top>=44&&n.left>=0});e&&(e.focus(),e.scrollIntoView({block:`nearest`,inline:`center`,behavior:`instant`}))}},{useKey:!0,preventDefault:!0,ignoreEventWhen:e=>e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.key.toLowerCase()!==`k`}),Fe=$e(`h, l`,(e,n)=>{let r=n.keys[0];if(W){let e=be.indexOf(W);r===`h`?e>0&&e=0&&(G(be[e+1]),Oe.current?.focus())}else r===`l`&&(G(be[0]),Oe.current?.focus())},{useKey:!0,preventDefault:!0,ignoreEventWhen:e=>e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||![`h`,`l`].includes(e.key.toLowerCase()),enableOnFormTags:[`input`]}),Ie=$e(`esc`,()=>{G(null),Oe.current?.focus()},{preventDefault:!0,ignoreEventWhen:e=>e.metaKey||e.ctrlKey||e.altKey||e.shiftKey,enableOnFormTags:[`input`],useKey:!0}),Le=$e(`.`,()=>{Oe.current?.scrollTo({top:0,behavior:`smooth`})},{useKey:!0,preventDefault:!0,ignoreEventWhen:e=>e.key===`.`?!1:e.metaKey||e.ctrlKey||e.altKey||e.shiftKey,enableOnFormTags:[`input`]}),Re=y(e=>{let n=document.activeElement,r=n?.tagName===`INPUT`&&n.type===`radio`;if((e.key===`ArrowDown`||e.key===`ArrowUp`||e.key===`ArrowLeft`||e.key===`ArrowRight`)&&r){n.blur();return}},[]);return z(`div`,{ref:e=>{Oe.current=e,Ne.current=e,Pe.current=e,Fe.current=e,Ie.current=e,Le.current=e},id:`catchup-page`,class:`deck-container`,tabIndex:`-1`,children:[z(`div`,{class:`timeline-deck deck wide`,children:[z(`header`,{class:`${x===`loading`?`loading`:``}`,onClick:e=>{e.target.closest(`a, button`)||Oe.current?.scrollTo({top:0,behavior:`smooth`})},children:z(`div`,{class:`header-grid`,children:[z(`div`,{class:`header-side`,children:[z(Hs,{}),x===`results`&&z(Z,{to:`/catchup`,class:`button plain`,children:z(X,{icon:`history2`,size:`l`,alt:s({id:`xrl8fj`})})}),x===`start`&&z(Z,{to:`/`,class:`button plain`,children:z(X,{icon:`home`,size:`l`,alt:s({id:`i0qMbr`})})})]}),z(`h1`,{children:x!==`start`&&z(j,{id:`wyL_3_`,components:{0:z(`sup`,{})}})}),z(`div`,{class:`header-side`,children:x!==`start`&&x!==`loading`&&z(`button`,{type:`button`,class:`plain`,onClick:()=>{je(!0)},children:z(j,{id:`c3XJ18`})})})]})}),z(`main`,{onKeyDown:Re,children:[x===`start`&&z(`div`,{class:`catchup-start`,children:[z(`h1`,{children:z(j,{id:`wyL_3_`,components:{0:z(`sup`,{})}})}),z(`details`,{children:[z(`summary`,{children:z(j,{id:`CxKPv6`})}),z(`p`,{children:z(j,{id:`YMU1CK`})}),z(`img`,{src:``+new URL(`catch-up-O5q5C75Z.png`,import.meta.url).href,width:`1200`,height:`900`,alt:s({id:`CeInO2`})}),z(`p`,{children:z(`button`,{type:`button`,onClick:e=>{e.target.closest(`details`).open=!1},children:z(j,{id:`2jI8hh`})})})]}),z(`p`,{children:z(j,{id:`1RfGk7`})}),z(`p`,{children:z(`b`,{children:z(j,{id:`OOEonE`})})}),z(`div`,{class:`catchup-form`,children:[z(`input`,{ref:P,type:`range`,value:le,min:hc[0].value,max:hc[hc.length-1].value,step:`1`,list:`catchup-ranges`,onChange:e=>ue(+e.target.value)}),` `,z(`span`,{style:{width:`8em`},children:[i(hc[le-1].label),z(`br`,{}),z(`small`,{class:`insignificant`,children:le==hc[hc.length-1].value?s({id:`NMNiaO`}):xt(new Date(Date.now()-le*60*60*1e3))})]}),z(`datalist`,{id:`catchup-ranges`,children:hc.map(({label:e,value:n})=>z(`option`,{value:n,label:i(e)}))}),` `,z(`button`,{type:`button`,onClick:()=>{let e;lee.beyond).value?e=le*60*60*1e3:F.current?.checked&&(e=Date.now()-V),B({duration:e})},children:z(j,{id:`R0yu2l`})})]}),J&&le>J?z(`p`,{class:`catchup-info`,children:[z(X,{icon:`info`}),` `,z(j,{id:`AGyV7s`})]}):le===hc[hc.length-1].value&&V?z(`p`,{class:`catchup-info`,children:z(`label`,{children:[z(`input`,{type:`checkbox`,switch:!0,checked:!0,ref:F}),` `,z(j,{id:`dDJEHI`,values:{0:d.format(new Date(V))}})]})}):null,z(`p`,{class:`insignificant`,children:z(`small`,{children:z(j,{id:`1atgyZ`})})}),!!re?.length&&z(`div`,{class:`catchup-prev`,children:[z(`p`,{children:z(j,{id:`Yfb9A8`})}),z(`ul`,{children:re.map(e=>z(`li`,{children:[z(Z,{to:`/catchup?id=${e.id}`,children:[z(X,{icon:`history2`}),` `,z(`span`,{children:e.startAt?d.formatRange(new Date(e.startAt),new Date(e.endAt)):`… – ${d.format(new Date(e.endAt))}`})]}),` `,z(`span`,{children:[z(`small`,{class:`ib insignificant`,children:z(j,{id:`S6XZwv`,values:{0:e.count}})}),` `,z(`button`,{type:`button`,class:`light danger small`,onClick:async()=>{if(confirm(s({id:`D9CmP2`}))){let n=Y(s({id:`xJUo4P`,values:{0:e.id}}));await Wt.catchup.del(e.id),n?.hideToast?.(),Y(s({id:`1dyGG_`,values:{0:e.id}})),te()}},children:z(X,{icon:`x`,alt:s({id:`t_YqKh`})})})]})]},e.id))}),re.length>=3&&z(`p`,{children:z(`small`,{children:z(j,{id:`sXmrl4`})})})]})]}),x===`loading`&&z(`div`,{class:`ui-state catchup-start`,children:[z(oe,{abrupt:!0}),z(`p`,{class:`insignificant`,children:z(j,{id:`rbUTzD`})}),z(`p`,{class:`insignificant`,children:z(j,{id:`q9urQO`})})]}),x===`results`&&z(n,{children:[z(`div`,{class:`catchup-header`,children:[A.length>0&&z(`p`,{children:z(`b`,{class:`ib`,children:d.formatRange(new Date(A[0].createdAt),new Date(A[A.length-1].createdAt))})}),z(`aside`,{children:[z(`button`,{hidden:U===`all`&&!W&&de===`createdAt`&&fe===`asc`,type:`button`,class:`plain4 small`,onClick:()=>{se(`all`),G(null),K(`createdAt`),q(null),pe(`asc`)},children:z(j,{id:`I9EnzM`})}),H?.length>0&&z(`button`,{type:`button`,class:`plain small`,onClick:()=>w(!C),children:[z(j,{id:`EIZREX`}),` `,z(X,{icon:`chevron-down`,style:{transform:C?`rotate(180deg)`:`rotate(0deg)`}})]})]})]}),z(`div`,{class:`shazam-container no-animation`,hidden:!C,children:z(`div`,{class:`shazam-container-inner`,children:z(`div`,{class:`catchup-top-links links-bar`,children:H.map(e=>{let{card:r,shared:i,sharers:a,likes:o,boosts:s}=e,{blurhash:l,title:u,description:d,url:f,image:p,imageDescription:m,language:h,width:g,height:_,publishedAt:v}=r,y=c(f),b;if(l){let e=ya(gt(l));b=ha([.6,e[1],e[2]])}return z(`a`,{href:f,target:`_blank`,rel:`noopener`,class:`link-block`,style:b?{"--accent-color":`rgb(${b.join(`,`)})`,"--accent-alpha-color":`rgba(${b.join(`,`)}, 0.4)`}:{},children:z(`article`,{children:[z(`figure`,{children:z(`img`,{src:p,alt:m,width:g,height:_,loading:`lazy`})}),z(`div`,{class:`article-body`,children:[z(`header`,{children:[z(`div`,{class:`article-meta`,children:[z(`span`,{class:`domain`,children:y}),` `,!!v&&z(n,{children:`· `}),!!v&&z(n,{children:z(Ct,{datetime:v,format:`micro`})})]}),!!u&&z(`h1`,{class:`title`,lang:h,dir:`auto`,title:u,children:u})]}),!!d&&z(`p`,{class:`description`,lang:h,dir:`auto`,title:d,children:d}),z(`hr`,{}),z(`p`,{style:{whiteSpace:`nowrap`},children:z(j,{id:`bfSr6z`,values:{0:a.map(e=>{let{avatarStatic:n,displayName:r}=e;return z(`button`,{type:`button`,class:`plain`,style:{padding:0},onClick:n=>{n.preventDefault(),n.stopPropagation();let{id:r}=e;G(r),se(`all`)},children:z(vt,{url:n,size:`s`,alt:r})})})}})})]})]})},f)})})})}),A.length>=5&&(Te===`3d`?z(`div`,{class:`catchup-posts-viz-time-bar`,children:De}):z(`div`,{class:`catchup-posts-viz-bar`,children:Ee})),A.length>=2&&z(`div`,{class:`catchup-filters`,children:[z(`label`,{class:`filter-cat`,children:[z(`input`,{type:`radio`,name:`filter-cat`,checked:U.toLowerCase()===`all`,onChange:()=>{se(`all`)}}),z(j,{id:`N40H-G`}),` `,z(`span`,{class:`count`,children:A.length})]}),Object.entries(gc).map(([e,n])=>!!ae[e]&&z(`label`,{class:`filter-cat`,title:(ae[e]/A.length*100).toFixed(2)+`%`,children:[z(`input`,{type:`radio`,name:`filter-cat`,checked:U.toLowerCase()===e.toLowerCase(),onChange:()=>{se(e),e===`boosts`&&(K(`reblogsCount`),pe(`desc`),q(null))}}),i(n),` `,z(`span`,{class:`count`,children:ae[e]})]},i(n)))]}),A.length>=2&&!!ve&&z(`div`,{class:`catchup-filters authors-filters`,ref:Ce,children:[be.map(e=>z(`label`,{class:`filter-author`,"data-author":e,children:[z(`input`,{type:`radio`,name:`filter-author`,checked:W===e,onChange:()=>{G(e)},onClick:()=>{W===e&&G(null)}}),z(vt,{url:_e[e].avatarStatic||_e[e].avatar,size:`xxl`,alt:`${_e[e].displayName} (@${_e[e].acct})`}),` `,z(`span`,{class:`count`,children:ve[e]}),z(`span`,{class:`username`,children:_e[e].username})]},`${e}-${ve[e]}`)),be.length>5&&z(`small`,{style:{whiteSpace:`nowrap`,paddingInline:`1em`,opacity:.33},children:z(j,{id:`HHtYi7`,values:{0:be.length}})},`authors-count`)]}),A.length>=2&&z(`div`,{class:`catchup-filters`,children:[z(`span`,{class:`filter-label`,children:z(j,{id:`f6Hub0`})}),` `,z(`fieldset`,{class:`radio-field-group`,children:_c.map(e=>z(`label`,{class:`filter-sort`,onClick:n=>{de===e&&(n.preventDefault(),n.stopPropagation(),pe(fe===`asc`?`desc`:`asc`))},children:[z(`input`,{type:`radio`,name:`filter-sort-cat`,checked:de===e,onChange:()=>{K(e),pe(/(replies|favourites|reblogs|quotes)/.test(e)?`desc`:`asc`)}}),{createdAt:s({id:`mYGY3B`}),repliesCount:s({id:`N8UzTV`}),favouritesCount:s({id:`zZOZj7`}),reblogsCount:s({id:`puY2t0`}),quotesCount:s({id:`eWLklq`}),density:s({id:`0tQ7AD`})}[e],de===e&&(fe===`asc`?` ↑`:` ↓`)]},e))}),z(`span`,{class:`filter-label`,children:z(j,{id:`group.filter`})}),` `,z(`fieldset`,{class:`radio-field-group`,children:vc.map(e=>z(`label`,{class:`filter-group`,children:[z(`input`,{type:`radio`,name:`filter-group`,checked:me===e,onChange:()=>{q(e)},disabled:e===`account`&&W}),{account:s({id:`dpqPBg`})}[e]||s({id:`EdQY6l`})]},e||`none`))}),W&&be.length>1?z(`button`,{type:`button`,class:`plain6 small`,onClick:()=>{G(null)},style:{whiteSpace:`nowrap`},children:z(j,{id:`_dlmrZ`})}):null]}),z(`ul`,{class:`catchup-list catchup-filter-${U||``} ${de?`catchup-sort-${de}`:``} ${W&&_e[W]?`catchup-selected-author`:``} ${me?`catchup-group-${me}`:``}`,children:xe.map((e,r)=>{let i=e.reblog?.id||e.id,a=!1;return me===`account`&&(Se.current&&e.account.id!==Se.current&&r>0&&(a=!0),Se.current=e.account.id),z(n,{children:[a&&z(`li`,{class:`separator`}),z(Cc,{to:`/${h}/s/${i}`,post:e,root:Oe.current})]},`${e.id}-${a}`)})}),z(`footer`,{children:ge.length>5&&z(`p`,{children:[s(U===`boosts`?{id:`eVosYr`}:{id:`rhmyFK`}),` `,z(`button`,{type:`button`,class:`textual`,onClick:()=>{Oe.current.scrollTop=0},children:z(j,{id:`0MgdN-`})}),`.`]})})]})]})]}),ke&&z(zt,{onClose:()=>je(!1),children:z(`div`,{class:`sheet`,id:`catchup-help-sheet`,children:[z(`button`,{type:`button`,class:`sheet-close`,onClick:()=>je(!1),children:z(X,{icon:`x`,alt:s({id:`yz7wBu`})})}),z(`header`,{children:z(`h2`,{children:z(j,{id:`c3XJ18`})})}),z(`main`,{children:z(`dl`,{children:[z(`dt`,{children:z(j,{id:`EIZREX`})}),z(`dd`,{children:z(j,{id:`YmGrIy`})}),z(`dt`,{children:z(j,{id:`coaNtr`})}),z(`dd`,{children:z(j,{id:`UUrqX1`})}),z(`dt`,{children:z(j,{id:`ScQBC_`})}),z(`dd`,{children:z(j,{id:`srocAr`})}),z(`dt`,{children:z(j,{id:`77Emn0`})}),z(`dd`,{children:z(`table`,{children:z(`tbody`,{children:[z(`tr`,{children:[z(`td`,{children:z(j,{id:`Gy9P9T`})}),z(`td`,{children:z(`kbd`,{children:`j`})})]}),z(`tr`,{children:[z(`td`,{children:z(j,{id:`6XYpYY`})}),z(`td`,{children:z(`kbd`,{children:`k`})})]}),z(`tr`,{children:[z(`td`,{children:z(j,{id:`f5dduh`})}),z(`td`,{children:z(`kbd`,{children:`l`})})]}),z(`tr`,{children:[z(`td`,{children:z(j,{id:`rj0vxZ`})}),z(`td`,{children:z(`kbd`,{children:`h`})})]}),z(`tr`,{children:[z(`td`,{children:z(j,{id:`jsFF8C`})}),z(`td`,{children:z(`kbd`,{children:`Enter`})})]}),z(`tr`,{children:[z(`td`,{children:z(j,{id:`bUUv3P`})}),z(`td`,{children:z(`kbd`,{children:`.`})})]})]})})})]})})]})})]})}var Sc=pe(function({post:e}){let{id:n,account:r,group:i,reblog:a,quote:o,inReplyToId:s,inReplyToAccountId:c,_followedTags:l,_filtered:u,visibility:d,__BOOSTERS:f}=e,p=s&&c!==r.id,m=!!u&&u?.action!==`blur`;return z(`article`,{class:`post-line ${i?`group`:a?`reblog`:Yt()&&bc(o)?`quote`:l?.length?`followed-tags`:``} ${p?`reply-to`:``} ${m?`filtered`:``} visibility-${d}`,onMouseEnter:e=>{e.shiftKey},children:[z(`span`,{class:`post-author`,children:a?z(`span`,{class:`post-reblog-avatar`,children:[z(vt,{url:r.avatarStatic||r.avatar,squircle:r.bot}),f?.size>0?[...f].map(e=>z(vt,{url:e.avatarStatic||e.avatar,squircle:e.bot})):``,` `,z(X,{icon:`rocket`}),` `,z(qe,{account:a.account,showAvatar:!0})]}):bc(o)?z(`span`,{class:`post-quote-avatar`,children:[z(vt,{url:r.avatarStatic||r.avatar,squircle:r.bot}),` `,z(X,{icon:`quote`}),` `,z(qe,{account:o.quotedStatus?.account||o.account,showAvatar:!0})]}):z(qe,{account:r,showAvatar:!0})}),z(Oc,{post:a||e,filterInfo:u}),z(`span`,{class:`post-meta`,children:[z(kc,{post:a||e}),` `,z(Ct,{datetime:new Date(a?.createdAt||e.createdAt),format:`micro`})]})]})},(e,n)=>e?.post?.id===n?.post?.id),Cc=({root:e,to:n,...r})=>{let i=a(),[o,s]=L(!1);return _(()=>{let n=new IntersectionObserver(e=>{e[0].isIntersecting&&(queueMicrotask(()=>s(!0)),n.unobserve(i.current))},{root:e,rootMargin:`${Math.max(320,screen.height*.75)}px`});return i.current&&n.observe(i.current),()=>{i.current&&n.unobserve(i.current)}},[]),o?z(`li`,{children:z(Z,{to:n,children:z(Sc,{...r})})}):z(`li`,{ref:i,style:{height:`4em`}})},wc=8,Tc=8;function Ec(e){let{spoilerText:n,content:r,poll:i,mediaAttachments:a,card:o}=e,s=i?.options?.length?i.options.reduce((e,n)=>e+n.title,``):``;return(n.length+Ht(r)+s.length)/140+(a?.length?wc*a.length:o?.image?Tc:0)}var Dc=48;function Oc({post:e,filterInfo:r}){let{_:i}=l(),{spoilerText:a,sensitive:o,content:s,emojis:c,poll:u,mediaAttachments:d,card:f,inReplyToId:p,inReplyToAccountId:m,account:g,_thread:_,quote:v}=e,y=p&&m===g.id||!!_,b=Yt()&&bc(v)?v.quotedStatus||v:null;(b?.spoilerText||b?.sensitive)&&(b=null),b?.emojis&&c.push(...b.emojis),!d?.length&&b?.mediaAttachments?.length&&(d=b.mediaAttachments);let x=!!h()[`reading:expand:spoilers`],S=x||!a&&!o&&r?.action!==`blur`,C=s?Ot(e):``,w=!a||x;return z(`div`,{class:`post-peek`,title:a?``:C,children:[z(`span`,{class:`post-peek-content`,children:[y&&!w&&z(n,{children:[z(`span`,{class:`post-peek-tag post-peek-thread`,children:`Thread`}),` `]}),r&&r?.action!==`blur`?z(`span`,{class:`post-peek-filtered`,children:r?.titlesStr?i({id:`suKjh3`,values:{0:r.titlesStr}}):i({id:`03Qqf9`})}):z(n,{children:[!!a&&z(`span`,{class:`post-peek-spoiler`,children:[z(X,{icon:`${x?`eye-open`:`eye-close`}`}),` `,a]}),w&&z(`div`,{class:`post-peek-html`,children:[y&&z(n,{children:[z(`span`,{class:`post-peek-tag post-peek-thread`,children:z(j,{id:`e66y2Z`})}),` `]}),!!s&&z(`div`,{dangerouslySetInnerHTML:{__html:Ye(s,c)+(b?.content?`${b.content}
`:``)}}),!!u?.options?.length&&u.options.map(e=>z(`div`,{children:[u.multiple?`▪️`:`•`,` `,e.title]})),!s&&d?.length===1&&d[0].description&&z(n,{children:[z(`span`,{class:`post-peek-tag post-peek-alt`,children:`ALT`}),` `,z(`div`,{children:d[0].description})]})]})]})]}),(!r||r?.action===`blur`)&&z(`span`,{class:`post-peek-post-content`,children:[!!u&&z(`span`,{class:`post-peek-tag post-peek-poll`,children:[z(X,{icon:`poll`,size:`s`}),z(j,{id:`4WUbF1`})]}),d?.length?d.map(e=>{let n=e.previewUrl||e.url,r=e.previewRemoteUrl||e.remoteUrl,i=e.meta?.original?e.meta.original.width:e.meta?.small?.width||e.meta?.original?.width,a=e.meta?.original?e.meta.original.height:e.meta?.small?.height||e.meta?.original?.height;return z(`span`,{class:`post-peek-media`,children:{image:(n||r)&&S?z(`img`,{src:n,width:Dc,height:Dc,alt:e.description,loading:`lazy`,onError:e=>{let{src:i}=e.target;i===n&&r&&n!==r&&(e.target.src=r)},style:{"--anim-duration":`${Math.min(Math.max(Math.max(i,a)/100,5),120)}s`}}):z(`span`,{class:`post-peek-faux-media`,children:`🖼`}),gifv:(n||r)&&S?z(`img`,{src:n,width:Dc,height:Dc,alt:e.description,loading:`lazy`,onError:e=>{let{src:i}=e.target;i===n&&r&&n!==r&&(e.target.src=r)}}):z(`span`,{class:`post-peek-faux-media`,children:`🎞️`}),video:(n||r)&&S?z(`img`,{src:n,width:Dc,height:Dc,alt:e.description,loading:`lazy`,onError:e=>{let{src:i}=e.target;i===n&&r&&n!==r&&(e.target.src=r)}}):z(`span`,{class:`post-peek-faux-media`,children:`📹`}),audio:z(`span`,{class:`post-peek-faux-media`,children:`🎵`})}[e.type]||null},e.id)}):!!f&&f.image&&S&&z(`span`,{class:`post-peek-media post-peek-card card-${f.type||``}`,children:f.image?z(`img`,{src:f.image,width:Dc,height:Dc,alt:f.title||f.description||f.imageDescription,loading:`lazy`,style:{"--anim-duration":f.width&&f.height&&`${Math.min(Math.max(Math.max(f.width,f.height)/100,5),120)}s`}}):z(`span`,{class:`post-peek-faux-media`,children:`🔗`})})]})]})}function kc({post:e}){let{_:n}=l(),{reblogsCount:r,repliesCount:i,favouritesCount:a,quotesCount:o}=e;return z(`span`,{class:`post-stats`,children:[i>0&&z(`span`,{class:`post-stat-replies`,children:[z(X,{icon:`comment2`,size:`s`,alt:n({id:`N8UzTV`})}),` `,Ze(i)]}),a>0&&z(`span`,{class:`post-stat-likes`,children:[z(X,{icon:`heart`,size:`s`,alt:n({id:`zZOZj7`})}),` `,Ze(a)]}),r>0||o>0?z(`span`,{class:`post-stat-boosts`,children:[z(X,{icon:`rocket`,size:`s`,alt:n({id:`puY2t0`})}),` `,r>0||o>0?`${r>0?Ze(r):``}${r>0&&o>0?`+`:``}${o>0?Ze(o):``}`:Ze(r)]}):null]})}function Ac(e,n,r){let i=e.map(e=>new Date(e[n])),a=i.reduce((e,n)=>nn>e?n:e,i[0]),s=Math.min(o.getTime(),Date.now())-a.getTime(),c=Array.from({length:r},()=>[]);return e.forEach(e=>{let i=Date.parse(e[n]);if(i>Date.now())c[c.length-1].push(e);else{let n=(i-a.getTime())/s;c[Math.floor(n*(r-1))].push(e)}}),c}var jc=20;function Mc(){let{_:e}=l();he(e({id:`zZOZj7`}),`/favourites`);let{masto:n,instance:r}=u(),i=a();async function o(e){return(e||!i.current)&&(i.current=n.v1.favourites.list({limit:jc}).values()),await i.current.next()}return z(Xs,{title:e({id:`zZOZj7`}),id:`favourites`,emptyText:e({id:`PHIrMr`}),errorText:e({id:`khVljG`}),instance:r,fetchItems:o})}var Nc=[`home`,`public`,`notifications`,`thread`,`account`],Pc=[`thread`,`account`],Fc={home:{id:`Buy2bt`},notifications:{id:`iDNBZe`},public:{id:`RO10dm`},thread:{id:`EnJuK0`},account:{id:`vrQQgz`}},Ic=[0,1800,3600,360*60,720*60,3600*24,3600*24*7,3600*24*30],Lc={0:{id:`qqeAJM`},1800:Tt(30,`minute`),3600:Tt(1,`hour`),21600:Tt(6,`hour`),43200:Tt(12,`hour`),86400:Tt(24,`hour`),604800:Tt(7,`day`),2592e3:Tt(30,`day`)};function Rc(){let{_:e}=l(),{masto:r}=u();he(e({id:`cSev-j`}),`/ft`);let[i,a]=L(`default`),[o,s]=L(!1),[c,d]=f(e=>e+1,0),[p,m]=L([]);return _(()=>{a(`loading`),(async()=>{try{let e=await r.v2.filters.list();e.sort((e,n)=>e.title.localeCompare(n.title)),e.forEach(e=>{e.keywords?.length&&e.keywords.sort((e,n)=>e.id-n.id)}),m(e),a(`default`)}catch{a(`error`)}})()},[c]),z(`div`,{id:`filters-page`,class:`deck-container`,tabIndex:`-1`,children:[z(`div`,{class:`timeline-deck deck`,children:[z(`header`,{children:z(`div`,{class:`header-grid`,children:[z(`div`,{class:`header-side`,children:[z(Hs,{}),z(Z,{to:`/`,class:`button plain`,children:z(X,{icon:`home`,size:`l`,alt:e({id:`i0qMbr`})})})]}),z(`h1`,{children:z(j,{id:`cSev-j`})}),z(`div`,{class:`header-side`,children:z(`button`,{type:`button`,class:`plain`,onClick:()=>{s(!0)},children:z(X,{icon:`plus`,size:`l`,alt:e({id:`yFfBdX`})})})})]})}),z(`main`,{children:p.length>0?z(n,{children:[z(`ul`,{class:`filters-list`,children:p.map(e=>{let{id:r,title:i,expiresAt:a,keywords:o}=e;return z(`li`,{children:[z(`div`,{children:[z(`h2`,{children:i}),o?.length>0&&z(`div`,{children:o.map(e=>z(n,{children:[z(`span`,{class:`tag collapsed insignificant`,children:e.wholeWord?`“${e.keyword}”`:e.keyword}),` `]}))}),z(`small`,{class:`insignificant`,children:z(Hc,{expiresAt:a})})]}),z(`button`,{type:`button`,class:`plain`,onClick:()=>{s({filter:e})},children:z(X,{icon:`pencil`,size:`l`,alt:`Edit filter`})})]},r)})}),p.length>1&&z(`footer`,{class:`ui-state`,children:z(`small`,{class:`insignificant`,children:z(j,{id:`5vzJxv`,values:{0:p.length}})})})]}):i===`loading`?z(`p`,{class:`ui-state`,children:z(oe,{})}):i===`error`?z(`p`,{class:`ui-state`,children:z(j,{id:`qcAUwp`})}):z(`p`,{class:`ui-state`,children:z(j,{id:`cWIHTt`})})})]}),!!o&&z(zt,{title:e({id:`vCSBPD`}),onClose:()=>{s(!1)},children:z(Vc,{filter:o?.filter,onClose:e=>{e.state===`success`&&d(),s(!1)}})})]})}var zc=1,Bc=()=>zc++;function Vc({filter:e,onClose:n}){let{_:r,_:i}=l(),{masto:o}=u(),[s,c]=L(`default`),f=!!e,{context:p,expiresAt:m,id:h,keywords:g,title:_,filterAction:v}=e||{},y=!!m,b=y&&new Date(m),[x,S]=L(g||[]),C=a(),[w,T]=L([]),[E,D]=L([]),O=x.filter(e=>!w.includes(e.id)&&!E.includes(e._id));return z(`div`,{class:`sheet`,id:`filters-add-edit-modal`,children:[!!n&&z(`button`,{type:`button`,class:`sheet-close`,onClick:n,children:z(X,{icon:`x`,alt:i({id:`yz7wBu`})})}),z(`header`,{children:z(`h2`,{children:i(f?{id:`3mOee6`}:{id:`yFfBdX`})})}),z(`main`,{children:z(`form`,{onSubmit:e=>{e.preventDefault();let r=new FormData(e.target),a=r.get(`title`),s=r.getAll(`keyword_attributes[][id]`),l=r.getAll(`keyword_attributes[][keyword]`),u=[...C.current.querySelectorAll(`input[name="keyword_attributes[][whole_word]"]`)].map(e=>e.checked),d=l.map((e,n)=>({id:s[n]||void 0,keyword:e,wholeWord:u[n]}));f&&w?.length&&w.forEach(e=>{d.push({id:e,_destroy:!0})});let p=r.getAll(`context`),m=r.get(`expires_in`),g=r.get(`filter_action`);!a||!p?.length||(c(`loading`),(async()=>{try{let e;f?(m=m===``||m===null?y?Math.floor((b-Date.now())/1e3):null:m===`0`||m===0?null:+m,e=await o.v2.filters.$select(h).update({title:a,context:p,expiresIn:m,keywordsAttributes:d,filterAction:g})):(m=+m||null,e=await o.v2.filters.create({title:a,context:p,expiresIn:m,keywordsAttributes:d,filterAction:g})),c(`default`),n?.({state:`success`,filter:e})}catch{c(`error`),alert(i(f?{id:`H8RP-h`}:{id:`Fr0hAN`}))}})())},children:[z(`div`,{class:`filter-form-row`,children:z(`label`,{children:[z(`b`,{children:z(j,{id:`MHrjPM`})}),z(`input`,{type:`text`,name:`title`,defaultValue:_,disabled:s===`loading`,dir:`auto`,enterKeyHint:`done`,required:!0})]})}),z(`div`,{class:`filter-form-keywords`,ref:C,children:[O.length?z(`ul`,{class:`filter-keywords`,children:O.map(e=>{let{id:n,keyword:r,wholeWord:a,_id:o}=e;return z(`li`,{children:[z(`input`,{type:`hidden`,name:`keyword_attributes[][id]`,value:n}),z(`input`,{name:`keyword_attributes[][keyword]`,type:`text`,defaultValue:r,disabled:s===`loading`,required:!0,dir:`auto`,enterKeyHint:`done`}),z(`div`,{class:`filter-keyword-actions`,children:[z(`label`,{children:[z(`input`,{name:`keyword_attributes[][whole_word]`,type:`checkbox`,value:n,defaultChecked:a,disabled:s===`loading`}),` `,z(j,{id:`_7UQ7y`})]}),z(`button`,{type:`button`,class:`light danger small`,disabled:s===`loading`,onClick:()=>{n?(w.push(n),T([...w])):o&&(E.push(o),D([...E]))},children:z(X,{icon:`x`,alt:i({id:`t_YqKh`})})})]})]},`${n}-${o}`)})}):z(`div`,{class:`filter-keywords`,children:z(`div`,{class:`insignificant`,children:z(j,{id:`SYKm3p`})})}),z(`footer`,{class:`filter-keywords-footer`,children:[z(`button`,{type:`button`,class:`light`,onClick:()=>{S([...x,{_id:Bc(),keyword:``,wholeWord:!0}]),setTimeout(()=>{let e=C.current.querySelectorAll(`input[type="text"]`);e[e.length-1]?.focus?.()},10)},children:z(j,{id:`qn5Dbn`})}),` `,O?.length>1&&z(`small`,{class:`insignificant`,children:z(j,{id:`1JZ175`,values:{0:O.length}})})]})]}),z(`div`,{class:`filter-form-cols`,children:[z(`div`,{class:`filter-form-col`,children:[z(`div`,{children:z(`b`,{children:z(j,{id:`uqf7Yq`})})}),Nc.map(e=>z(`div`,{children:[z(`label`,{class:Pc.includes(e)?`insignificant`:``,children:[z(`input`,{type:`checkbox`,name:`context`,value:e,defaultChecked:p?p.includes(e):!0,disabled:s===`loading`}),` `,r(Fc[e]),Pc.includes(e)?`*`:``]}),` `]})),z(`p`,{children:z(`small`,{class:`insignificant`,children:z(j,{id:`m0G499`})})})]}),z(`div`,{class:`filter-form-col`,children:[f&&z(j,{id:`ucJk3m`,components:{0:z(`b`,{}),1:z(Hc,{expiresAt:m,showNeverExpires:!0})}}),z(`div`,{children:[z(`label`,{for:`filters-expires_in`,children:i(f?{id:`BcNdg-`}:{id:`agO_T_`})}),z(`select`,{id:`filters-expires_in`,name:`expires_in`,disabled:s===`loading`,defaultValue:f?void 0:0,children:[f&&z(`option`,{}),Ic.map(e=>z(`option`,{value:e,children:typeof Lc[e]==`function`?Lc[e]():r(Lc[e])}))]})]}),z(`p`,{children:[z(j,{id:`blQMpa`}),z(`br`,{}),d()?.mastodon>=5&&z(`label`,{class:`ib`,children:[z(`input`,{type:`radio`,name:`filter_action`,value:`blur`,defaultChecked:v===`blur`,disabled:s===`loading`}),` `,z(j,{id:`ggxOw9`})]}),` `,z(`label`,{class:`ib`,children:[z(`input`,{type:`radio`,name:`filter_action`,value:`warn`,defaultChecked:v!==`hide`&&v!==`blur`||!f,disabled:s===`loading`}),` `,z(j,{id:`jbreWy`})]}),` `,z(`label`,{class:`ib`,children:[z(`input`,{type:`radio`,name:`filter_action`,value:`hide`,defaultChecked:v===`hide`,disabled:s===`loading`}),` `,z(j,{id:`zNCBmf`})]})]})]})]}),z(`footer`,{class:`filter-form-footer`,children:[z(`span`,{children:[z(`button`,{type:`submit`,disabled:s===`loading`,children:i(f?{id:`tfDRzk`}:{id:`hYgDIe`})}),` `,z(oe,{abrupt:!0,hidden:s!==`loading`})]}),f&&z(ut,{disabled:s===`loading`,align:`end`,menuItemClassName:`danger`,confirmLabel:i({id:`BPjyR2`}),onClick:()=>{c(`loading`),(async()=>{try{await o.v2.filters.$select(h).remove(),c(`default`),n?.({state:`success`})}catch{c(`error`),alert(i({id:`4Dh9J1`}))}})()},children:z(`button`,{type:`button`,class:`light danger`,onClick:()=>{},disabled:s===`loading`,children:z(j,{id:`Jb6_SB`})})})]})]})})]})}function Hc({expiresAt:e,showNeverExpires:n}){let{_:r}=l(),i=!!e,a=i&&new Date(e),o=i&&Date.parse(e)<=Date.now(),[s,c]=f(e=>e+1,0);return Ue(c,o||3e4),o?r({id:`M1RnFv`}):i?z(j,{id:`urGtsw`,components:{0:z(Ct,{datetime:a})}}):n&&r({id:`O1Aswy`})}function Uc(){let{_:e}=l(),{masto:r,instance:i}=u();he(e({id:`Xi1_bw`}),`/fh`);let[a,o]=L(`default`),[s,c]=L([]);return _(()=>{o(`loading`),(async()=>{try{c(await Vo()),o(`default`)}catch{o(`error`)}})()},[]),z(`div`,{id:`followed-hashtags-page`,class:`deck-container`,tabIndex:`-1`,children:z(`div`,{class:`timeline-deck deck`,children:[z(`header`,{children:z(`div`,{class:`header-grid`,children:[z(`div`,{class:`header-side`,children:[z(Hs,{}),z(Z,{to:`/`,class:`button plain`,children:z(X,{icon:`home`,size:`l`,alt:e({id:`i0qMbr`})})})]}),z(`h1`,{children:z(j,{id:`Xi1_bw`})}),z(`div`,{class:`header-side`})]})}),z(`main`,{children:s.length>0?z(n,{children:[z(`ul`,{class:`link-list`,children:s.map(e=>z(`li`,{children:z(Z,{to:i?`/${i}/t/${e.name}`:`/t/${e.name}`,children:[z(X,{icon:`hashtag`,alt:`#`}),` `,z(`span`,{children:e.name})]})}))}),s.length>1&&z(`footer`,{class:`ui-state`,children:z(`small`,{class:`insignificant`,children:z(j,{id:`2S_uvJ`,values:{0:s.length}})})})]}):a===`loading`?z(`p`,{class:`ui-state`,children:z(oe,{abrupt:!0})}):a===`error`?z(`p`,{class:`ui-state`,children:z(j,{id:`2AeREO`})}):z(`p`,{class:`ui-state`,children:z(j,{id:`vKsGhk`})})})]})})}var Wc=20;function Gc({title:e,path:n,id:r,...i}){let{_:s}=l();he(e||s({id:`following.title`}),n||`/following`);let{masto:c,streaming:d,instance:f,client:p}=u(),[m,h]=L(d),g=W(o),v=a(),y=a(),b=a();_(()=>{!d&&p?.onStreamingReady&&p.onStreamingReady(e=>{h(e)})},[p]),__BENCHMARK.end(`time-to-following`);let x=Xe(`@pixelfed/home-include-reblogs`);async function S(e){(e||!y.current)&&(__BENCHMARK.start(`fetch-home-first`),v.current=c.v1.timelines.home.list({limit:Wc}),y.current=v.current.values()),x&&v.current?.params&&(typeof v.current.params==`string`?v.current.params+=`&include_reblogs=true`:v.current.params.include_reblogs=!0);let n=await y.current.next(),{value:r}=n;if(r?.length){let n=!1;e&&(r[0].id!==b.current&&(n=!0),b.current=r[0].id),r.forEach(e=>{O(e,f)}),r=As(r,f),e&&n&&Fs(),setTimeout(()=>{Ps(r,f)},100),r.sort((e,n)=>Date.parse(n.createdAt)-Date.parse(e.createdAt))}return __BENCHMARK.end(`fetch-home-first`),{...n,value:r}}async function C(){try{let e={limit:5,since_id:b.current};x&&(e.include_reblogs=!0);let{value:n}=await c.v1.timelines.home.list(e).values().next(),r=n[0]?.id===b.current;return!!(n?.length&&!r&&(b.current=n[0].id,n=As(n,f),n=qt(n,`home`),n.some(e=>!e.reblog)))}catch{return!1}}return _(()=>{let e;return(async()=>{if(m){e=m.user.subscribe();for await(let n of e){if(!e)break;if(n.event===`status.update`){let e=n.payload;O(e,f)}else if(n.event===`delete`){let e=n.payload,r=Pe(e,f);r&&(r._deleted=!0)}}}})(),()=>{e?.unsubscribe?.(),e=null}},[m]),z(Xs,{title:e||s({id:`following.title`}),id:r||`following`,emptyText:s({id:`nJEKbY`}),errorText:s({id:`7QSeK6`}),instance:f,fetchItems:S,checkForUpdates:C,useItemID:!0,boostsCarousel:g.settings.boostsCarousel,...i,filterContext:`home`,showFollowedTags:!0,showReplyParent:!0})}var Kc=20,qc=50,Jc=1e3*60*15;function Yc(e){let n=e[e.length-1];return n.items?n.items[n.items.length-1]:n}function Xc(e){let n=e[0];return n.items?n.items[0]:n}function Zc(e){if(!e)return null;let n=e.getBoundingClientRect(),r=e.querySelectorAll(`[data-state-post-id]`);for(let e of r){let r=e.getBoundingClientRect();if(r.bottom>n.top+10&&r.top{},checkForUpdates:m=async()=>{},checkForUpdatesInterval:h=15e3,headerStart:g,headerEnd:v,timelineStart:b,refresh:x,filterContext:S,showFollowedTags:C,showReplyParent:w,dedupeBoosts:T}){let{_:E}=l(),{masto:D}=u({instance:s}),k=`timeline2-${i}`,A=a(null);A.current===null&&(A.current=I.account.get(k)||null);let M=!!A.current?.items?.length,P=A.current?.updatedAt,F=P?Date.now()-P:0,R=a(),[B,ee]=L(M?`default`:`start`),[te,V]=L((A.current?.showNewer??!1)||F>Jc),[ne,re]=L(A.current?.showOlder??!0),[ie,ae]=L(!0),H=a(),U=a(!0),[se,W]=L(()=>{let e=A.current?.items;return e?.length?(e.forEach(e=>{e.items?e.items.forEach(e=>{O(e,s,{sync:!0})}):O(e,s,{sync:!0})}),e):[]}),G=y(()=>{let e=A.current;if(!e?.items?.length||(e.updatedAt?Date.now()-e.updatedAt:1/0)<=Jc)return;let n=[];if(e.items.forEach(e=>{e.items?e.items.forEach(e=>{n.push(e.id)}):n.push(e.id)}),n.length===0)return;let r=[];(async()=>{try{for(let e=0;ee.id)||[]);i.forEach(e=>{n.has(e)||r.push(e)}),e?.length&&e.forEach(e=>{O(e,s,{sync:!0})})}catch{}}r.forEach(e=>{let n=Ae(e,s);o.statuses[n]&&(o.statuses[n]._deleted=!0)})}catch{}})()},[s,D]);_(()=>{G()},[]),an(e=>{e&&G()},[G]);let ce=a(A.current?.scrollAnchor||null),le=y(({items:e,direction:n})=>{if(!e?.length||!H.current)return;let r=Ae((n===`next`?Yc:Xc)(e)?.id,s),i=H.current.querySelector(`[data-state-post-id~="${r}"]`);if(i){let e=H.current.getBoundingClientRect();ce.current={itemId:r,offset:i.getBoundingClientRect().top-e.top,direction:n}}},[]);__BENCHMARK.start(`timeline-${i}-load`);let ue=a(A.current?.minID||null),de=a(A.current?.maxID||null),K=Je((e={})=>{let{max_id:n,min_id:r}=e,a=!n&&!r?`start`:n?`next`:r?`prev`:null;R.current=a,ee(`loading`),(async()=>{try{let n=await p(e),{max_id:r,min_id:o}=e,{value:c,originalValue:l,done:u}=n,d=!u,f=l[0]?.id,m=l[l.length-1]?.id;c?.length?(T&&(c=As(c,s)),c=js(c,S),c=Ms(c,s),a===`start`?(ue.current=f,de.current=m,W(c),re(d),V(!1)):a===`next`?(de.current=m,H.current.classList.add(`scrolling-next`),W(e=>{le({items:e,direction:`next`});let n=[...e,...c].slice(-qc);return ue.current=[n[0].id].flat()[0],n}),re(d),V(!0)):a===`prev`&&(ue.current=f,H.current.classList.add(`scrolling-prev`),W(e=>{le({items:e,direction:`prev`});let n=[...c,...e].slice(0,qc);return de.current=[n.at(-1).id].flat().at(-1),n}),re(!0),V(l.length>=Kc))):(r&&re(!1),o&&V(!1)),ee(`default`),__BENCHMARK.end(`timeline-${i}-load`)}catch{ee(`error`)}finally{K.cancel()}})()},300,{leading:!0}),fe=qs(H),pe=Js(H),me=Ys(),q=a();_(()=>{if(!U.current)if(se.length>0){let e=I.account.get(k)||{};I.account.set(k,{...e,items:se,minID:ue.current,maxID:de.current,showNewer:te,showOlder:ne,updatedAt:Date.now()})}else I.account.del(k)},[se,k,te,ne]);let he=Ge(()=>{if(!H.current||se.length===0)return;let e=Zc(H.current);if(e){let n=I.account.get(k)||{};I.account.set(k,{...n,scrollAnchor:e})}},500),ge=y(({scrollDirection:e,nearReachStart:n})=>{q.current&&(q.current.hidden=e===`end`&&!n),he()},[he]),{resetScrollDirection:_e}=Ls({scrollableRef:H,distanceFromEnd:2,scrollThresholdStart:44},ge);_(()=>{U.current&&(U.current=!1,A.current?.items?.length?ve():K())},[K]);let ve=y(async()=>{ue.current&&V(await m({minID:ue.current}))},[m]),ye=a();return an(e=>{if(!U.current){if(e){let e=Date.now()-ye.current;(!ye.current||e>1e3*3)&&ve()}else ye.current=Date.now();ae(e)}},[ve]),Ue(ve,ie&&!te?h:null),N(()=>{if(B!==`default`||!H.current||!ce.current)return;let e=ce.current;ce.current=null;let{itemId:n,offset:r,direction:i}=e,a=H.current.querySelector(`[data-state-post-id~="${n}"]`);if(a){let e=H.current.getBoundingClientRect(),n=a.getBoundingClientRect().top-e.top-r;Math.abs(n)>1&&(H.current.scrollTop+=n),setTimeout(()=>{H.current?.classList.remove(`scrolling-${i}`)},300)}},[se,B]),z(Gt.Provider,{value:S,children:z(`div`,{id:`${i}-page`,class:`deck-container timeline-2-container`,ref:e=>{H.current=e,fe.current=e,pe.current=e,me.current=e},tabIndex:`-1`,onClick:e=>{q.current&&e.target.closest(`.timeline-item, .timeline-item-alt`)&&setTimeout(()=>{q.current.hidden=!1,_e()},250)},children:z(`div`,{class:`timeline-deck deck`,children:[z(`header`,{ref:q,onClick:e=>{e.target.closest(`a, button`)||H.current?.scrollTo({top:0,behavior:`smooth`})},onDblClick:e=>{e.target.closest(`a, button`)||K()},children:z(`div`,{class:`header-grid`,children:[z(`div`,{class:`header-side`,children:[z(Hs,{}),g??z(Z,{to:`/`,class:`button plain home-button`,children:z(X,{icon:`home`,size:`l`,alt:E({id:`i0qMbr`})})})]}),e&&(r||z(`h1`,{children:e})),z(`div`,{class:`header-side`,children:!!v&&v})]})}),!!b&&z(`div`,{class:`timeline-start ${B===`loading`?`loading`:``}`,children:b}),se.length?z(n,{children:[te&&z(`div`,{class:`timeline-pagination timeline-pagination-top ${U.current?``:`transitioning`}`,children:[z(`button`,{type:`button`,"data-pagination-trigger":`latest`,class:`plain4 ${B===`loading`&&R.current===`start`?`block`:``}`,onClick:()=>{K()},disabled:B===`loading`,children:B===`loading`&&R.current===`start`?z(oe,{abrupt:!0}):z(X,{icon:`arrow-up-top`,size:`l`})}),z(`button`,{type:`button`,"data-pagination-trigger":`prev`,class:`plain4 ${B===`loading`&&R.current===`start`?``:`block`}`,onClick:()=>{K({min_id:ue.current})},disabled:B===`loading`,children:B===`loading`&&R.current===`prev`?z(oe,{abrupt:!0}):z(X,{icon:`arrow-up`,size:`l`})})]}),z(`ul`,{class:`timeline`,children:se.map(e=>z(Zs,{status:e,instance:s,useItemID:f,filterContext:S,showFollowedTags:C,showReplyParent:w},e.id))}),ne?z(`div`,{class:`timeline-pagination timeline-pagination-bottom`,children:z(`button`,{type:`button`,class:`plain4 block`,"data-pagination-trigger":`next`,onClick:()=>{K({max_id:de.current})},disabled:B===`loading`,children:B===`loading`?z(oe,{abrupt:!0}):z(X,{icon:`arrow-down`,size:`l`})})}):B===`loading`?null:z(`p`,{class:`ui-state insignificant`,children:z(j,{id:`2EYeAZ`})})]}):B===`loading`?z(`ul`,{class:`timeline`,children:Array.from({length:5}).map((e,n)=>z(`li`,{children:z(Mt,{skeleton:!0})},n))}):B!==`error`&&B!==`start`&&z(`p`,{class:`ui-state`,children:c}),B===`error`&&z(`p`,{class:`ui-state`,children:[d,z(`br`,{}),z(`br`,{}),z(`button`,{type:`button`,onClick:()=>K(),children:z(j,{id:`KDw4GX`})})]})]})})})}var $c=20;function el({title:e,path:n,id:r,...i}){let{_:a}=l();he(e||a({id:`following.title`}),n||`/_following2`);let{masto:o,streaming:s,instance:c,client:d}=u(),[f,p]=L(s);_(()=>{!s&&d?.onStreamingReady&&d.onStreamingReady(e=>{p(e)})},[d]),__BENCHMARK.end(`time-to-following`);let m=Xe(`@pixelfed/home-include-reblogs`);async function h({max_id:e,min_id:n}={}){__BENCHMARK.start(`fetch-home`);let r={limit:$c};e&&(r.max_id=e),n&&(r.min_id=n),m&&(r.include_reblogs=!0);let i=await o.v1.timelines.home.list(r).values().next(),{value:a}=i,s=[...a||[]];return a?.length&&(a.forEach(e=>{O(e,c)}),setTimeout(()=>{Ps(a,c)},100),a.sort((e,n)=>Date.parse(n.createdAt)-Date.parse(e.createdAt))),__BENCHMARK.end(`fetch-home`),{...i,value:a,originalValue:s}}async function g({minID:e}){try{let n={limit:5,since_id:e};m&&(n.include_reblogs=!0);let{value:r}=await o.v1.timelines.home.list(n).values().next();return r?.length?(r=As(r,c),r=qt(r,`home`),r.length>0):!1}catch{return!1}}return _(()=>{let e;return(async()=>{if(f){e=f.user.subscribe();for await(let n of e){if(!e)break;if(n.event===`status.update`){let e=n.payload;O(e,c)}else if(n.event===`delete`){let e=n.payload,r=Pe(e,c);r&&(r._deleted=!0)}}}})(),()=>{e?.unsubscribe?.(),e=null}},[f]),z(Qc,{title:e||a({id:`following.title`}),id:r||`following2`,emptyText:a({id:`nJEKbY`}),errorText:a({id:`7QSeK6`}),instance:c,fetchItems:h,checkForUpdates:g,useItemID:!0,...i,filterContext:`home`,showFollowedTags:!0,showReplyParent:!0})}var tl={"disabled.example.com":`disabled`,"authenticated.example.com":`authenticated`};async function nl(e,n){let r=I.local.getJSON(`instances`)||{},i=r[n?.toLowerCase()];if(!i?.configuration?.timelinesAccess){let a=await e.v2.instance.fetch().catch(()=>null);a&&(i=a,r[n?.toLowerCase()]=a,I.local.setJSON(`instances`,r))}return i}async function rl({feed:e,feedType:n,feeds:r,instance:i}){let{masto:a,instance:o}=u({instance:i}),s=i||o;try{let i=tl[s?.toLowerCase()];if(r){if(i){let e={};return r.forEach(({feed:n,feedType:r})=>{e[`${n}_${r}`]=i}),e}let e=await nl(a,s),n={};return r.forEach(({feed:r,feedType:i})=>{n[`${r}_${i}`]=e?.configuration?.timelinesAccess?.[r]?.[i]||`public`}),n}return i||(await nl(a,s))?.configuration?.timelinesAccess?.[e]?.[n]||`public`}catch{return r?{}:`public`}}var il=20,al=5;function ol({media:e,columnMode:r,...i}){let{_:s}=l(),{hashtag:c,...d}=r?{}:k();i.hashtag&&(c=i.hashtag);let f=c.trim().split(/[\s+]+/);f.sort(),c=f[0];let[p,h]=ce(),g=e||!!p.get(`media`),v=g?`?media=1`:``,{masto:y,instance:b,authenticated:x}=u({instance:i?.instance||d.instance}),{masto:S,instance:C,authenticated:w}=u(),T=f.map(e=>`#${e}`).join(` `),E=s(b?g?{id:`kH0rA0`,values:{hashtagTitle:T,instance:b}}:{id:`IK0zKi`,values:{hashtagTitle:T,instance:b}}:g?{id:`hHSI3w`,values:{hashtagTitle:T}}:{id:`-ZzjRY`,values:{hashtagTitle:T}});he(E,`/:instance?/t/:hashtag`);let D=a(),A=m(()=>ne(),[]),[M,N]=L(null),P=M===`disabled`,F=M===`authenticated`&&!x,I=a(void 0);async function R(e){let n=await rl({feed:`hashtagFeeds`,feedType:`local`,instance:b});if(N(n),n===`disabled`||n===`authenticated`&&!x)return{done:!0,value:[]};let r=await y.v1.timelines.tag.$select(c).list({limit:il,any:f.slice(1),maxId:e?void 0:I.current,onlyMedia:g?!0:void 0}).values().next(),{value:i}=r;return i?.length&&(e&&(D.current=i[0].id),i.forEach(e=>{O(e,b,{skipThreading:g||A})}),I.current=i[i.length-1].id),{...r,value:i}}async function B(){try{let{value:e}=await y.v1.timelines.tag.$select(c).list({limit:1,any:f.slice(1),since_id:D.current,onlyMedia:g}).values().next(),n=e[0]?.id===D.current;return e?.length&&!n?(e=qt(e,`public`),!0):!1}catch{return!1}}let[ee,te]=L(`default`),[V,re]=L();_(()=>{(async()=>{try{re(await y.v1.tags.$select(c).fetch())}catch{}})()},[c]);let ie=f.length>=al,[ae,H]=L(`default`),[U,oe]=L([]),[se,W]=L(!1);return _(()=>{x&&(async()=>{try{let e=await y.v1.featuredTags.list();oe(e),W(e.some(e=>e.name.toLowerCase()===c.toLowerCase()))}catch{}})()},[]),z(n,{children:[z(Xs,{title:E,titleComponent:!!b&&z(`h1`,{class:`header-double-lines`,children:[z(`b`,{dir:`auto`,children:T}),z(`div`,{children:b})]}),id:`hashtag`,instance:b,emptyText:s(P?{id:`qbE_m4`}:F?{id:`aqJggz`}:{id:`CNSLAW`}),errorText:s({id:`yjj6Ll`}),fetchItems:R,checkForUpdates:B,useItemID:!0,view:g||A?`media`:void 0,refresh:g,filterContext:`public`,headerEnd:z(tt,{portal:!0,setDownOverflow:!0,overflow:`auto`,position:`anchor`,menuButton:z(`button`,{type:`button`,class:`plain`,children:z(X,{icon:`more`,size:`l`,alt:s({id:`2FYpfJ`})})}),children:[!!V&&f.length===1&&z(n,{children:[z(ut,{subMenu:!0,confirm:V.following,confirmLabel:s({id:`ctJi7k`,values:{hashtag:c}}),disabled:ee===`loading`||!x,onClick:()=>{te(`loading`),V.following?y.v1.tags.$select(c).unfollow().then(()=>{re({...V,following:!1}),Y(s({id:`doK_ij`,values:{hashtag:c}}))}).catch(e=>{alert(e)}).finally(()=>{te(`default`)}):y.v1.tags.$select(c).follow().then(()=>{re({...V,following:!0}),Y(s({id:`R9-aEN`,values:{hashtag:c}}))}).catch(e=>{alert(e)}).finally(()=>{te(`default`)})},children:V.following?z(n,{children:[z(X,{icon:`check-circle`}),` `,z(`span`,{children:z(j,{id:`HOSk7R`})})]}):z(n,{children:[z(X,{icon:`plus`}),` `,z(`span`,{children:z(j,{id:`MKEPCY`})})]})}),z(Q,{type:`checkbox`,checked:se,disabled:ae===`loading`||!x,onClick:()=>{if(H(`loading`),se){let e=U.find(e=>e.name.toLowerCase()===c.toLowerCase()).id;e?y.v1.featuredTags.$select(e).remove().then(()=>{W(!1),Y(s({id:`VH-Tf9`})),oe(U.filter(n=>n.id!==e))}).catch(e=>{}).finally(()=>{H(`default`)}):Y(s({id:`3OLv47`}))}else y.v1.featuredTags.create({name:c}).then(e=>{W(!0),Y(s({id:`9ra4hn`})),oe(U.concat(e))}).catch(e=>{}).finally(()=>{H(`default`)})},children:se?z(n,{children:[z(X,{icon:`check-circle`}),z(`span`,{children:z(j,{id:`9ra4hn`})})]}):z(n,{children:[z(X,{icon:`check-circle`}),z(`span`,{children:z(j,{id:`UlJ3QN`})})]})}),z(rt,{})]}),!A&&z(n,{children:[z(Kt,{className:`plain`,children:z(j,{id:`cSev-j`})}),z(Q,{type:`checkbox`,checked:!!g,onClick:()=>{g?p.delete(`media`):p.set(`media`,`1`),h(p)},children:[z(X,{icon:`check-circle`,alt:`☑️`}),` `,z(`span`,{class:`menu-grow`,children:z(j,{id:`eK4SL_`})})]}),z(rt,{})]}),z(Ve,{className:`menu-field`,disabled:ie,children:({ref:e})=>z(`form`,{onSubmit:e=>{e.preventDefault();let n=e.target[0].value?.trim?.();n&&!f.some(e=>e.toLowerCase()===n.toLowerCase())&&(f.push(n),f.sort(),location.hash=b?`/${b}/t/${f.join(`+`)}${v}`:`/t/${f.join(`+`)}${v}`)},children:[z(X,{icon:`hashtag`}),z(`input`,{ref:e,type:`text`,placeholder:ie?K._({id:`ouWc_D`,values:{TOTAL_TAGS_LIMIT:al}}):s({id:`cxL5F9`}),required:!0,autocorrect:`off`,autocapitalize:`off`,spellCheck:!1,pattern:`[^##][^\\s##]+[^##]`,disabled:ie,dir:`auto`,enterKeyHint:`go`})]})}),z(mt,{takeOverflow:!0,children:f.map((e,n)=>z(Q,{disabled:f.length===1,onClick:e=>{f.splice(n,1),f.sort(),location.hash=b?`/${b}/t/${f.join(`+`)}${v}`:`/t/${f.join(`+`)}${v}`},children:[z(X,{icon:`x`,alt:s({id:`OISAkj`}),class:`danger-icon`}),z(`span`,{class:`bidi-isolate`,children:[z(`span`,{class:`more-insignificant`,children:`#`}),e]})]},e))}),z(rt,{}),z(Q,{disabled:!w,onClick:()=>{if(o.shortcuts.length>=9){alert(K._({id:`XN1xAY`,values:{SHORTCUTS_LIMIT:9}}));return}let e={type:`hashtag`,hashtag:f.join(` `),instance:b,media:g?`on`:void 0};o.shortcuts.some(n=>n.type===e.type&&n.hashtag.split(/[\s+]+/).sort().join(` `)===e.hashtag.split(/[\s+]+/).sort().join(` `)&&(n.instance?n.instance===e.instance:!0)&&(n.media?!!n.media==!!e.media:!0))?alert(s({id:`kfeQnS`})):(o.shortcuts.push(e),Y(s({id:`MIhb91`})))},children:[z(X,{icon:`shortcut`}),` `,z(`span`,{children:z(j,{id:`i02Lq_`})})]}),z(Q,{onClick:()=>{let e=prompt(s({id:`4CZnNE`}));if(!/\./.test(e)){e&&alert(s({id:`Q5COHO`}));return}e&&(e=e.toLowerCase().trim(),location.hash=`/${e}/t/${f.join(`+`)}${v}`)},children:[z(X,{icon:`bus`}),` `,z(`span`,{children:z(j,{id:`kesYbo`})})]}),C!==b&&z(Q,{onClick:()=>{location.hash=`/${C}/t/${f.join(`+`)}${v}`},children:[z(X,{icon:`bus`}),` `,z(`small`,{class:`menu-double-lines`,children:z(j,{id:`_AfxaA`,values:{currentInstance:C},components:{0:z(`b`,{})}})})]})]})},b+T),!r&&!!f?.length&&z(`data`,{class:`compose-data`,value:JSON.stringify({draftStatus:{status:`${f.length>1?`
+
+`:` `}${T}`}})})]})}var sl=20;function cl(e){let{_:r}=l(),i=W(o),{masto:s,instance:c}=u(),d=e?.id||k()?.id,f=a(),p=a();async function m(e){(e||!p.current)&&(p.current=s.v1.timelines.list.$select(d).list({limit:sl}).values());let n=await p.current.next(),{value:r}=n;return r?.length&&(e&&(f.current=r[0].id),r.forEach(e=>{O(e,c)})),{...n,value:r}}async function h(){try{let{value:e}=await s.v1.timelines.list.$select(d).list({limit:1,since_id:f.current}),n=e[0]?.id===f.current;return e?.length&&!n?(e=qt(e,`home`),!0):!1}catch{return!1}}let[g,v]=L([]),[y,b]=L({title:`List`});he(y.title,`/l/:id`),_(()=>{(async()=>{try{b(await xi(d))}catch{}})()},[d]);let[x,S]=L(!1),[C,w]=L(!1);return z(n,{children:[z(Xs,{title:y.title,id:`list`,emptyText:r({id:`KkDhfU`}),errorText:r({id:`7QSeK6`}),instance:c,fetchItems:m,checkForUpdates:h,useItemID:!0,boostsCarousel:i.settings.boostsCarousel,filterContext:`home`,showReplyParent:!0,headerStart:z(tt,{overflow:`auto`,menuButton:z(`button`,{type:`button`,class:`plain`,children:[z(X,{icon:`list`,size:`l`,alt:r({id:`h16FyT`})}),z(X,{icon:`chevron-down`,size:`s`})]}),onMenuChange:e=>{e.open&&yi().then(v)},children:[z(Nt,{to:`/l`,children:z(`span`,{children:z(j,{id:`BHWx-g`})})}),g?.length>0&&z(n,{children:[z(rt,{}),g.map(e=>z(Nt,{to:`/l/${e.id}`,children:z(`span`,{children:[e.title,e.exclusive&&z(n,{children:[` `,z(Ei,{})]})]})},e.id))]})]}),headerEnd:z(tt,{portal:!0,setDownOverflow:!0,overflow:`auto`,viewScroll:`close`,position:`anchor`,menuButton:z(`button`,{type:`button`,class:`plain`,children:z(X,{icon:`more`,size:`l`,alt:r({id:`2FYpfJ`})})}),children:[y?.exclusive&&z(n,{children:[z(Kt,{className:`plain`,children:[z(Ei,{}),` `,z(j,{id:`FNptcJ`})]}),z(rt,{})]}),z(Q,{onClick:()=>S({list:y}),children:[z(X,{icon:`pencil`,size:`l`}),z(`span`,{children:z(j,{id:`ePK91l`})})]}),z(Q,{onClick:()=>w(!0),children:[z(X,{icon:`group`,size:`l`}),z(`span`,{children:z(j,{id:`hB02vO`})})]})]})},d),x&&z(zt,{onClick:e=>{e.target===e.currentTarget&&S(!1)},children:z(Di,{list:x?.list,onClose:e=>{e.state===`success`&&e.list?b(e.list):e.state===`deleted`&&(location.hash=`/l`),S(!1)}})}),C&&z(zt,{onClick:e=>{e.target===e.currentTarget&&w(!1)},children:z(ul,{listID:d,onClose:()=>w(!1)})})]})}var ll=40;function ul({listID:e,onClose:n}){let{_:r}=l(),{masto:i,instance:o}=u(),[s,c]=L([]),[d,f]=L(`default`),[p,m]=L(!1),h=a();async function g(n){m(!1),f(`loading`),(async()=>{try{(n||!h.current)&&(h.current=i.v1.lists.$select(e).accounts.list({limit:ll}).values());let{done:r,value:a}=await h.current.next();a?.length?(c(n?a:s.concat(a)),m(!r)):m(!1),f(`default`)}catch{f(`error`)}})()}return _(()=>{g(!0)},[]),z(`div`,{class:`sheet`,id:`list-manage-members-container`,children:[!!n&&z(`button`,{type:`button`,class:`sheet-close`,onClick:n,children:z(X,{icon:`x`,alt:r({id:`yz7wBu`})})}),z(`header`,{children:z(`h2`,{children:z(j,{id:`hB02vO`})})}),z(`main`,{children:z(`ul`,{children:[s.map(n=>z(`li`,{children:[z(wt,{account:n,instance:o}),z(dl,{account:n,listID:e})]},n.id)),p&&d===`default`&&z(He,{as:`li`,onChange:e=>e&&g(),children:z(`button`,{type:`button`,class:`light block`,onClick:g,children:z(j,{id:`uXRAkV`})})})]})})]})}function dl({account:e,listID:n}){let{_:r}=l(),{masto:i}=u(),[a,o]=L(`default`),[s,c]=L(!1);return z(ut,{confirm:!s,confirmLabel:z(`span`,{children:z(j,{id:`j5n9Ry`,values:{0:e.username},components:{0:z(`span`,{class:`bidi-isolate`})}})}),align:`end`,menuItemClassName:`danger`,onClick:()=>{s?(o(`loading`),(async()=>{try{await i.v1.lists.$select(n).accounts.create({accountIds:[e.id]}),o(`default`),c(!1)}catch{o(`error`)}})()):(o(`loading`),(async()=>{try{await i.v1.lists.$select(n).accounts.remove({accountIds:[e.id]}),o(`default`),c(!0)}catch{o(`error`)}})())},children:z(`button`,{type:`button`,class:`light ${s?``:`danger`}`,disabled:a===`loading`,children:r(s?{id:`m16xKo`}:{id:`MWIaew`})})})}var fl={mention:[`account`,`status`],quote:[`account`,`status`],status:[`account`,`status`],reblog:[`account`,`status`],follow:[`account`],follow_request:[`account`],favourite:[`account`,`status`],poll:[`status`],update:[`status`]},pl=[`favourite`,`reblog`,`follow`,`admin.sign_up`],ml=e=>pl.includes(e);function hl(e){return e.filter(e=>{let{type:n,id:r,createdAt:i}=e;if(!n)return!1;let a=fl[n];return a?.length?a.every(n=>!!e[n]):!0})}function gl(e){if(e?.notificationGroups){let{accounts:n=[],notificationGroups:r=[],statuses:i=[]}=e;return r.map(e=>{let{sampleAccountIds:r,statusId:a}=e,o=r?.map(e=>n.find(n=>n.id===e))||[],s=i?.find(e=>e.id===a)||null;return{...e,sampleAccounts:o,status:s}})}return e}function _l(e){let n=e.map(e=>{let{latestPageNotificationAt:n,mostRecentNotificationId:r,sampleAccounts:i,notificationsCount:a}=e;return{id:``+r,createdAt:n,account:i[0],...e}}),r={},i=[];for(let e=0;e0&&u?.length>0&&l>u?.length)&&(o===`favourite`||o===`reblog`)&&(p=`favourite+reblog`);let m=`${s?.id}-${p}-${f}`,h=r[m];if(!ml(o)){if((o===`mention`||o===`quote`)&&s?.id){let e=i.find(e=>(o===`quote`&&e.type===`mention`||o===`mention`&&e.type===`quote`)&&e.status?.id===s.id);if(e){e.type=`mention+quote`;continue}}i.push(a)}else if(h)u.forEach(e=>{let n=h.sampleAccounts.find(n=>n.id===e.id);n?(n._types.push(o),n._types.sort().reverse()):h.sampleAccounts.push({...e,_types:[o]})}),h.notificationsCount=Math.min(h.notificationsCount,l),h._notificationsCount.push(l),h._sampleAccountsCount.push(u?.length),h._accounts=h.sampleAccounts,d&&h._groupKeys.push(d);else{let e=u.map(e=>({...e,_types:[o]}));r[m]={...a,sampleAccounts:e,type:p,_accounts:e,_groupKeys:d?[d]:[],_notificationsCount:[l],_sampleAccountsCount:[u?.length]},i.push(r[m])}}let a={},o=[];for(let e=0;ee.id===l.id);e?(e._types.push(u),e._types.sort().reverse(),h._ids+=`-${s}`):(l._types=[u],h._accounts.push(l),h._ids+=`-${s}`)}else{l&&(l._types=[u]);let e=n[m]={...o,type:p,_ids:s,_accounts:l?[l]:[]};r[a++]=e}}let i={},a=[];for(let e=0,n=0;e{let r=e.account?.id;return!r||r===n?!1:_.current[r]?.following===!0})}async function x(e){(e||!v.current)&&(v.current=o.v1.notifications.list({limit:yl,types:[`mention`]}).values());let n=await v.current.next(),{value:r}=n;if(r?.length){r=hl(r),e&&(y.current=r[0].id),r.forEach(({status:e})=>{O(e,s)});let i=r.map(e=>e.status);if(h&&i?.length){let e=await ze(i.map(e=>e.account),_.current);e&&(_.current={..._.current,...e}),i=b(i)}return{...n,value:i}}return{...n,value:r?.map(e=>e.status)}}let S=a(),C=a();async function w(e){(e||!S.current)&&(S.current=o.v1.conversations.list({limit:yl}).values());let n=await S.current.next(),{value:r}=n;if(r=r?.filter(e=>e.lastStatus),r?.length){e&&(C.current=r[0].lastStatus.id),r.forEach(({lastStatus:e})=>{O(e,s)});let i=r.map(e=>e.lastStatus);if(h&&i?.length){let e=await ze(i.map(e=>e.account),_.current);e&&(_.current={..._.current,...e}),i=b(i)}return{...n,value:i}}return{...n,value:r?.map(e=>e.lastStatus)}}function E(...e){return p===`private`?w(...e):x(...e)}async function D(){if(p===`private`)try{let{value:e}=await o.v1.conversations.list({limit:1,since_id:C.current}).values().next(),n=e[0]?.id===C.current;return e?.length&&!n?(C.current=e[0].lastStatus.id,!0):!1}catch{return!1}else try{let{value:e}=await o.v1.notifications.list({limit:1,types:[`mention`],since_id:y.current}).values().next();return e?.length?(y.current=e[0].id,!0):!1}catch{return!1}}let k=m(()=>z(n,{children:[z(`div`,{id:`followings-option`,children:z(`label`,{children:[z(`input`,{type:`checkbox`,checked:h,onChange:e=>{g(e.target.checked)}}),` `,z(j,{id:`h4JxWH`})]})}),z(`div`,{class:`filter-bar`,children:[z(Z,{to:`/mentions`,class:p?``:`is-active`,onClick:n=>{e&&(n.preventDefault(),f(null))},children:z(j,{id:`N40H-G`})}),z(Z,{to:`/mentions?type=private`,class:p===`private`?`is-active`:``,onClick:n=>{e&&(n.preventDefault(),f(`private`))},children:z(j,{id:`zwBp5t`})})]})]}),[p,h]);return z(Xs,{title:i({id:`_bZzdR`}),id:`mentions`,emptyText:i({id:`03jFGT`}),errorText:i({id:`pqR9KF`}),instance:s,fetchItems:E,checkForUpdates:D,useItemID:!0,timelineStart:k,refresh:`${p}-${h}`,filterContext:`notifications`})}var Sl=80,Cl=20,wl=new URLSearchParams,Tl={block:`start`,inline:`center`,behavior:`instant`},El=J(()=>d()?.mastodon>=2,{expires:1e3*60*5});function Dl(e={}){let{masto:n}=u();return El()?n.v2.notifications.list({limit:Cl,...e}):n.v1.notifications.list({limit:Sl,...e})}function Ol(e={}){return Dl(e).values()}function kl(e){return El()?_l(e):vl(e)}var Al=[`forNotFollowing`,`forNotFollowers`,`forNewAccounts`,`forPrivateMentions`,`forLimitedAccounts`],jl={forNotFollowing:{id:`d-hDoa`},forNotFollowers:{id:`oAwuQj`},forNewAccounts:{id:`Srs8u7`},forPrivateMentions:{id:`IDC5Uw`},forLimitedAccounts:{id:`XMGM2e`}};function Ml({columnMode:e}){let{_:r,_:i}=l();he(i({id:`iDNBZe`}),`/notifications`);let{masto:s,instance:c}=u(),d=W(o),[f,p]=L(`default`),[h]=e?[wl]:ce(),g=h.get(`id`),v=h.get(`access_token`),[b,S]=L(!1),[C,w]=L(!1),[T,E]=L(!1),[D,k]=L(!1),A=a(),{nearReachEnd:M,scrollDirection:N,reachStart:P,nearReachStart:F}=Is({scrollableRef:A}),R=N===`end`&&!F,[B,ee]=L([]),[te,V]=L([]),ne=a(),re=a();async function ie(n){if((n||!re.current)&&(ne.current=Dl({excludeTypes:[`follow_request`]}),re.current=ne.current.values()),/max_id=($|&)/i.test(re.current?.nextParams))return{done:!0};let r=await re.current.next(),i=gl(r.value);if(i?.length){i.forEach(e=>{O(e.status,c,{skipThreading:!0})});let r=kl(i);n?(o.notificationsLast=r[0],o.notifications=r,s.v1.markers.create({notifications:{lastReadId:r[0].id}}).catch(()=>{}),e||q(r)):o.notifications.push(...r)}return o.notificationsShowNew=!1,o.notificationsLastFetchTime=Date.now(),r}async function ae(){try{return await s.v1.followRequests.list({limit:80})}catch{return[]}}async function H(){try{return await s.v1.announcements.list()}catch{return[]}}let U=Xe(`@mastodon/filtered-notifications`),[se,G]=L(!1),[le,ue]=L({});function de(){return s.v2.notifications.policy.fetch().catch(()=>{})}function K(){de().then(e=>{ue(e)}).catch(()=>{})}let[fe,pe]=L(null);function me(){return s.v1.notifications.requests.list()}let q=e=>{if(T)return;let n=e.length;e.reduce((e,n)=>e+(n.notificationsCount||1),0);let r=e.filter(e=>e.type===`mention`).length,i={},a={};e.forEach(e=>{let{createdAt:n,notificationsCount:r,type:o}=e,s=new Date(n).toDateString();a[s]=(a[s]||0)+(r||1),o===`mention`&&(i[s]=(i[s]||0)+1)});let o=(n>0?r/n:0)<.33,s=Object.values(i).some(e=>e>30),c=e.some(e=>e.notificationsCount>30),l={},u=!1;for(let n of e){let{createdAt:e,notificationsCount:r}=n,i=new Date(e).toISOString().slice(0,13);if(l[i]=(l[i]||0)+(r||1),l[i]>30){u=!0;break}}E(o||s||c||u),k(Date.now())},ge=e=>{ve(!1),p(`loading`),(async()=>{try{let n=ie(e);e&&(H().then(e=>{e.sort((e,n)=>Date.parse(n.updatedAt||n.createdAt)-Date.parse(e.updatedAt||e.createdAt)),V(e)}).catch(()=>{}),ae().then(e=>{ee(e)}).catch(()=>{}),U&&K());let{done:r}=await n;S(!r),p(`default`)}catch{p(`error`)}})()};_(()=>{ge(!0)},[]),_(()=>{P&&ge(!0)},[P]);let[_e,ve]=L(!1),ye=y(({disableIdleCheck:e=!1}={})=>{f!==`loading`&&d.settings.autoRefresh&&A.current?.scrollTop<16&&(e||window.__IDLE__)&&!Nl()&&ge(!0)},[d.notificationsShowNew,d.settings.autoRefresh,f]),be=a();an(e=>{if(e){let e=Date.now()-be.current;!be.current||e>1e3*3?ye({disableIdleCheck:!0}):be.current=Date.now()}});let xe=a(!0);_(()=>{let e=x(o,`notificationsShowNew`,e=>{if(xe.current){xe.current=!1;return}f!==`loading`&&(e&&ye(),ve(e))});return()=>e?.()},[]);let Se=new Date,Ce=new Date(Se-1440*60*1e3),we=new Date,Te=!d.notifications.some(e=>new Date(e.createdAt).toDateString()===Se.toDateString()),Ee=a();_(()=>{g&&(o.routeNotification={id:g,accessToken:atob(v)})},[g,v]);let[De,Oe]=L(null);_(async()=>{let e=new Date;if(e.getMonth()!==11)return;let n=e.getFullYear();if(!Xe(`@mastodon/annual-report`))return;let r=I.account.get(`annualReportNotification`);if(r&&r?.annualReport?.year==n){Oe(r);return}let i=Ol({types:[`annual_report`]});try{r=(await i.next())?.value?.notificationGroups?.[0],r?.annualReport?.year==n&&(Oe(r),I.account.set(`annualReportNotification`,r))}catch{}},[]);let J=`.notification`,ke=$e(`j`,()=>{let e=document.activeElement.closest(J),n=e?.getBoundingClientRect(),r=Array.from(A.current.querySelectorAll(J));if(e&&n.top0){let n=r[r.indexOf(e)+1];n&&(n.focus(),n.scrollIntoView(Tl))}else{let e=r.find(e=>{let n=e.getBoundingClientRect();return n.top>=44&&n.left>=0});e&&(e.focus(),e.scrollIntoView(Tl))}},{useKey:!0,ignoreEventWhen:e=>e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.key.toLowerCase()!==`j`}),Ae=$e(`k`,()=>{let e=document.activeElement.closest(J),n=e?.getBoundingClientRect(),r=Array.from(A.current.querySelectorAll(J));if(e&&n.top0){let n=r[r.indexOf(e)-1];n&&(n.focus(),n.scrollIntoView(Tl))}else{let e=r.find(e=>{let n=e.getBoundingClientRect();return n.top>=44&&n.left>=0});e&&(e.focus(),e.scrollIntoView(Tl))}},{useKey:!0,ignoreEventWhen:e=>e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.key.toLowerCase()!==`k`}),je=$e([`enter`,`o`],()=>{let e=document.activeElement.closest(J)?.querySelector(`.status-link`);e&&e.click()},{useKey:!0,ignoreEventWhen:e=>e.key===`Enter`?!1:e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.key.toLowerCase()!==`o`}),Me=$e(`.`,()=>{ge(!0),A.current?.scrollTo({top:0,behavior:`smooth`})},{useKey:!0,ignoreEventWhen:e=>e.key===`.`?!1:e.metaKey||e.ctrlKey||e.altKey||e.shiftKey}),Ne=new Date,Pe=m(()=>xt(Ne,{forceOpts:{weekday:`long`}}),[Ne]);return z(`div`,{id:`notifications-page`,class:`deck-container`,ref:e=>{A.current=e,ke.current=e,Ae.current=e,je.current=e,Me.current=e},tabIndex:`-1`,children:[z(`div`,{class:`timeline-deck deck ${C?`only-mentions`:``}`,children:[z(`header`,{hidden:R,onClick:e=>{e.target.closest(`a, button`)||A.current?.scrollTo({top:0,behavior:`smooth`})},onDblClick:e=>{e.target.closest(`a, button`)||ge(!0)},class:f===`loading`?`loading`:``,children:[z(`div`,{class:`header-grid`,children:[z(`div`,{class:`header-side`,children:[z(Hs,{}),z(Z,{to:`/`,class:`button plain`,children:z(X,{icon:`home`,size:`l`,alt:i({id:`i0qMbr`})})})]}),z(`h1`,{children:z(j,{id:`iDNBZe`})}),z(`div`,{class:`header-side`,children:U&&z(`button`,{type:`button`,class:`button plain4`,onClick:()=>{G(!0)},children:z(X,{icon:`settings`,size:`l`,alt:i({id:`a_-arl`})})})})]}),_e&&f!==`loading`&&z(`button`,{class:`updates-button shiny-pill`,type:`button`,onClick:()=>{ge(!0),A.current?.scrollTo({top:0,behavior:`smooth`})},children:[z(X,{icon:`arrow-up`}),` `,z(j,{id:`Jy9RU_`})]})]}),te.length>0&&z(`div`,{class:`shazam-container`,children:z(`div`,{class:`shazam-container-inner`,children:z(`details`,{class:`announcements`,children:[z(`summary`,{children:[z(`span`,{children:[z(X,{icon:`announce`,class:`announcement-icon`,size:`l`}),` `,z(j,{id:`0whvLM`,values:{0:te.length}}),` `,z(`small`,{class:`insignificant`,children:c})]}),te.length>1&&z(`span`,{class:`announcements-nav-buttons`,children:te.map((e,n)=>z(`button`,{type:`button`,class:`plain2 small`,onClick:()=>{Ee.current?.children[n].scrollIntoView({behavior:`smooth`,block:`nearest`})},children:n+1}))})]}),z(`ul`,{class:`announcements-list-${te.length>1?`multiple`:`single`}`,ref:Ee,children:te.map(e=>z(`li`,{children:z(Pl,{announcement:e})}))})]})})}),B.length>0&&z(`div`,{class:`follow-requests`,children:[z(`h2`,{class:`timeline-header`,children:z(j,{id:`6Fs1Ba`})}),B.length>5?z(`details`,{children:[z(`summary`,{children:z(j,{id:`7dHKu4`,values:{0:B.length}})}),z(`ul`,{children:B.map(e=>z(`li`,{children:[z(wt,{account:e}),z(is,{accountID:e.id,onChange:()=>{}})]},e.id))})]}):z(`ul`,{children:B.map(e=>z(`li`,{children:[z(wt,{account:e}),z(is,{accountID:e.id,onChange:()=>{}})]},e.id))})]}),U&&le?.summary?.pendingRequestsCount>0&&z(`div`,{class:`shazam-container`,children:z(`div`,{class:`shazam-container-inner`,children:z(`div`,{class:`filtered-notifications`,children:z(`details`,{onToggle:async e=>{let{open:n}=e.target;n&&pe(await me())},children:[z(`summary`,{children:z(j,{id:`N3Bq0f`,values:{0:le.summary.pendingRequestsCount}})}),fe?fe?.length>0&&z(`ul`,{children:fe.map(e=>z(`li`,{children:[z(`div`,{class:`request-notifcations`,children:[!e.lastStatus?.id&&z(wt,{useAvatarStatic:!0,showStats:!0,account:e.account}),e.lastStatus?.id&&z(`div`,{class:`last-post`,children:z(Z,{class:`status-link`,to:`/${c}/s/${e.lastStatus.id}`,children:z(Mt,{status:e.lastStatus,size:`s`,readOnly:!0})})}),z(Il,{request:e})]}),z(Ll,{request:e,onChange:()=>{ge(!0)}})]},e.id))}):z(`p`,{class:`ui-state`,children:z(oe,{abrupt:!0})})]})})})}),De&&z(`div`,{class:`shazam-container`,children:z(`div`,{class:`shazam-container-inner`,children:z(ps,{notification:De})})}),!!D&&z(`div`,{id:`mentions-option`,children:T?z(Z,{to:`/mentions`,class:`button plain`,children:[z(X,{icon:`at`}),` `,z(`span`,{children:z(j,{id:`_bZzdR`})}),` `,z(X,{icon:`arrow-right`,class:`more-insignificant`})]}):z(`label`,{children:[z(`input`,{type:`checkbox`,checked:C,onChange:e=>{w(e.target.checked)}}),` `,z(j,{id:`0udtPI`})]})}),z(`h2`,{class:`timeline-header`,children:[z(j,{id:`ecUA8p`}),` `,z(`small`,{class:`insignificant bidi-isolate`,children:Pe})]}),Te&&z(`p`,{class:`ui-state insignificant`,children:f===`default`?i({id:`KS7iJH`}):z(n,{children:`…`})}),d.notifications.length?z(Gt.Provider,{value:`notifications`,children:d.notifications.filter(e=>e.type!==`follow_request`).map(e=>{if(C&&e.type!==`mention`)return null;let r=new Date(e.createdAt),a=r.toDateString()!==we.toDateString();a&&(we=r);let o=r.toDateString()===Ce.toDateString()?i({id:`y_0uwd`}):xt(we,{hideTime:!0}),s=xt(we,{forceOpts:{weekday:`long`}});return z(n,{children:[a&&z(`h2`,{class:`timeline-header`,children:[z(`span`,{children:o}),` `,z(`small`,{class:`insignificant bidi-isolate`,children:s})]}),z(ps,{instance:c,notification:e},e._ids||e.id)]},e._ids||e.id)})}):z(n,{children:[f===`loading`&&z(n,{children:z(`ul`,{class:`timeline flat`,children:Array.from({length:5}).map((e,n)=>z(`li`,{class:`notification skeleton`,children:[z(`div`,{class:`notification-type`,children:z(X,{icon:`notification`,size:`xl`})}),z(`div`,{class:`notification-content`,children:z(`p`,{children:`███████████ ████`})})]}))})}),f===`error`&&z(`p`,{class:`ui-state`,children:[z(j,{id:`gjzl8E`}),z(`br`,{}),z(`br`,{}),z(`button`,{type:`button`,onClick:()=>ge(!0),children:z(j,{id:`KDw4GX`})})]})]}),b&&z(He,{onChange:e=>{e&&ge()},children:z(`button`,{type:`button`,class:`plain block`,disabled:f===`loading`,onClick:()=>ge(),style:{marginBlockEnd:`6em`},children:f===`loading`?z(oe,{abrupt:!0}):z(j,{id:`uXRAkV`})})})]}),U&&se&&z(zt,{onClick:e=>{e.target===e.currentTarget&&G(!1)},children:z(`div`,{class:`sheet`,id:`notifications-settings`,tabIndex:`-1`,children:[z(`button`,{type:`button`,class:`sheet-close`,onClick:()=>G(!1),children:z(X,{icon:`x`,alt:i({id:`yz7wBu`})})}),z(`header`,{children:z(`h2`,{children:z(j,{id:`a_-arl`})})}),z(`main`,{children:z(`form`,{onSubmit:e=>{e.preventDefault();let{forNotFollowing:n,forNotFollowers:r,forNewAccounts:a,forPrivateMentions:o,forLimitedAccounts:c}=e.target,l={...le,forNotFollowing:n.value,forNotFollowers:r.value,forNewAccounts:a.value,forPrivateMentions:o.value,forLimitedAccounts:c.value};ue(l),G(!1),(async()=>{try{await s.v2.notifications.policy.update(l),Y(i({id:`4-7X9i`}))}catch{}})()},children:[z(`p`,{children:z(j,{id:`WrkPTf`})}),z(`div`,{class:`notification-policy-fields`,children:Al.map(e=>{let n=le[e];return z(`div`,{children:z(`label`,{children:[r(jl[e]),z(`select`,{name:e,defaultValue:n,class:`small`,children:[z(`option`,{value:`accept`,children:z(j,{id:`g3UF2V`})}),z(`option`,{value:`filter`,children:z(j,{id:`o7J4JM`})}),z(`option`,{value:`drop`,children:z(j,{id:`gbbkE7`})})]})]})},e)})}),z(`p`,{children:z(`button`,{type:`submit`,children:z(j,{id:`tfDRzk`})})})]})})]})})]})}function Nl(){return!!document.querySelector(`.deck-backdrop, #modal-container > *`)}function Pl({announcement:e}){let{instance:r}=u(),{contact:i}=se(),a=i?.account,{id:o,content:s,startsAt:c,endsAt:l,published:d,allDay:f,publishedAt:p,updatedAt:m,read:h,mentions:g,statuses:_,tags:v,emojis:y,reactions:b}=e,x=new Date(p),S=xt(x),C=new Date(m),w=xt(C);return z(`div`,{class:`announcement-block`,children:[z(wt,{account:a}),z(`div`,{class:`announcement-content`,onClick:et({mentions:g,instance:r}),dangerouslySetInnerHTML:{__html:We(s,{emojis:y})}}),z(`p`,{class:`insignificant`,children:[z(`time`,{datetime:x.toISOString(),children:xt(x)}),m&&w!==S&&z(n,{children:[` `,`•`,` `,z(`span`,{class:`ib`,children:z(j,{id:`TbFrLc`,values:{0:xt(C)},components:{0:z(`time`,{datetime:C.toISOString()})}})})]})]}),z(`div`,{class:`announcement-reactions`,hidden:!0,children:b.map(e=>{let{name:n,count:r,me:i,staticUrl:a,url:o}=e;return z(`button`,{type:`button`,class:`plain4 small ${i?`reacted`:``}`,children:[o||a?z(`img`,{src:o||a,alt:n,width:`16`,height:`16`}):z(`span`,{children:n}),` `,z(`span`,{class:`count`,children:Ze(r)})]})})})]})}function Fl(e){let{masto:n}=u();return n.v1.notifications.list({accountID:e})}function Il({request:e}){let{instance:r}=u(),[i,a]=L(`loading`),{account:o,lastStatus:s}=e,[c,l]=L(!1),[d,f]=L([]);function p(){l(!1)}return _(()=>{e?.account?.id&&c&&(a(`loading`),(async()=>{f(await Fl(e.account.id)||[]),a(`default`)})())},[c,e?.account?.id]),z(n,{children:[z(`button`,{type:`button`,class:`plain4 request-notifications-account`,onClick:()=>{l(!0)},children:[z(X,{icon:`notification`,class:`more-insignificant`}),` `,z(`small`,{children:z(j,{id:`H0wUNM`,values:{0:o.username},components:{0:z(`span`,{class:`bidi-isolate`})}})}),` `,z(X,{icon:`chevron-down`})]}),c&&z(zt,{onClick:e=>{e.target===e.currentTarget&&p()},children:z(`div`,{class:`sheet`,tabIndex:`-1`,children:[z(`button`,{type:`button`,class:`sheet-close`,onClick:p,children:z(X,{icon:`x`,alt:t`Close`})}),z(`header`,{children:z(`b`,{children:z(j,{id:`MXOmPt`,values:{0:o.username},components:{0:z(`span`,{class:`bidi-isolate`})}})})}),z(`main`,{children:i===`loading`?z(`p`,{class:`ui-state`,children:z(oe,{abrupt:!0})}):d.map(e=>z(`div`,{class:`notification-peek`,onClick:e=>{let{target:n}=e;(e.target.tagName===`BUTTON`||e.target.tagName===`A`)&&p()},children:z(ps,{instance:r,notification:e,isStatic:!0})}))})]})})]})}function Ll({request:e,onChange:n}){let{_:r}=l(),{masto:i}=u(),[a,o]=L(`default`),[s,c]=L(null),d=s!==null;return z(`p`,{class:`notification-request-buttons`,children:[z(`button`,{type:`button`,disabled:a===`loading`||d,onClick:()=>{Ut.trigger(`success`),o(`loading`),(async()=>{try{await i.v1.notifications.requests.$select(e.id).accept(),c(`accept`),o(`default`),n({request:e,state:`accept`}),Y(r({id:`ZtBMwU`,values:{0:e.account.username}}))}catch{o(`error`),Y(r({id:`S92JKG`}))}})()},children:z(j,{id:`h7peZQ`})}),` `,z(`button`,{type:`button`,disabled:a===`loading`||d,class:`light danger`,onClick:()=>{Ut.trigger(`light`),o(`loading`),(async()=>{try{await i.v1.notifications.requests.$select(e.id).dismiss(),c(`dismiss`),o(`default`),n({request:e,state:`dismiss`}),Y(r({id:`ibBDry`,values:{0:e.account.username}}))}catch{o(`error`),Y(r({id:`S5aemF`}))}})()},children:z(j,{id:`1QfxQT`})}),z(`span`,{class:`notification-request-states`,children:a===`loading`?z(oe,{abrupt:!0}):s===`accept`?z(X,{icon:`check-circle`,alt:r({id:`bzMKg7`}),class:`notification-accepted`}):s===`dismiss`&&z(X,{icon:`x-circle`,alt:r({id:`J6hrEy`}),class:`notification-dismissed`})})]})}var Rl=pe(Ml),zl=20;function Bl({local:e,columnMode:r,...i}){let{_:s}=l(),c=W(o),d=!!e,f=r?{}:k(),{masto:p,authenticated:m,instance:h}=u({instance:i?.instance||f.instance}),{instance:g}=u(),_=s(d?{id:`u96B_B`,values:{instance:h}}:{id:`PgVqvd`,values:{instance:h}});he(_,d?`/:instance?/p/l`:`/:instance?/p`);let v=a(),[y,b]=L(null),x=y===`disabled`,S=y===`authenticated`&&!m,C=a();async function w(e){if(e||!C.current){let e=await rl({feed:`liveFeeds`,feedType:d?`local`:`remote`,instance:h});if(b(e),e===`disabled`||e===`authenticated`&&!m)return{done:!0,value:[]};let n={limit:zl,local:d||void 0};!d&&Xe(`@pixelfed/global-feed`)&&(n.remote=!0),C.current=p.v1.timelines.public.list(n).values()}let n=await C.current.next(),{value:r}=n;return r?.length&&(e&&(v.current=r[0].id),r.forEach(e=>{O(e,h)})),{...n,value:r}}async function T(){if(x||S)return!1;try{let{value:e}=await p.v1.timelines.public.list({limit:1,local:d,since_id:v.current}).values().next(),n=e[0]?.id===v.current;return e?.length&&!n?(e=qt(e,`public`),!0):!1}catch{return!1}}return z(Xs,{title:_,titleComponent:z(`h1`,{class:`header-double-lines`,children:[z(`b`,{children:s(d?{id:`pJQgQV`}:{id:`cg0I-x`})}),z(`div`,{children:h})]}),id:`public`,instance:h,emptyText:s(x?{id:`qbE_m4`}:S?{id:`aqJggz`}:{id:`BiZJ6G`}),errorText:s({id:`scd9lw`}),fetchItems:w,checkForUpdates:T,useItemID:!0,headerStart:z(n,{}),boostsCarousel:c.settings.boostsCarousel,filterContext:`public`,headerEnd:z(tt,{portal:!0,overflow:`auto`,viewScroll:`close`,position:`anchor`,menuButton:z(`button`,{type:`button`,class:`plain`,children:z(X,{icon:`more`,size:`l`,alt:s({id:`2FYpfJ`})})}),children:[z(Q,{href:d?`/#/${h}/p`:`/#/${h}/p/l`,children:d?z(n,{children:[z(X,{icon:`transfer`}),` `,z(`span`,{children:z(j,{id:`dXMiUw`})})]}):z(n,{children:[z(X,{icon:`transfer`}),` `,z(`span`,{children:z(j,{id:`t2B_we`})})]})}),z(rt,{}),z(Q,{onClick:()=>{let e=prompt(s({id:`4CZnNE`}));if(!/\./.test(e)){e&&alert(s({id:`Q5COHO`}));return}e&&(e=e.toLowerCase().trim(),location.hash=d?`/${e}/p/l`:`/${e}/p`)},children:[z(X,{icon:`bus`}),` `,z(`span`,{children:z(j,{id:`kesYbo`})})]}),g!==h&&z(Q,{onClick:()=>{location.hash=d?`/${g}/p/l`:`/${g}/p`},children:[z(X,{icon:`bus`}),` `,z(`small`,{class:`menu-double-lines`,children:z(j,{id:`_AfxaA`,values:{currentInstance:g},components:{0:z(`b`,{})}})})]})]})},h+d)}function Vl({onItemClick:e}){let{_:n}=l(),{instance:r}=u(),[,i]=f(e=>e+1,0),a=hs(),o=()=>{ys(),Y({text:n({id:`hgPsUe`}),delay:1e3}),i()},s=(e,n)=>{vs(e,n),i()},[c]=ar();return a.length===0?null:z(`div`,{class:`recent-searches`,children:[z(`div`,{class:`recent-searches-header`,children:[z(X,{icon:`history`}),` `,z(`span`,{children:z(j,{id:`4R1B1H`})}),z(`span`,{class:`spacer`}),z(`button`,{type:`button`,class:`plain4 small`,onClick:o,disabled:a.length<=0,children:z(`span`,{children:z(j,{id:`yYxB17`})})})]}),z(`ul`,{class:`link-list recent-searches-list`,ref:c,children:a.map(i=>{let{label:a,to:o,icon:c}=bs(i.query,i.queryType,r);return z(`li`,{class:`recent-searches-item`,children:[z(Z,{to:o,class:`recent-searches-link`,onClick:n=>{_s(i.query,i.queryType),e?.(n)},children:[z(X,{icon:c,class:`more-insignificant`}),z(`span`,{class:`recent-searches-label`,children:a})]}),z(`button`,{type:`button`,class:`plain4 small`,onClick:()=>s(i.query,i.queryType),children:z(X,{icon:`trash`,alt:n({id:`xCJdfg`})})})]},`${i.query}-${i.queryType}-${i.timestamp}`)})})]})}var Hl=5,Ul=40,Wl=new URLSearchParams,Gl={block:`start`,inline:`center`,behavior:`instant`};function Kl({columnMode:e,...r}){let{_:i}=l(),{masto:o,instance:s,authenticated:c}=u({instance:(e?{}:k()).instance}),[d,f]=L(`default`),[p]=e?[Wl]:ce(),m=a(),h=r?.query||p.get(`q`),g=e?`statuses`:r?.type||p.get(`type`),v=i({id:`A1taO8`});if(h)switch(g){case`statuses`:v=i({id:`6YeoAt`,values:{q:h}});break;case`accounts`:v=i({id:`fpgumQ`,values:{q:h}});break;case`hashtags`:v=i({id:`AuiMZZ`,values:{q:h}});break;default:v=i({id:`wr3GZI`,values:{q:h}})}he(v,`/search`);let[y,b]=L(!1),x=a(0);_(()=>{x.current=0},[h,g]);let S=a();N(()=>{S.current?.scrollTo?.(0,0)},[h,g]);let[C,w]=L([]),[T,E]=L([]),[D,O]=L([]);_(()=>{w([]),E([]),O([])},[h]);let A={statuses:C,accounts:T,hashtags:D},M={statuses:w,accounts:E,hashtags:O},[P,F]=L({}),I=async e=>{if(!e?.length)return;let n=await ze(e,P);n&&F({...P,...n})};function R(e){e&&(x.current=0),!(!e&&!c)&&(f(`loading`),e&&!g&&(w(C.slice(0,Hl)),E(T.slice(0,Hl)),O(D.slice(0,Hl))),(async()=>{let n={q:h,resolve:c,limit:Hl};g&&(n.limit=Ul,n.type=g,c&&(n.offset=x.current));try{let r=await o.v2.search.list(n);if(g)if(e){M[g](r[g]);let e=r[g]?.length;x.current=Ul,b(!!e)}else if(r[g]?.[0]?.id===A[g]?.[0]?.id)b(!1);else{M[g](e=>[...e,...r[g]]);let e=r[g]?.length;x.current+=Ul,b(!!e)}else w(r.statuses||[]),E(r.accounts||[]),O(r.hashtags||[]),x.current=0,b(!1);I(r.accounts),f(`default`)}catch{f(`error`)}})())}let B=a();an(e=>{let n=S.current?.scrollTop===0;if(e&&n){let e=Date.now()-B.current;!B.current||e>1e3*3?R(!0):B.current=Date.now()}}),_(()=>{let e;return m.current?.setValue?.(h||``),h?R(!0):e=setTimeout(()=>{m.current?.focus?.()},150),()=>clearTimeout(e)},[h,g,s]),$e([`Slash`,`/`],e=>{m.current?.focus?.(),m.current?.select?.()},{useKey:!0,preventDefault:!0,ignoreEventWhen:e=>e.key===`/`?!1:e.metaKey||e.ctrlKey||e.altKey||e.shiftKey});let ee=`.timeline > li > a, .hashtag-list > li > a`,te=$e(`j`,()=>{let e=document.activeElement.closest(ee),n=e?.getBoundingClientRect(),r=Array.from(S.current.querySelectorAll(ee));if(e&&n.top0){let n=r[r.indexOf(e)+1];n&&(n.focus(),n.scrollIntoView(Gl))}else{let e=r.find(e=>{let n=e.getBoundingClientRect();return n.top>=44&&n.left>=0});e&&(e.focus(),e.scrollIntoView(Gl))}},{useKey:!0,ignoreEventWhen:e=>e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.key.toLowerCase()!==`j`}),V=$e(`k`,()=>{let e=document.activeElement.closest(ee),n=e?.getBoundingClientRect(),r=Array.from(S.current.querySelectorAll(ee));if(e&&n.top0){let n=r[r.indexOf(e)-1];n&&(n.focus(),n.scrollIntoView(Gl))}else{let e=r.find(e=>{let n=e.getBoundingClientRect();return n.top>=44&&n.left>=0});e&&(e.focus(),e.scrollIntoView(Gl))}},{useKey:!0,ignoreEventWhen:e=>e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.key.toLowerCase()!==`k`}),[ne]=ar();return z(`div`,{id:`search-page`,class:`deck-container`,tabIndex:`-1`,ref:e=>{S.current=e,te.current=e,V.current=e},children:z(`div`,{class:`timeline-deck deck`,children:[z(`header`,{class:d===`loading`?`loading`:``,children:z(`div`,{class:`header-grid`,children:[z(`div`,{class:`header-side`,children:z(Hs,{})}),z(xs,{ref:m}),z(`div`,{class:`header-side`,children:z(`button`,{type:`button`,class:`plain`,onClick:()=>{R(!0)},disabled:d===`loading`,children:z(X,{icon:`search`,size:`l`,alt:i({id:`A1taO8`})})})})]})}),z(`main`,{children:[!!h&&!e&&z(`div`,{ref:ne,class:`filter-bar ${d===`loading`?`loading`:``}`,children:[!!g&&z(Z,{to:`/search${h?`?q=${encodeURIComponent(h)}`:``}`,children:[z(X,{icon:`chevron-left`}),` `,z(j,{id:`N40H-G`})]}),[{label:i({id:`bPwFdf`}),type:`accounts`,to:`/search?q=${encodeURIComponent(h)}&type=accounts`},{label:i({id:`VwUsHI`}),type:`hashtags`,to:`/search?q=${encodeURIComponent(h)}&type=hashtags`},{label:i({id:`-owNNn`}),type:`statuses`,to:`/search?q=${encodeURIComponent(h)}&type=statuses`}].sort((e,n)=>e.type===g?-1:+(n.type===g)).map(e=>z(Z,{to:e.to,children:e.label},e.type))]}),h?z(n,{children:[(!g||g===`accounts`)&&z(n,{children:[g!==`accounts`&&z(`h2`,{class:`timeline-header`,children:[z(j,{id:`bPwFdf`}),` `,z(Z,{to:`/search?q=${encodeURIComponent(h)}&type=accounts`,children:z(X,{icon:`arrow-right`,size:`l`,alt:i({id:`V1fa9u`})})})]}),T.length>0?z(n,{children:[z(`ul`,{class:`timeline flat accounts-list`,children:T.map(e=>z(`li`,{children:z(wt,{account:e,instance:s,showStats:!0,relationship:P[e.id]})},e.id))}),g!==`accounts`&&z(`div`,{class:`ui-state`,children:z(Z,{class:`plain button`,to:`/search?q=${encodeURIComponent(h)}&type=accounts`,children:[z(j,{id:`BMmtZ8`}),` `,z(X,{icon:`arrow-right`})]})})]}):!g&&(d===`loading`?z(`p`,{class:`ui-state`,children:z(oe,{abrupt:!0})}):z(`p`,{class:`ui-state`,children:z(j,{id:`YYB61U`})}))]}),(!g||g===`hashtags`)&&z(n,{children:[g!==`hashtags`&&z(`h2`,{class:`timeline-header`,children:[z(j,{id:`VwUsHI`}),` `,z(Z,{to:`/search?q=${encodeURIComponent(h)}&type=hashtags`,children:z(X,{icon:`arrow-right`,size:`l`,alt:i({id:`V1fa9u`})})})]}),D.length>0?z(n,{children:[z(`ul`,{class:`link-list hashtag-list`,children:D.map(e=>{let{name:n,history:r}=e,i=r?.reduce?.((e,n)=>e+ +n.uses,0);return z(`li`,{children:z(Z,{to:s?`/${s}/t/${n}`:`/t/${n}`,children:[z(X,{icon:`hashtag`,alt:`#`}),z(`span`,{children:n}),!!i&&z(`span`,{class:`count`,children:Ze(i)})]})},`${n}-${i}`)})}),g!==`hashtags`&&z(`div`,{class:`ui-state`,children:z(Z,{class:`plain button`,to:`/search?q=${encodeURIComponent(h)}&type=hashtags`,children:[z(j,{id:`Nc_W5J`}),` `,z(X,{icon:`arrow-right`})]})})]}):!g&&(d===`loading`?z(`p`,{class:`ui-state`,children:z(oe,{abrupt:!0})}):z(`p`,{class:`ui-state`,children:z(j,{id:`4MFM3P`})}))]}),(!g||g===`statuses`)&&z(n,{children:[g!==`statuses`&&z(`h2`,{class:`timeline-header`,children:[z(j,{id:`-owNNn`}),` `,z(Z,{to:`/search?q=${encodeURIComponent(h)}&type=statuses`,children:z(X,{icon:`arrow-right`,size:`l`,alt:i({id:`V1fa9u`})})})]}),C.length>0?z(n,{children:[z(`ul`,{class:`timeline`,children:C.map(e=>z(`li`,{children:z(Z,{class:`status-link`,to:s?`/${s}/s/${e.id}`:`/s/${e.id}`,children:z(Mt,{status:e})})},e.id))}),g!==`statuses`&&z(`div`,{class:`ui-state`,children:z(Z,{class:`plain button`,to:`/search?q=${encodeURIComponent(h)}&type=statuses`,children:[z(j,{id:`LYCgej`}),` `,z(X,{icon:`arrow-right`})]})})]}):!g&&(d===`loading`?z(`p`,{class:`ui-state`,children:z(oe,{abrupt:!0})}):z(`p`,{class:`ui-state`,children:z(j,{id:`Hzi9AA`})}))]}),!!g&&(d===`default`?y?z(He,{onChange:e=>{e&&R()},children:z(`button`,{type:`button`,class:`plain block`,onClick:()=>R(),style:{marginBlockEnd:`6em`},children:z(j,{id:`uXRAkV`})})}):z(`p`,{class:`ui-state insignificant`,children:z(j,{id:`2EYeAZ`})}):d===`loading`&&z(`p`,{class:`ui-state`,children:z(oe,{abrupt:!0})}))]}):d===`loading`?z(`p`,{class:`ui-state`,children:z(oe,{abrupt:!0})}):z(n,{children:[z(`p`,{class:`ui-state insignificant`,children:z(j,{id:`fGn1Hk`})}),z(Vl,{})]})]})]})})}var ql=20,Jl=600*1e3,Yl=r(e=>e.v1.trends.links.list().values().next(),{expires:Jl}),Xl=r(e=>e.v1.trends.tags.list().values().next(),{expires:Jl});function Zl(e){return Xe(`@pixelfed/trending`)?e.pixelfed.v2.discover.posts.trending.list({range:`daily`}).values():e.v1.trends.statuses.list({limit:ql}).values()}function Ql(e,n){return e.v1.timelines.link.list(n).values()}function $l({columnMode:e,...r}){let{_:i}=l(),s=W(o),d=e?{}:k(),{masto:f,instance:p,authenticated:h}=u({instance:r?.instance||d.instance}),{masto:g,instance:v}=u(),y=i({id:`cI3UEs`,values:{instance:p}});he(y,`/:instance?/trending`);let b=a(),x=p===v,[S,C]=L([]),[w,T]=L([]),E=a();async function D(e){if(e||!E.current){if(E.current=Zl(f),Xe(`@mastodon/trending-hashtags`))try{let{value:e}=await Xl(f);e?.length&&C(e)}catch{}if(Xe(`@mastodon/trending-links`))try{let{value:e}=await Yl(f,p),n=e?.filter?.(e=>e.type===`link`);n?.length&&T(n)}catch{}}let n=await E.current.next(),{value:r}=n;return r?.length&&(e&&(b.current=r[0].id),r.forEach(e=>{O(e,p)})),{...n,value:r}}let[A,M]=L(!1),N=a(),[P,F]=L(null),I=!!P,R=a(),B=x&&Xe(`@mastodon/trending-link-posts`);_(()=>{P&&R.current&&R.current.scrollIntoView({behavior:`smooth`,block:`nearest`,inline:`center`})},[P]);let ee=a();async function te(e){(e||!N.current)&&(M(!0),N.current=Ql(f,{url:P})),ee.current=P;let n=await N.current.next(),{value:r}=n;return r?.length&&(r=qt(r,`public`),r.forEach(e=>{O(e,p)})),ee.current===P&&M(!1),{...n,value:r}}async function V(){try{let{value:e}=await f.v1.trends.statuses.list({limit:1}).values().next();return e=qt(e,`public`),e?.length&&e[0].id!==b.current?(b.current=e[0].id,!0):!1}catch{return!1}}let ne=m(()=>z(n,{children:[!!S.length&&z(`div`,{class:`filter-bar expandable`,children:[z(X,{icon:`chart`,class:`insignificant`,size:`l`}),S.map((e,n)=>{let{name:r,history:i}=e,a=i.reduce((e,n)=>e+ +n.uses,0);return z(Z,{to:`/${p}/t/${r}`,children:[z(`span`,{dir:`auto`,children:[z(`span`,{class:`more-insignificant`,children:`#`}),r]}),z(`span`,{class:`filter-count`,children:Ze(a)})]},r)})]}),!!w.length&&z(`div`,{class:`links-bar`,children:[z(`header`,{children:z(`h3`,{children:z(j,{id:`9veeTb`})})}),w.map(e=>{let{authors:r,authorName:i,authorUrl:a,blurhash:o,description:s,height:l,image:u,imageDescription:d,language:f,providerName:p,providerUrl:m,publishedAt:h,title:g,url:_,width:v}=e,y=r?.[0]?.account?.id?r[0].account:null,b=g.length<30,x=!!(i||y),S=c(_),C;if(o){let e=ya(gt(o));C=ha([.6,e[1],e[2]])}return z(`div`,{children:[z(`a`,{ref:P===_?R:null,href:_,target:`_blank`,rel:`noopener`,class:`link-block ${I?P===_?`active`:`inactive`:``}`,style:C?{"--accent-color":`rgb(${C.join(`,`)})`,"--accent-alpha-color":`rgba(${C.join(`,`)}, 0.4)`}:{},children:z(`article`,{children:[z(`figure`,{children:z(`img`,{src:u,alt:d,width:v,height:l,loading:`lazy`})}),z(`div`,{class:`article-body`,children:[z(`header`,{children:[z(`div`,{class:`article-meta`,children:[z(`span`,{class:`domain`,children:S}),` `,!!h&&z(n,{children:`· `}),!!h&&z(n,{children:z(Ct,{datetime:h,format:`micro`})})]}),!!g&&z(`h1`,{class:`title`,lang:f,dir:`auto`,title:g,children:g})]}),!!s&&z(`p`,{class:`description ${x&&!b?``:`more-lines`}`,lang:f,dir:`auto`,title:s,children:s}),x&&z(n,{children:[z(`hr`,{}),z(`p`,{class:`byline`,children:z(`small`,{children:z(j,{id:`aavdrC`,values:{0:y?z(qe,{account:y,showAvatar:!0}):a?z(`a`,{href:a,target:`_blank`,rel:`noopener`,children:i}):i}})})})]})]})]})}),B&&z(`button`,{type:`button`,class:`small plain4 block`,onClick:()=>{F(_)},disabled:_===P,children:[z(X,{icon:`comment2`}),` `,z(`span`,{children:z(j,{id:`_bZzdR`})}),` `,z(X,{icon:`chevron-down`})]})]},_)})]}),B&&!!w.length&&z(`div`,{class:`timeline-header-block ${I?`blended`:``}`,children:I?z(n,{children:[z(`div`,{style:{width:50,flexShrink:0,textAlign:`center`},children:A?z(oe,{abrupt:!0}):z(`button`,{type:`button`,class:`light`,onClick:()=>{F(null)},children:z(X,{icon:`x`,alt:i({id:`9Q_4xJ`})})})}),z(`p`,{children:z(j,{id:`BATCqf`,values:{0:P.replace(/^https?:\/\/(www\.)?/i,``).replace(/\/$/,``)},components:{0:z(`span`,{class:`link-text`})}})})]}):z(`p`,{class:`insignificant`,children:z(j,{id:`Vosm4k`})})})]}),[S,w,P,A]);return z(Xs,{title:y,titleComponent:z(`h1`,{class:`header-double-lines`,children:[z(`b`,{children:z(j,{id:`4_iCqx`})}),z(`div`,{children:p})]}),id:`trending`,instance:p,emptyText:i({id:`6HA9-s`}),errorText:i({id:`scd9lw`}),fetchItems:I?te:D,checkForUpdates:I?void 0:V,checkForUpdatesInterval:300*1e3,useItemID:!0,headerStart:z(n,{}),boostsCarousel:s.settings.boostsCarousel,filterContext:`public`,timelineStart:ne,refresh:P,clearWhenRefresh:!0,view:I?`link-mentions`:void 0,headerEnd:z(tt,{portal:!0,overflow:`auto`,viewScroll:`close`,position:`anchor`,menuButton:z(`button`,{type:`button`,class:`plain`,children:z(X,{icon:`more`,size:`l`,alt:i({id:`2FYpfJ`})})}),children:[z(Q,{onClick:()=>{let e=prompt(i({id:`4CZnNE`}));if(!/\./.test(e)){e&&alert(i({id:`Q5COHO`}));return}e&&(e=e.toLowerCase().trim(),location.hash=`/${e}/trending`)},children:[z(X,{icon:`bus`}),` `,z(`span`,{children:z(j,{id:`kesYbo`})})]}),v!==p&&z(Q,{onClick:()=>{location.hash=`/${v}/trending`},children:[z(X,{icon:`bus`}),` `,z(`small`,{class:`menu-double-lines`,children:z(j,{id:`_AfxaA`,values:{currentInstance:v},components:{0:z(`b`,{})}})})]})]})},p)}var eu={block:`nearest`,inline:`nearest`,behavior:`instant`};function tu(){let{_:e}=l();he(e({id:`i0qMbr`}),`/`);let{shortcuts:n}=W(o),r=n.map(e=>{if(!e)return null;let{type:n,...r}=e,i={following:Gc,notifications:Rl,list:cl,public:Bl,bookmarks:dc,favourites:Mc,hashtag:ol,mentions:xl,trending:$l,search:Kl,profile:ac}[n];return!i||n===`search`&&!r.query||n===`list`&&!r.id?null:(n===`profile`&&(r.id=T()),z(i,{...r,columnMode:!0},n+JSON.stringify(r)))});return $e([`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`],e=>{try{let n=parseInt(e.key,10)-1,r=document.querySelectorAll(`#columns > *`)[n];r&&(r.focus(),r.scrollIntoView(eu))}catch{}},{useKey:!0,ignoreEventWhen:e=>/^[1-9]$/.test(e.key)?!1:e.metaKey||e.ctrlKey||e.altKey||e.shiftKey}),$e([`[`,`]`],(e,n)=>{let r=n.keys[0],i=document.activeElement.closest(`#columns > *`),a=Re(),o=a?`]`:`[`,s=a?`[`:`]`,c;r===o?c=i?i.previousElementSibling:document.querySelectorAll(`#columns > *`)[0]:r===s&&(c=i?i.nextElementSibling:document.querySelectorAll(`#columns > *`)[1]),c&&(c.focus(),c.scrollIntoView(eu))},{useKey:!0,ignoreEventWhen:e=>[`[`,`]`].includes(e.key)?!1:e.metaKey||e.ctrlKey||e.altKey||e.shiftKey}),z(`div`,{id:`columns`,onContextMenu:e=>{e.target.closest(`.deck > header`)&&!e.target.closest(`a`)&&!e.target.closest(`button`)&&(e.preventDefault(),o.showShortcutsSettings=!0)},onFocus:()=>{let e=document.activeElement.closest(`#columns > *`);e&&document.querySelectorAll(`#columns > *`).forEach(n=>{n.classList.toggle(`focus`,n===e)})},children:r})}function nu(){let{_:r}=l(),i=W(o);return __BENCHMARK.end(`time-to-home`),_(()=>{(async()=>{let n=await Wt.drafts.keys();if(n.length){let r=e();n.filter(e=>e.startsWith(r)).length&&(o.showDrafts=!0)}})()},[]),z(n,{children:(i.settings.shortcutsViewMode===`multi-column`||!i.settings.shortcutsViewMode&&i.settings.shortcutsColumnsMode)&&i.shortcuts?.length?z(tu,{}):i.settings.paginatedTimeline?z(el,{title:r({id:`i0qMbr`}),path:`/`,id:`home`,headerStart:!1,headerEnd:z(ru,{})}):z(Gc,{title:r({id:`i0qMbr`}),path:`/`,id:`home`,headerStart:!1,headerEnd:z(ru,{})})})}function ru(){let{_:e}=l(),r=W(o),i=a(),[s,c]=L(void 0);return z(n,{children:[z(Z,{ref:i,to:`/notifications`,class:`button plain notifications-button ${r.notificationsShowNew?`has-badge`:``} ${s||``}`,onClick:e=>{e.stopPropagation(),window.matchMedia(`(min-width: calc(40em))`).matches&&(e.preventDefault(),c(e=>e?void 0:`open`))},children:z(X,{icon:`notification`,size:`l`,alt:e({id:`iDNBZe`})})}),z(au,{state:s,anchorRef:i,onClose:()=>c(void 0)})]})}var iu=5;function au({anchorRef:e,state:r,onClose:i}){let{masto:s,instance:c}=u(),l=W(o),[d,f]=L(`default`),p=Ol();async function m(){let e=await p.next(),n=gl(e.value);if(n?.length){n.forEach(e=>{O(e.status,c,{skipThreading:!0})});let e=kl(n);o.notificationsLast=e[0],o.notifications=e,s.v1.markers.create({notifications:{lastReadId:e[0].id}}).catch(()=>{})}return o.notificationsShowNew=!1,o.notificationsLastFetchTime=Date.now(),e}let[h,g]=L(!1);function v(){return s.v1.followRequests.list({limit:1})}function y({skipFollowRequests:e=!1}={}){f(`loading`),(async()=>{try{await m(),e||g(!!(await v())?.length),f(`default`)}catch{f(`error`)}})()}let b=a();return _(()=>{r===`open`&&(l.notificationsShowNew?b.current?.scrollTop<=52&&y({skipFollowRequests:!0}):y())},[r,l.notificationsShowNew]),z(at,{ref:b,menuClassName:`notifications-menu`,state:r,anchorRef:e,onClose:i,portal:{target:document.body},containerProps:{onClick:()=>{b.current?.closeMenu?.()}},overflow:`auto`,viewScroll:`close`,position:`anchor`,align:`center`,boundingBoxPadding:`8 8 8 8`,children:[z(`header`,{children:z(`h2`,{children:z(j,{id:`iDNBZe`})})}),z(Gt.Provider,{value:`notifications`,children:z(`main`,{children:l.notifications.length?z(n,{children:l.notifications.slice(0,iu).map(e=>z(ps,{instance:c,notification:e,disableContextMenu:!0},e._ids||e.id))}):d===`loading`?z(`div`,{class:`ui-state`,children:z(oe,{abrupt:!0})}):d===`error`&&z(`div`,{class:`ui-state`,children:[z(`p`,{children:z(j,{id:`5GFQTh`})}),z(`p`,{children:z(`button`,{type:`button`,onClick:y,children:z(j,{id:`KDw4GX`})})})]})})}),z(`footer`,{children:[z(Z,{to:`/mentions`,class:`button plain`,children:[z(X,{icon:`at`}),` `,z(`span`,{children:z(j,{id:`_bZzdR`})})]}),z(Z,{to:`/notifications`,class:`button plain2`,children:[h?z(j,{id:`OdVhdR`,components:{0:z(`span`,{class:`tag collapsed`}),1:z(`span`,{})}}):z(`b`,{children:z(j,{id:`gukqfD`})}),` `,z(X,{icon:`arrow-right`})]})]})]})}var ou=pe(nu),su=[/^\/@[^@\/]+\/(?:statuses|posts)\/([^\/]+)/i,/\/notes\/([^\/]+)/i,/^\/(?:notice|objects)\/([a-z0-9-]+)/i,/\/@[^@\/]+\/post\/([^\/]+)/i,/\/@[^@\/]+@?[^\/]+?\/([^\/]+)/i,/^\/p\/[^\/]+\/([^\/]+)/i];function cu(e){let n=URL.parse(e);if(!n)return{};let{hostname:r,pathname:i}=n;for(let e of su){let[,n]=i.match(e)||[];if(n)return{instance:r,id:n}}return{}}function lu(e){let{instance:n,id:r}=cu(e);return n&&r?`/${n}/s/${r}`:null}function uu(){let e=ie().pathname.replace(/^\//,``),r=cu(e),i=r?.instance?`/${r.instance}/s/${r.id}`:null,[a,o]=L(`loading`);return N(()=>{o(`loading`),(async()=>{try{let{instance:e,id:n}=r;if(n){let{masto:r}=u({instance:e});if(await r.v1.statuses.$select(n).fetch()){window.location.hash=i+`?view=full`;return}}}catch{}{let{masto:n,instance:r}=u(),a=await n.v2.search.list({q:e,limit:1,resolve:!0});if(a.statuses.length){let e=a.statuses[0];window.location.hash=`/${r}/s/${e.id}?view=full`}else if(a.accounts.length){let e=a.accounts[0];window.location.hash=`/${r}/a/${e.id}`}else i?window.location.hash=i+`?view=full`:o(`error`)}})()},[i]),z(`div`,{class:`ui-state`,tabIndex:`-1`,children:[a===`loading`?z(n,{children:[z(oe,{abrupt:!0}),z(`h2`,{children:z(j,{id:`RTAr_z`})}),z(`p`,{children:z(`a`,{href:e,target:`_blank`,rel:`noopener`,children:e})})]}):z(n,{children:[z(`h2`,{children:z(j,{id:`ufzZSJ`})}),z(`p`,{children:z(`a`,{href:e,target:`_blank`,rel:`noopener`,children:e})})]}),z(`hr`,{}),z(`p`,{children:z(Z,{to:`/`,children:z(j,{id:`iWpEwy`})})})]})}function du(){let{_:e}=l();he(e({id:`h16FyT`}),`/l`);let[r,i]=L(`default`),[a,o]=f(e=>e+1,0),[s,c]=L([]);_(()=>{i(`loading`),(async()=>{try{c(await vi()),i(`default`)}catch{i(`error`)}})()},[a]);let[u,d]=L(!1),p=s.some(e=>e.exclusive);return z(`div`,{id:`lists-page`,class:`deck-container`,tabIndex:`-1`,children:[z(`div`,{class:`timeline-deck deck`,children:[z(`header`,{children:z(`div`,{class:`header-grid`,children:[z(`div`,{class:`header-side`,children:[z(Hs,{}),z(Z,{to:`/`,class:`button plain`,children:z(X,{icon:`home`,size:`l`})})]}),z(`h1`,{children:z(j,{id:`h16FyT`})}),z(`div`,{class:`header-side`,children:z(`button`,{type:`button`,class:`plain`,onClick:()=>d(!0),children:z(X,{icon:`plus`,size:`l`,alt:e({id:`Sb2gYF`})})})})]})}),z(`main`,{children:s.length>0?z(n,{children:[z(`ul`,{class:`link-list`,children:s.map(e=>z(`li`,{children:z(Z,{to:`/l/${e.id}`,children:[z(X,{icon:`list`}),` `,z(`span`,{children:[e.title,e.exclusive&&z(n,{children:[` `,z(Ei,{insignificant:!0})]})]})]})}))}),s.length>1&&z(`footer`,{class:`ui-state`,children:[p&&z(`p`,{children:z(`small`,{class:`insignificant`,children:[z(Ei,{}),` `,z(j,{id:`FNptcJ`})]})}),z(`p`,{children:z(`small`,{class:`insignificant`,children:z(j,{id:`8prZNK`,values:{0:s.length}})})})]})]}):r===`loading`?z(`p`,{class:`ui-state`,children:z(oe,{})}):r===`error`?z(`p`,{class:`ui-state`,children:z(j,{id:`v_l5uA`})}):z(`p`,{class:`ui-state`,children:z(j,{id:`IvPikw`})})})]}),u&&z(zt,{onClick:e=>{e.target===e.currentTarget&&d(!1)},children:z(Di,{list:u?.list,onClose:e=>{e.state===`success`&&o(),d(!1)}})})]})}var fu=``+new URL(`instances-DWjbRJHw.json`,import.meta.url).href;function pu(e){let n=`popup,width=${Math.min(500,Math.floor(window.screen.width*.9))},height=${Math.min(600,Math.floor(window.screen.height*.8))}`;try{let r=window.open(e,`auth-popup`,n);return!r||r.closed||r.closed===void 0?null:r}catch{return null}}function mu(e){if(e&&!e.closed)try{e.close()}catch{}}function hu(e,n,r){let i=!1,a=e=>{e.origin===window.location.origin&&e.data&&e.data.type===`oauth-callback`&&(i=!0,s(),e.data.code?n(e.data.code):r(Error(`No authorization code received`)))};window.addEventListener(`message`,a);let o=setInterval(()=>{(!e||e.closed)&&(clearInterval(o),i||(i=!0,s(),r(Error(`Popup was closed before authentication completed`))))},500),s=()=>{window.removeEventListener(`message`,a),clearInterval(o),mu(e)};return s}var{PHANPY_DEFAULT_INSTANCE:gu}={};function _u(){let{_:e}=l();he(e({id:`sQia9P`}),`/login`);let n=a(),r=I.local.get(`instanceURL`),[i,o]=L(`default`),[s]=ce(),c=s.get(`instance`),u=s.get(`submit`),[d,f]=L(c||r?.toLowerCase()||``),[p,m]=L([]),h=a();_(()=>{(async()=>{try{let e=await(await fetch(fu)).json();m(e),h.current=new St(e)}catch{}})()},[]);let g=n=>{n&&(async()=>{try{let e=await(await fetch(`https://${n}/.well-known/host-meta`)).text(),r=new DOMParser().parseFromString(e,`text/xml`).getElementsByTagName(`Link`)[0].getAttribute(`template`),{host:i}=URL.parse(r);n!==i&&(n=i)}catch{}I.local.set(`instanceURL`,n),o(`loading`);try{let r=R(n);(!r||!r.client_id||!r.client_secret)&&(r=await yr({instanceURL:n}),U(n,r));let{client_id:i,client_secret:a}=r,s=await dr({instanceURL:n}),c=fe(n),l;if(s&&window.isSecureContext)if(i&&a){let[e,r]=await br({instanceURL:n,client_id:i,forceLogin:c});I.sessionCookie.set(`codeVerifier`,r),l=e}else{alert(e({id:`ZP1FIA`})),o(`default`);return}else if(i&&a)l=await xr({instanceURL:n,client_id:i,forceLogin:c});else{alert(e({id:`ZP1FIA`})),o(`default`);return}let u=pu(l);u?hu(u,e=>{let n=`${window.location.origin}${window.location.pathname}?code=${encodeURIComponent(e)}`;window.location.href=n},e=>{o(`error`)}):location.href=l,o(`default`)}catch{o(`error`)}})()},v=d?d.replace(/^https?:\/\//,``).replace(/\/+$/,``).replace(/^@?[^@]+@/,``).trim():null,y=/[^\s\r\n\t\/\\]+\.[^\s\r\n\t\/\\]+/.test(v)&&!/[\s\/\\@]/.test(v),b=v?h.current?.search(v,{limit:10})?.map(e=>e.item):[],x=y?v:b?.length?b[0]:d?p.find(e=>e.includes(d)):null;return u&&_(()=>{g(c||x)},[]),z(`main`,{id:`login`,style:{textAlign:`center`},children:z(`form`,{onSubmit:e=>{e.preventDefault(),g(x)},children:[z(`h1`,{children:[z(`img`,{src:Dr,alt:``,width:`80`,height:`80`}),z(`br`,{}),z(j,{id:`sQia9P`})]}),z(`label`,{children:[z(`p`,{children:z(j,{id:`sGH11W`})}),z(`input`,{value:d,required:!0,type:`text`,class:`large`,id:`instanceURL`,ref:n,disabled:i===`loading`,autocorrect:`off`,autocapitalize:`off`,autocomplete:`off`,spellCheck:!1,placeholder:e({id:`0hbkwr`}),enterKeyHint:`go`,onInput:e=>{f(e.target.value)},dir:`auto`}),b?.length>0?z(`ul`,{id:`instances-suggestions`,children:b.map((e,n)=>z(`li`,{children:z(`button`,{type:`button`,class:`plain5`,onClick:()=>{g(e)},children:e})}))}):z(`div`,{id:`instances-eg`,children:z(j,{id:`_OvbEC`})})]}),i===`error`&&z(`p`,{class:`error`,children:z(j,{id:`yCXori`})}),z(`div`,{children:[z(`button`,{disabled:i===`loading`||!d||!x,children:e(x?{id:`2xahsi`,values:{selectedInstanceText:x}}:{id:`xGVfLh`})}),` `]}),z(oe,{hidden:i!==`loading`}),z(`hr`,{}),!gu&&z(`p`,{children:z(`a`,{href:`https://joinmastodon.org/servers`,target:`_blank`,children:z(j,{id:`LcOiWS`})})}),z(`p`,{children:z(Z,{to:`/`,children:z(j,{id:`iWpEwy`})})}),z(kr,{})]})})}var vu=40;function yu(){let{_:e}=l(),n=W(o);he(e({id:`-GkIdc`}),`/sp`);let{masto:r}=u(),[i,a]=L([]),[s,c]=L(`default`),[d,p]=f(e=>e+1,0),[m,h]=L(!1);return _(p,[n.reloadScheduledPosts]),_(()=>{c(`loading`),(async()=>{try{let e=r.v1.scheduledStatuses.list({limit:vu}).values(),n=[],i;do i=(await e.next()).value,i?.length&&n.push(...i);while(i?.length);a(n)}catch{c(`error`)}finally{c(`default`)}})()},[d]),z(`div`,{id:`scheduled-posts-page`,class:`deck-container`,tabIndex:`-1`,children:z(`div`,{class:`timeline-deck deck`,children:[z(`header`,{children:z(`div`,{class:`header-grid`,children:[z(`div`,{class:`header-side`,children:[z(Hs,{}),z(Z,{to:`/`,class:`button plain`,children:z(X,{icon:`home`,size:`l`,alt:e({id:`i0qMbr`})})})]}),z(`h1`,{children:z(j,{id:`-GkIdc`})}),z(`div`,{class:`header-side`,children:z(tt,{portal:!0,setDownOverflow:!0,overflow:`auto`,viewScroll:`close`,position:`anchor`,menuButton:z(`button`,{type:`button`,class:`plain`,children:z(X,{icon:`more`,size:`l`,alt:e({id:`2FYpfJ`})})}),children:z(Q,{onClick:()=>{p()},children:[z(X,{icon:`refresh`,size:`l`}),z(`span`,{children:z(j,{id:`lCF0wC`})})]})})})]})}),z(`main`,{children:[i.length?z(`ul`,{class:`posts-list`,children:i.map(e=>{let{id:n,params:r,scheduledAt:i,mediaAttachments:a}=e,{inReplyToId:o,language:s,poll:c,sensitive:l,spoilerText:u,text:d,visibility:f,quotedStatusId:p,quoteApprovalPolicy:m}=r,g={id:n,inReplyToId:o,language:s,mediaAttachments:a,poll:c?{...c,expiresAt:new Date(Date.now()+c.expiresIn*1e3),options:c.options.map(e=>({title:e,votesCount:0}))}:void 0,sensitive:l,spoilerText:u,text:d,visibility:f,content:`${d}
`,quotedStatusId:p,quoteApprovalPolicy:m};return z(`li`,{children:z(bu,{status:g,scheduledAt:i,onClick:()=>{h({post:g,scheduledAt:new Date(i)})}})},n)})}):z(`p`,{class:`ui-state`,children:s===`loading`?z(oe,{}):e({id:`mZYb1f`})}),m&&z(zt,{onClick:e=>{e.target===e.currentTarget&&h(!1)},children:z(xu,{post:m.post,scheduledAt:m.scheduledAt,onClose:()=>h(!1)})})]})]})})}function bu({status:e,scheduledAt:n,onClick:r}){let i=m(()=>{let e=(Date.parse(n)-Date.now())/(1e3*60*60);return e<24?`time`:e<720?`day`:`month`},[n]);return z(`button`,{type:`button`,class:`textual block`,onClick:r,children:[z(`div`,{class:`post-schedule-meta post-schedule-${i}`,children:[z(X,{icon:i,class:`insignificant`}),` `,z(`span`,{children:z(j,{id:`aEp6lO`,values:{0:xt(n,{formatOpts:{weekday:`short`,second:`numeric`}})},components:{0:z(`b`,{}),1:z(Ct,{datetime:n}),2:z(`small`,{})}})})]}),z(Mt,{status:e,size:`s`,previewMode:!0,readOnly:!0})]})}function xu({post:e,scheduledAt:n,onClose:r}){let{masto:i,instance:a}=u(),{_:s}=l(),[c,d]=L(`default`),[f,p]=L(),m=f&&f.getTime()!==n.getTime(),h=It(),g=n&&n<=Date.now(),{inReplyToId:_}=e,[v,y]=L(null),{quotedStatusId:b}=e;return z(`div`,{id:`scheduled-post-sheet`,class:`sheet`,children:[z(`button`,{type:`button`,class:`sheet-close`,onClick:r,children:z(X,{icon:`x`,size:`l`,alt:s({id:`yz7wBu`})})}),z(`header`,{children:z(`h2`,{children:[z(j,{id:`orjBLU`,components:{0:z(`b`,{}),1:z(Ct,{datetime:n})}}),z(`br`,{}),z(`small`,{children:xt(n,{formatOpts:{weekday:`short`,second:`numeric`}})})]})}),z(`main`,{tabIndex:`-1`,children:[!!v&&z(`div`,{class:`status-reply`,children:z(Mt,{status:v,size:`s`,previewMode:!0,readOnly:!0})}),z(Mt,{status:e,size:`s`,previewMode:!0,readOnly:!0,onMediaClick:(n,r,i,a)=>{n.preventDefault(),o.showMediaModal={mediaAttachments:e.mediaAttachments,mediaIndex:r}}}),z(`form`,{onSubmit:n=>{n.preventDefault(),d(`loading`),(async()=>{try{await i.v1.scheduledStatuses.$select(e.id).update({scheduledAt:f.toISOString()}),Y(s({id:`40naR1`})),r(),d(`default`),o.reloadScheduledPosts++}catch{d(`error`),Y(s({id:`ZM3jAs`}))}})()},children:z(`footer`,{children:[z(`div`,{class:`row`,children:z(`span`,{children:[z(jt,{scheduledAt:n,setScheduledAt:e=>{p(e)}}),` `,z(`small`,{class:`ib`,children:h})]})}),z(`div`,{class:`row`,children:[z(`button`,{disabled:!m||c===`loading`||g,children:z(j,{id:`QqW27M`})}),z(`span`,{class:`grow`}),z(ut,{align:`end`,menuItemClassName:`danger`,confirmLabel:s({id:`09u3Kk`}),onClick:()=>{d(`loading`),(async()=>{try{await u().masto.v1.scheduledStatuses.$select(e.id).remove(),Y(s({id:`_zL_Mq`})),r(),d(`default`),o.reloadScheduledPosts++}catch{d(`error`),Y(s({id:`aOh6Md`}))}})()},children:z(`button`,{type:`button`,class:`light danger`,disabled:c===`loading`||g,children:z(j,{id:`Jb6_SB`})})})]})]})})]})]})}function Su(){let{_:e}=l(),{prevEditedAt:n,nextEditedAt:r,editedAtIndex:i,editHistoryMode:a,editHistoryRef:o,exitEditHistory:s}=Be();return a?z(`div`,{class:`edit-history-controls`,children:[z(X,{icon:`edit`}),z(`b`,{class:`edit-history-heading`,children:e({id:`HSA2au`})}),z(`span`,{class:`spacer`}),z(`span`,{class:`edit-history-pagination`,children:[z(`button`,{type:`button`,class:`plain4`,onClick:()=>{n()},disabled:!a||i+1>=o.current.length,children:z(X,{icon:`chevron-left`,alt:e({id:`DHhJ7s`})})}),` `,o.current.length-i,` /`,` `,o.current.length,` `,z(`button`,{type:`button`,class:`plain4`,onClick:()=>{r()},disabled:!a||i<=0,children:z(X,{icon:`chevron-right`,alt:e({id:`hXzOVo`})})})]}),z(`button`,{type:`button`,class:`plain3`,onClick:()=>{s()},children:z(X,{icon:`exit`,alt:e({id:`ydzS9x`})})})]}):null}var{PHANPY_DEFAULT_INSTANCE:Cu}={},wu=40,Tu=10,Eu=5,Du={},Ou={},ku={};function Au(e){delete Ou[e],delete ku[e]}var ju={block:`nearest`,inline:`center`,behavior:`instant`},Mu=`.status-link:not(details:not([open]) > summary ~ *, details:not([open]) > summary ~ * *), .status-focus:not(details:not([open]) > summary ~ *, details:not([open]) > summary ~ * *)`,Nu=/\/s\//i;function Pu(e){let{_:n}=l(),{id:r}=e,{masto:i,instance:a}=u({instance:e.instance}),c=W(o),[d,f]=ce(),p=d.get(`media`),h=d.get(`media-only`),g=parseInt(p||h,10),v=g>0,b=d.get(`mediaStatusID`),x=Pe(b,a);b&&!x&&(v=!1);let S=v&&!!h,C=Ae(r,a),[w,T]=L(o.statuses[C]);_(()=>{o.statuses[C]&&T(o.statuses[C])},[C]),_(()=>{if(!w||!w.url)return;let e=document.querySelector(`link[rel="canonical"]`),n=null,r;return e?(n=e.href,e.href=w.url):(r=document.createElement(`link`),r.rel=`canonical`,r.href=w.url,document.head.appendChild(r)),()=>{e&&n?e.href=n:r&&document.head.removeChild(r)}},[w?.url]);let E=m(()=>{let{prevLocation:e}=o,n=(e?.pathname||``)+(e?.search||``),r=s(`/:instance/s/:id`,n)||s(`/s/:id`,n);return!n||r?`/`:n},[]);_(()=>{!w&&v&&(async()=>{try{let e=await i.v1.statuses.$select(r).fetch();O(e,a),T(e)}catch{alert(n({id:`H_MI1F`})),location.hash=E}})()},[v]);let D=b?c.statuses[Ae(b,a)]?.mediaAttachments:w?.mediaAttachments,k=()=>window.matchMedia(`(min-width: calc(40em + 350px))`).matches?`large`:`small`,A=y(()=>{k()===`small`&&c.prevLocation?history.back():S?location.hash=E:(d.delete(`media`),d.delete(`mediaStatusID`),f(d))},[S,E,c.prevLocation]),j=y((e,n,r,i)=>{if(k()===`large`&&!S){A();return}if(v&&document.startViewTransition){let{id:e,blurhash:a,url:o}=r[n],s=Dt(e||a||o),c=[...document.querySelectorAll(`.status .media [data-view-transition-name="${s}"]`)]?.filter?.(e=>{let n=e.getBoundingClientRect();return n.top0&&n.left0}),l=c.length===1?c[0]:c.find(e=>!!e.closest(`.status-deck`));l?document.startViewTransition(()=>{l.style.viewTransitionName=s,i?.current&&i.current.querySelectorAll(`.media img, .media video`)?.forEach(e=>{e.style.viewTransitionName=``}),A()}).ready.finally(()=>{l.style.viewTransitionName=``,l.dataset.viewTransitioned=s}):A()}else A()},[v,S]);return _(()=>{let e=setTimeout(()=>{let e=document.querySelector(`.carousel`);e&&e.focus()},100);return()=>clearTimeout(e)},[S]),_(()=>{let e=document.querySelectorAll(`.deck-container`);return e.forEach(e=>{e.setAttribute(`inert`,``)}),()=>{e.forEach(e=>{e.removeAttribute(`inert`)})}},[]),z(`div`,{class:`deck-backdrop`,children:[v?D?.length?z(ja,{mediaAttachments:D,statusID:b||r,instance:a,lang:w?.language,index:g-1,onClose:j}):z(`div`,{class:`media-modal-container loading`,children:z(oe,{abrupt:!0})}):z(Z,{to:E}),!S&&z(nt,{statusID:r,children:z(zu,{id:r,instance:e.instance,closeLink:E})})]})}function Fu(e){let{linkable:n,to:r,onClick:i,...a}=e;return n?z(Z,{class:`status-link`,to:r,onClick:i,...a}):z(`div`,{class:`status-focus`,tabIndex:0,...a})}function Iu(e,n){return Date.parse(e.createdAt)-Date.parse(n.createdAt)}var Lu=1e3*60*60*24*30,Ru=typeof Intl?.Segmenter==`function`?new Intl.Segmenter:null;function zu({id:e,closeLink:r=`/`,instance:i}){let{_:s}=l(),[c,d]=ce(),f=c.get(`media`),p=c.get(`mediaStatusID`),h=parseInt(f,10)>0,g=a(!o.prevLocation&&(history.length===1||`navigation`in window&&navigation?.entries?.()?.length===1)),[v,b]=L(c.get(`view`)||g.current?`full`:null),x=!!parseInt(c.get(`translate`)),{masto:S,instance:w}=u({instance:i}),{masto:T,instance:E,authenticated:D}=u(),k=w===E,M=W(o),[P,F]=L([]),[I,R]=L(`default`),ee=a(),te=Ae(e,w),V=a(0),ne=a();_(()=>{ne.current?.focus()},[]),_(()=>{let n=Zt(()=>{if(!ne.current)return;let{scrollTop:n}=ne.current;I!==`loading`&&(ku[e]=n)},50);return ne.current?.addEventListener(`scroll`,n,{passive:!0}),n(),()=>{n.cancel(),ne.current?.removeEventListener(`scroll`,n)}},[e,I!==`loading`]);let{editHistoryMode:re,initEditHistory:ie,editedAtIndex:ae,editHistoryRef:H}=Be(),U=a(),se=a(),[G,le]=L(0),ue=a(null),de=()=>{if(!ue.current)return;let{ancestors:n,descendants:r,heroStatus:i}=ue.current;if(re&&r?.length){let e=H.current[ae],n=Date.parse(e.createdAt),i=H.current[ae-1],a=i?Date.parse(i.createdAt):null;r=r.filter(e=>{let r=Date.parse(e.editedAt||e.createdAt);return r>=n&&(!a||r<=a)})}n.sort(Iu),r.sort(Iu),V.current=r?.length||0;let a=new Set;n.forEach(e=>{O(e,w,{skipThreading:!0}),e.inReplyToId&&!n.find(n=>n.id===e.inReplyToId)&&a.add(e.inReplyToId)}),i.inReplyToId&&!n.find(e=>e.id===i.inReplyToId)&&a.add(i.inReplyToId),a.forEach(e=>{let r=n.find(n=>n.inReplyToId===e)||(i.inReplyToId===e?i:null);if(r){let a={id:e,ghost:{inReplyToAccountId:r.inReplyToAccountId}};if(r===i)n.push(a);else{let e=n.indexOf(r);n.splice(e,0,a)}}});let o=new Set,s=n.every(e=>e.ghost||e.account.id===i.account.id),c=[];r.forEach(e=>{if(O(e,w,{}),e.inReplyToId&&!r.find(n=>n.id===e.inReplyToId)&&e.inReplyToId!==i.id&&o.add(e.inReplyToId),e.inReplyToAccountId===e.account.id)c.push(e);else if(e.inReplyToId===i.id)c.push(e);else if(!e.inReplyToAccountId&&c.find(n=>n.id===e.inReplyToId&&n.account.id===i.account.id)&&e.account.id===i.account.id)c.push(e);else{let n=r.find(n=>n.id===e.inReplyToId);n&&(n.__replies||=[],n.__replies.push(e))}}),c.sort((e,n)=>{let r=i.account.id;return e.account.id===r&&n.account.id!==r?-1:+(n.account.id===r&&e.account.id!==r)}),o.size;let l=1;function u(e,n){let r=n+1;return r>l&&(l=n),e?.map(e=>({id:e.id,account:e.account,repliesCount:e.repliesCount,content:e.content,weight:Ku(e),level:r,replies:u(e.__replies,r)}))}let d=c.map(e=>({id:e.id,account:e.account,accountID:e.account.id,descendant:!0,thread:e.account.id===i.account.id,weight:Ku(e),level:1,replies:u(e.__replies,1),createdAt:e.createdAt}));return{allStatuses:[...n.map(e=>({id:e.id,ancestor:!0,ghost:e.ghost,isThread:s&&!e.ghost,accountID:e.account?.id,account:e.account,repliesCount:e.repliesCount,weight:e.ghost?0:Ku(e),createdAt:e.createdAt})),{id:e,accountID:i.account.id,weight:Ku(i),createdAt:i.createdAt},...d],ancestorsIsThread:s,mappedNestedDescendants:d}},fe=({reloadHero:n}={})=>{R(`loading`);let r=Ou[e];return F(r?r.filter(e=>o.statuses[te]):[{id:e}]),(async()=>{let r=()=>Qe(()=>S.v1.statuses.$select(e).fetch(),{retries:4}),i=Qe(()=>S.v1.statuses.$select(e).context.fetch(),{retries:8}),a=!!M.statuses[te],o=M.statuses[te];if(!(a&&!n))try{o=await r(),O(o,w),await new Promise(e=>{setTimeout(e,100)})}catch{R(`error`);return}try{let n=await i,{ancestors:r}=n;ue.current={...n,heroStatus:o};let{allStatuses:a,ancestorsIsThread:s,mappedNestedDescendants:c}=de(),l=r.length&&!s?[]:c.filter(e=>e.thread),u=(s?r.length:0)+l.length;u>0&&u<100&&le(u+1),R(`default`),U.current={offsetTop:ee.current?.offsetTop,scrollTop:ne.current?.scrollTop};let d=r.length||0;d>=be&&xe(d+1),F(a),Ou[e]=a,A(o,w)}catch{R(`error`)}})(),se.current=Date.now(),()=>{clearTimeout(void 0)}};_(fe,[e,S]),_(()=>{try{let{allStatuses:e}=de();F(e)}catch{}},[re,ae]);let[pe,me]=L(!1);_(()=>{let e=setInterval(()=>{let e=Date.now();se.current&&e-se.current>=6e4&&me(!0)},6e4);return()=>{clearInterval(e)}},[]),N(()=>{if(!P.length)return;let n=ku[e];if(n)ne.current.scrollTop=n;else if(U.current){let e={offsetTop:ee.current?.offsetTop,scrollTop:ne.current?.scrollTop},n=e.offsetTop-U.current.offsetTop+e.scrollTop;ne.current.scrollTop=n}else P.length===1&&(ne.current.scrollTop=0);U.current=null},[P]),_(()=>{M.reloadStatusPage<=0||(async()=>{try{let{instanceURL:n}=B(),r=`https://${n}/api/v1/statuses/${e}/context`;return await(await caches.open(`api`)).delete(r,{ignoreVary:!0}),fe({reloadHero:!0})}catch{}})()},[M.reloadStatusPage]),_(()=>()=>{ku={},o.reloadStatusPage=0,Ou={},Du={},Gu.clear()},[]);let q=M.statuses[te]||M.statuses[e],ge=m(()=>{if(!q)return``;let{account:e}=q,n=document.createElement(`div`);return n.innerHTML=e.displayName,n.innerText.trim()},[q]),_e=m(()=>{if(!q)return``;let e=Ot(q);return e.length>64&&(e=(Ru?[...Ru.segment(e)].map(e=>e.segment):[...e]).slice(0,64).join(``)+`…`),e},[q]);he(ge&&_e?`${ge}: "${_e}"`:s({id:`post.title`}),`/:instance?/s/:id`);let ve=m(()=>{if(!q)return;let{url:e}=q;if(e)return URL.parse(e)?.hostname},[q]),ye=m(()=>{if(ve)return ve===w},[ve,w]),[be,xe]=L(wu),Se=m(()=>P.length-be,[P.length,be]),Ce=P.some(e=>e.descendant),we=P.filter(e=>e.ancestor),[Te,Ee]=L(!0),De=m(()=>{if(!ee.current||Te)return null;let{top:e}=ee.current.getBoundingClientRect();return e>0?`down`:`up`},[Te]);$e(`esc`,()=>{location.hash=r},{enabled:!h,ignoreEventWhen:e=>!!document.querySelector(`#modal-container > *`)||e.metaKey||e.ctrlKey||e.altKey||e.shiftKey,useKey:!0}),$e(`backspace`,()=>{location.hash=r},{useKey:!0,ignoreEventWhen:e=>e.metaKey||e.ctrlKey||e.altKey||e.shiftKey}),$e(`j`,()=>{let e=document.activeElement.closest(`.status-link, .status-focus`),n=e?.getBoundingClientRect(),r=Array.from(ne.current.querySelectorAll(Mu));if(e&&n.top0){let n=r[r.indexOf(e)+1];n&&(n.focus(),n.scrollIntoView(ju))}else{let e=r.find(e=>{let n=e.getBoundingClientRect();return n.top>=44&&n.left>=0});e&&(e.focus(),e.scrollIntoView(ju))}},{useKey:!0,ignoreEventWhen:e=>e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.key.toLowerCase()!==`j`}),$e(`k`,()=>{let e=document.activeElement.closest(`.status-link, .status-focus`),n=e?.getBoundingClientRect(),r=Array.from(ne.current.querySelectorAll(Mu));if(e&&n.top0){let n=r[r.indexOf(e)-1];n&&(n.focus(),n.scrollIntoView(ju))}else{let e=r.find(e=>{let n=e.getBoundingClientRect();return n.top>=44&&n.left>=0});e&&(e.focus(),e.scrollIntoView(ju))}},{useKey:!0,ignoreEventWhen:e=>e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.key.toLowerCase()!==`k`}),$e(`x`,()=>{let e=document.activeElement.closest(`.status-link, .status-focus`);if(e){let n=e.nextElementSibling;n&&n.tagName.toLowerCase()===`details`&&(n.open=!n.open)}},{useKey:!0,ignoreEventWhen:e=>e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.key.toLowerCase()!==`x`}),$e(`o`,()=>{let e=document.activeElement.closest(`.status-link, .status-focus`);if(e){let n=e.querySelector(`a.media:not(.status-card a.media)`);n&&n.click()}},{useKey:!0,ignoreEventWhen:e=>e.metaKey||e.ctrlKey||e.altKey||e.shiftKey||e.key.toLowerCase()!==`o`});let[Oe,J]=L(!1),ke=a(h?`media+status`:`status`),je=y((e,n,r,i)=>{e.preventDefault(),e.stopPropagation(),d({media:n+1,mediaStatusID:i.id})},[e]),Me=y((e,n)=>{Au(n.id)},[]);_(()=>{let e;return p&&h&&(e=setTimeout(()=>{let e=ne.current?.querySelector(`.status-link[href*="/${p}"]`);e&&e.scrollIntoView(ju)},400)),()=>{clearTimeout(e)}},[p,h]);let Ne=y((r,i)=>{let{id:a,ancestor:c,ghost:l,isThread:u,descendant:d,thread:f,replies:p,repliesCount:m,weight:h,level:g}=r,_=a===e;return z(`li`,{ref:_?ee:null,class:`${c?`ancestor`:``} ${d?`descendant`:``} ${f?`thread`:``} ${_?`hero`:``}`,children:[_?z(n,{children:[z(He,{threshold:.1,onChange:e=>{queueMicrotask(()=>{requestAnimationFrame(()=>{Ee(e)})})},class:`status-focus`,tabIndex:0,children:z(Mt,{statusID:a,instance:w,withinContext:!0,size:`l`,enableTranslate:!0,forceTranslate:x})}),I!==`loading`&&!D?z(`div`,{class:`post-status-banner`,children:[z(`p`,{children:z(j,{id:`Vyeh4F`})}),z(Z,{to:Cu?`/login?instance=${Cu}&submit=1`:`/login`,class:`button`,children:z(j,{id:`sQia9P`})})]}):!k&&z(`div`,{class:`post-status-banner`,children:[z(`p`,{children:z(j,{id:`BrLbQp`,values:{instance:w},components:{0:z(`b`,{})}})}),z(`button`,{type:`button`,disabled:I===`loading`,onClick:()=>{R(`loading`),(async()=>{try{let e=await T.v2.search.list({q:q.url,type:`statuses`,resolve:!0,limit:1});if(e.statuses.length){let n=e.statuses[0];location.hash=E?`/${E}/s/${n.id}`:`/s/${n.id}`}else throw Error(`No results`)}catch(e){R(`default`),alert(s({id:`DnepCE`,values:{e}}))}})()},children:[z(X,{icon:`transfer`}),` `,z(j,{id:`jtQUzv`})]})]})]}):z(Fu,{linkable:!l&&(u||c),to:w?`/${w}/s/${a}`:`/s/${a}`,onClick:()=>{Au(a)},children:[l?z(Mt,{statusID:a,instance:w,withinContext:!0,size:`m`,ghost:l}):i===0&&c?z(He,{threshold:.5,onChange:e=>{queueMicrotask(()=>{requestAnimationFrame(()=>{J(e)})})},children:z(Mt,{statusID:a,instance:w,withinContext:!0,size:f||c?`m`:`s`,enableTranslate:!0,onMediaClick:je,onStatusLinkClick:Me})}):z(Mt,{statusID:a,instance:w,withinContext:!0,size:f||c?`m`:`s`,enableTranslate:!0,onMediaClick:je,onStatusLinkClick:Me,showActionsBar:!!d}),c&&m>1&&z(`div`,{class:`replies-link`,children:[z(X,{icon:`comment2`,alt:s({id:`N8UzTV`})}),` `,z(`span`,{title:m,children:Ze(m)})]}),` `]}),d&&p?.length>0&&z(Bu,{instance:w,replies:p,hasParentThread:f,level:g,accWeight:h,openAll:V.currentwu,parentLink:{to:w?`/${w}/s/${a}`:`/s/${a}`,onClick:()=>Au(a)}}),I===`loading`&&_&&!!q?.repliesCount&&!Ce&&z(`div`,{class:`status-loading`,children:z(oe,{abrupt:q.repliesCount>=3})}),I===`error`&&_&&!!q?.repliesCount&&!Ce&&z(`div`,{class:`status-error`,children:[z(j,{id:`HQJU6W`}),z(`br`,{}),z(`button`,{type:`button`,class:`plain`,onClick:()=>{o.reloadStatusPage++},children:z(j,{id:`KDw4GX`})})]})]},a)},[e,w,I,D,k,x,je,Me,Ce]),Pe=m(()=>{if(`navigation`in window&&navigation?.entries){let e=navigation.entries()[navigation.currentEntry.index-1];if(e?.url)return Nu.test(e.url)}return Nu.test(o.prevLocation?.pathname)},[te]),Fe=m(()=>{let e=[];function n(r){e.push(r.id);let i=r.quote?.quotedStatus?.id||r.quote?.id;i&&e.push(i),r.replies&&r.replies.forEach(n)}return P.forEach(n),e.map(e=>Ae(e,w))},[P,w]);function Ie(e){if(e<12)return K._({id:`DqsEm-`,values:{months:e}});{let n=Math.floor(e/12);return K._({id:`24w-FD`,values:{years:n}})}}let Le=m(()=>{let e=[],n=P.slice(0,be);for(let r=0;r0){let a=n[r-1],{createdAt:o,descendant:s,thread:c,id:l}=i;if(a?.createdAt&&o){let n=Date.parse(o);if(isFinite(n)&&n>Lu){let r=Date.parse(a.createdAt);if(r&&isFinite(r)){let{ancestor:i,id:o}=a,u=~~((n-r)/Lu);u>0&&e.push(z(`li`,{style:{"--time-gap-range":Math.min(12,u)},class:`time-gap ${i?`ancestor`:``} ${s?`descendant`:``} ${c?`thread`:``}`,children:Ie(u)},`time-gap-${l}-${o}`))}}}}e.push(Ne(i,r))}return e},[P,be,Ne,re,ae]);return _(()=>{let e=setTimeout(()=>{if(!ee.current)return;let e=ee.current.querySelector(`.spoiler-button:not(.spoiling), .spoiler-media-button:not(.spoiling)`);e&&e.click()},1e3);return()=>clearTimeout(e)},[e]),z(ht.Provider,{value:G,children:z(`div`,{tabIndex:`-1`,ref:ne,class:`status-deck deck contained ${P.length>1?`padded-bottom`:``} ${ke.current===`status`&&!g.current?`slide-in`:``} ${v?`deck-view-${v}`:``} ${re?`edit-history-mode`:``}`,style:re?{"--edit-history-percentage":`${ae/(H.current.length-1)}`}:void 0,onAnimationEnd:e=>{ke.current===`status`&&(ke.current=null)},children:[z(`header`,{class:`${I===`loading`?`loading`:``}`,onDblClick:e=>{o.reloadStatusPage++},children:z(`div`,{class:`header-grid header-grid-2`,children:[z(`h1`,{children:[Pe&&z(`button`,{type:`button`,class:`plain deck-back`,onClick:()=>{history.back()},children:z(X,{icon:`chevron-left`,size:`xl`,alt:s({id:`iH8pgl`})})}),!Te&&q&&I!==`loading`?z(n,{children:[z(`span`,{class:`hero-heading`,children:[z(qe,{account:q.account,instance:w,showAvatar:!0,short:!0}),` `,z(`span`,{class:`insignificant`,children:[`•`,` `,z(Ct,{datetime:q.createdAt,format:`micro`})]})]}),` `,z(`button`,{type:`button`,class:`ancestors-indicator light small`,onClick:e=>{e.preventDefault(),e.stopPropagation(),ee.current.scrollIntoView({behavior:`smooth`,block:`start`})},title:s({id:`NCy-Nw`}),children:z(X,{icon:De===`down`?`arrow-down`:`arrow-up`})})]}):z(n,{children:[z(j,{id:`post.title`}),` `,z(`button`,{type:`button`,class:`ancestors-indicator light small`,onClick:e=>{e.preventDefault(),e.stopPropagation(),ne.current.scrollTo({top:0,behavior:`smooth`})},hidden:!we.length||Oe,title:s({id:`R8CUl0`,values:{0:we.length}}),children:[z(X,{icon:`arrow-up`}),we.filter(e=>!e.ghost).filter((e,n,r)=>r.findIndex(n=>n.accountID===e.accountID)===n).slice(0,3).map(e=>z(vt,{url:e.account.avatarStatic||e.account.avatar,alt:e.account.displayName,squircle:e.account?.bot},e.account.id)),we.length>3&&z(n,{children:[` `,z(`span`,{class:`insignificant`,children:Ze(we.length)})]})]})]})]}),z(`div`,{class:`header-side`,children:[z(`button`,{type:`button`,class:`plain4 button-switch-view`,style:{display:v===`full`?``:`none`},onClick:()=>{b(null),c.delete(`media`),c.delete(`media-only`),c.delete(`view`),d(c)},title:s({id:`-_xYEI`}),children:z(X,{icon:`layout4`,size:`l`})}),pe&&z(`button`,{type:`button`,class:`plain button-refresh`,onClick:()=>{o.reloadStatusPage++,me(!1)},children:z(X,{icon:`refresh`,size:`l`,alt:s({id:`lCF0wC`})})}),z(tt,{align:`end`,portal:{target:ne.current},menuButton:z(`button`,{type:`button`,class:`button plain4`,children:z(X,{icon:`more`,alt:s({id:`2FYpfJ`}),size:`xl`})}),children:[z(Q,{disabled:I===`loading`,onClick:()=>{o.reloadStatusPage++},children:[z(X,{icon:`refresh`}),z(`span`,{children:z(j,{id:`lCF0wC`})})]}),z(Q,{className:`menu-switch-view`,onClick:()=>{b(v===`full`?null:`full`),c.delete(`media`),c.delete(`media-only`),v===`full`?c.delete(`view`):c.set(`view`,`full`),d(c)},children:[z(X,{icon:{"":`layout5`,full:`layout4`}[v||``]}),z(`span`,{children:s(v===`full`?{id:`-_xYEI`}:{id:`2LiWsE`})})]}),z(Q,{onClick:()=>{Array.from(ne.current.querySelectorAll(`.spoiler-button:not(.spoiling), .spoiler-media-button:not(.spoiling)`)).forEach(e=>{e.click()})},children:[z(X,{icon:`eye-open`}),` `,z(`span`,{children:z(j,{id:`8r8KmB`})})]}),z(rt,{}),z(Kt,{className:`plain`,children:z(j,{id:`Rsjgm0`})}),z(Q,{disabled:!ve||ye,onClick:()=>{let e=lu(q.url);e?location.hash=e:alert(s({id:`9J6biQ`}))},children:[z(X,{icon:`transfer`}),z(`small`,{class:`menu-double-lines`,children:s(ve?{id:`yi60j9`,values:{0:C.toUnicode(ve)}}:{id:`rWTcqf`})})]}),z(Q,{disabled:!k||I===`loading`||!q?.editedAt||!V.current,onClick:ie,children:[z(X,{icon:`edit`}),z(`span`,{children:s({id:`OqaQnE`})})]})]}),z(Z,{class:`button plain deck-close`,to:r,children:z(X,{icon:`x`,size:`xl`,alt:s({id:`yz7wBu`})})})]})]})}),z(Su,{}),P.length&&q?z(`ul`,{class:`timeline flat contextual grow ${I===`loading`?`loading`:``}`,children:[Le,Se>0&&z(`li`,{class:`descendant descendant-more`,children:z(`button`,{type:`button`,class:`plain block show-more`,disabled:I===`loading`,onClick:()=>xe(e=>e+wu),style:{marginBlockEnd:`6em`},children:[z(`div`,{class:`ib avatars-bunch`,children:P.slice(be,be+5).map(e=>z(vt,{url:e.account.avatarStatic},e.id))}),` `,z(`div`,{class:`ib`,children:[z(j,{id:`uXRAkV`}),` `,z(`span`,{class:`tag`,children:Se>wu?`${wu}+`:Se})]})]})})]}):z(n,{children:[I===`loading`&&z(`ul`,{class:`timeline flat contextual grow loading`,children:z(`li`,{children:z(Mt,{skeleton:!0,size:`l`})})}),I===`error`&&z(`p`,{class:`ui-state`,children:[z(j,{id:`JWxodU`}),z(`br`,{}),z(`br`,{}),z(`button`,{type:`button`,onClick:()=>{o.reloadStatusPage++},children:z(j,{id:`KDw4GX`})})]})]}),z(`div`,{"data-state-post-ids":Fe.join(` `),hidden:!0})]})})}function Bu({replies:e,instance:r,hasParentThread:i,level:o,accWeight:s,openAll:c,parentLink:u,lazyRenderReplies:d}){let{_:f}=l(),[p,h]=ce(),g=e=>e.reduce((e,n)=>{let{repliesCount:r,replies:i}=n;return e+(i?.length||r)+g(i||[])},0),v=e.length+g(e),b=e.length===v,x=e.map(e=>e.account).filter((e,n,r)=>r.findIndex(n=>n.id===e.id)===n).slice(0,3),S=m(()=>e?.reduce((e,n)=>e+n?.weight,s),[s,e?.length]),C=!1;(c||S<=Eu||!i&&v===1&&Ku(e[0])<2)&&(C=!0);let w=Du[e[0].id],T=y((e,n,r,i)=>{e.preventDefault(),e.stopPropagation(),h({media:n+1,mediaStatusID:i.id})},[]),E=a();N(()=>{function e(e){e.target.dataset.scrollLeft=e.target.scrollLeft}return E.current?.addEventListener(`scroll`,e,{passive:!0}),()=>{E.current?.removeEventListener(`scroll`,e)}},[]);let[D,O]=L(w||C),k=d?D:!0,[A,M]=L(k);_(()=>{M(k)},[k]);let P=C?`div`:`details`,F=P===`details`;return z(P,{ref:E,class:`replies`,open:F?w||C:void 0,onToggle:F?n=>{let{open:r}=n.target;O(r),Du[e[0].id]=r}:void 0,style:{"--comments-level":o},"data-comments-level":o,"data-comments-level-overflow":o>4,children:[!C&&z(`summary`,{class:`replies-summary`,hidden:C,children:[z(`span`,{class:`avatars`,children:x.map(e=>z(vt,{url:e.avatarStatic,title:`${e.displayName} @${e.username}`,squircle:e?.bot},e.id))}),z(`span`,{class:`replies-counts`,children:[z(`b`,{children:z(j,{id:`DOQUen`,values:{0:e.length,1:Ze(e.length)},components:{0:z(`span`,{title:e.length})}})}),!b&&v>1&&z(n,{children:[` `,`·`,` `,z(`span`,{children:z(j,{id:`qSQQSe`,values:{0:Ze(v),totalComments:v},components:{0:z(`span`,{title:v})}})})]})]}),z(X,{icon:`chevron-down`,class:`replies-summary-chevron`}),!!u&&z(Z,{class:`replies-parent-link`,to:u.to,onClick:u.onClick,title:f({id:`ZlV82A`}),children:`»`})]}),A&&z(`ul`,{children:e.map(e=>z(`li`,{children:[z(`div`,{class:`status-focus`,tabIndex:0,children:[z(Mt,{statusID:e.id,instance:r,withinContext:!0,size:`s`,enableTranslate:!0,onMediaClick:T,showActionsBar:!0}),!e.replies?.length&&e.repliesCount>0&&z(`div`,{class:`replies-link`,children:[z(X,{icon:`comment2`,alt:f({id:`N8UzTV`})}),` `,z(`span`,{title:e.repliesCount,children:Ze(e.repliesCount)})]})]}),e.replies?.length&&z(Bu,{instance:r,replies:e.replies,level:e.level,accWeight:C?S:e.weight,openAll:c,lazyRenderReplies:d,parentLink:{to:r?`/${r}/s/${e.id}`:`/s/${e.id}`,onClick:()=>{Au(e.id)}}})]},e.id))})]})}var Vu=140,Hu=35,Uu=70,Wu=140,Gu=new Map;function Ku(e){let n=Gu.get(e.id);if(n)return n;let{spoilerText:r,content:i,mediaAttachments:a,poll:o,card:s}=e,c=Ht(r+i),l=a?.length?Vu:0,u=(o?.options?.length||0)*Hu,d=s&&(a?.length||o?.options?.length)?0:Uu,f=(c+l+u+d)/Wu;return Gu.set(e.id,f),f}var qu=pe(Pu);function Ju(){let{id:e,instance:n}=k();return z(qu,{id:e,instance:n})}var Yu=``+new URL(`boosts-carousel-BiOaNdMT.jpg`,import.meta.url).href,Xu=``+new URL(`multi-column-ROck0NVt.jpg`,import.meta.url).href,Zu=``+new URL(`multi-hashtag-timeline-DH5INVHi.jpg`,import.meta.url).href,Qu=``+new URL(`nested-comments-thread-hv59kZLc.jpg`,import.meta.url).href,$u=`data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2093%2027'%3e%3cpath%20fill='%2382a0ef'%20d='M1.96%2021.31c1.26%200%201.99-.79%201.99-2.14v-4.86h3.79c4.29%200%207-2.45%207-6.58%200-3.96-2.68-6.56-6.84-6.56H2.85c-2.07%200-2.86.81-2.86%202.89v15.12c0%201.35.72%202.14%201.96%202.14Zm1.99-10.08v-6.9h3.46c2.17%200%203.4%201.26%203.4%203.46%200%202.55-1.25%203.44-4.32%203.44zm26.04%207.96v-8.41c0-3.38-1.93-5.41-5.17-5.41-2.21%200-4.12%201.23-4.64%202.99h-.19V2.13c0-1.36-.69-2.14-1.92-2.14-1.25%200-1.93.78-1.93%202.14v17.05c0%201.36.69%202.12%201.92%202.12s1.93-.76%201.93-2.12v-6.67c0-2.39%201.3-3.9%203.28-3.9%201.8%200%202.86%201.16%202.86%203.19v7.37c0%201.36.69%202.12%201.93%202.12%201.23%200%201.93-.78%201.93-2.12Zm10.95%200h.19v.54c.12%201.01.79%201.58%201.82%201.58%201.2%200%201.88-.75%201.88-2.07v-8.5c0-3.44-2.29-5.38-6.36-5.38q-2.53.01-3.98.81c-1.36.69-1.99%201.61-1.99%202.52%200%20.79.53%201.36%201.38%201.36.63%200%201.04-.16%201.48-.51a4%204%200%200%201%202.87-1.22c1.77%200%202.75.82%202.75%202.39v1.27h-3.69c-3.53%200-5.65%201.77-5.65%204.64%200%202.83%202.05%204.73%205.08%204.73%201.9%200%203.44-.79%204.23-2.18Zm-5.48-2.78c0-1.27.94-2.04%202.52-2.04h2.99v1.61c0%201.46-1.3%202.61-2.97%202.61-1.51%200-2.53-.89-2.53-2.18Zm25.55%202.79v-8.45c0-3.41-1.88-5.38-5.19-5.38-2.29%200-4.03%201.14-4.63%202.99H51v-.95c-.04-1.25-.72-1.93-1.88-1.93-1.17%200-1.9.79-1.9%202.07V19.2c0%201.36.7%202.12%201.93%202.12s1.93-.76%201.93-2.12v-6.67c0-2.42%201.26-3.9%203.27-3.9%201.79%200%202.8%201.14%202.8%203.18v7.38c0%201.36.69%202.12%201.93%202.12%201.23%200%201.92-.75%201.92-2.11Zm6.36%205.37V18.8h.19c.69%201.64%202.29%202.58%204.41%202.58%203.65%200%205.84-2.61%205.84-6.93V12.3c0-4.32-2.17-6.91-5.79-6.91-2.18%200-3.9%201.04-4.53%202.71h-.19v-.75c-.09-1.2-.76-1.86-1.9-1.86-1.22%200-1.89.76-1.89%202.14v16.95c0%201.36.69%202.12%201.92%202.12%201.25%200%201.93-.76%201.93-2.12Zm0-10.06v-2.07c0-2.49%201.25-3.97%203.27-3.97%202.07%200%203.24%201.52%203.24%204.2v1.41c0%202.67-1.17%204.2-3.21%204.2-1.98%200-3.3-1.49-3.3-3.78ZM78.73%2025q0%20.62.42%201.04c.45.44%201.25.67%202.26.67%203.12%200%204.92-1.44%206.14-4.92l4.67-13.4c.16-.45.22-.76.22-1.05%200-1.04-.78-1.8-1.83-1.8q-1.5-.01-1.98%201.85l-3.05%2010.59h-.16L82.4%207.39q-.46-1.86-2.01-1.85c-1.1%200-1.9.78-1.9%201.82q-.02.42.19%201.04l4.57%2012.96c0%20.1-.15.75-.19.83-.32%201-1.05%201.64-1.93%201.64-.44%200-.7-.07-1.01-.07-.83%200-1.39.53-1.39%201.25Z'/%3e%3c/svg%3e`,ed=``+new URL(`home-mobile-dark@2x-Dc-J8-SM.png`,import.meta.url).href,td=``+new URL(`home-mobile-light@2x-Bd3fod8m.png`,import.meta.url).href,nd=``+new URL(`home-tablet-dark@2x-BgcNI8le.png`,import.meta.url).href,rd=``+new URL(`home-tablet-light@2x-BW2RV9T6.png`,import.meta.url).href,{PHANPY_DEFAULT_INSTANCE:id,PHANPY_WEBSITE:ad,PHANPY_PRIVACY_POLICY_URL:od,PHANPY_DEFAULT_INSTANCE_REGISTRATION_URL:sd}={PHANPY_PRIVACY_POLICY_URL:`https://github.com/cheeaun/phanpy/blob/main/PRIVACY.MD`},cd=ad?ad.replace(/https?:\/\//g,``).replace(/\/$/,``):null,ld=ad?ad.toLowerCase().includes(location.hostname):!1,ud=`${`2026-05-15`.replace(/-/g,`.`)}.67947a9`;function dd(){let{_:e}=l();return he(null,[`/`,`/welcome`]),z(`main`,{id:`welcome`,children:[z(`div`,{class:`hero-container`,children:z(`div`,{class:`hero-content`,children:[z(`h1`,{children:[z(`img`,{src:Dr,alt:``,width:`100`,height:`100`}),z(`img`,{src:$u,alt:`Phanpy`,width:`180`,height:`52`})]}),z(`p`,{class:`desc`,children:z(j,{id:`Ogtv0V`})}),z(`p`,{children:z(Z,{to:id?`/login?instance=${id}&submit=1`:`/login`,class:`button plain6`,children:e(id?{id:`sQia9P`}:{id:`ZLoGls`})})}),id&&sd&&z(`p`,{children:z(`a`,{href:sd,class:`button plain5`,children:z(j,{id:`e-RpCP`})})}),!id&&z(`p`,{class:`insignificant`,children:z(`small`,{children:z(j,{id:`fvAsUK`,components:{0:z(`br`,{})}})})})]})}),z(`div`,{id:`device-showcase`,children:[z(`div`,{class:`device mobile`,children:z(`div`,{class:`device-frame`,children:z(`picture`,{children:[z(`source`,{srcSet:ed,media:`(prefers-color-scheme: dark)`}),z(`img`,{src:td,alt:e({id:`LVd2Ia`}),width:`375`,height:`812`,loading:`lazy`})]})})}),z(`div`,{class:`device tablet`,children:z(`div`,{class:`device-frame`,children:z(`picture`,{children:[z(`source`,{srcSet:nd,media:`(prefers-color-scheme: dark)`}),z(`img`,{src:rd,alt:e({id:`6XjvUL`}),width:`768`,height:`1024`,loading:`lazy`})]})})})]}),z(`div`,{id:`why-container`,children:z(`div`,{class:`sections`,children:[z(`section`,{children:[z(`img`,{src:Yu,alt:e({id:`S5cYrQ`}),width:`400`,height:`303`,loading:`lazy`}),z(`div`,{children:[z(`h4`,{children:z(j,{id:`Tu-sCN`})}),z(`p`,{children:z(j,{id:`e2uVlo`})})]})]}),z(`section`,{children:[z(`img`,{src:fc,alt:e({id:`LUnwPh`}),width:`600`,height:`450`,loading:`lazy`}),z(`div`,{children:[z(`h4`,{children:z(j,{id:`xrl8fj`})}),z(`p`,{children:z(j,{id:`1lGm1k`})})]})]}),z(`section`,{children:[z(`img`,{src:Qu,alt:e({id:`CGQ27z`}),width:`400`,height:`474`,loading:`lazy`}),z(`div`,{children:[z(`h4`,{children:z(j,{id:`cYE45-`})}),z(`p`,{children:z(j,{id:`Pc7QKh`})})]})]}),z(`section`,{children:[z(`img`,{src:Xu,alt:e({id:`VLKtvP`}),width:`400`,height:`209`,loading:`lazy`}),z(`div`,{children:[z(`h4`,{children:z(j,{id:`pEkad9`})}),z(`p`,{children:z(j,{id:`t7Py5R`})})]})]}),z(`section`,{children:[z(`img`,{src:Zu,alt:e({id:`wOax6E`}),width:`400`,height:`196`,loading:`lazy`}),z(`div`,{children:[z(`h4`,{children:z(j,{id:`Wi1Ov0`})}),z(`p`,{children:z(j,{id:`tS2i-h`})})]})]})]})}),z(`footer`,{children:[(cd||ud)&&z(`p`,{class:`app-site-version`,children:z(`small`,{children:[ld?cd:``,` `,ud]})}),z(`p`,{children:z(j,{id:`BskFI2`,components:{0:z(`a`,{href:`https://github.com/cheeaun/phanpy`,target:`_blank`}),1:z(`a`,{href:`https://mastodon.social/@cheeaun`,target:`_blank`,onClick:e=>{e.preventDefault(),o.showAccount=`cheeaun@mastodon.social`}}),2:z(`a`,{href:od,target:`_blank`})}})}),z(`div`,{children:z(kr,{})})]})]})}q(!0);var fd=Le(()=>le(()=>import(`./mock-home-BusER0zi.js`),__vite__mapDeps([0,1,2,3]),import.meta.url)),pd=Le(()=>le(()=>import(`./year-in-posts-BWKSdskU.js`),__vite__mapDeps([4,1,2,3,5]),import.meta.url));window.__STATES__=o,window.__STATES_STATS__=()=>{let e=[`statuses`,`accounts`,`spoilers`,`unfurledLinks`,`statusQuotes`],n={};e.forEach(e=>{n[e]=Object.keys(o[e]).length});let{statuses:r}=o,i=new Set;document.querySelectorAll(`[data-state-post-id], [data-state-post-ids]`).forEach(e=>{let n=e.dataset.statePostId?.trim?.(),r=e.dataset.statePostIds?.trim?.();n&&i.add(n),r&&r.split(/\s+/).forEach(e=>i.add(e))}),Object.keys(r).filter(e=>!i.has(e))},setInterval(()=>{if(!window.__IDLE__)return;let{statuses:e,unfurledLinks:n,notifications:r}=o,i=0,{instance:a}=u(),s=new Set;document.querySelectorAll(`[data-state-post-id], [data-state-post-ids]`).forEach(e=>{let n=e.dataset.statePostId,r=e.dataset.statePostIds;n&&s.add(n),r&&r.split(/\s+/).forEach(e=>s.add(e))});for(let c in e){if(!window.__IDLE__)break;try{let e=r.some(e=>c===Ae(e.status?.id,a));if(!s.has(c)&&!e){delete o.statuses[c],delete o.statusQuotes[c];for(let e in n){let r=n[e];if(Ae(r.id,r.instance)===c){delete o.unfurledLinks[e];break}}i++}}catch{}}},900*1e3),setTimeout(()=>{for(let e in Xt)setTimeout(()=>{Array.isArray(Xt[e])?Xt[e][0]?.():typeof Xt[e]==`object`?Xt[e].module?.():Xt[e]?.()},1)},5e3),(()=>{window.__IDLE__=!0;let e=[`mousemove`,`mousedown`,`resize`,`keydown`,`touchstart`,`pointerdown`,`pointermove`,`wheel`],n=()=>{window.__IDLE__=!0},r=Zt(n,3e3),i=()=>{window.__IDLE__=!1,r()};e.forEach(e=>{window.addEventListener(e,i,{passive:!0,capture:!0})}),window.addEventListener(`blur`,n,{passive:!0}),document.documentElement.addEventListener(`mouseleave`,e=>{!e.relatedTarget&&!e.toElement&&n()},{passive:!0})})(),/iPad|iPhone|iPod/.test(navigator.userAgent)&&document.addEventListener(`visibilitychange`,()=>{if(document.visibilityState===`visible`){if(document.getElementsByClassName(`media-modal-container`).length>0)return;let e=I.local.get(`theme`),n;if(e){if(n=document.querySelector(`meta[name="theme-color"][data-theme-setting="manual"]`),n){let r=n.content,i=e===`light`?n.dataset.themeLightColorTemp:n.dataset.themeDarkColorTemp;n.content=i||``,setTimeout(()=>{n.content=r},10)}}else{let e=window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`;if(n=document.querySelector(`meta[name="theme-color"][media*="${e}"]`),n){let e=n.dataset.content,r=n.dataset.contentTemp;n.content=r||``,setTimeout(()=>{n.content=e},10)}}}});{let e=I.local.get(`theme`);if(e){document.documentElement.classList.add(`is-${e}`),document.querySelector(`meta[name="color-scheme"]`).setAttribute(`content`,e||`light dark`);let n=document.querySelector(`meta[data-theme-setting="manual"]`);n&&(n.name=`theme-color`,n.content=e===`light`?n.dataset.themeLightColor:n.dataset.themeDarkColor),document.querySelectorAll(`meta[data-theme-setting="auto"]`).forEach(e=>{e.name=``})}let n=I.local.get(`textSize`);n&&document.documentElement.style.setProperty(`--text-size`,`${n}px`)}ye(o,e=>{for(let[n,r,i,a]of e){if(r.join(`.`)===`settings.shortcutsViewMode`){let e=document.getElementById(`app`);e&&(e.dataset.shortcutsViewMode=o.shortcuts?.length?i:``)}r.join(`.`)===`settings.cloakMode`&&document.body.classList.toggle(`cloak`,i)}}),window.__BENCH_RESULTS=new Map,window.__BENCHMARK={start(e){},end(e){}},document.body.classList.toggle(`exp-tab-bar-v2`,I.local.get(`experiments-tabBarV2`)??!1);var md=window.matchMedia(`(display-mode: standalone)`).matches||window.navigator.standalone===!0,hd=3600*1e3;function gd(){let[e,n]=L(()=>!!B()),[r,s]=L(`loading`);__BENCHMARK.start(`app-init`),__BENCHMARK.start(`time-to-following`),__BENCHMARK.start(`time-to-home`),__BENCHMARK.start(`time-to-isLoggedIn`),l(),_(()=>{let e=I.local.get(`instanceURL`),r=decodeURIComponent((window.location.search.match(/code=([^&]+)/)||[,``])[1]);if(r){if(window.opener&&!window.opener.closed){try{window.opener.postMessage({type:`oauth-callback`,code:r},window.location.origin),setTimeout(()=>{window.close()},100)}catch{window.close()}return}window.history.replaceState({},document.title,window.location.pathname||`/`);let{client_id:a,client_secret:o,vapid_key:c}=R(e)||{},l=Ce(e)||c,u=I.sessionCookie.get(`codeVerifier`);(async()=>{s(`loading`);let{access_token:c}=await Sr({instanceURL:e,client_id:a,client_secret:o,code:r,code_verifier:u||void 0});if(c){let r=i({instance:e,accessToken:c});await Promise.allSettled([p(r),P(r,e),Ie(r,e,c,l)]),Me(),window.__IGNORE_GET_ACCOUNT_ERROR__=!0,n(!0),s(`default`);let a=I.session.get(`loginRedirect`);a&&(I.session.del(`loginRedirect`),window.location.hash=a)}else s(`error`);__BENCHMARK.end(`app-init`)})()}else{window.__IGNORE_GET_ACCOUNT_ERROR__=!0;let e=decodeURIComponent((window.location.search.match(/account=([^&]+)/)||[,``])[1]),r;if(e&&(r=v(e),r&&(we(r.info.id),window.history.replaceState({},document.title,window.location.pathname||`/`))),r||=B(),r){we(r.info.id);let{client:e}=u({account:r}),{instance:i}=e;Me(),s(`loading`),(async()=>{try{D()&&b(i)?(p(e),P(e,i)):await Promise.allSettled([p(e),P(e,i)])}catch{}finally{n(!0),s(`default`),__BENCHMARK.end(`app-init`)}})()}else s(`default`),__BENCHMARK.end(`app-init`)}I.sessionCookie.del(`clientID`),I.sessionCookie.del(`clientSecret`),I.sessionCookie.del(`codeVerifier`)},[]);let c=ie();o.currentLocation=c.pathname,_(ni,[c,e]);let d=a(!1),f=`pwaLastPath`;return _(()=>{d.current&&md&&e&&(vd(c.pathname)?I.local.del(f):I.local.setJSON(f,{path:c.pathname+c.search,lastAccessed:Date.now()}))},[c.pathname,c.search,e]),_(()=>{if(!(d.current||!(!c.pathname||c.pathname===`/`))&&md&&e&&r===`default`){let e=I.local.getJSON(f);e&&setTimeout(()=>{e?.path&&Date.now()-(e.lastAccessed||0){`serviceWorker`in navigator&&md&&r===`default`&&navigator.serviceWorker.getRegistration().then(function(e){e&&e.active&&e.active.postMessage({type:`client-ready`})}).catch(function(e){})},[md,r]),/\/https?:/.test(c.pathname)?z(uu,{}):r===`loading`?z(oe,{id:`loader-root`}):z(nn,{value:e,children:[z(yd,{}),z(Sd,{}),z(Fe,{children:z(ke,{path:`/:instance?/s/:id`,element:z(Ju,{})})}),e&&z(un,{}),e&&z(Ts,{}),z(ts,{}),e&&z(ms,{}),z(cn,{}),e&&z(rs,{}),z(Ss,{onClose:ni}),z(fn,{})]})}function _d(){let e=rn();return e&&__BENCHMARK.end(`time-to-isLoggedIn`),z(e?ou:dd,{})}function vd(e){return/^\/(login|welcome|_sandbox|_qr-scan|_mock)/i.test(e)}var yd=pe(()=>{let e=ie();return z(Fe,{location:m(()=>{let{pathname:n}=e;return!vd(n)},[e])||e,children:[z(ke,{path:`/`,element:z(_d,{})}),z(ke,{path:`/login`,element:z(_u,{})}),z(ke,{path:`/welcome`,element:z(dd,{})}),z(ke,{path:`/_mock/home`,element:z(S,{children:z(fd,{})})}),void 0]})});function bd({children:e}){let n=rn(),r=ie();if(!n){let e=r.pathname+r.search;return I.session.set(`loginRedirect`,e),z(ee,{to:`/login`,replace:!0})}return e}function xd(){return o.prevLocation||null}function Sd(){let e=ie(),n=a(xd()),r=m(()=>s(`/:instance/s/:id`,e.pathname)||s(`/s/:id`,e.pathname),[e.pathname,s]);return _(()=>{r?o.prevLocation&&I.session.setJSON(`prevLocation`,{pathname:o.prevLocation.pathname,search:o.prevLocation.search}):(o.prevLocation&&=null,I.session.del(`prevLocation`))},[r]),r?n.current||=xd():n.current=null,z(Fe,{location:n.current||e,children:[z(ke,{path:`/notifications`,element:z(bd,{children:z(Rl,{})})}),z(ke,{path:`/mentions`,element:z(bd,{children:z(xl,{})})}),z(ke,{path:`/following`,element:z(bd,{children:z(Gc,{})})}),z(ke,{path:`/_following2`,element:z(bd,{children:z(el,{})})}),z(ke,{path:`/b`,element:z(bd,{children:z(dc,{})})}),z(ke,{path:`/f`,element:z(bd,{children:z(Mc,{})})}),z(ke,{path:`/l`,children:[z(ke,{index:!0,element:z(bd,{children:z(du,{})})}),z(ke,{path:`:id`,element:z(bd,{children:z(cl,{})})})]}),z(ke,{path:`/fh`,element:z(bd,{children:z(Uc,{})})}),z(ke,{path:`/sp`,element:z(bd,{children:z(yu,{})})}),z(ke,{path:`/ft`,element:z(bd,{children:z(Rc,{})})}),z(ke,{path:`/catchup`,element:z(bd,{children:z(xc,{})})}),z(ke,{path:`/yip`,element:z(bd,{children:z(S,{fallback:z(`div`,{id:`year-in-posts-page`,class:`deck-container`,tabIndex:`-1`,children:z(oe,{})}),children:z(pd,{})})})}),z(ke,{path:`/annual_report/:year`,element:z(bd,{children:z(lc,{})})}),z(ke,{path:`/:instance?/t/:hashtag`,element:z(ol,{})}),z(ke,{path:`/:instance?/a/:id`,element:z(ac,{})}),z(ke,{path:`/:instance?/p`,children:[z(ke,{index:!0,element:z(Bl,{})}),z(ke,{path:`l`,element:z(Bl,{local:!0})})]}),z(ke,{path:`/:instance?/trending`,element:z($l,{})}),z(ke,{path:`/:instance?/search`,element:z(Kl,{})})]})}if(ge(),Te(),E(z(je,{i18n:K,children:z(ue,{children:z(ve,{children:z(gd,{})})})}),document.getElementById(`app`)),setTimeout(()=>{try{localStorage.removeItem(`settings-groupedNotificationsAlpha`)}catch{}},5e3),`serviceWorker`in navigator&&typeof caches<`u`){let e=[`icons`],n=!1,r=1e4;async function i(){if(window.__IDLE__)try{let r=await caches.keys();for(let n of r){if(e.includes(n))continue;let r=await caches.open(n),i=await r.keys();if(i.length>50){let e=i.slice(50);for(let n of e)await r.delete(n)}}n=!0}catch{}setTimeout(i,n?36e5:r)}setTimeout(i,r)}if(`serviceWorker`in navigator){function e(e){if(!e)return null;let n=[];return e.title&&n.push(e.title),e.text&&n.push(e.text),e.url&&n.push(e.url),{initialText:n.join(`
+
+`),files:e.files||[]}}navigator.serviceWorker.addEventListener(`message`,n=>{let{data:r,action:i}=n.data||{};if(i===`compose-with-shared-data`){let n=e(r);n&&(window.__SHARED_DATA__=n,o.showCompose=!0)}})}window.__CLOAK__=()=>{document.body.classList.toggle(`cloak`)};export{hi as a,bo as i,Ts as n,un as o,Ka as r,Hs as t};
+//# sourceMappingURL=main-DB76LgP4.js.map
\ No newline at end of file
diff --git a/assets/main-DB76LgP4.js.map b/assets/main-DB76LgP4.js.map
new file mode 100644
index 0000000..74a6e32
--- /dev/null
+++ b/assets/main-DB76LgP4.js.map
@@ -0,0 +1 @@
+{"version":3,"mappings":"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","names":["nativeAlert","window","alert","__nativeAlert","message","toast","text","className","gravity","position","duration","offset","onClick","AuthContext","createContext","AuthProvider","children","value","_jsx","Provider","useAuth","useContext","usePageVisibility","fn","deps","savedCallback","useRef","useEffect","current","handleVisibilityChange","hidden","document","visibilityState","console","addEventListener","STREAMING_TIMEOUT","POLL_INTERVAL","memo","isLoggedIn","t","_useLingui","visible","setVisible","useState","visibleTimeout","clearTimeout","setTimeout","checkLatestNotification","masto","instance","skipCheckMarkers","states","notificationsLast","notifications","v1","list","limit","sinceId","id","values","notificationsIterator","next","length","notificationsShowNew","lastReadId","markers","fetch","timeline","sub","streamTimeout","pollNotifications","streaming","api","hasStreaming","notification","subscribe","entry","payload","clearInterval","checkForUpdates","now","e","appVersion","lastCheckDate","diff","fetchLatestPostsMemoized","pmem","currentAccountID","accounts","$select","statuses","exclude_replies","exclude_reblogs","statusesIterator","expires","ComposeButton","snapStates","useSnapshot","menuOpen","setMenuOpen","latestPosts","setLatestPosts","loadingPosts","setLoadingPosts","buttonRef","menuRef","columnMode","settings","shortcutsViewMode","handleButton","key","toLowerCase","composerState","minimized","openOSK","composeDataElements","querySelectorAll","opts","JSON","parse","undefined","shiftKey","openCompose","newWin","showCompose","useHotkeys","useKey","ignoreEventWhen","hasModal","querySelector","metaKey","ctrlKey","altKey","bindLongPress","useLongPress","threshold","fetchLatestPosts","useCallback","getCurrentAccountID","posts","handleReplyToPost","post","replyToStatus","_jsxs","_Fragment","ref","type","haptics","trigger","onContextMenu","preventDefault","class","publishing","publishingError","Icon","icon","size","alt","_t","ControlledMenu","state","anchorRef","onClose","direction","gap","unmountOnClose","portal","target","body","boundingBoxPadding","safeBoundingBoxPadding","containerProps","style","zIndex","closeMenu","submenuOpenDelay","MenuLink","to","_Trans","MenuDivider","SubMenu2","align","shift","disabled","label","map","createdDate","Date","createdAt","isWithinDay","getTime","MenuItem","statusPeek","RelativeTime","datetime","format","dateTime","toISOString","title","toLocaleString","niceDateTime","SequentialKeys","key1","key2","components","0","1","showKeyboardShortcutsHelp","ignoreModifiers","isCatchUpPage","test","hash","tabindex","action","keys","2","dec2hex","dec","toString","slice","verifier","array","Uint32Array","crypto","getRandomValues","Array","from","join","sha256","plain","data","encoder","TextEncoder","encode","subtle","digest","base64urlencode","a","str","bytes","Uint8Array","len","byteLength","i","String","fromCharCode","btoa","replace","generateCodeChallenge","v","hashed","supportsPKCE","instanceURL","res","ok","status","json","code_challenge_methods_supported","includes","__generateCodeChallenge","DEV","PHANPY_CLIENT_NAME","CLIENT_NAME","PHANPY_WEBSITE","WEBSITE","SCOPES","sameSite","location","hostname","currentLocation","origin","pathname","REDIRECT_URI","registerApplication","registrationParams","URLSearchParams","client_name","redirect_uris","scopes","website","registrationResponse","method","headers","client_id","forceLogin","codeVerifier","codeChallenge","code_challenge_method","code_challenge","redirect_uri","response_type","authorizationURL","scope","append","client_secret","code","code_verifier","grant_type","tokenJSON","tokenResponse","token","keepalive","revokeResponse","isStandalone","matchMedia","matches","Accounts","getAccounts","currentAccount","moreThanOneAccount","_","reload","useReducer","x","accountsListParent","useAutoAnimate","tabIndex","account","isCurrent","info","isDefault","isLoggedOut","accessToken","removeAccount","splice","saveAccounts","store","session","get","del","logOutAccount","revokeAccessToken","clientId","clientSecret","Avatar","url","avatarStatic","onDblClick","NameText","acct","showAcct","setCurrentAccountID","Menu2","menuButton","href","unshift","subMenu","confirmLabel","menuItemClassName","menuExtras","showImportExportAccounts","ButtonInstall","HTMLElement","connectedCallback","button","remove","navigator","install","ev","customElements","define","regionMaps","LangSelector","i18n","useLingui","populatedLocales","useMemo","LOCALES","lang","regionlessCode","native","localeCode2Text","locale","fallback","CATALOGS","find","c","nativeName","_common","name","sort","b","order","localeCompare","onChange","local","set","activateLang","common","createBackendPushSubscription","subscription","push","create","fetchBackendPushSubscription","updateBackendPushSubscription","update","removeBackendPushSubscription","isPushSupported","getRegistration","serviceWorker","getSubscription","registration","pushManager","urlBase64ToUint8Array","base64String","base64","repeat","padding","rawData","atob","outputArray","charCodeAt","initSubscription","backendSubscription","err","sameEndpoint","vapidKey","policy","DEFAULT_TEXT_SIZE","TEXT_SIZES","SMALLEST_TEXT_SIZE","LARGEST_TEXT_SIZE","PHANPY_PRIVACY_POLICY_URL","PRIVACY_POLICY_URL","PHANPY_TRANSLANG_INSTANCES","TRANSLANG_INSTANCES","PHANPY_IMG_ALT_API_URL","IMG_ALT_API_URL","PHANPY_GIPHY_API_KEY","GIPHY_API_KEY","targetLanguages","Object","entries","languages","tl","TRANSLATION_API_NAME","Settings","currentTheme","themeFormRef","targetLanguage","contentTranslationTargetLanguage","systemTargetLanguageText","getTranslateTargetLanguage","systemTargetLanguage","currentTextSize","prefs","setPrefs","getPreferences","authenticated","expTabBarV2","setExpTabBarV2","disableQuotePolicy","onInput","FormData","documentElement","theme","html","classList","$manualMeta","$autoMetas","m","toggle","defaultChecked","rel","for","newPrefs","setPreferences","supportsNativeQuote","checked","contentTranslation","showCommon","contentTranslationHideLanguages","contentTranslationAutoInline","showDrafts","display","flexWrap","alignItems","marginTop","src","logo","width","height","aspectRatio","background","borderRadius","__COMMIT_TIME__","__COMMIT_HASH__","readOnly","select","TextSizeControl","textSizeFieldRef","debouncedSize","setProperty","fontSize","min","max","setSize","caches","delete","PushNotificationsSection","setUIState","pushFormRef","allowNotifications","needRelogin","setNeedRelogin","previousPolicyRef","setAllowNotifications","elements","policyEl","el","warn","uiState","fromEntries","params","alerts","mention","favourite","follow","follow_request","followRequest","poll","alertsCount","removeSubscription","then","updateSubscription","catch","_t2","permission","isLoading","focusDeck","timer","columns","getElementById","focusedColumn","focus","firstVisibleColumn","column","getBoundingClientRect","columnRect","left","modals","modal","modalFocusElement","backDrop","pages","page","useLocationChange","useLocation","currentLocationRef","AccountHandleInfo","username","server","split","punycode","toASCII","encodedAcct","segmenter","Intl","Segmenter","GraphemeInput","isConnected","input","maxLength","getAttribute","maxLengthNum","parseInt","isNaN","removeAttribute","setAttribute","currentLength","segment","truncatedValue","segments","s","codePoints","dispatchEvent","Event","bubbles","cancelable","composed","disconnectedCallback","removeEventListener","_fieldKeyCounter","nextFieldKey","SUPPORTED_IMAGE_FORMATS_STR","SUPPORTED_IMAGE_FORMATS","FieldsAttributesRow","defaultName","defaultValue","index","nameMaxLength","valueMaxLength","onDelete","onMoveUp","onMoveDown","canMoveUp","canMoveDown","required","dir","enterKeyHint","trim","MenuConfirm","EditProfileSheet","setAccount","profile","setProfile","headerPreview","setHeaderPreview","avatarPreview","setAvatarPreview","fieldsList","setFieldsList","isUsingProfileAPI","maxDisplayNameLength","maxNoteLength","maxProfileFields","profileFieldNameLimit","profileFieldValueLimit","maxAvatarDescriptionLength","maxHeaderDescriptionLength","getCurrentInstanceConfiguration","configuration","getAPIVersions","mastodon","prof","fields","f","_key","verifyCredentials","source","log","sourceData","currentProfile","avatarDescription","avatarMediaAttachments","avatar","headerMediaAttachments","header","error","showToast","Loader","abrupt","onSubmit","formData","headerFile","avatarFile","displayName","hasAvatarNoDesc","hasHeaderNoDesc","completeFieldsAttributes","resultAccount","note","fieldsAttributes","updateParams","avatarDesc","headerDesc","revokeObjectURL","URL","accept","blob","mediaAttachments","mediaIndex","headerDescription","rows","handleDeleteHeader","handleDeleteAvatar","newList","field","ENDORSEMENTS_LIMIT","Endorsements","accountID","open","onlyOpenIfHasEndorsements","endorsementsContainer","endorsementsUIState","setEndorsementsUIState","endorsements","setEndorsements","relationshipsMap","setRelationshipsMap","supports","behavior","block","relationships","reallyOpen","showStats","avatarSize","relationship","_isSearchEnabled","results","v2","search","q","FETCH_MAX_AGE","MAX_AGE","fetchLists","lists","updatedAt","getLists","fetchList","getList","theList","addListStore","updateListStore","findIndex","deleteListStore","listID","ListExclusiveBadge","insignificant","ListAddEdit","editMode","nameFieldRef","repliesPolicyFieldRef","exclusiveFieldRef","repliesPolicy","exclusive","supportsExclusive","replies_policy","listResult","AddRemoveListsSheet","setLists","listsContainingAccount","setListsContainingAccount","reloadCount","showListAddEditModal","setShowListAddEditModal","inList","accountIds","Modal","currentTarget","PrivateNoteSheet","initialNote","onRelationshipChange","textareaRef","comment","newRelationship","TranslatedBioSheet","fieldsText","getHTMLText","whiteSpace","TranslationBlock","forceTranslate","MUTE_DURATIONS","MUTE_DURATIONS_LABELS","i18nDuration","RelatedActions","standalone","setShowEditProfile","showEndorsements","renderEndorsements","setRenderEndorsements","currentMasto","currentInstance","currentAuthenticated","sameInstance","relationshipUIState","setRelationshipUIState","setRelationship","locked","lastStatusAt","moved","following","showingReblogs","notifying","followedBy","blocking","blockedBy","muting","mutingNotifications","requested","domainBlocking","endorsed","privateNote","currentInfo","setCurrentInfo","isSelf","setIsSelf","acctWithInstance","supportsEndorsements","currentID","acctHasInstance","resolve","fetchRelationships","updateAccount","loading","showTranslatedBio","showPrivateNoteModal","searchEnabled","setSearchEnabled","isSearchEnabled","enabled","headerStatic","setShowPrivateNoteModal","overflow","draftStatus","showSearchCommand","setShowTranslatedBio","unpin","setShowAddRemoveLists","handle","clipboard","niceAccountURL","writeText","share","showQrCodeModal","arena","backgroundMask","caption","handleScannerClick","reloadGenericAccounts","menuClassName","openTrigger","confirm","counter","showReportModal","import","unfollow","showAddRemoveLists","LIMIT","ACCOUNT_INFO_MAX_AGE","fetchFamiliarFollowers","familiarFollowers","memFetchFamiliarFollowers","fetchPostingStats","fetchStatuses","stats","total","originals","replies","boosts","forEach","isValidUrl","string","showQrScannerModal","checkValidity","actionableText","AccountInfo","isString","sameCurrentInstance","setInfo","fetchAccount","headerIsAvatar","infoHasEssentials","updated","accountInstance","getDomain","headerCornerColors","setHeaderCornerColors","followersIterator","fetchFollowers","firstLoad","newValue","fetchFollowing","followingIterator","LinkOrDiv","Link","accountLink","setFamiliarFollowers","hasPostingStats","postingStats","setPostingStatsUIState","renderFamiliarFollowers","followers","renderPostingStats","memFetchPostingStats","setPostingStats","statusesCount","onProfileUpdate","newAccount","showEditProfile","skeleton","AccountBlock","stopPropagation","showAccount","onError","add","dataLength","OffscreenCanvas","createElement","canvas","getContext","willReadFrequently","ctx","imageSmoothingEnabled","drawImage","pixelDimension","colors","getImageData","g","r","rgbColors","lightenRGB","color","handleWithInstance","onScannerClick","internal","memorial","group","dangerouslySetInnerHTML","verifiedAt","EmojiText","emojis","showGenericAccounts","heading","fetchAccounts","excludeRelationshipAttrs","follower","shortenNumber","followersCount","blankCopy","followingCount","env","3","4","5","6","daysSinceLastPost","postingStatsUIState","updatedAccount","AccountSheet","propInstance","lookup","skip_webfinger","result","accountWithSameString","startsWith","accountURL","Drafts","drafts","setDrafts","db","ns","getCurrentAccountNS","ownKeys","filter","getMany","hasDrafts","draft","replyTo","updatedAtDate","quoteStatus","quote","MiniDraft","spoilerText","hasPoll","options","hasMedia","hasQuote","hasPollOrMedia","firstImageMedia","image","media","fileData","createObjectURL","EmbedModal","__html","GenericAccounts","postID","isCurrentInstance","showMore","setShowMore","staticAccounts","showReactions","setAccounts","loadRelationships","loadAccounts","done","isArray","theAccount","j","_types","prev","newAccounts","reblog","ImportAccountsSelection","importedAccounts","existingAccounts","accountsToImport","statusOrder","duplicate","new","existing","__status","selectedAccounts","setSelectedAccounts","initialSelection","handleImportSelection","showAccounts","selectedCount","Boolean","every","newSelection","shouldSelect","isSelected","ImportExportAccounts","setImportedAccounts","dragOver","setDragOver","handleExport","exportData","rest","accountsToExport","stringify","Blob","download","date","getFullYear","getMonth","padStart","getDate","getHours","getMinutes","click","processFile","file","onDragOver","onDrop","onDragLeave","handleImport","FORCE_TRANSLATE_LIMIT","MediaAltModal","setForceTranslate","differentLanguage","localeMatch","l","isShortAlt","supportsTTS","speak","textWrap","sourceLanguage","LAB_CONSTANTS","unpack","MediaModal","statusID","carouselRef","currentIndex","setCurrentIndex","carouselFocusItem","useLayoutEffect","scrollIntoView","prevStatusID","scrollLeft","clientWidth","differentStatusID","scrollTo","isRTL","showControls","setShowControls","handleSwipe","handleScroll","Math","round","abs","passive","mediaOkColors","blurhash","rgb2oklch","getBlurHashAverageColor","averageColor","mediaAccentColors","okColor","light","oklch2rgb","dark","default","mediaAccentGradients","range","start","end","lightGradient","darkGradient","toastRef","hideToast","currentColor","$meta","metaColor","mediaColor","colorScheme","content","removeProperty","backgroundAttachment","accentColor","Media","showOriginal","OpenLinkSheet","linkText","displayUrl","urlObj","protocol","handleCopy","handleShare","QrCode","arenaCircle","captionRef","captionHeight","setCaptionHeight","arenaLoaded","setArenaLoaded","arenaHasAlpha","setArenaHasAlpha","effectiveArenaCircle","offsetHeight","img","Image","crossOrigin","onload","allPixels","totalPixels","lowAlphaCount","hasAlpha","onerror","qrData","ecc","border","scale","gridSize","centerExcludeSize","centerStart","centerEnd","isFilled","y","centerX","centerY","radius","dx","distance","sqrt","isFilledInGrid","isInPositionMarker","pathData","cx","cy","hasTop","hasRight","hasBottom","markerOuterRadius","centerImagePadding","centerImageSize","centerImageX","captionSpacing","viewBoxWidth","viewBoxHeight","bleed","viewBox","xmlns","fill","stroke","rx","ry","markerInnerRadius","in","stdDeviation","slope","intercept","d","pos","centerImageY","mask","preserveAspectRatio","opacity","mediaDevicesSupported","mediaDevices","getUserMedia","QrCodeModal","hasBarcodeDetector","QRCamera","constructor","stream","player","setStream","srcObject","listDevices","enumerateDevices","Error","devices","device","kind","deviceId","setDevice","stop","video","exact","readFrame","fullSize","videoHeight","videoWidth","getSize","track","getTracks","createQRCamera","permissions","query","facingMode","QrScannerModal","containerRef","videoRef","decodedText","setDecodedText","screen","orientation","handleScreenOrientationChange","cancelMainLoop","cam","qrCanvas","detector","qrDom","BarcodeDetector","cropToSquare","overlayMainColor","overlayFinderColor","mainLoop","rawValue","requestAnimationFrame","rafLoop","setIsScanning","isScanning","startCamera","showActionableButton","playsInline","muted","disablepictureinpicture","overlayRef","CATEGORIES","CATEGORIES_INFO","spam","description","legal","violation","stampLabel","other","excludeStamp","findMatchingLanguage","rule","currentLang","translations","availableLanguages","matchedLang","normalizedLanguages","parts","part","region","charAt","toUpperCase","translateRules","rules","_translatedText","ReportModal","domain","translatedRules","currentDomain","getCurrentInstance","selectedCategory","setSelectedCategory","showRules","setShowRules","rulesRef","hasRules","setHasRules","Status","previewMode","useAvatarStatic","showActivity","category","forward","reports","accountId","statusIds","ruleIds","maxlength","switch","MAX_FETCH","fetchFollowedTags","iterator","followedTags","tags","fetchCount","fauxDiv","hashtagLinks","AsyncText","setText","Promise","TYPES","TYPE_TEXT","public","bookmarks","favourites","hashtag","trending","mentions","TYPE_PARAMS","notRequired","placeholder","pattern","SHORTCUTS_META","_i18n","path","getListTitle","excludeViewMode","subtitle","encodeURIComponent","altIcon","getCurrentAccount","fetchAccountTitle","ShortcutsSettings","shortcuts","showForm","setShowForm","showImportExport","setShowImportExport","shortcutsListParent","textTransform","imgURL","floatingButtonUrl","tabMenuBarUrl","multiColumnUrl","shortcut","excludedViewMode","shortcutsArr","temp","shortcutIndex","SHORTCUTS_LIMIT","justifyContent","ShortcutForm","mode","FORM_NOTES","currentType","setCurrentType","followedHashtags","setFollowedHashtags","formRef","form","reset","autocapitalize","spellCheck","tag","shortcutsStr","compressToEncodedURIComponent","parsedImportShortcutStr","importShortcutStr","setImportUIState","parsed","decompressFromEncodedURIComponent","hasCurrentSettings","shortcutsImportFieldRef","setImportShortcutStr","shortcutSettingsCloudImportExport","importUIState","val","menuFooter","nonUniqueShortcuts","newShortcuts","exceededLimit","newNote","settingsJSON","changes","prevValue","Modals","navigate","useNavigate","preload","ComposeSuspense","__COMPOSE__","replyMode","editStatus","sharedData","__SHARED_DATA__","newStatus","scheduledAt","reloadStatusPage","reloadScheduledPosts","reply","edit","delay","prevLocation","showSettings","destination","showOpenLink","showMediaModal","contains","showShortcutsSettings","showMediaAlt","showEmbedModal","args","exportDisabled","useGoHotkeys","callback","FollowRequestButtons","requestState","setRequestState","hasRelationship","followRequests","authorize","NOTIFICATION_ICONS","severed_relationships","moderation_warning","emoji_reaction","reaction","annual_report","quoted_update","emojiText","emoji","emojiURL","staticUrl","emojiObject","CustomEmoji","contentText","count","postsCount","postType","Subject","clickable","targetAccount","year","SEVERED_RELATIONSHIPS_TEXT","account_suspension","targetName","domain_block","user_domain_block","MODERATION_WARNING_TEXT","none","disable","mark_statuses_as_sensitive","delete_statuses","sensitive","silence","suspend","AVATARS_LIMIT","Notification","isStatic","disableContextMenu","report","event","annualReport","_ids","_accounts","_statuses","_groupKeys","sampleAccounts","notificationsCount","groupKey","_notificationsCount","_sampleAccountsCount","actualStatus","actualStatusID","isVoted","voted","isReplyToOthers","inReplyToAccountId","favsCount","reblogsCount","props","handleOpenGenericAccounts","diffCount","expandAccounts","showAvatar","emoji_url","shortcode","formattedCreatedAt","genericAccountsHeading","showRemoteAccounts","keyAccounts","allSettled","gKey","keyAccount","statusKey","debug","filtered","isOwnPost","filterInfo","isFiltered","debugHover","onMouseEnter","squircle","bot","allowContextMenu","clientY","allowFilters","TruncatedLink","useTruncated","NotificationService","routeNotification","showNotificationSheet","setShowNotificationSheet","getAccountByAccessToken","isFollow","notificationAccount","hasStatus","getSearchHistory","history","MAX_HISTORY_LENGTH","addToSearchHistory","queryType","existingIndex","item","timestamp","limitedHistory","removeFromSearchHistory","filteredHistory","clearAllSearchHistory","generateSearchItemData","hashSymbol","hashtagText","match","SearchForm","forwardRef","searchParams","setSearchParams","useSearchParams","searchMenuOpen","setSearchMenuOpen","setQuery","searchFieldRef","useImperativeHandle","setValue","blur","searchHistory","searchSuggestionsData","recentSearchItems","historyItem","matchingHistory","isRecentSearch","allItems","top","isSearchPage","autocomplete","autocorrect","onSearch","onFocus","firstItem","onBlur","onKeyDown","focusItem","nextItem","nextElementSibling","parentElement","siblings","prevItem","previousElementSibling","items","lastItem","showSearch","setShowSearch","searchFormRef","isYearInPostsPage","closeSearch","enableOnFormTags","ListsMenuContent","Shortcuts","isMultiColumnMode","shortcutsColumnsMode","tabBarRef","hasLists","formattedShortcuts","pin","timeoutId","activeTab","inline","listsMenuRef","listsLinkRef","listsMenuState","setListsMenuState","bindListsLongPress","detect","cancelOnMovement","bindProfileLongPress","extraProps","scrollTop","updatesButton","decoding","fetchPriority","viewScroll","instanceRef","onMenuChange","onTransitionStart","getComputedStyle","pointerEvents","AccountInfoMini","hideCollections","groupBoosts","newValues","boostStash","serialBoosts","boostStashID","half","floor","BOOSTS_LIMIT","dedupeBoosts","boostedStatusIDs","filteredItems","boosterID","filterHiddenStatuses","filterContext","groupContext","contextIndex","contexts","repliedItem","commonItem","context","inReplyToId","firstItemAccountID","newItems","appliedContextIndices","inReplyToIds","contextItems","it","sKey","statusReply","fallbackFetch","fetchStatus","saveStatus","ids","replyToStatuses","skipThreading","assignFollowedTags","statusFollowedTags","statusWithFollowedTags","acc","itemFollowedTags","useScroll","scrollableRef","distanceFromStart","distanceFromEnd","scrollThresholdStart","scrollThresholdEnd","distanceFromStartPx","_distanceFromStartPx","distanceFromEndPx","_distanceFromEndPx","scrollDirection","setScrollDirection","reachStart","setReachStart","reachEnd","setReachEnd","nearReachStart","setNearReachStart","nearReachEnd","setNearReachEnd","isVertical","scrollableElement","previousScrollStart","onScroll","scrollHeight","scrollWidth","clientHeight","scrollStart","scrollDimension","clientDimension","scrollDistance","init","useScrollFn","useThrottledCallback","scrollDelta","isScrollingForward","leading","queueMicrotask","resetScrollDirection","MediaPost","parent","onMediaClick","accountEmojis","repliesCount","reblogged","favourited","favouritesCount","bookmarked","visibility","language","editedAt","card","uri","_deleted","_pinned","hasSpoiler","readingExpandMedia","showSpoilerMedia","Parent","filterTitleStr","NavMenu","tabMenuHasProfile","some","showAvatarInButton","showFollowing","menuState","setMenuState","mutesIterator","fetchMutes","mutes","blocksIterator","fetchBlocks","blocks","buttonClickTS","commitHash","yes","ListMenu","hideTrendingTimeline","hideLocalTimeline","hideFederatedTimeline","supportsLists","scrollIntoViewOptions","paginationPrevSelector","paginationNextSelector","itemsSelector","useJHotkeys","handler","activeItem","activeElement","closest","activeItemRect","bottom","activeItemIndex","indexOf","nextPaginationButton","topmostItem","itemRect","useKHotkeys","findLast","prevPaginationButton","useOHotkeys","mediaLink","newURL","Timeline","titleComponent","emptyText","errorText","useItemID","boostsCarousel","fetchItems","checkForUpdatesInterval","headerStart","headerEnd","timelineStart","refresh","view","showFollowedTags","showReplyParent","clearWhenRefresh","setItems","showNew","setShowNew","__BENCHMARK","mediaFirst","isMediaFirstInstance","allowGrouping","loadItemsTS","loadItems","ts","pinnedPosts","otherPosts","cancel","jRef","kRef","showNewPostsIndicator","handleLoadNewPosts","dotRef","headerRef","scrollFnCallback","prevView","loadOrCheckUpdates","inBackground","hasUpdate","lastHiddenTime","timeDiff","useInterval","FilterContext","node","oRef","root","rootMargin","inView","marginBlockEnd","TimelineItem","fItems","isCarousel","filteredItemsIDs","bFiltered","_grouped","GROUP_SIZE","unfiltered","enableCommentHint","contentTextWeight","manyItems","_differentAuthor","isEnd","itemKey","oldProps","oldID","newID","newProps","StatusCarousel","startButtonRef","endButtonRef","setRender","scrollBy","_t3","render","InView","statusPeekText","MIN_YEAR","MIN_YEAR_MONTH","supportsInputMonth","mem","AccountStatuses","useParams","profileSearchParamsRef","forceUpdate","profileSetSearchParams","objOrFn","clearAndSetParam","paramName","paramValue","toggleParam","month","excludeReplies","excludeBoosts","tagged","accountStatusesIterator","allSearchParams","searchOffsetRef","fetchAccountStatuses","isValidMonth","_month","monthIndex","_year","afterStr","after","beforeStr","searchResults","pinnedStatuses","pinnedStatusesIds","containsAllPinned","acctDisplay","accountDisplay","monthYear","useTitle","memFetchAccount","featuredTags","setFeaturedTags","filterBarRef","repliesFiltered","buildParamStr","updates","cachedAccount","validity","valid","activeEls","barWidth","spanWidth","right","allowSwitch","MonthPicker","monthFieldRef","minYear","minMonth","maxYear","maxMonth","yearFieldRef","AnnualReport","setResults","annualReports","datePlaceholder","totals","k","showCommentCount","Bookmarks","bookmarksIterator","fetchBookmarks","FILTER_CONTEXT","CATCHUP_NS","RANGES","beyond","FILTER_KEYS","original","quotes","groups","FILTER_SORTS","FILTER_GROUPS","DTF","DateTimeFormat","day","hour","minute","quotedStatus","Catchup","dtf","showTopLinks","setShowTopLinks","supportsPixelfed","fetchHome","maxCreatedAt","allResults","homeIterable","home","homeIterator","mainloop","addedResults","createdAtTime","selfPost","_filtered","_followedTags","setPosts","catchupRangeRef","catchupLastRef","NS","handleCatchupClick","durationHuman","maxCreatedAtHuman","catchup","catchupID","startAt","endAt","reloadCatchupsCount","catchupIds","sessionStorage","catchupId","prevCatchups","catchups","ownCatchups","restCatchups","trimmedCatchups","lastCatchups","setPrevCatchups","setLastCatchupEndAt","reloadCatchups","links","__FILTER","thePost","likes","topLinks","link","shared","linksLoop","selectedFilterCategory","setSelectedFilterCategory","setRange","sortBy","setSortBy","setGroupBy","savedState","groupBy","setJSON","sortOrder","filteredPosts","authors","authorCounts","authorsHash","authorCountsMap","Map","postFilterMatches","boostedPosts","__BOOSTERS","selectedAuthor","filteredPostsMap","authorCountsList","authorIndices","authorID","__HIDDEN","aIndex","bIndex","bAccountID","prevGroup","authorsListParent","autoAnimate","autoAnimated","postsBarType","postsBar","postsBins","sortedFilteredPosts","scrollElement","lastCatchupEndAt","sortOrderIndex","groupByText","authorRect","sLeft","scrollableRect","sRight","aLeft","aRight","authorElement","showHelp","setShowHelp","hlRef","setSelectedAuthor","handleArrowKeys","isRadio","isArrowKeys","escRef","catchupUrl","step","beyondRange","untilLastCatchup","lastCatchupRange","st","pc","setSortOrder","transform","sharers","labAverageColor","publishedAt","author","paddingInline","density","showSeparator","PostLine","isReplyTo","PostPeek","IntersectionPostLineItem","show","setShow","isIntersecting","observer","unobserve","MEDIA_DENSITY","CARD_DENSITY","postDensity","pollContent","MEDIA_SIZE","isThread","theQuote","showPostContent","postText","titlesStr","mediaURL","meta","gifv","remoteMediaURL","showMedia","PostStats","quotesCount","Favourites","favouritesIterator","fetchFavourites","FILTER_CONTEXT_UNIMPLEMENTED","FILTER_CONTEXT_LABELS","thread","EXPIRY_DURATIONS","EXPIRY_DURATIONS_LABELS","Filters","showFiltersAddEditModal","setShowFiltersAddEditModal","filters","setFilters","keywords","expiresAt","wholeWord","ExpiryStatus","FiltersAddEdit","_id","incID","filterAction","hasExpiry","expiresAtDate","editKeywords","setEditKeywords","keywordsRef","setRemovedKeywordIDs","removedKeyword_IDs","filteredEditKeywords","keywordKeywords","keywordWholeWords","keywordsAttributes","keywordIDs","keyword","removedKeywordIDs","expiresIn","filterResult","setRemovedKeyword_IDs","showNeverExpires","FollowedHashtags","Following","client","streamingClient","setStreamingClient","latestItem","onStreamingReady","timelines","latestItemChanged","valueContainsLatestItem","user","getStatus","unsubscribe","BATCH_SIZE","TIMELINE_LIMIT","CACHE_AGE","getLastItem","getFirstItem","getScrollAnchor","scrollable","containerRect","itemElements","rect","dataset","statePostId","itemId","Timeline2","shouldDedupeBoosts","cacheKey","cachedData","hasCachedData","cachedUpdatedAt","cacheAge","loadStateRef","showNewer","setShowNewer","showOlder","setShowOlder","cached","itemsCount","subItem","hydrateCache","deletedStatuses","batchIds","hydratedStatuses","scrollAnchorRef","saveScrollAnchor","getItem","targetElement","maxID","loadState","max_id","min_id","originalValue","hasOlder","minIDValue","minID","prevItems","scrollAnchor","cacheScrollAnchor","checkUpdates","hasUpdates","anchor","delta","currentOffset","targetRect","Following2","MOCK_INSTANCES","getInstanceInfo","instances","getJSON","instanceInfo","timelinesAccess","freshInfo","checkTimelineAccess","feed","feedType","feeds","instanceName","mockInstance","ft","TOTAL_TAGS_LIMIT","TAGS_LIMIT_PER_MODE","Hashtags","mediaView","hashtags","linkParams","hashtagTitle","timelineAccess","setTimelineAccess","isDisabled","isPrivate","fetchHashtags","access","any","maxId","onlyMedia","since_id","followUIState","setFollowUIState","reachLimit","featuredUIState","isFeaturedTag","setIsFeaturedTag","setDownOverflow","finally","setFeaturedUIState","featuredTagID","MenuHeader","newHashtag","MenuGroup","takeOverflow","exists","newInstance","prompt","List","listIterator","setList","showManageMembersModal","ListManageMembers","MEMBERS_LIMIT","members","setMembers","membersIterator","fetchMembers","member","as","RemoveAddButton","removed","setRemoved","notificationTypeKeys","GROUP_TYPES","groupable","fixNotifications","massageNotifications2","notificationGroups","sampleAccountIds","statusId","latestPageNotificationAt","mostRecentNotificationId","notificationsMap","virtualType","sampleCountDiffNotificationsCount","newGroupNotifications1","mappedAccount","mappedNotification","notificationsMap2","toLocaleDateString","hasOneAccount","newGroupNotifications2","cleanNotifications","reverse","cleanNotifications2","emptySearchParams","Mentions","stateType","setStateType","onlyFollowings","setOnlyFollowings","mentionsIterator","filterByFollowings","fetchMentions","types","conversationsIterator","latestConversationItem","fetchConversations","lastStatus","TimelineStart","NOTIFICATIONS_LIMIT","NOTIFICATIONS_GROUPED_LIMIT","memSupportsGroupedNotifications","mastoFetchNotificationsIterable","mastoFetchNotifications","getGroupedNotifications","groupNotifications2","groupNotifications","NOTIFICATIONS_POLICIES","NOTIFICATIONS_POLICIES_TEXT","forNotFollowing","forNotFollowers","forNewAccounts","forPrivateMentions","forLimitedAccounts","Notifications","notificationID","notificationAccessToken","onlyMentions","setOnlyMentions","showMentionsLink","setShowMentionsLink","hasAnalyzedFirstLoad","setHasAnalyzedFirstLoad","hiddenUI","setFollowRequests","announcements","setAnnouncements","notificationsIterable","fetchNotifications","excludeTypes","allNotifications","groupedNotifications","notificationsLastFetchTime","supportsFilteredNotifications","showNotificationsSettings","setShowNotificationsSettings","notificationsPolicy","setNotificationsPolicy","fetchNotificationsPolicy","loadNotificationsPolicy","notificationsRequests","setNotificationsRequests","requests","analyzeNotifications","totalNotifications","totalActualNotifications","totalMentions","mentionsCountPerDay","notificationCountPerDay","n","mentionsPercentage","littleMentions","tooManyMentionsPerDay","tooManyNotificationsPerGroupNotification","notificationCountPerHour","tooManyNotificationsPerHour","hourKey","loadNotifications","fetchNotificationsPromise","fetchAnnouncements","fetchFollowRequests","loadUpdates","disableIdleCheck","autoRefresh","todayDate","dateYear","annualReportNotification","annualReportYear","setAnnualReportNotification","notificationIterator","statusLink","today","announcementsListRef","onToggle","request","NotificationRequestModalButton","showTodayEmpty","notificationDay","differentDay","currentDay","toDateString","yesterdayDate","subHeading","newPolicy","AnnouncementBlock","contact","contactAccount","startsAt","endsAt","published","publishedAtDate","reactions","fetchNotficationsByAccount","setShowModal","showModal","notifs","setNotifications","tagName","NotificationRequestButtons","hasRequestState","Public","isLocal","publicIterator","fetchPublic","remote","RecentSearches","onItemClick","handleClearAll","handleRemoveItem","listRef","SHORT_LIMIT","Search","offsetRef","statusResults","setStatusResults","accountResults","setAccountResults","hashtagResults","setHashtagResults","typeResults","setTypeResultsFunc","loadResults","filterBarParent","reduce","cur","TREND_CACHE_TIME","fetchLinks","trends","fetchTrendsStatuses","pixelfed","discover","fetchLinkList","Trending","setHashtags","setLinks","trendIterator","fetchTrends","currentLinkMentionsLoading","setCurrentLinkMentionsLoading","currentLinkMentionsIterator","currentLink","hasCurrentLink","currentLinkRef","prevCurrentLink","fetchLinkMentions","authorName","isShortTitle","rgb2oklab","oklab2rgb","imageDescription","hasAuthor","supportsTrendingLinkPosts","setCurrentLink","flexShrink","textAlign","Columns","Component","Hashtag","$column","currentFocusedColumn","prevColKey","nextColKey","Home","paginatedTimeline","NotificationsLink","notificationLinkRef","NotificationsMenu","NOTIFICATIONS_DISPLAY_LIMIT","hasFollowRequests","setHasFollowRequests","skipFollowRequests","headerHeight","statusPostRegexes","getInstanceStatusObject","theURL","regex","HttpRoute","statusObject","statusURL","Lists","hasExclusiveLists","openAuthPopup","features","popup","closed","closeAuthPopup","close","resolved","pollInterval","PHANPY_DEFAULT_INSTANCE","DEFAULT_INSTANCE","Login","instanceURLRef","cachedInstanceURL","submit","instanceText","setInstanceText","instancesList","setInstancesList","searcher","instancesListURL","Fuse","submitInstance","xmlDoc","parser","DOMParser","parseFromString","template","getElementsByTagName","host","credentialApplication","getCredentialApplication","storeCredentialApplication","authPKCE","authUrl","getAuthorizationURL","callbackUrl","cleanInstanceText","instanceTextLooksLikeDomain","instancesSuggestions","selectedInstanceText","ScheduledPosts","scheduledPosts","setScheduledPosts","showScheduledPostModal","setShowScheduledPostModal","postsIterator","scheduledStatuses","allPosts","option","votesCount","quotedStatusId","ScheduledPostEdit","ScheduledPostPreview","hours","weekday","second","setNewScheduledAt","differentScheduledAt","newScheduledAt","localTZ","getLocalTimezoneName","pastSchedule","setReplyToStatus","ScheduledAtField","setScheduledAt","EditHistoryControls","prevEditedAt","nextEditedAt","editedAtIndex","editHistoryMode","editHistoryRef","exitEditHistory","useEditHistory","SUBCOMMENTS_OPEN_ALL_LIMIT","MAX_WEIGHT","cachedRepliesToggle","cachedStatusesMap","scrollPositions","resetScrollPosition","STATUSES_SELECTOR","STATUS_URL_REGEX","StatusPage","mediaParam","mediaOnlyParam","mediaStatusID","mediaStatus","showMediaOnly","heroStatus","setHeroStatus","existingCanonical","originalHref","canonicalLink","head","appendChild","removeChild","closeLink","matchStatusPath","matchPath","postViewState","mediaClose","handleMediaClose","startViewTransition","mediaVTN","foundEls","elBounds","innerHeight","els","transition","ready","viewTransitionName","viewTransitioned","$carousel","$deckContainers","$deckContainer","linkable","restProps","createdAtSort","MONTH_IN_MS","setViewMode","translate","setStatuses","heroStatusRef","debounce","initEditHistory","scrollOffsets","lastInitContextTS","threadsCount","setThreadsCount","fullContext","ancestors","descendants","currentEditedAtStatus","currentEditedAtStatusCreatedAt","nextEditedAtStatus","nextEditedAtStatusCreatedAt","totalDescendants","missingAncestorIds","ghostStatus","missingId","referencingStatus","missingStatuses","ancestorsIsThread","nestedDescendants","__replies","heroAccountID","descendantLevelsCount","expandReplies","_replies","nextLevel","_r","weight","calcStatusWeight","level","mappedNestedDescendants","descendant","ghost","allStatuses","initContext","heroTimer","cachedStatuses","heroFetch","pRetry","contextFetch","reloadHero","descendantsThread","offsetTop","heroLimit","showRefresh","setShowRefresh","interval","scrollPosition","newScrollOffsets","newScrollTop","contextURL","apiCache","statusWeightCache","heroDisplayName","div","postInstance","postSameInstance","setLimit","hasDescendants","heroPointer","heroInView","activeStatus","activeStatusRect","allStatusLinks","activeStatusIndex","nextStatus","topmostStatusLink","statusLinkRect","prevStatus","details","handleMediaClick","handleStatusLinkClick","renderStatus","ancestor","isHero","isLinkable","withinContext","enableTranslate","setReachTopPost","onStatusLinkClick","showActionsBar","accWeight","openAll","lazyRenderReplies","parentLink","prevLocationIsStatusPage","navigation","prevEntry","allStatusesKeys","getIDs","months","statusesList","slicedStatuses","currentDate","isFinite","prevDate","monthsDiff","formatTimeGap","spoilerButton","ThreadCountContext","onAnimationEnd","initialPageState","viewMode","full","toUnicode","hasParentThread","totalComments","sameCount","totalWeight","shortReply","openBefore","detailsRef","isOpen","setIsOpen","shouldRenderReplies","setRenderReplies","isDetails","renderReplies","StatusRoute","PHANPY_DEFAULT_INSTANCE_REGISTRATION_URL","DEFAULT_INSTANCE_REGISTRATION_URL","appSite","Welcome","logoText","srcSet","homeMobileDark","homeMobileLight","homeTabletDark","homeTabletLight","boostsCarouselUrl","nestedCommentsThreadUrl","multiHashtagTimelineUrl","unstable_enableOp","MockHome","lazy","YearInPosts","__STATES__","__STATES_STATS__","counts","mountedKeys","$post","statePostIds","setInterval","__IDLE__","unfurledLinks","keysCount","Set","postInNotifications","statusQuotes","unfurled","ICONS","setIdle","onNonIdle","debouncedSetIdle","nonIdleEvents","capture","showingMediaModal","textSize","$app","BENCHES","PATH_RESTORE_TIME_LIMIT","setIsLoggedIn","isPopup","opener","postMessage","replaceState","clientID","initClient","initPreferences","initInstance","initAccount","initStates","__IGNORE_GET_ACCOUNT_ERROR__","redirectPath","searchAccount","decodeURIComponent","hasPreferences","sessionCookie","lastPathKey","restoredRef","isPWA","lastPath","timeSinceLastAccess","active","PrimaryRoutes","SecondaryRoutes","Routes","Route","NavigationCommand","KeyboardShortcutsHelp","isRootPath","nonRootLocation","element","Suspense","QrScanTest","Navigate","getPrevLocation","isModalPage","backgroundLocation","AuthRoute","initActivateLang","initPWAViewport","I18nProvider","HashRouter","IconSpriteProvider","App","localStorage","removeItem","IGNORE_CACHE_KEYS","clearRanOnce","FAST_INTERVAL","clearCaches","cache","_keys","MAX_SW_CACHE_SIZE","deleteKeys","deleteKey","processShareData","textParts","initialText"],"ignoreList":[0,1,8,9,40,41,42,43,44,45,46,47,48,49,50,51,52,53,56,61],"sources":["../../node_modules/swiped-events/src/swiped-events.js","../../node_modules/just-debounce-it/index.mjs","../../src/utils/toast-alert.js","../../src/utils/auth-context.jsx","../../src/utils/usePageVisibility.js","../../src/components/background-service.jsx","../../src/components/compose-button.jsx","../../src/components/keyboard-shortcuts-help.jsx","../../node_modules/@formkit/auto-animate/index.mjs","../../node_modules/@formkit/auto-animate/preact/index.mjs","../../src/utils/oauth-pkce.js","../../src/utils/auth.js","../../src/pages/accounts.jsx","../../src/components/button-install.js","../../src/assets/logo.svg","../../src/components/lang-selector.jsx","../../src/utils/push-notifications.js","../../src/pages/settings.jsx","../../src/utils/focus-deck.js","../../src/utils/useLocationChange.js","../../src/components/account-handle-info.jsx","../../src/components/grapheme-input.js","../../src/components/edit-profile-sheet.jsx","../../src/components/endorsements.jsx","../../src/utils/is-search-enabled.js","../../src/utils/lists.js","../../src/components/list-exclusive-badge.jsx","../../src/components/list-add-edit.jsx","../../src/components/add-remove-lists-sheet.jsx","../../src/components/private-note-sheet.jsx","../../src/components/translated-bio-sheet.jsx","../../src/components/related-actions.jsx","../../src/components/account-info.jsx","../../src/components/account-sheet.jsx","../../src/components/drafts.jsx","../../src/components/embed-modal.jsx","../../src/components/generic-accounts.jsx","../../src/components/import-accounts-selection.jsx","../../src/components/import-export-accounts.jsx","../../src/components/media-alt-modal.jsx","../../node_modules/chroma-js/src/utils/limit.js","../../node_modules/chroma-js/src/utils/type.js","../../node_modules/chroma-js/src/utils/unpack.js","../../node_modules/chroma-js/src/utils/index.js","../../node_modules/chroma-js/src/utils/multiply-matrices.js","../../node_modules/chroma-js/src/io/lab/lab-constants.js","../../node_modules/chroma-js/src/io/lab/lab2rgb.js","../../node_modules/chroma-js/src/io/oklab/oklab2rgb.js","../../node_modules/chroma-js/src/io/lab/rgb2lab.js","../../node_modules/chroma-js/src/io/oklab/rgb2oklab.js","../../node_modules/chroma-js/src/io/lch/lch2lab.js","../../node_modules/chroma-js/src/io/oklch/oklch2rgb.js","../../node_modules/chroma-js/src/io/lch/lab2lch.js","../../node_modules/chroma-js/src/io/oklch/rgb2oklch.js","../../src/components/media-modal.jsx","../../src/components/open-link-sheet.jsx","../../node_modules/qr/index.js","../../src/components/qr-code.jsx","../../src/components/qr-code-modal.jsx","../../src/components/qr-scanner-modal.jsx","../../src/components/report-modal.jsx","../../node_modules/lz-string/libs/lz-string.js","../../src/assets/floating-button.svg","../../src/assets/multi-column.svg","../../src/assets/tab-menu-bar.svg","../../src/utils/followed-tags.js","../../src/components/AsyncText.jsx","../../src/components/shortcuts-settings.jsx","../../src/components/modals.jsx","../../src/components/navigation-command.jsx","../../src/components/follow-request-buttons.jsx","../../src/components/notification.jsx","../../src/components/notification-service.jsx","../../src/utils/search-history.js","../../src/components/search-form.jsx","../../src/components/search-command.jsx","../../src/components/shortcuts.jsx","../../src/components/account-info-mini.jsx","../../src/utils/timeline-utils.js","../../src/utils/useScroll.js","../../src/utils/useScrollFn.js","../../src/components/media-post.jsx","../../src/components/nav-menu.jsx","../../src/components/timeline.jsx","../../src/pages/account-statuses.jsx","../../src/pages/annual-report.jsx","../../src/pages/bookmarks.jsx","../../src/assets/features/catch-up.png","../../src/pages/catchup.jsx","../../src/pages/favourites.jsx","../../src/pages/filters.jsx","../../src/pages/followed-hashtags.jsx","../../src/pages/following.jsx","../../src/components/timeline2.jsx","../../src/pages/following2.jsx","../../src/utils/timeline-access.js","../../src/pages/hashtag.jsx","../../src/pages/list.jsx","../../src/utils/group-notifications.js","../../src/pages/mentions.jsx","../../src/pages/notifications.jsx","../../src/pages/public.jsx","../../src/components/recent-searches.jsx","../../src/pages/search.jsx","../../src/pages/trending.jsx","../../src/components/columns.jsx","../../src/pages/home.jsx","../../src/utils/get-instance-status-url.js","../../src/pages/http-route.jsx","../../src/pages/lists.jsx","../../src/data/instances.json?url","../../src/utils/auth-popup.js","../../src/pages/login.jsx","../../src/pages/scheduled-posts.jsx","../../src/components/edit-history-controls.jsx","../../src/pages/status.jsx","../../src/pages/status-route.jsx","../../src/assets/features/boosts-carousel.jpg","../../src/assets/features/multi-column.jpg","../../src/assets/features/multi-hashtag-timeline.jpg","../../src/assets/features/nested-comments-thread.jpg","../../src/assets/logo-text-2.svg","../../src/assets/screenshots/home-mobile-dark@2x.png","../../src/assets/screenshots/home-mobile-light@2x.png","../../src/assets/screenshots/home-tablet-dark@2x.png","../../src/assets/screenshots/home-tablet-light@2x.png","../../src/pages/welcome.jsx","../../src/app.jsx","../../src/main.jsx"],"sourcesContent":["/*!\n * swiped-events.js - v@version@\n * Pure JavaScript swipe events\n * https://github.com/john-doherty/swiped-events\n * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element\n * @author John Doherty \n * @license MIT\n */\n(function (window, document) {\n\n 'use strict';\n\n // patch CustomEvent to allow constructor creation (IE/Chrome)\n if (typeof window.CustomEvent !== 'function') {\n\n window.CustomEvent = function (event, params) {\n\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n window.CustomEvent.prototype = window.Event.prototype;\n }\n\n document.addEventListener('touchstart', handleTouchStart, false);\n document.addEventListener('touchmove', handleTouchMove, false);\n document.addEventListener('touchend', handleTouchEnd, false);\n\n var xDown = null;\n var yDown = null;\n var xDiff = null;\n var yDiff = null;\n var timeDown = null;\n var startEl = null;\n var touchCount = 0;\n\n /**\n * Fires swiped event if swipe detected on touchend\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchEnd(e) {\n\n // if the user released on a different target, cancel!\n if (startEl !== e.target) return;\n\n var swipeThreshold = parseInt(getNearestAttribute(startEl, 'data-swipe-threshold', '20'), 10); // default 20 units\n var swipeUnit = getNearestAttribute(startEl, 'data-swipe-unit', 'px'); // default px\n var swipeTimeout = parseInt(getNearestAttribute(startEl, 'data-swipe-timeout', '500'), 10); // default 500ms\n var timeDiff = Date.now() - timeDown;\n var eventType = '';\n var changedTouches = e.changedTouches || e.touches || [];\n\n if (swipeUnit === 'vh') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientHeight); // get percentage of viewport height in pixels\n }\n if (swipeUnit === 'vw') {\n swipeThreshold = Math.round((swipeThreshold / 100) * document.documentElement.clientWidth); // get percentage of viewport height in pixels\n }\n\n if (Math.abs(xDiff) > Math.abs(yDiff)) { // most significant\n if (Math.abs(xDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (xDiff > 0) {\n eventType = 'swiped-left';\n }\n else {\n eventType = 'swiped-right';\n }\n }\n }\n else if (Math.abs(yDiff) > swipeThreshold && timeDiff < swipeTimeout) {\n if (yDiff > 0) {\n eventType = 'swiped-up';\n }\n else {\n eventType = 'swiped-down';\n }\n }\n\n if (eventType !== '') {\n\n var eventData = {\n dir: eventType.replace(/swiped-/, ''),\n touchType: (changedTouches[0] || {}).touchType || 'direct',\n fingers: touchCount, // Number of fingers used\n xStart: parseInt(xDown, 10),\n xEnd: parseInt((changedTouches[0] || {}).clientX || -1, 10),\n yStart: parseInt(yDown, 10),\n yEnd: parseInt((changedTouches[0] || {}).clientY || -1, 10)\n };\n\n // fire `swiped` event event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent('swiped', { bubbles: true, cancelable: true, detail: eventData }));\n\n // fire `swiped-dir` event on the element that started the swipe\n startEl.dispatchEvent(new CustomEvent(eventType, { bubbles: true, cancelable: true, detail: eventData }));\n }\n\n // reset values\n xDown = null;\n yDown = null;\n timeDown = null;\n }\n /**\n * Records current location on touchstart event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchStart(e) {\n\n // if the element has data-swipe-ignore=\"true\" we stop listening for swipe events\n if (e.target.getAttribute('data-swipe-ignore') === 'true') return;\n\n startEl = e.target;\n\n timeDown = Date.now();\n xDown = e.touches[0].clientX;\n yDown = e.touches[0].clientY;\n xDiff = 0;\n yDiff = 0;\n touchCount = e.touches.length;\n }\n\n /**\n * Records location diff in px on touchmove event\n * @param {object} e - browser event object\n * @returns {void}\n */\n function handleTouchMove(e) {\n\n if (!xDown || !yDown) return;\n\n var xUp = e.touches[0].clientX;\n var yUp = e.touches[0].clientY;\n\n xDiff = xDown - xUp;\n yDiff = yDown - yUp;\n }\n\n /**\n * Gets attribute off HTML element or nearest parent\n * @param {object} el - HTML element to retrieve attribute from\n * @param {string} attributeName - name of the attribute\n * @param {any} defaultValue - default value to return if no match found\n * @returns {any} attribute value or defaultValue\n */\n function getNearestAttribute(el, attributeName, defaultValue) {\n\n // walk up the dom tree looking for attributeName\n while (el && el !== document.documentElement) {\n\n var attributeValue = el.getAttribute(attributeName);\n\n if (attributeValue) {\n return attributeValue;\n }\n\n el = el.parentNode;\n }\n\n return defaultValue;\n }\n\n}(window, document));\n","var functionDebounce = debounce;\n\nfunction debounce(fn, wait, callFirst) {\n var timeout = null;\n var debouncedFn = null;\n\n var clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n\n debouncedFn = null;\n timeout = null;\n }\n };\n\n var flush = function() {\n var call = debouncedFn;\n clear();\n\n if (call) {\n call();\n }\n };\n\n var debounceWrapper = function() {\n if (!wait) {\n return fn.apply(this, arguments);\n }\n\n var context = this;\n var args = arguments;\n var callNow = callFirst && !timeout;\n clear();\n\n debouncedFn = function() {\n fn.apply(context, args);\n };\n\n timeout = setTimeout(function() {\n timeout = null;\n\n if (!callNow) {\n var call = debouncedFn;\n debouncedFn = null;\n\n return call();\n }\n }, wait);\n\n if (callNow) {\n return debouncedFn();\n }\n };\n\n debounceWrapper.cancel = clear;\n debounceWrapper.flush = flush;\n\n return debounceWrapper;\n}\n\nexport {functionDebounce as default};\n","// Replace alert() with toastify-js\nimport Toastify from 'toastify-js';\n\nconst nativeAlert = window.alert;\nif (!window.__nativeAlert) window.__nativeAlert = nativeAlert;\n\nwindow.alert = function (message) {\n console.debug(\n 'ALERT: This is a custom alert() function. Native alert() is still available as window.__nativeAlert()',\n );\n // If Error object, show the message\n if (message instanceof Error && message?.message) {\n message = message.message;\n }\n // If not string, stringify it\n if (typeof message !== 'string') {\n message = JSON.stringify(message);\n }\n\n const toast = Toastify({\n text: message,\n className: 'alert',\n gravity: 'top',\n position: 'center',\n duration: 10_000,\n offset: {\n y: 48,\n },\n onClick: () => {\n toast.hideToast();\n },\n });\n toast.showToast();\n};\n","import { createContext } from 'preact/compat';\nimport { useContext } from 'preact/hooks';\n\nconst AuthContext = createContext(false);\n\nexport function AuthProvider({ children, value }) {\n return {children};\n}\n\nexport function useAuth() {\n return useContext(AuthContext);\n}\n","import { useEffect, useRef } from 'preact/hooks';\n\nexport default function usePageVisibility(fn = () => {}, deps = []) {\n const savedCallback = useRef(fn);\n useEffect(() => {\n savedCallback.current = fn;\n }, [deps]);\n\n useEffect(() => {\n const handleVisibilityChange = () => {\n const hidden = document.hidden || document.visibilityState === 'hidden';\n console.log('👀 Page visibility changed', hidden ? 'hidden' : 'visible');\n savedCallback.current(!hidden);\n };\n\n document.addEventListener('visibilitychange', handleVisibilityChange);\n return () =>\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n }, []);\n}\n","import { useLingui } from '@lingui/react/macro';\nimport { memo } from 'preact/compat';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { useHotkeys } from 'react-hotkeys-hook';\n\nimport { api } from '../utils/api';\nimport { useAuth } from '../utils/auth-context';\nimport showToast from '../utils/show-toast';\nimport states, { saveStatus } from '../utils/states';\nimport useInterval from '../utils/useInterval';\nimport usePageVisibility from '../utils/usePageVisibility';\n\nconst STREAMING_TIMEOUT = 1000 * 3; // 3 seconds\nconst POLL_INTERVAL = 20_000; // 20 seconds\n\nexport default memo(function BackgroundService() {\n const isLoggedIn = useAuth();\n const { t } = useLingui();\n\n // Notifications service\n // - WebSocket to receive notifications when page is visible\n const [visible, setVisible] = useState(true);\n const visibleTimeout = useRef();\n usePageVisibility((visible) => {\n clearTimeout(visibleTimeout.current);\n if (visible) {\n setVisible(true);\n } else {\n visibleTimeout.current = setTimeout(() => {\n setVisible(false);\n }, POLL_INTERVAL);\n }\n });\n\n const checkLatestNotification = async (masto, instance, skipCheckMarkers) => {\n if (states.notificationsLast) {\n const notificationsIterator = masto.v1.notifications\n .list({\n limit: 1,\n sinceId: states.notificationsLast.id,\n })\n .values();\n const { value: notifications } = await notificationsIterator.next();\n if (notifications?.length) {\n if (skipCheckMarkers) {\n states.notificationsShowNew = true;\n } else {\n let lastReadId;\n try {\n const markers = await masto.v1.markers.fetch({\n timeline: 'notifications',\n });\n lastReadId = markers?.notifications?.lastReadId;\n } catch (e) {}\n if (lastReadId) {\n states.notificationsShowNew = notifications[0].id !== lastReadId;\n } else {\n states.notificationsShowNew = true;\n }\n }\n }\n }\n };\n\n useEffect(() => {\n let sub;\n let streamTimeout;\n let pollNotifications;\n if (isLoggedIn && visible) {\n const { masto, streaming, instance } = api();\n (async () => {\n // 1. Get the latest notification\n await checkLatestNotification(masto, instance);\n\n let hasStreaming = false;\n // 2. Start streaming\n if (streaming) {\n streamTimeout = setTimeout(() => {\n (async () => {\n try {\n hasStreaming = true;\n sub = streaming.user.notification.subscribe();\n console.log('🎏 Streaming notification', sub);\n for await (const entry of sub) {\n if (!sub) break;\n if (!visible) break;\n console.log('🔔🔔 Notification entry', entry);\n if (entry.event === 'notification') {\n console.log('🔔🔔 Notification', entry);\n saveStatus(entry.payload, instance, {\n skipThreading: true,\n });\n }\n states.notificationsShowNew = true;\n }\n console.log('💥 Streaming notification loop STOPPED');\n } catch (e) {\n hasStreaming = false;\n console.error(e);\n }\n\n if (!hasStreaming) {\n console.log('🎏 Streaming failed, fallback to polling');\n pollNotifications = setInterval(() => {\n checkLatestNotification(masto, instance, true);\n }, POLL_INTERVAL);\n }\n })();\n }, STREAMING_TIMEOUT);\n }\n })();\n }\n return () => {\n sub?.unsubscribe?.();\n sub = null;\n clearTimeout(streamTimeout);\n clearInterval(pollNotifications);\n };\n }, [visible, isLoggedIn]);\n\n // Check for updates service\n const lastCheckDate = useRef();\n const checkForUpdates = () => {\n lastCheckDate.current = Date.now();\n console.log('✨ Check app update');\n fetch('./version.json')\n .then((r) => r.json())\n .then((info) => {\n if (info) states.appVersion = info;\n })\n .catch((e) => {\n console.error(e);\n });\n };\n useInterval(checkForUpdates, visible && 1000 * 60 * 30); // 30 minutes\n usePageVisibility((visible) => {\n if (visible) {\n if (!lastCheckDate.current) {\n checkForUpdates();\n } else {\n const diff = Date.now() - lastCheckDate.current;\n if (diff > 1000 * 60 * 60) {\n // 1 hour\n checkForUpdates();\n }\n }\n }\n });\n\n // Global keyboard shortcuts \"service\"\n useHotkeys(\n 'shift+alt+k',\n (e) => {\n // Need modifers check due to useKey: true\n if (!e.shiftKey || !e.altKey) return;\n\n const currentCloakMode = states.settings.cloakMode;\n states.settings.cloakMode = !currentCloakMode;\n showToast({\n text: currentCloakMode ? t`Cloak mode disabled` : t`Cloak mode enabled`,\n });\n },\n {\n ignoreEventWhen: (e) => e.metaKey || e.ctrlKey,\n },\n );\n\n return null;\n});\n","import { Trans, useLingui } from '@lingui/react/macro';\nimport { ControlledMenu, MenuDivider, MenuItem } from '@szhsin/react-menu';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport { useHotkeys } from 'react-hotkeys-hook';\nimport { useLongPress } from 'use-long-press';\nimport { useSnapshot } from 'valtio';\n\nimport { api } from '../utils/api';\nimport haptics from '../utils/haptics';\nimport niceDateTime from '../utils/nice-date-time';\nimport openCompose from '../utils/open-compose';\nimport openOSK from '../utils/open-osk';\nimport pmem from '../utils/pmem';\nimport safeBoundingBoxPadding from '../utils/safe-bounding-box-padding';\nimport showCompose from '../utils/show-compose';\nimport states from '../utils/states';\nimport statusPeek from '../utils/status-peek';\nimport { getCurrentAccountID } from '../utils/store-utils';\n\nimport Icon from './icon';\nimport Loader from './loader';\nimport MenuLink from './menu-link';\nimport RelativeTime from './relative-time';\nimport SubMenu2 from './submenu2';\n\n// Function to fetch the latest posts from the current user\n// Use pmem to memoize fetch results for 1 minute\nconst fetchLatestPostsMemoized = pmem(\n async (masto, currentAccountID) => {\n const statusesIterator = masto.v1.accounts\n .$select(currentAccountID)\n .statuses.list({\n limit: 3,\n exclude_replies: true,\n exclude_reblogs: true,\n })\n .values();\n const { value } = await statusesIterator.next();\n return value || [];\n },\n { expires: 60000 },\n); // 1 minute cache\n\nexport default function ComposeButton() {\n const { t } = useLingui();\n const snapStates = useSnapshot(states);\n const { masto } = api();\n\n // Context menu state\n const [menuOpen, setMenuOpen] = useState(false);\n const [latestPosts, setLatestPosts] = useState([]);\n const [loadingPosts, setLoadingPosts] = useState(false);\n const buttonRef = useRef(null);\n const menuRef = useRef(null);\n\n const columnMode = snapStates.settings.shortcutsViewMode === 'multi-column';\n\n function handleButton(e) {\n // useKey will even listen to Shift\n // e.g. press Shift (without c) will trigger this 😱\n if (e.key && e.key.toLowerCase() !== 'c') return;\n\n if (snapStates.composerState.minimized) {\n states.composerState.minimized = false;\n openOSK();\n return;\n }\n\n const composeDataElements = document.querySelectorAll('data.compose-data');\n // If there's a lot of them, ignore\n const opts =\n !columnMode && composeDataElements.length === 1\n ? JSON.parse(composeDataElements[0].value)\n : undefined;\n\n if (e.shiftKey) {\n const newWin = openCompose(opts);\n\n if (!newWin) {\n states.showCompose = opts || true;\n }\n } else {\n openOSK();\n states.showCompose = opts || true;\n }\n }\n\n useHotkeys('c, shift+c', handleButton, {\n useKey: true,\n ignoreEventWhen: (e) => {\n const hasModal = !!document.querySelector('#modal-container > *');\n return hasModal || e.metaKey || e.ctrlKey || e.altKey;\n },\n });\n\n // Setup longpress handler to open context menu\n const bindLongPress = useLongPress(\n () => {\n setMenuOpen(true);\n },\n {\n threshold: 600,\n },\n );\n\n const fetchLatestPosts = useCallback(async () => {\n try {\n setLoadingPosts(true);\n const currentAccountID = getCurrentAccountID();\n if (!currentAccountID) {\n return;\n }\n const posts = await fetchLatestPostsMemoized(masto, currentAccountID);\n setLatestPosts(posts);\n } catch (error) {\n } finally {\n setLoadingPosts(false);\n }\n }, [masto]);\n\n // Function to handle opening the compose window to reply to a post\n const handleReplyToPost = useCallback((post) => {\n showCompose({\n replyToStatus: post,\n });\n setMenuOpen(false);\n }, []);\n\n useEffect(() => {\n if (menuOpen) {\n fetchLatestPosts();\n }\n }, [fetchLatestPosts, menuOpen]);\n\n return (\n <>\n \n setMenuOpen(false)}\n direction=\"top\"\n gap={8} // Add gap between menu and button\n unmountOnClose\n portal={{\n target: document.body,\n }}\n boundingBoxPadding={safeBoundingBoxPadding()}\n containerProps={{\n style: {\n zIndex: 19,\n },\n onClick: () => {\n menuRef.current?.closeMenu?.();\n },\n }}\n submenuOpenDelay={600}\n >\n \n {' '}\n \n Scheduled Posts\n \n \n \n \n {' '}\n \n Add to thread\n \n {loadingPosts ? '…' : }\n >\n }\n >\n {latestPosts.length > 0 &&\n latestPosts.map((post) => {\n const createdDate = new Date(post.createdAt);\n const isWithinDay = Date.now() - createdDate.getTime() < 86400000;\n\n return (\n \n );\n })}\n \n \n >\n );\n}\n","import './keyboard-shortcuts-help.css';\n\nimport { Trans, useLingui } from '@lingui/react/macro';\nimport { memo } from 'preact/compat';\nimport { useHotkeys } from 'react-hotkeys-hook';\nimport { useSnapshot } from 'valtio';\n\nimport states from '../utils/states';\n\nimport Icon from './icon';\nimport Modal from './modal';\n\n// Helper component for sequential key shortcuts\nfunction SequentialKeys({ key1, key2 }) {\n return (\n \n {key1} then {key2}\n \n );\n}\n\nexport default memo(function KeyboardShortcutsHelp() {\n const { t } = useLingui();\n const snapStates = useSnapshot(states);\n\n function onClose() {\n states.showKeyboardShortcutsHelp = false;\n }\n\n useHotkeys(\n '?',\n () => {\n console.log('help');\n states.showKeyboardShortcutsHelp = true;\n },\n {\n useKey: true,\n ignoreModifiers: true,\n ignoreEventWhen: (e) => {\n const isCatchUpPage = /\\/catchup/i.test(location.hash);\n return isCatchUpPage || e.metaKey || e.ctrlKey || e.altKey;\n // const hasModal = !!document.querySelector('#modal-container > *');\n // return hasModal;\n },\n },\n );\n\n return (\n !!snapStates.showKeyboardShortcutsHelp && (\n \n \n
\n
\n \n Keyboard shortcuts\n
\n \n
\n \n \n {[\n {\n action: t`Keyboard shortcuts help`,\n keys: ?,\n },\n {\n action: t`Next post`,\n keys: j,\n },\n {\n action: t`Previous post`,\n keys: k,\n },\n {\n action: t`Skip carousel to next post`,\n keys: (\n \n Shift + j\n \n ),\n },\n {\n action: t`Skip carousel to previous post`,\n keys: (\n \n Shift + k\n \n ),\n },\n {\n action: t`Load new posts`,\n keys: .,\n },\n {\n action: t`Open post details`,\n keys: Enter,\n },\n {\n action: t`Open media or post details`,\n keys: o,\n },\n {\n action: (\n \n Expand content warning or\n
\n toggle expanded/collapsed thread\n \n ),\n keys: x,\n },\n {\n action: t`Close post or dialogs`,\n keys: (\n \n Esc or Backspace\n \n ),\n },\n {\n action: t`Focus column in multi-column mode`,\n keys: (\n \n 1 to 9\n \n ),\n },\n {\n action: t`Focus next column in multi-column mode`,\n keys: ],\n },\n {\n action: t`Focus previous column in multi-column mode`,\n keys: [,\n },\n {\n action: t`Compose new post`,\n keys: c,\n },\n {\n action: t`Compose new post (new window)`,\n className: 'insignificant',\n keys: (\n \n Shift + c\n \n ),\n },\n {\n action: t`Send post`,\n keys: (\n \n Ctrl + Enter or ⌘ +{' '}\n Enter\n \n ),\n },\n {\n action: t`Search`,\n keys: /,\n },\n {\n action: t`Reply`,\n keys: r,\n },\n {\n action: t`Reply (new window)`,\n className: 'insignificant',\n keys: (\n \n Shift + r\n \n ),\n },\n {\n action: t`Like (favourite)`,\n keys: (\n \n l or f\n \n ),\n },\n {\n action: t`Boost`,\n keys: (\n \n Shift + b\n \n ),\n },\n {\n action: t`Quote`,\n keys: q,\n },\n {\n action: t`Bookmark`,\n keys: d,\n },\n {\n action: t`Toggle Cloak mode`,\n keys: (\n \n Shift + Alt + k\n \n ),\n },\n {\n action: t`Go to Home`,\n keys: ,\n },\n {\n action: t`Go to Notifications`,\n keys: ,\n },\n {\n action: t`Go to Settings`,\n keys: ,\n },\n {\n action: t`Go to Profile`,\n keys: ,\n },\n {\n action: t`Go to Bookmarks`,\n keys: ,\n },\n ].map(({ action, className, keys }) => (\n \n | {action} | \n {keys} | \n
\n ))}\n \n
\n \n
\n \n )\n );\n});\n","/**\n * A set of all the parents currently being observe. This is the only non weak\n * registry.\n */\nconst parents = new Set();\n/**\n * Element coordinates that is constantly kept up to date.\n */\nconst coords = new WeakMap();\n/**\n * Siblings of elements that have been removed from the dom.\n */\nconst siblings = new WeakMap();\n/**\n * Animations that are currently running.\n */\nconst animations = new WeakMap();\n/**\n * A map of existing intersection observers used to track element movements.\n */\nconst intersections = new WeakMap();\n/**\n * A map of existing mutation observers used to track element movements.\n */\nconst mutationObservers = new WeakMap();\n/**\n * Intervals for automatically checking the position of elements occasionally.\n */\nconst intervals = new WeakMap();\n/**\n * The configuration options for each group of elements.\n */\nconst options = new WeakMap();\n/**\n * Debounce counters by id, used to debounce calls to update positions.\n */\nconst debounces = new WeakMap();\n/**\n * All parents that are currently enabled are tracked here.\n */\nconst enabled = new WeakSet();\n/**\n * The document used to calculate transitions.\n */\nlet root;\n/**\n * The root’s XY scroll positions.\n */\nlet scrollX = 0;\nlet scrollY = 0;\n/**\n * Used to sign an element as the target.\n */\nconst TGT = \"__aa_tgt\";\n/**\n * Used to sign an element as being part of a removal.\n */\nconst DEL = \"__aa_del\";\n/**\n * Used to sign an element as being \"new\". When an element is removed from the\n * dom, but may cycle back in we can sign it with new to ensure the next time\n * it is recognized we consider it new.\n */\nconst NEW = \"__aa_new\";\n/**\n * Callback for handling all mutations.\n * @param mutations - A mutation list\n */\nconst handleMutations = (mutations) => {\n const elements = getElements(mutations);\n // If elements is \"false\" that means this mutation that should be ignored.\n if (elements) {\n elements.forEach((el) => animate(el));\n }\n};\n/**\n *\n * @param entries - Elements that have been resized.\n */\nconst handleResizes = (entries) => {\n entries.forEach((entry) => {\n if (entry.target === root)\n updateAllPos();\n if (coords.has(entry.target))\n updatePos(entry.target);\n });\n};\n/**\n * Determine if an element is fully outside of the current viewport.\n * @param el - Element to test\n */\nfunction isOffscreen(el) {\n const rect = el.getBoundingClientRect();\n const vw = (root === null || root === void 0 ? void 0 : root.clientWidth) || 0;\n const vh = (root === null || root === void 0 ? void 0 : root.clientHeight) || 0;\n return rect.bottom < 0 || rect.top > vh || rect.right < 0 || rect.left > vw;\n}\n/**\n * Observe this elements position.\n * @param el - The element to observe the position of.\n */\nfunction observePosition(el) {\n const oldObserver = intersections.get(el);\n oldObserver === null || oldObserver === void 0 ? void 0 : oldObserver.disconnect();\n let rect = coords.get(el);\n let invocations = 0;\n const buffer = 5;\n if (!rect) {\n rect = getCoords(el);\n coords.set(el, rect);\n }\n const { offsetWidth, offsetHeight } = root;\n const rootMargins = [\n rect.top - buffer,\n offsetWidth - (rect.left + buffer + rect.width),\n offsetHeight - (rect.top + buffer + rect.height),\n rect.left - buffer,\n ];\n const rootMargin = rootMargins\n .map((px) => `${ -1 * Math.floor(px)}px`)\n .join(\" \");\n const observer = new IntersectionObserver(() => {\n ++invocations > 1 && updatePos(el);\n }, {\n root,\n threshold: 1,\n rootMargin,\n });\n observer.observe(el);\n intersections.set(el, observer);\n}\n/**\n * Update the exact position of a given element.\n * @param el - An element to update the position of.\n * @param debounce - Whether or not to debounce the update. After an animation is finished, it should update as soon as possible to prevent flickering on quick toggles.\n */\nfunction updatePos(el, debounce = true) {\n clearTimeout(debounces.get(el));\n const optionsOrPlugin = getOptions(el);\n const delay = debounce\n ? isPlugin(optionsOrPlugin)\n ? 500\n : optionsOrPlugin.duration\n : 0;\n debounces.set(el, setTimeout(async () => {\n const currentAnimation = animations.get(el);\n try {\n await (currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.finished);\n coords.set(el, getCoords(el));\n observePosition(el);\n }\n catch {\n // ignore errors as the `.finished` promise is rejected when animations were cancelled\n }\n }, delay));\n}\n/**\n * Updates all positions that are currently being tracked.\n */\nfunction updateAllPos() {\n clearTimeout(debounces.get(root));\n debounces.set(root, setTimeout(() => {\n parents.forEach((parent) => forEach(parent, (el) => lowPriority(() => updatePos(el))));\n }, 100));\n}\n/**\n * Its possible for a quick scroll or other fast events to get past the\n * intersection observer, so occasionally we need want \"cold-poll\" for the\n * latests and greatest position. We try to do this in the most non-disruptive\n * fashion possible. First we only do this ever couple seconds, staggard by a\n * random offset.\n * @param el - Element\n */\nfunction poll(el) {\n setTimeout(() => {\n intervals.set(el, setInterval(() => lowPriority(updatePos.bind(null, el)), 2000));\n }, Math.round(2000 * Math.random()));\n}\n/**\n * Perform some operation that is non critical at some point.\n * @param callback\n */\nfunction lowPriority(callback) {\n if (typeof requestIdleCallback === \"function\") {\n requestIdleCallback(() => callback());\n }\n else {\n requestAnimationFrame(() => callback());\n }\n}\n/**\n * A resize observer, responsible for recalculating elements on resize.\n */\nlet resize;\n/**\n * Ensure the browser is supported.\n */\nconst supportedBrowser = typeof window !== \"undefined\" && \"ResizeObserver\" in window;\n/**\n * If this is in a browser, initialize our Web APIs\n */\nif (supportedBrowser) {\n root = document.documentElement;\n new MutationObserver(handleMutations);\n resize = new ResizeObserver(handleResizes);\n window.addEventListener(\"scroll\", () => {\n scrollY = window.scrollY;\n scrollX = window.scrollX;\n });\n resize.observe(root);\n}\n/**\n * Retrieves all the elements that may have been affected by the last mutation\n * including ones that have been removed and are no longer in the DOM.\n * @param mutations - A mutation list.\n * @returns\n */\nfunction getElements(mutations) {\n const observedNodes = mutations.reduce((nodes, mutation) => {\n return [\n ...nodes,\n ...Array.from(mutation.addedNodes),\n ...Array.from(mutation.removedNodes),\n ];\n }, []);\n // Short circuit if _only_ comment nodes are observed\n const onlyCommentNodesObserved = observedNodes.every((node) => node.nodeName === \"#comment\");\n if (onlyCommentNodesObserved)\n return false;\n return mutations.reduce((elements, mutation) => {\n // Short circuit if we find a purposefully deleted node.\n if (elements === false)\n return false;\n if (mutation.target instanceof Element) {\n target(mutation.target);\n if (!elements.has(mutation.target)) {\n elements.add(mutation.target);\n for (let i = 0; i < mutation.target.children.length; i++) {\n const child = mutation.target.children.item(i);\n if (!child)\n continue;\n if (DEL in child) {\n return false;\n }\n target(mutation.target, child);\n elements.add(child);\n }\n }\n if (mutation.removedNodes.length) {\n for (let i = 0; i < mutation.removedNodes.length; i++) {\n const child = mutation.removedNodes[i];\n if (DEL in child) {\n return false;\n }\n if (child instanceof Element) {\n elements.add(child);\n target(mutation.target, child);\n siblings.set(child, [\n mutation.previousSibling,\n mutation.nextSibling,\n ]);\n }\n }\n }\n }\n return elements;\n }, new Set());\n}\n/**\n * Assign the target to an element.\n * @param el - The root element\n * @param child\n */\nfunction target(el, child) {\n if (!child && !(TGT in el))\n Object.defineProperty(el, TGT, { value: el });\n else if (child && !(TGT in child))\n Object.defineProperty(child, TGT, { value: el });\n}\n/**\n * Determines what kind of change took place on the given element and then\n * performs the proper animation based on that.\n * @param el - The specific element to animate.\n */\nfunction animate(el) {\n var _a, _b;\n const isMounted = el.isConnected;\n const preExisting = coords.has(el);\n if (isMounted && siblings.has(el))\n siblings.delete(el);\n if (((_a = animations.get(el)) === null || _a === void 0 ? void 0 : _a.playState) !== \"finished\") {\n (_b = animations.get(el)) === null || _b === void 0 ? void 0 : _b.cancel();\n }\n if (NEW in el) {\n add(el);\n }\n else if (preExisting && isMounted) {\n remain(el);\n }\n else if (preExisting && !isMounted) {\n remove(el);\n }\n else {\n add(el);\n }\n}\n/**\n * Removes all non-digits from a string and casts to a number.\n * @param str - A string containing a pixel value.\n * @returns\n */\nfunction raw(str) {\n return Number(str.replace(/[^0-9.\\-]/g, \"\"));\n}\n/**\n * Get the scroll offset of elements\n * @param el - Element\n * @returns\n */\nfunction getScrollOffset(el) {\n let p = el.parentElement;\n while (p) {\n if (p.scrollLeft || p.scrollTop) {\n return { x: p.scrollLeft, y: p.scrollTop };\n }\n p = p.parentElement;\n }\n return { x: 0, y: 0 };\n}\n/**\n * Get the coordinates of elements adjusted for scroll position.\n * @param el - Element\n * @returns\n */\nfunction getCoords(el) {\n const rect = el.getBoundingClientRect();\n const { x, y } = getScrollOffset(el);\n return {\n top: rect.top + y,\n left: rect.left + x,\n width: rect.width,\n height: rect.height,\n };\n}\n/**\n * Returns the width/height that the element should be transitioned between.\n * This takes into account box-sizing.\n * @param el - Element being animated\n * @param oldCoords - Old set of Coordinates coordinates\n * @param newCoords - New set of Coordinates coordinates\n * @returns\n */\nfunction getTransitionSizes(el, oldCoords, newCoords) {\n let widthFrom = oldCoords.width;\n let heightFrom = oldCoords.height;\n let widthTo = newCoords.width;\n let heightTo = newCoords.height;\n const styles = getComputedStyle(el);\n const sizing = styles.getPropertyValue(\"box-sizing\");\n if (sizing === \"content-box\") {\n const paddingY = raw(styles.paddingTop) +\n raw(styles.paddingBottom) +\n raw(styles.borderTopWidth) +\n raw(styles.borderBottomWidth);\n const paddingX = raw(styles.paddingLeft) +\n raw(styles.paddingRight) +\n raw(styles.borderRightWidth) +\n raw(styles.borderLeftWidth);\n widthFrom -= paddingX;\n widthTo -= paddingX;\n heightFrom -= paddingY;\n heightTo -= paddingY;\n }\n return [widthFrom, widthTo, heightFrom, heightTo].map(Math.round);\n}\n/**\n * Retrieves animation options for the current element.\n * @param el - Element to retrieve options for.\n * @returns\n */\nfunction getOptions(el) {\n return TGT in el && options.has(el[TGT])\n ? options.get(el[TGT])\n : { duration: 250, easing: \"ease-in-out\" };\n}\n/**\n * Returns the target of a given animation (generally the parent).\n * @param el - An element to check for a target\n * @returns\n */\nfunction getTarget(el) {\n if (TGT in el)\n return el[TGT];\n return undefined;\n}\n/**\n * Checks if animations are enabled or disabled for a given element.\n * @param el - Any element\n * @returns\n */\nfunction isEnabled(el) {\n const target = getTarget(el);\n return target ? enabled.has(target) : false;\n}\n/**\n * Iterate over the children of a given parent.\n * @param parent - A parent element\n * @param callback - A callback\n */\nfunction forEach(parent, ...callbacks) {\n callbacks.forEach((callback) => callback(parent, options.has(parent)));\n for (let i = 0; i < parent.children.length; i++) {\n const child = parent.children.item(i);\n if (child) {\n callbacks.forEach((callback) => callback(child, options.has(child)));\n }\n }\n}\n/**\n * Always return tuple to provide consistent interface\n */\nfunction getPluginTuple(pluginReturn) {\n if (Array.isArray(pluginReturn))\n return pluginReturn;\n return [pluginReturn];\n}\n/**\n * Determine if config is plugin\n */\nfunction isPlugin(config) {\n return typeof config === \"function\";\n}\n/**\n * The element in question is remaining in the DOM.\n * @param el - Element to flip\n * @returns\n */\nfunction remain(el) {\n const oldCoords = coords.get(el);\n const newCoords = getCoords(el);\n if (!isEnabled(el))\n return coords.set(el, newCoords);\n if (isOffscreen(el)) {\n // When element is offscreen, skip FLIP to avoid broken transforms\n coords.set(el, newCoords);\n observePosition(el);\n return;\n }\n let animation;\n if (!oldCoords)\n return;\n const pluginOrOptions = getOptions(el);\n if (typeof pluginOrOptions !== \"function\") {\n let deltaLeft = oldCoords.left - newCoords.left;\n let deltaTop = oldCoords.top - newCoords.top;\n const deltaRight = oldCoords.left + oldCoords.width - (newCoords.left + newCoords.width);\n const deltaBottom = oldCoords.top + oldCoords.height - (newCoords.top + newCoords.height);\n // element is probably anchored and doesn't need to be offset\n if (deltaBottom == 0)\n deltaTop = 0;\n if (deltaRight == 0)\n deltaLeft = 0;\n const [widthFrom, widthTo, heightFrom, heightTo] = getTransitionSizes(el, oldCoords, newCoords);\n const start = {\n transform: `translate(${deltaLeft}px, ${deltaTop}px)`,\n };\n const end = {\n transform: `translate(0, 0)`,\n };\n if (widthFrom !== widthTo) {\n start.width = `${widthFrom}px`;\n end.width = `${widthTo}px`;\n }\n if (heightFrom !== heightTo) {\n start.height = `${heightFrom}px`;\n end.height = `${heightTo}px`;\n }\n animation = el.animate([start, end], {\n duration: pluginOrOptions.duration,\n easing: pluginOrOptions.easing,\n });\n }\n else {\n const [keyframes] = getPluginTuple(pluginOrOptions(el, \"remain\", oldCoords, newCoords));\n animation = new Animation(keyframes);\n animation.play();\n }\n animations.set(el, animation);\n coords.set(el, newCoords);\n animation.addEventListener(\"finish\", updatePos.bind(null, el, false), {\n once: true,\n });\n}\n/**\n * Adds the element with a transition.\n * @param el - Animates the element being added.\n */\nfunction add(el) {\n if (NEW in el)\n delete el[NEW];\n const newCoords = getCoords(el);\n coords.set(el, newCoords);\n const pluginOrOptions = getOptions(el);\n if (!isEnabled(el))\n return;\n if (isOffscreen(el)) {\n // Skip entry animation if element is not visible in viewport\n observePosition(el);\n return;\n }\n let animation;\n if (typeof pluginOrOptions !== \"function\") {\n animation = el.animate([\n { transform: \"scale(.98)\", opacity: 0 },\n { transform: \"scale(0.98)\", opacity: 0, offset: 0.5 },\n { transform: \"scale(1)\", opacity: 1 },\n ], {\n duration: pluginOrOptions.duration * 1.5,\n easing: \"ease-in\",\n });\n }\n else {\n const [keyframes] = getPluginTuple(pluginOrOptions(el, \"add\", newCoords));\n animation = new Animation(keyframes);\n animation.play();\n }\n animations.set(el, animation);\n animation.addEventListener(\"finish\", updatePos.bind(null, el, false), {\n once: true,\n });\n}\n/**\n * Clean up after removing an element from the dom.\n * @param el - Element being removed\n * @param styles - Optional styles that should be removed from the element.\n */\nfunction cleanUp(el, styles) {\n var _a;\n el.remove();\n coords.delete(el);\n siblings.delete(el);\n animations.delete(el);\n (_a = intersections.get(el)) === null || _a === void 0 ? void 0 : _a.disconnect();\n setTimeout(() => {\n if (DEL in el)\n delete el[DEL];\n Object.defineProperty(el, NEW, { value: true, configurable: true });\n if (styles && el instanceof HTMLElement) {\n for (const style in styles) {\n el.style[style] = \"\";\n }\n }\n }, 0);\n}\n/**\n * Animates the removal of an element.\n * @param el - Element to remove\n */\nfunction remove(el) {\n var _a;\n if (!siblings.has(el) || !coords.has(el))\n return;\n const [prev, next] = siblings.get(el);\n Object.defineProperty(el, DEL, { value: true, configurable: true });\n const finalX = window.scrollX;\n const finalY = window.scrollY;\n if (next &&\n next.parentNode &&\n next.parentNode instanceof Element) {\n next.parentNode.insertBefore(el, next);\n }\n else if (prev && prev.parentNode) {\n prev.parentNode.appendChild(el);\n }\n else {\n (_a = getTarget(el)) === null || _a === void 0 ? void 0 : _a.appendChild(el);\n }\n if (!isEnabled(el))\n return cleanUp(el);\n const [top, left, width, height] = deletePosition(el);\n const optionsOrPlugin = getOptions(el);\n const oldCoords = coords.get(el);\n if (finalX !== scrollX || finalY !== scrollY) {\n adjustScroll(el, finalX, finalY, optionsOrPlugin);\n }\n let animation;\n let styleReset = {\n position: \"absolute\",\n top: `${top}px`,\n left: `${left}px`,\n width: `${width}px`,\n height: `${height}px`,\n margin: \"0\",\n pointerEvents: \"none\",\n transformOrigin: \"center\",\n zIndex: \"100\",\n };\n if (!isPlugin(optionsOrPlugin)) {\n Object.assign(el.style, styleReset);\n animation = el.animate([\n {\n transform: \"scale(1)\",\n opacity: 1,\n },\n {\n transform: \"scale(.98)\",\n opacity: 0,\n },\n ], {\n duration: optionsOrPlugin.duration,\n easing: \"ease-out\",\n });\n }\n else {\n const [keyframes, options] = getPluginTuple(optionsOrPlugin(el, \"remove\", oldCoords));\n if ((options === null || options === void 0 ? void 0 : options.styleReset) !== false) {\n styleReset =\n (options === null || options === void 0 ? void 0 : options.styleReset) ||\n styleReset;\n Object.assign(el.style, styleReset);\n }\n animation = new Animation(keyframes);\n animation.play();\n }\n animations.set(el, animation);\n animation.addEventListener(\"finish\", () => cleanUp(el, styleReset), {\n once: true,\n });\n}\n/**\n * If the element being removed is at the very bottom of the page, and the\n * the page was scrolled into a space being \"made available\" by the element\n * that was removed, the page scroll will have jumped up some amount. We need\n * to offset the jump by the amount that the page was \"automatically\" scrolled\n * up. We can do this by comparing the scroll position before and after the\n * element was removed, and then offsetting by that amount.\n *\n * @param el - The element being deleted\n * @param finalX - The final X scroll position\n * @param finalY - The final Y scroll position\n * @param optionsOrPlugin - The options or plugin\n * @returns\n */\nfunction adjustScroll(el, finalX, finalY, optionsOrPlugin) {\n const scrollDeltaX = scrollX - finalX;\n const scrollDeltaY = scrollY - finalY;\n const scrollBefore = document.documentElement.style.scrollBehavior;\n const scrollBehavior = getComputedStyle(root).scrollBehavior;\n if (scrollBehavior === \"smooth\") {\n document.documentElement.style.scrollBehavior = \"auto\";\n }\n window.scrollTo(window.scrollX + scrollDeltaX, window.scrollY + scrollDeltaY);\n if (!el.parentElement)\n return;\n const parent = el.parentElement;\n let lastHeight = parent.clientHeight;\n let lastWidth = parent.clientWidth;\n const startScroll = performance.now();\n // Here we use a manual scroll animation to keep the element using the same\n // easing and timing as the parent’s scroll animation.\n function smoothScroll() {\n requestAnimationFrame(() => {\n if (!isPlugin(optionsOrPlugin)) {\n const deltaY = lastHeight - parent.clientHeight;\n const deltaX = lastWidth - parent.clientWidth;\n if (startScroll + optionsOrPlugin.duration >\n performance.now()) {\n window.scrollTo({\n left: window.scrollX - deltaX,\n top: window.scrollY - deltaY,\n });\n lastHeight = parent.clientHeight;\n lastWidth = parent.clientWidth;\n smoothScroll();\n }\n else {\n document.documentElement.style.scrollBehavior = scrollBefore;\n }\n }\n });\n }\n smoothScroll();\n}\n/**\n * Determines the position of the element being removed.\n * @param el - The element being deleted\n * @returns\n */\nfunction deletePosition(el) {\n var _a;\n const oldCoords = coords.get(el);\n const [width, , height] = getTransitionSizes(el, oldCoords, getCoords(el));\n let offsetParent = el.parentElement;\n while (offsetParent &&\n (getComputedStyle(offsetParent).position === \"static\" ||\n offsetParent instanceof HTMLBodyElement)) {\n offsetParent = offsetParent.parentElement;\n }\n if (!offsetParent)\n offsetParent = document.body;\n const parentStyles = getComputedStyle(offsetParent);\n const parentCoords = !animations.has(el) || ((_a = animations.get(el)) === null || _a === void 0 ? void 0 : _a.playState) === \"finished\"\n ? getCoords(offsetParent)\n : coords.get(offsetParent);\n const top = Math.round(oldCoords.top - parentCoords.top) -\n raw(parentStyles.borderTopWidth);\n const left = Math.round(oldCoords.left - parentCoords.left) -\n raw(parentStyles.borderLeftWidth);\n return [top, left, width, height];\n}\n/**\n * A function that automatically adds animation effects to itself and its\n * immediate children. Specifically it adds effects for adding, moving, and\n * removing DOM elements.\n * @param el - A parent element to add animations to.\n * @param options - An optional object of options.\n */\nfunction autoAnimate(el, config = {}) {\n if (supportedBrowser && resize) {\n const mediaQuery = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n const isDisabledDueToReduceMotion = mediaQuery.matches &&\n !isPlugin(config) &&\n !config.disrespectUserMotionPreference;\n if (!isDisabledDueToReduceMotion) {\n enabled.add(el);\n if (getComputedStyle(el).position === \"static\") {\n Object.assign(el.style, { position: \"relative\" });\n }\n forEach(el, updatePos, poll, (element) => resize === null || resize === void 0 ? void 0 : resize.observe(element));\n if (isPlugin(config)) {\n options.set(el, config);\n }\n else {\n options.set(el, {\n duration: 250,\n easing: \"ease-in-out\",\n ...config,\n });\n }\n const mo = new MutationObserver(handleMutations);\n mo.observe(el, { childList: true });\n mutationObservers.set(el, mo);\n parents.add(el);\n }\n }\n const controller = Object.freeze({\n parent: el,\n enable: () => {\n enabled.add(el);\n },\n disable: () => {\n enabled.delete(el);\n // Cancel any in-flight animations and pending timers for immediate effect\n forEach(el, (node) => {\n const a = animations.get(node);\n try {\n a === null || a === void 0 ? void 0 : a.cancel();\n }\n catch { }\n animations.delete(node);\n const d = debounces.get(node);\n if (d)\n clearTimeout(d);\n debounces.delete(node);\n const i = intervals.get(node);\n if (i)\n clearInterval(i);\n intervals.delete(node);\n });\n },\n isEnabled: () => enabled.has(el),\n destroy: () => {\n enabled.delete(el);\n parents.delete(el);\n options.delete(el);\n const mo = mutationObservers.get(el);\n mo === null || mo === void 0 ? void 0 : mo.disconnect();\n mutationObservers.delete(el);\n forEach(el, (node) => {\n // unobserve resize\n resize === null || resize === void 0 ? void 0 : resize.unobserve(node);\n // cancel animations\n const a = animations.get(node);\n try {\n a === null || a === void 0 ? void 0 : a.cancel();\n }\n catch { }\n animations.delete(node);\n // disconnect observers\n const io = intersections.get(node);\n io === null || io === void 0 ? void 0 : io.disconnect();\n intersections.delete(node);\n // clear intervals and debounces\n const i = intervals.get(node);\n if (i)\n clearInterval(i);\n intervals.delete(node);\n const d = debounces.get(node);\n if (d)\n clearTimeout(d);\n debounces.delete(node);\n // clear state\n coords.delete(node);\n siblings.delete(node);\n });\n },\n });\n return controller;\n}\n/**\n * The vue directive.\n */\nconst vAutoAnimate = {\n mounted: (el, binding) => {\n const ctl = autoAnimate(el, binding.value || {});\n Object.defineProperty(el, \"__aa_ctl\", { value: ctl, configurable: true });\n },\n unmounted: (el) => {\n var _a;\n const ctl = el[\"__aa_ctl\"];\n (_a = ctl === null || ctl === void 0 ? void 0 : ctl.destroy) === null || _a === void 0 ? void 0 : _a.call(ctl);\n try {\n delete el[\"__aa_ctl\"];\n }\n catch { }\n },\n getSSRProps: () => ({}),\n};\n\nexport { autoAnimate, autoAnimate as default, getTransitionSizes, vAutoAnimate };\n","import { useRef, useState, useEffect } from 'preact/hooks';\nimport autoAnimate from '../index.mjs';\n\n/**\n * AutoAnimate hook for adding dead-simple transitions and animations to preact.\n * @param options - Auto animate options or a plugin\n * @returns\n */\nfunction useAutoAnimate(options) {\n const element = useRef(null);\n const [controller, setController] = useState();\n const setEnabled = (enabled) => {\n if (controller) {\n enabled ? controller.enable() : controller.disable();\n }\n };\n useEffect(() => {\n if (element.current instanceof HTMLElement)\n setController(autoAnimate(element.current, options || {}));\n }, []);\n useEffect(() => {\n return () => {\n var _a;\n (_a = controller === null || controller === void 0 ? void 0 : controller.destroy) === null || _a === void 0 ? void 0 : _a.call(controller);\n };\n }, [controller]);\n return [element, setEnabled];\n}\n\nexport { useAutoAnimate };\n","function dec2hex(dec) {\n return ('0' + dec.toString(16)).slice(-2);\n}\nexport function verifier() {\n var array = new Uint32Array(56 / 2);\n window.crypto.getRandomValues(array);\n return Array.from(array, dec2hex).join('');\n}\nfunction sha256(plain) {\n // returns promise ArrayBuffer\n const encoder = new TextEncoder();\n const data = encoder.encode(plain);\n return window.crypto.subtle.digest('SHA-256', data);\n}\nfunction base64urlencode(a) {\n let str = '';\n const bytes = new Uint8Array(a);\n const len = bytes.byteLength;\n for (var i = 0; i < len; i++) {\n str += String.fromCharCode(bytes[i]);\n }\n return btoa(str).replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n}\nexport async function generateCodeChallenge(v) {\n const hashed = await sha256(v);\n return base64urlencode(hashed);\n}\n\n// If /.well-known/oauth-authorization-server exists and code_challenge_methods_supported includes \"S256\", means support PKCE\nexport async function supportsPKCE({ instanceURL }) {\n if (!instanceURL) return false;\n try {\n const res = await fetch(\n `https://${instanceURL}/.well-known/oauth-authorization-server`,\n );\n if (!res.ok || res.status !== 200) return false;\n const json = await res.json();\n if (json.code_challenge_methods_supported?.includes('S256')) return true;\n return false;\n } catch (e) {\n return false;\n }\n}\n\n// For debugging\nwindow.__generateCodeChallenge = generateCodeChallenge;\n","import { generateCodeChallenge, verifier } from './oauth-pkce';\n\nconst {\n DEV,\n PHANPY_CLIENT_NAME: CLIENT_NAME,\n PHANPY_WEBSITE: WEBSITE,\n} = import.meta.env;\n\nconst SCOPES = 'read write follow push';\n\n/*\n PHANPY_WEBSITE is set to the default official site.\n It's used in pre-built releases, so there's no way to change it dynamically\n without rebuilding.\n Therefore, we can't use it as redirect_uri.\n We only use PHANPY_WEBSITE if it's \"same\" as current location URL.\n \n Very basic check based on location.hostname for now\n*/\nconst sameSite = WEBSITE\n ? WEBSITE.toLowerCase().includes(location.hostname)\n : false;\nconst currentLocation = location.origin + location.pathname;\nconst REDIRECT_URI = DEV || !sameSite ? currentLocation : WEBSITE;\n\nexport async function registerApplication({ instanceURL }) {\n const registrationParams = new URLSearchParams({\n client_name: CLIENT_NAME,\n redirect_uris: REDIRECT_URI,\n scopes: SCOPES,\n website: WEBSITE || REDIRECT_URI,\n });\n const registrationResponse = await fetch(\n `https://${instanceURL}/api/v1/apps`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: registrationParams.toString(),\n },\n );\n const registrationJSON = await registrationResponse.json();\n if (DEV) console.log({ registrationJSON });\n return registrationJSON;\n}\n\nexport async function getPKCEAuthorizationURL({\n instanceURL,\n client_id,\n forceLogin = false,\n}) {\n const codeVerifier = verifier();\n const codeChallenge = await generateCodeChallenge(codeVerifier);\n const params = new URLSearchParams({\n client_id,\n code_challenge_method: 'S256',\n code_challenge: codeChallenge,\n redirect_uri: REDIRECT_URI,\n response_type: 'code',\n scope: SCOPES,\n });\n if (forceLogin) params.append('force_login', true);\n const authorizationURL = `https://${instanceURL}/oauth/authorize?${params.toString()}`;\n return [authorizationURL, codeVerifier];\n}\n\nexport async function getAuthorizationURL({\n instanceURL,\n client_id,\n forceLogin = false,\n}) {\n const authorizationParams = new URLSearchParams({\n client_id,\n scope: SCOPES,\n redirect_uri: REDIRECT_URI,\n // redirect_uri: 'urn:ietf:wg:oauth:2.0:oob',\n response_type: 'code',\n });\n if (forceLogin) authorizationParams.append('force_login', true);\n const authorizationURL = `https://${instanceURL}/oauth/authorize?${authorizationParams.toString()}`;\n return authorizationURL;\n}\n\nexport async function getAccessToken({\n instanceURL,\n client_id,\n client_secret,\n code,\n code_verifier,\n}) {\n const params = new URLSearchParams({\n client_id,\n redirect_uri: REDIRECT_URI,\n grant_type: 'authorization_code',\n code,\n // scope: SCOPES, // Not needed\n // client_secret,\n // code_verifier,\n });\n if (client_secret) {\n params.append('client_secret', client_secret);\n }\n if (code_verifier) {\n params.append('code_verifier', code_verifier);\n }\n const tokenResponse = await fetch(`https://${instanceURL}/oauth/token`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: params.toString(),\n });\n const tokenJSON = await tokenResponse.json();\n if (DEV) console.log({ tokenJSON });\n return tokenJSON;\n}\n\nexport async function revokeAccessToken({\n instanceURL,\n client_id,\n client_secret,\n token,\n}) {\n try {\n const params = new URLSearchParams({\n client_id,\n client_secret,\n token,\n });\n\n const revokeResponse = await fetch(`https://${instanceURL}/oauth/revoke`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: params.toString(),\n keepalive: true,\n });\n\n return revokeResponse.ok;\n } catch (error) {\n console.error('Error revoking token', error);\n return false;\n }\n}\n","import './accounts.css';\n\nimport { useAutoAnimate } from '@formkit/auto-animate/preact';\nimport { Trans, useLingui } from '@lingui/react/macro';\nimport { MenuDivider, MenuItem } from '@szhsin/react-menu';\nimport { useReducer } from 'preact/hooks';\n\nimport Avatar from '../components/avatar';\nimport Icon from '../components/icon';\nimport Link from '../components/link';\nimport MenuConfirm from '../components/menu-confirm';\nimport MenuLink from '../components/menu-link';\nimport Menu2 from '../components/menu2';\nimport NameText from '../components/name-text';\nimport RelativeTime from '../components/relative-time';\nimport { api } from '../utils/api';\nimport { revokeAccessToken } from '../utils/auth';\nimport haptics from '../utils/haptics';\nimport niceDateTime from '../utils/nice-date-time';\nimport states from '../utils/states';\nimport store from '../utils/store';\nimport {\n getAccounts,\n getCurrentAccountID,\n saveAccounts,\n setCurrentAccountID,\n} from '../utils/store-utils';\n\nconst isStandalone = window.matchMedia('(display-mode: standalone)').matches;\n\nfunction Accounts({ onClose }) {\n const { t } = useLingui();\n const { masto } = api();\n // Accounts\n const accounts = getAccounts();\n const currentAccount = getCurrentAccountID();\n const moreThanOneAccount = accounts.length > 1;\n\n const [_, reload] = useReducer((x) => x + 1, 0);\n const [accountsListParent] = useAutoAnimate();\n\n return (\n \n {!!onClose && (\n
\n )}\n \n
\n \n \n {accounts.map((account, i) => {\n const isCurrent = account.info.id === currentAccount;\n const isDefault = i === 0; // first account is always default\n const isLoggedOut = !account.accessToken;\n\n const removeAccount = () => {\n accounts.splice(i, 1);\n saveAccounts(accounts);\n try {\n if (store.session.get('currentAccount') === account.info.id) {\n store.session.del('currentAccount');\n }\n } catch (e) {}\n };\n\n const logOutAccount = async () => {\n await revokeAccessToken({\n instanceURL: account.instanceURL,\n client_id: account.clientId,\n client_secret: account.clientSecret,\n token: account.accessToken,\n });\n };\n\n return (\n - \n
\n {moreThanOneAccount && (\n
\n \n \n )}\n
{\n if (isCurrent) {\n try {\n const info = await masto.v1.accounts\n .$select(account.info.id)\n .fetch();\n console.log('fetched account info', info);\n account.info = info;\n saveAccounts(accounts);\n reload();\n } catch (e) {}\n }\n }}\n />\n {\n haptics.trigger('medium');\n if (isLoggedOut) {\n location.href = `/#/login?instance=${account.instanceURL}`;\n onClose();\n } else if (isCurrent) {\n states.showAccount = `${account.info.username}@${account.instanceURL}`;\n } else {\n setCurrentAccountID(account.info.id);\n location.reload();\n }\n }}\n />\n \n \n {isLoggedOut && (\n \n Logged out\n \n )}\n {isDefault && moreThanOneAccount && (\n <>\n \n Default\n {' '}\n >\n )}\n \n \n \n }\n >\n {moreThanOneAccount && (\n <>\n \n {!isStandalone && !isCurrent && !isLoggedOut && (\n \n \n \n Switch in new tab/window\n \n \n )}\n \n >\n )}\n \n \n {moreThanOneAccount && (\n <>\n \n \n \n \n >\n )}\n {!isLoggedOut ? (\n \n \n \n \n Log out{' '}\n \n @{account.info.acct}\n \n ?\n \n \n >\n }\n menuItemClassName=\"danger\"\n onClick={async () => {\n await logOutAccount();\n delete account.accessToken;\n saveAccounts(accounts);\n reload();\n }}\n menuExtras={\n \n }\n >\n \n \n Log out…\n \n \n ) : (\n \n \n \n \n Remove{' '}\n \n @{account.info.acct}\n \n ?\n \n \n >\n }\n menuItemClassName=\"danger\"\n onClick={() => {\n removeAccount();\n reload();\n }}\n >\n \n \n Remove account…\n \n \n )}\n {!!account?.createdAt && (\n \n )}\n \n
\n \n );\n })}\n
\n \n \n {' '}\n \n Add an existing account\n \n \n
\n {moreThanOneAccount && (\n \n \n \n Note: Default account will always be used for first\n load. Switched accounts will persist during the session.\n \n \n
\n )}\n \n \n
\n \n \n
\n );\n}\n\nexport default Accounts;\n","// https://adactio.com/journal/22278\n// https://gist.github.com/adactio/a445544723363d37b9c31a74a03ef928\n\nclass ButtonInstall extends HTMLElement {\n connectedCallback() {\n this.button = this.querySelector('button');\n if (window.matchMedia('(display-mode: standalone)').matches) {\n this.button.remove();\n return;\n }\n if (!navigator.install) {\n this.button.remove();\n return;\n }\n this.button.addEventListener('click', async (ev) => {\n await navigator.install();\n });\n }\n}\n\ncustomElements.define('button-install', ButtonInstall);\n","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20fill-rule='evenodd'%20stroke-linejoin='round'%20stroke-miterlimit='2'%20clip-rule='evenodd'%20viewBox='0%200%2064%2064'%3e%3cpath%20fill='%23a4bff7'%20d='M37.774%2011.471c14.639%203.752%2019.034%2016.557%2015.889%2031.304-.696%203.261-2.563%206.661-6.356%208.693-3.204%201.717-8.07%202.537-15.338.55l-9.634-2.404C11.651%2046.992%208.378%2038.733%2010.027%2031.823c3.627-15.201%2015.543-23.48%2027.747-20.352Z'/%3e%3cpath%20fill='%23d8e7fe'%20d='M36.76%2015.429c12.289%203.15%2015.547%2014.114%2012.907%2026.493-.947%204.44-4.937%209.365-16.664%206.143l-9.684-2.417c-7.854-1.923-10.53-7.8-9.318-12.877%203.016-12.639%2012.611-19.943%2022.759-17.342Z'/%3e%3cpath%20fill='%236081e6'%20d='M27.471%2024.991c-1.457-.698-7.229%203.213-7.663%208.926-.182%202.39%204.55%203.237%205.071-.169.725-4.743%203.715-8.218%202.592-8.757Zm10.746%202.005c-2.083.327-.382%205.901-.595%2010.727-.123%202.8%204.388%203.464%204.703%202.011%201.098-5.073-2.066-13.058-4.108-12.738Z'/%3e%3c/svg%3e\"","import { useLingui } from '@lingui/react';\nimport { useMemo } from 'preact/hooks';\n\nimport { CATALOGS, DEFAULT_LANG, DEV_LOCALES, LOCALES } from '../locales';\nimport { activateLang } from '../utils/lang';\nimport localeCode2Text from '../utils/localeCode2Text';\nimport store from '../utils/store';\n\nconst regionMaps = {\n 'zh-CN': 'zh-Hans',\n 'zh-TW': 'zh-Hant',\n 'pt-BR': 'pt-BR',\n};\n\nexport default function LangSelector() {\n const { i18n } = useLingui();\n\n // Sorted on render, so the order won't suddenly change based on current locale\n const populatedLocales = useMemo(() => {\n return LOCALES.map((lang) => {\n // Don't need regions for now, it makes text too noisy\n // Wait till there's too many languages and there are regional clashes\n const regionlessCode = regionMaps[lang] || lang.replace(/-[a-z]+$/i, '');\n\n const native = localeCode2Text({\n code: regionlessCode,\n locale: lang,\n fallback: CATALOGS.find((c) => c.code === lang)?.nativeName,\n });\n\n // Not used when rendering because it'll change based on current locale\n // Only used for sorting on render\n const _common = localeCode2Text({\n code: regionlessCode,\n locale: i18n.locale,\n fallback: CATALOGS.find((c) => c.code === lang)?.name,\n });\n\n return {\n code: lang,\n regionlessCode,\n _common,\n native,\n };\n }).sort((a, b) => {\n // Sort by common name\n const order = a._common.localeCompare(b._common, i18n.locale);\n if (order !== 0) return order;\n // Sort by code (fallback)\n if (a.code < b.code) return -1;\n if (a.code > b.code) return 1;\n return 0;\n });\n }, []);\n\n return (\n \n );\n}\n","// Utils for push notifications\nimport { api } from './api';\nimport { getVapidKey } from './store-utils';\n\n// Subscription is an object with the following structure:\n// {\n// data: {\n// alerts: {\n// admin: {\n// report: boolean,\n// signUp: boolean,\n// },\n// favourite: boolean,\n// follow: boolean,\n// mention: boolean,\n// poll: boolean,\n// reblog: boolean,\n// status: boolean,\n// update: boolean,\n// }\n// },\n// policy: \"all\" | \"followed\" | \"follower\" | \"none\",\n// subscription: {\n// endpoint: string,\n// keys: {\n// auth: string,\n// p256dh: string,\n// },\n// },\n// }\n\n// Back-end CRUD\n// =============\n\nfunction createBackendPushSubscription(subscription) {\n const { masto } = api();\n return masto.v1.push.subscription.create(subscription);\n}\n\nfunction fetchBackendPushSubscription() {\n const { masto } = api();\n return masto.v1.push.subscription.fetch();\n}\n\nfunction updateBackendPushSubscription(subscription) {\n const { masto } = api();\n return masto.v1.push.subscription.update(subscription);\n}\n\nfunction removeBackendPushSubscription() {\n const { masto } = api();\n return masto.v1.push.subscription.remove();\n}\n\n// Front-end\n// =========\n\nexport function isPushSupported() {\n return 'serviceWorker' in navigator && 'PushManager' in window;\n}\n\nexport function getRegistration() {\n // return navigator.serviceWorker.ready;\n return navigator.serviceWorker.getRegistration();\n}\n\nasync function getSubscription() {\n const registration = await getRegistration();\n const subscription = registration\n ? await registration.pushManager.getSubscription()\n : undefined;\n return { registration, subscription };\n}\n\nfunction urlBase64ToUint8Array(base64String) {\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4);\n const base64 = `${base64String}${padding}`\n .replace(/-/g, '+')\n .replace(/_/g, '/');\n\n const rawData = window.atob(base64);\n const outputArray = new Uint8Array(rawData.length);\n\n for (let i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i);\n }\n\n return outputArray;\n}\n\n// Front-end <-> back-end\n// ======================\n\nexport async function initSubscription() {\n if (!isPushSupported()) return;\n const { subscription } = await getSubscription();\n let backendSubscription = null;\n try {\n backendSubscription = await fetchBackendPushSubscription();\n } catch (err) {\n if (/(not found|unknown)/i.test(err.message)) {\n // No subscription found\n } else {\n // Other error\n throw err;\n }\n }\n console.log('INIT subscription', {\n subscription,\n backendSubscription,\n });\n\n // Check if the subscription changed\n if (backendSubscription && subscription) {\n const sameEndpoint = backendSubscription.endpoint === subscription.endpoint;\n const vapidKey = getVapidKey();\n const sameKey = backendSubscription.serverKey === vapidKey;\n if (!sameEndpoint) {\n throw new Error('Backend subscription endpoint changed');\n }\n if (sameKey) {\n // Subscription didn't change\n } else {\n // Subscription changed\n console.error('🔔 Subscription changed', {\n sameEndpoint,\n serverKey: backendSubscription.serverKey,\n vapIdKey: vapidKey,\n endpoint1: backendSubscription.endpoint,\n endpoint2: subscription.endpoint,\n sameKey,\n key1: backendSubscription.serverKey,\n key2: vapidKey,\n });\n throw new Error('Backend subscription key and vapid key changed');\n // Only unsubscribe from backend, not from browser\n // await removeBackendPushSubscription();\n // // Now let's resubscribe\n // // NOTE: I have no idea if this works\n // return await updateSubscription({\n // data: backendSubscription.data,\n // policy: backendSubscription.policy,\n // });\n }\n }\n\n if (subscription && !backendSubscription) {\n // check if account's vapidKey is same as subscription's applicationServerKey\n const vapidKey = getVapidKey();\n if (vapidKey) {\n const { applicationServerKey } = subscription.options;\n const vapidKeyStr = urlBase64ToUint8Array(vapidKey).toString();\n const applicationServerKeyStr = new Uint8Array(\n applicationServerKey,\n ).toString();\n const sameKey = vapidKeyStr === applicationServerKeyStr;\n if (sameKey) {\n // Subscription didn't change\n } else {\n // Subscription changed\n console.error('🔔 Subscription changed', {\n vapidKeyStr,\n applicationServerKeyStr,\n sameKey,\n });\n // Unsubscribe since backend doesn't have a subscription\n await subscription.unsubscribe();\n throw new Error('Subscription key and vapid key changed');\n }\n } else {\n console.warn('No vapidKey found');\n }\n }\n\n // Check if backend subscription returns 404\n // if (subscription && !backendSubscription) {\n // // Re-subscribe to backend\n // backendSubscription = await createBackendPushSubscription({\n // subscription,\n // data: {},\n // policy: 'all',\n // });\n // }\n\n return { subscription, backendSubscription };\n}\n\nexport async function updateSubscription({ data, policy }) {\n console.log('🔔 Updating subscription', { data, policy });\n if (!isPushSupported()) return;\n let { registration, subscription } = await getSubscription();\n let backendSubscription = null;\n\n if (subscription) {\n try {\n backendSubscription = await updateBackendPushSubscription({\n data,\n policy,\n });\n // TODO: save subscription in user settings\n } catch (error) {\n // Backend doesn't have a subscription for this user\n // Create a new one\n backendSubscription = await createBackendPushSubscription({\n subscription,\n data,\n policy,\n });\n // TODO: save subscription in user settings\n }\n } else {\n // User is not subscribed\n const vapidKey = getVapidKey();\n if (!vapidKey) throw new Error('No server key found');\n subscription = await registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: urlBase64ToUint8Array(vapidKey),\n });\n backendSubscription = await createBackendPushSubscription({\n subscription,\n data,\n policy,\n });\n // TODO: save subscription in user settings\n }\n\n return { subscription, backendSubscription };\n}\n\nexport async function removeSubscription() {\n if (!isPushSupported()) return;\n const { subscription } = await getSubscription();\n if (subscription) {\n await removeBackendPushSubscription();\n await subscription.unsubscribe();\n }\n}\n","import './settings.css';\n\nimport '../components/button-install';\n\nimport { Plural, Trans, useLingui } from '@lingui/react/macro';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { useDebounce } from 'use-debounce';\nimport { useSnapshot } from 'valtio';\n\nimport logo from '../assets/logo.svg';\n\nimport Icon from '../components/icon';\nimport LangSelector from '../components/lang-selector';\nimport Link from '../components/link';\nimport RelativeTime from '../components/relative-time';\nimport languages from '../data/translang-languages';\nimport { api, getPreferences, setPreferences } from '../utils/api';\nimport getTranslateTargetLanguage from '../utils/get-translate-target-language';\nimport localeCode2Text from '../utils/localeCode2Text';\nimport prettyBytes from '../utils/pretty-bytes';\nimport {\n initSubscription,\n isPushSupported,\n removeSubscription,\n updateSubscription,\n} from '../utils/push-notifications';\nimport { supportsNativeQuote } from '../utils/quote-utils';\nimport showToast from '../utils/show-toast';\nimport states from '../utils/states';\nimport store from '../utils/store';\nimport { getAPIVersions, getVapidKey } from '../utils/store-utils';\n\nconst DEFAULT_TEXT_SIZE = 16;\nconst TEXT_SIZES = [14, 15, 16, 17, 18, 19, 20];\nconst SMALLEST_TEXT_SIZE = TEXT_SIZES[0];\nconst LARGEST_TEXT_SIZE = TEXT_SIZES[TEXT_SIZES.length - 1];\nconst {\n PHANPY_WEBSITE: WEBSITE,\n PHANPY_PRIVACY_POLICY_URL: PRIVACY_POLICY_URL,\n PHANPY_TRANSLANG_INSTANCES: TRANSLANG_INSTANCES,\n PHANPY_IMG_ALT_API_URL: IMG_ALT_API_URL,\n PHANPY_GIPHY_API_KEY: GIPHY_API_KEY,\n PHANPY_CLIENT_NAME: CLIENT_NAME,\n} = import.meta.env;\n\nconst targetLanguages = Object.entries(languages.tl).map(([code, name]) => ({\n code,\n name,\n}));\n\nconst TRANSLATION_API_NAME = 'TransLang API';\n\nfunction Settings({ onClose }) {\n const { t } = useLingui();\n const snapStates = useSnapshot(states);\n const currentTheme = store.local.get('theme') || 'auto';\n const themeFormRef = useRef();\n const targetLanguage =\n snapStates.settings.contentTranslationTargetLanguage || null;\n const systemTargetLanguage = getTranslateTargetLanguage();\n const systemTargetLanguageText = localeCode2Text(systemTargetLanguage);\n const currentTextSize = store.local.get('textSize') || DEFAULT_TEXT_SIZE;\n\n const [prefs, setPrefs] = useState(getPreferences());\n const { masto, authenticated, instance } = api();\n\n // Get preferences every time Settings is opened\n // NOTE: Disabled for now because I don't expect this to change often. Also for some reason, the /api/v1/preferences endpoint is cached for a while and return old prefs if refresh immediately after changing them.\n // useEffect(() => {\n // const { masto } = api();\n // (async () => {\n // try {\n // const preferences = await masto.v1.preferences.fetch();\n // setPrefs(preferences);\n // store.account.set('preferences', preferences);\n // } catch (e) {\n // // Silently fail\n // console.error(e);\n // }\n // })();\n // }, []);\n\n const [expTabBarV2, setExpTabBarV2] = useState(\n store.local.get('experiments-tabBarV2') ?? false,\n );\n\n const disableQuotePolicy = prefs['posting:default:visibility'] === 'private';\n\n return (\n \n {!!onClose && (\n
\n )}\n
\n
\n \n \n - \n
\n \n
\n \n \n - \n
\n \n
\n \n \n - \n \n {' '}\n \n \n Volunteer translations\n \n \n \n \n
\n
\n \n {authenticated && (\n <>\n \n Posting\n
\n \n \n - \n \n \n
\n {supportsNativeQuote() && (\n - \n \n \n
\n )}\n
\n \n \n {' '}\n \n \n Synced to your server's settings.{' '}\n \n Go to your server ({instance}) for more settings.\n \n \n \n
\n >\n )}\n {authenticated && (\n <>\n \n Wellbeing\n
\n \n >\n )}\n \n Experiments\n
\n \n \n - \n \n
\n - \n \n
\n {!!TRANSLANG_INSTANCES && (\n - \n \n
\n
\n \n
\n
\n
\n
\n
\n {targetLanguages.map((lang) => {\n const common = localeCode2Text({\n code: lang.code,\n fallback: lang.name,\n });\n const native = localeCode2Text({\n code: lang.code,\n locale: lang.code,\n });\n const showCommon = native && common !== native;\n return (\n \n );\n })}\n
\n
\n
\n \n \n Note: This feature uses external translation services,\n powered by{' '}\n \n {TRANSLATION_API_NAME}\n \n .\n \n \n
\n
\n
\n
\n
\n \n \n Automatically show translation for posts in timeline.\n Only works for short posts without content\n warning, media and poll.\n \n \n
\n
\n
\n \n )}\n {authenticated && (\n - \n \n
\n \n \n Manual pagination of timeline posts instead of infinite\n scrolling. Only works for Home/Following timeline for now.\n Auto refresh and boosts carousel will not work when this\n is enabled.\n \n \n
\n \n )}\n {!!GIPHY_API_KEY && authenticated && (\n - \n \n
\n
\n \n Note: This feature uses external GIF search service,\n powered by{' '}\n \n GIPHY\n \n . G-rated (suitable for viewing by all ages), tracking\n parameters are stripped, referrer information is omitted\n from requests, but search queries and IP address\n information will still reach their servers.\n \n \n
\n \n )}\n {!!IMG_ALT_API_URL && authenticated && (\n - \n \n
\n \n \n Only for new images while composing new posts.\n \n \n
\n \n
\n \n Note: This feature uses external AI service, powered by{' '}\n \n img-alt-api\n \n . May not work well. Only for images and in English.\n \n \n
\n \n )}\n {authenticated && (\n - \n \n
\n \n \n ⚠️⚠️⚠️ Very experimental.\n
\n Stored in your own profile’s notes. Profile (private)\n notes are mainly used for other profiles, and hidden for\n own profile.\n \n \n
\n \n \n \n Note: This feature uses currently-logged-in server API.\n \n \n
\n \n )}\n - \n \n
\n \n \n Replace text as blocks, useful when taking screenshots, for\n privacy reasons.\n \n \n
\n \n {authenticated && (\n - \n \n
\n )}\n - \n \n Year in Posts\n \n
\n - \n \n \n \n
\n
\n \n {authenticated && }\n \n About\n
\n \n \n

\n
\n
\n \n \n Sponsor\n {' '}\n ·{' '}\n \n Donate\n {' '}\n ·{' '}\n \n Patreon\n {' '}\n ·{' '}\n \n What's new\n {' '}\n ·{' '}\n \n Privacy Policy\n \n
\n {__COMMIT_TIME__ && (\n \n {WEBSITE && (\n <>\n \n Site:{' '}\n {WEBSITE.replace(/https?:\\/\\//g, '').replace(/\\/$/, '')}\n \n
\n >\n )}\n \n Version:{' '}\n {\n e.target.select();\n // Copy to clipboard\n try {\n navigator.clipboard.writeText(e.target.value);\n showToast(t`Version string copied`);\n } catch (e) {\n console.warn(e);\n showToast(t`Unable to copy version string`);\n }\n }}\n />{' '}\n {!__FAKE_COMMIT_HASH__ && (\n \n (\n \n \n \n )\n \n )}\n \n
\n )}\n \n {(import.meta.env.DEV || import.meta.env.PHANPY_DEV) && (\n \n
\n \n \n Sandbox\n \n
\n Debugging
\n \n Vapid key: {getVapidKey()}\n
\n {__BENCH_RESULTS?.size > 0 && (\n \n {Array.from(__BENCH_RESULTS.entries()).map(\n ([name, duration]) => (\n - \n {name}: {duration}ms\n
\n ),\n )}\n
\n )}\n Service Worker Cache
\n {' '}\n {' '}\n {' '}\n \n Temporary Experiments
\n \n \n )}\n \n
\n );\n}\n\nfunction TextSizeControl({ currentTextSize }) {\n const textSizeFieldRef = useRef(null);\n const [size, setSize] = useState(currentTextSize);\n const [debouncedSize] = useDebounce(size, 1000);\n\n useEffect(() => {\n const html = document.documentElement;\n // set CSS variable\n html.style.setProperty('--text-size', `${debouncedSize}px`);\n // save to local storage\n if (debouncedSize === DEFAULT_TEXT_SIZE) {\n store.local.del('textSize');\n } else {\n store.local.set('textSize', debouncedSize);\n }\n }, [debouncedSize]);\n\n return (\n \n {' '}\n {\n const value = parseInt(e.target.value, 10);\n setSize(value);\n }}\n />{' '}\n \n \n
\n );\n}\n\nasync function getCachesKeys() {\n const keys = await caches.keys();\n const total = {};\n for (const key of keys) {\n const cache = await caches.open(key);\n const k = await cache.keys();\n total[key] = k.length;\n }\n return total;\n}\n\nasync function getCachesSize() {\n const keys = await caches.keys();\n let total = {};\n let TOTAL = 0;\n for (const key of keys) {\n const cache = await caches.open(key);\n const k = await cache.keys();\n for (const item of k) {\n try {\n const response = await cache.match(item);\n const blob = await response.blob();\n total[key] = (total[key] || 0) + blob.size;\n TOTAL += blob.size;\n } catch (e) {\n alert('Failed to get cache size for ' + item);\n alert(e);\n }\n }\n }\n return {\n ...Object.fromEntries(\n Object.entries(total).map(([k, v]) => [k, prettyBytes(v)]),\n ),\n TOTAL: prettyBytes(TOTAL),\n };\n}\n\nfunction clearCacheKey(key) {\n return caches.delete(key);\n}\n\nasync function clearCaches() {\n const keys = await caches.keys();\n for (const key of keys) {\n await caches.delete(key);\n }\n}\n\nfunction PushNotificationsSection({ onClose }) {\n const { t } = useLingui();\n if (!isPushSupported()) return null;\n\n const { instance } = api();\n const [uiState, setUIState] = useState('default');\n const pushFormRef = useRef();\n const [allowNotifications, setAllowNotifications] = useState(false);\n const [needRelogin, setNeedRelogin] = useState(false);\n const previousPolicyRef = useRef();\n useEffect(() => {\n (async () => {\n setUIState('loading');\n try {\n const { subscription, backendSubscription } = await initSubscription();\n if (\n backendSubscription?.policy &&\n backendSubscription.policy !== 'none'\n ) {\n setAllowNotifications(true);\n const { alerts, policy } = backendSubscription;\n console.log('backendSubscription', backendSubscription);\n previousPolicyRef.current = policy;\n const { elements } = pushFormRef.current;\n const policyEl = elements.namedItem('policy');\n if (policyEl) policyEl.value = policy;\n // alerts is {}, iterate it\n Object.entries(alerts).forEach(([alert, value]) => {\n const el = elements.namedItem(alert);\n if (el?.type === 'checkbox') {\n el.checked = !!value;\n }\n });\n }\n setUIState('default');\n } catch (err) {\n console.warn(err);\n if (/outside.*authorized/i.test(err.message)) {\n setNeedRelogin(true);\n } else {\n alert(err?.message || err);\n }\n setUIState('error');\n }\n })();\n }, []);\n\n const isLoading = uiState === 'loading';\n\n return (\n \n );\n}\n\nexport default Settings;\n","const focusDeck = () => {\n let timer = setTimeout(() => {\n const columns = document.getElementById('columns');\n if (columns) {\n // Focus focused column\n const focusedColumn = columns.querySelector('.deck-container.focus');\n if (focusedColumn) {\n focusedColumn.focus();\n } else {\n // Focus first column within viewport\n const firstVisibleColumn = Array.from(\n columns.querySelectorAll('.deck-container'),\n ).find((column) => {\n const columnRect = column.getBoundingClientRect();\n return columnRect.left >= 0;\n });\n if (firstVisibleColumn) {\n firstVisibleColumn.focus();\n } else {\n // Focus first column\n columns.querySelector('.deck-container')?.focus?.();\n }\n }\n } else {\n const modals = document.querySelectorAll('#modal-container > *');\n if (modals?.length) {\n // Focus last modal\n const modal = modals[modals.length - 1]; // last one\n const modalFocusElement =\n modal.querySelector('[tabindex=\"-1\"]') || modal;\n if (modalFocusElement) {\n modalFocusElement.focus();\n return;\n }\n }\n const backDrop = document.querySelector('.deck-backdrop');\n if (backDrop) return;\n // Focus last deck\n const pages = document.querySelectorAll('.deck-container');\n const page = pages[pages.length - 1]; // last one\n if (page && page.tabIndex === -1) {\n console.log('FOCUS', page);\n page.focus();\n }\n }\n }, 100);\n return () => clearTimeout(timer);\n};\n\nexport default focusDeck;\n","import { useEffect, useRef } from 'preact/hooks';\nimport { useLocation } from 'react-router-dom';\n\n// Hook that runs a callback when the location changes\n// Won't run on the first render\n\nexport default function useLocationChange(fn) {\n if (!fn) return;\n const location = useLocation();\n const currentLocationRef = useRef(location.pathname);\n useEffect(() => {\n // console.log('location', {\n // current: currentLocationRef.current,\n // next: location.pathname,\n // });\n if (\n currentLocationRef.current &&\n location.pathname !== currentLocationRef.current\n ) {\n fn?.();\n }\n }, [location.pathname, fn]);\n}\n","import { Trans } from '@lingui/react/macro';\nimport punycode from 'punycode/';\n\nfunction AccountHandleInfo({ acct, instance }) {\n // acct = username or username@server\n let [username, server] = acct.split('@');\n if (!server) server = instance;\n const encodedAcct = punycode.toASCII(acct);\n return (\n \n
\n {username}\n @\n {server}\n \n
\n \n username\n {' '}\n \n {' '}\n server domain name\n \n
\n
\n );\n}\n\nexport default AccountHandleInfo;\n","const segmenter =\n typeof Intl?.Segmenter === 'function' ? new Intl.Segmenter() : null;\n\nclass GraphemeInput extends HTMLElement {\n #input;\n #inputHandler;\n #maxLengthNum;\n\n connectedCallback() {\n // connectedCallback may fire before child elements are fully parsed/available.\n // Using setTimeout defers execution until the next event loop tick, ensuring\n // the DOM is settled and child elements are accessible.\n setTimeout(() => {\n if (!this.isConnected) return;\n\n const input = this.querySelector('input, textarea');\n if (!input) return;\n\n const maxLength = input.getAttribute('maxlength');\n if (!maxLength) return;\n\n const maxLengthNum = parseInt(maxLength, 10);\n if (isNaN(maxLengthNum)) return;\n\n input.removeAttribute('maxlength');\n this.setAttribute('maxlength', maxLength);\n\n this.#input = input;\n this.#maxLengthNum = maxLengthNum;\n\n this.#inputHandler = () => this.#enforceLimit();\n input.addEventListener('input', this.#inputHandler);\n\n // Initialize current length for existing value\n const value = input.value;\n let currentLength;\n if (segmenter) {\n currentLength = [...segmenter.segment(value)].length;\n } else {\n currentLength = [...value].length;\n }\n this.setAttribute('current-length', currentLength);\n }, 0);\n }\n\n #enforceLimit() {\n const input = this.#input;\n const maxLengthNum = this.#maxLengthNum;\n const value = input.value;\n\n let truncatedValue;\n let currentLength;\n\n if (segmenter) {\n // Grapheme counting\n const segments = [...segmenter.segment(value)];\n currentLength = segments.length;\n if (segments.length > maxLengthNum) {\n truncatedValue = segments\n .slice(0, maxLengthNum)\n .map((s) => s.segment)\n .join('');\n currentLength = maxLengthNum;\n }\n } else {\n // Fallback to code points\n const codePoints = [...value];\n currentLength = codePoints.length;\n if (codePoints.length > maxLengthNum) {\n truncatedValue = codePoints.slice(0, maxLengthNum).join('');\n currentLength = maxLengthNum;\n }\n }\n\n this.setAttribute('current-length', currentLength);\n\n if (truncatedValue !== undefined) {\n input.value = truncatedValue;\n input.dispatchEvent(\n new Event('input', { bubbles: true, cancelable: true, composed: true }),\n );\n }\n }\n\n disconnectedCallback() {\n if (this.#input) {\n this.#input.removeEventListener('input', this.#inputHandler);\n }\n }\n}\n\ncustomElements.define('grapheme-input', GraphemeInput);\n","import './grapheme-input.js';\n\nimport { Trans, useLingui } from '@lingui/react/macro';\nimport { MenuItem, MenuDivider } from '@szhsin/react-menu';\nimport { useEffect, useState } from 'preact/hooks';\n\nimport Menu2 from '../components/menu2';\nimport { api } from '../utils/api';\nimport showToast from '../utils/show-toast';\nimport states from '../utils/states';\nimport {\n getAPIVersions,\n getCurrentInstanceConfiguration,\n} from '../utils/store-utils';\n\nimport Icon from './icon';\nimport Loader from './loader';\nimport MenuConfirm from './menu-confirm';\n\nlet _fieldKeyCounter = 0;\nfunction nextFieldKey() {\n return ++_fieldKeyCounter;\n}\n\nconst SUPPORTED_IMAGE_FORMATS = [\n 'image/jpeg',\n 'image/png',\n 'image/gif',\n 'image/webp',\n];\nconst SUPPORTED_IMAGE_FORMATS_STR = SUPPORTED_IMAGE_FORMATS.join(',');\n\nfunction FieldsAttributesRow({\n defaultName,\n defaultValue,\n disabled,\n index: i,\n nameMaxLength = 255,\n valueMaxLength = 255,\n onDelete,\n onMoveUp,\n onMoveDown,\n canMoveUp,\n canMoveDown,\n}) {\n const { t } = useLingui();\n\n return (\n \n | \n \n \n \n | \n \n \n \n \n | \n \n \n \n \n }\n >\n \n \n \n {defaultName.trim() === '' && defaultValue.trim() === '' ? (\n \n ) : (\n Delete this field?}\n onClick={onDelete}\n >\n {' '}\n \n Delete…\n \n \n )}\n \n | \n
\n );\n}\n\nfunction EditProfileSheet({ onClose = () => {} }) {\n const { t } = useLingui();\n const { masto } = api();\n const [uiState, setUIState] = useState('start');\n const [account, setAccount] = useState(null);\n const [profile, setProfile] = useState(null);\n const [headerPreview, setHeaderPreview] = useState(null);\n const [avatarPreview, setAvatarPreview] = useState(null);\n const [fieldsList, setFieldsList] = useState([]);\n\n const isUsingProfileAPI = !!profile;\n\n const configuration = getCurrentInstanceConfiguration();\n const {\n accounts: {\n maxDisplayNameLength,\n maxNoteLength,\n maxProfileFields,\n profileFieldNameLimit,\n profileFieldValueLimit,\n maxAvatarDescriptionLength,\n maxHeaderDescriptionLength,\n } = {},\n } = configuration || {};\n\n useEffect(() => {\n (async () => {\n try {\n const profileAPIEnabled = getAPIVersions()?.mastodon >= 9;\n if (profileAPIEnabled) {\n try {\n const prof = await masto.v1.profile.fetch();\n setProfile(prof);\n setFieldsList(\n (prof?.fields || []).map((f) => ({ ...f, _key: nextFieldKey() })),\n );\n setUIState('default');\n return;\n } catch (e) {\n console.error('Failed to fetch profile via Profile API', e);\n }\n }\n const acc = await masto.v1.accounts.verifyCredentials();\n setAccount(acc);\n setFieldsList(\n (acc?.source?.fields || []).map((f) => ({\n ...f,\n _key: nextFieldKey(),\n })),\n );\n setUIState('default');\n } catch (e) {\n console.error(e);\n setUIState('error');\n }\n })();\n }, []);\n\n console.log('EditProfileSheet', account, profile);\n\n const sourceData = profile ?? account?.source;\n const { note } = sourceData || {};\n const currentProfile = profile ?? account;\n const {\n avatarDescription = '',\n headerDescription = '',\n displayName = '',\n avatar = '',\n header = '',\n } = currentProfile || {};\n\n const avatarMediaAttachments = [\n ...(avatar ? [{ type: 'image', url: avatar }] : []),\n ...(avatarPreview ? [{ type: 'image', url: avatarPreview }] : []),\n ];\n const headerMediaAttachments = [\n ...(header ? [{ type: 'image', url: header }] : []),\n ...(headerPreview ? [{ type: 'image', url: headerPreview }] : []),\n ];\n\n const handleDeleteAvatar = async () => {\n if (!profile) return;\n setUIState('loading');\n try {\n await masto.v1.profile.avatar.remove();\n masto.v1.profile\n .update({\n avatarDescription: '',\n })\n .catch(() => {});\n setUIState('default');\n onClose?.({ state: 'success' });\n } catch (e) {\n setUIState('error');\n console.error(e);\n showToast(t`Unable to remove profile picture.`);\n setUIState('default');\n }\n };\n\n const handleDeleteHeader = async () => {\n if (!profile) return;\n setUIState('loading');\n try {\n await masto.v1.profile.header.remove();\n masto.v1.profile\n .update({\n headerDescription: '',\n })\n .catch(() => {});\n setUIState('default');\n onClose?.({ state: 'success' });\n } catch (e) {\n setUIState('error');\n console.error(e);\n showToast(t`Unable to remove header picture.`);\n setUIState('default');\n }\n };\n\n // Cleanup preview URLs on unmount\n useEffect(() => {\n return () => {\n if (headerPreview) URL.revokeObjectURL(headerPreview);\n if (avatarPreview) URL.revokeObjectURL(avatarPreview);\n };\n }, [headerPreview, avatarPreview]);\n\n return (\n \n {!!onClose && (\n
\n )}\n
\n
\n {uiState === 'start' ? (\n \n \n
\n ) : (\n \n )}\n \n
\n );\n}\n\nexport default EditProfileSheet;\n","import { Trans } from '@lingui/react/macro';\nimport { useEffect, useRef, useState } from 'preact/hooks';\n\nimport { api } from '../utils/api';\nimport { fetchRelationships } from '../utils/relationships';\nimport supports from '../utils/supports';\n\nimport AccountBlock from './account-block';\nimport Loader from './loader';\n\nconst ENDORSEMENTS_LIMIT = 80;\n\nfunction Endorsements({\n accountID: id,\n info,\n open = false,\n onlyOpenIfHasEndorsements = false,\n}) {\n const { masto } = api();\n const endorsementsContainer = useRef();\n const [endorsementsUIState, setEndorsementsUIState] = useState('default');\n const [endorsements, setEndorsements] = useState([]);\n const [relationshipsMap, setRelationshipsMap] = useState({});\n useEffect(() => {\n if (!supports('@mastodon/endorsements')) return;\n if (!open) return;\n (async () => {\n setEndorsementsUIState('loading');\n try {\n const accounts = await masto.v1.accounts.$select(id).endorsements.list({\n limit: ENDORSEMENTS_LIMIT,\n });\n console.log({ endorsements: accounts });\n if (!accounts.length) {\n setEndorsementsUIState('default');\n return;\n }\n setEndorsements(accounts);\n setEndorsementsUIState('default');\n setTimeout(() => {\n endorsementsContainer.current.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n });\n }, 300);\n\n const relationships = await fetchRelationships(\n accounts,\n relationshipsMap,\n );\n if (relationships) {\n setRelationshipsMap(relationships);\n }\n } catch (e) {\n console.error(e);\n setEndorsementsUIState('error');\n }\n })();\n }, [open, id]);\n\n const reallyOpen = onlyOpenIfHasEndorsements\n ? open && endorsements.length > 0\n : open;\n\n if (!reallyOpen) return null;\n\n return (\n \n
\n
\n
\n Profiles featured by @{info.username}\n
\n {endorsementsUIState === 'loading' ? (\n
\n \n
\n ) : endorsements.length > 0 ? (\n
10 ? 'expanded' : ''\n }`}\n >\n {endorsements.map((account) => (\n - \n \n
\n ))}\n
\n ) : (\n
\n No featured profiles.\n
\n )}\n
\n
\n
\n );\n}\n\nexport default Endorsements;\n","import { api } from './api';\nimport pmem from './pmem';\n\nasync function _isSearchEnabled(instance) {\n const { masto } = api({ instance });\n const results = await masto.v2.search.list({\n q: 'from:me',\n type: 'statuses',\n limit: 1,\n });\n return !!results?.statuses?.length;\n}\n\nexport default pmem(_isSearchEnabled);\n","import { api } from './api';\nimport pmem from './pmem';\nimport store from './store';\n\nconst FETCH_MAX_AGE = 1000 * 60; // 1 minute\nconst MAX_AGE = 24 * 60 * 60 * 1000; // 1 day\n\nexport const fetchLists = pmem(\n async () => {\n const { masto } = api();\n const lists = await masto.v1.lists.list();\n lists.sort((a, b) => a.title.localeCompare(b.title));\n\n if (lists.length) {\n setTimeout(() => {\n // Save to local storage, with saved timestamp\n store.account.set('lists', {\n lists,\n updatedAt: Date.now(),\n });\n }, 1);\n }\n\n return lists;\n },\n {\n expires: FETCH_MAX_AGE,\n },\n);\n\nexport async function getLists() {\n try {\n const { lists, updatedAt } = store.account.get('lists') || {};\n if (!lists?.length) return await fetchLists();\n if (Date.now() - updatedAt > MAX_AGE) {\n // Stale-while-revalidate\n fetchLists();\n return lists;\n }\n return lists;\n } catch (e) {\n return [];\n }\n}\n\nexport const fetchList = pmem(\n (id) => {\n const { masto } = api();\n return masto.v1.lists.$select(id).fetch();\n },\n {\n expires: FETCH_MAX_AGE,\n },\n);\n\nexport async function getList(id) {\n const { lists } = store.account.get('lists') || {};\n console.log({ lists });\n if (lists?.length) {\n const theList = lists.find((l) => l.id === id);\n if (theList) return theList;\n }\n try {\n return fetchList(id);\n } catch (e) {\n return null;\n }\n}\n\nexport async function getListTitle(id) {\n const list = await getList(id);\n return list?.title || '';\n}\n\nexport function addListStore(list) {\n const { lists } = store.account.get('lists') || {};\n if (lists?.length) {\n lists.push(list);\n lists.sort((a, b) => a.title.localeCompare(b.title));\n store.account.set('lists', {\n lists,\n updatedAt: Date.now(),\n });\n }\n}\n\nexport function updateListStore(list) {\n const { lists } = store.account.get('lists') || {};\n if (lists?.length) {\n const index = lists.findIndex((l) => l.id === list.id);\n if (index !== -1) {\n lists[index] = list;\n lists.sort((a, b) => a.title.localeCompare(b.title));\n store.account.set('lists', {\n lists,\n updatedAt: Date.now(),\n });\n }\n }\n}\n\nexport function deleteListStore(listID) {\n const { lists } = store.account.get('lists') || {};\n if (lists?.length) {\n const index = lists.findIndex((l) => l.id === listID);\n if (index !== -1) {\n lists.splice(index, 1);\n store.account.set('lists', {\n lists,\n updatedAt: Date.now(),\n });\n }\n }\n}\n","import './list-exclusive-badge.css';\n\nimport { useLingui } from '@lingui/react/macro';\n\nimport Icon from './icon';\n\nfunction ListExclusiveBadge({ insignificant }) {\n const { t } = useLingui();\n return (\n \n );\n}\n\nexport default ListExclusiveBadge;\n","import { Trans, useLingui } from '@lingui/react/macro';\nimport { useEffect, useRef, useState } from 'preact/hooks';\n\nimport { api } from '../utils/api';\nimport { addListStore, deleteListStore, updateListStore } from '../utils/lists';\nimport supports from '../utils/supports';\n\nimport Icon from './icon';\nimport ListExclusiveBadge from './list-exclusive-badge';\nimport MenuConfirm from './menu-confirm';\n\nfunction ListAddEdit({ list, onClose }) {\n const { t } = useLingui();\n const { masto } = api();\n const [uiState, setUIState] = useState('default');\n const editMode = !!list;\n const nameFieldRef = useRef();\n const repliesPolicyFieldRef = useRef();\n const exclusiveFieldRef = useRef();\n useEffect(() => {\n if (editMode) {\n nameFieldRef.current.value = list.title;\n repliesPolicyFieldRef.current.value = list.repliesPolicy;\n if (exclusiveFieldRef.current) {\n exclusiveFieldRef.current.checked = list.exclusive;\n }\n }\n }, [editMode]);\n const supportsExclusive =\n supports('@mastodon/list-exclusive') ||\n supports('@gotosocial/list-exclusive');\n\n return (\n \n {!!onClose && (\n
\n )}{' '}\n
\n {editMode ? t`Edit list` : t`New list`}
\n \n
\n \n \n
\n );\n}\n\nexport default ListAddEdit;\n","import { Trans, useLingui } from '@lingui/react/macro';\nimport { useEffect, useReducer, useState } from 'preact/hooks';\n\nimport { api } from '../utils/api';\nimport { getLists } from '../utils/lists';\n\nimport Icon from './icon';\nimport ListAddEdit from './list-add-edit';\nimport Loader from './loader';\nimport Modal from './modal';\n\nfunction AddRemoveListsSheet({ accountID, onClose }) {\n const { t } = useLingui();\n const { masto } = api();\n const [uiState, setUIState] = useState('default');\n const [lists, setLists] = useState([]);\n const [listsContainingAccount, setListsContainingAccount] = useState([]);\n const [reloadCount, reload] = useReducer((c) => c + 1, 0);\n\n useEffect(() => {\n setUIState('loading');\n (async () => {\n try {\n const lists = await getLists();\n setLists(lists);\n const listsContainingAccount = await masto.v1.accounts\n .$select(accountID)\n .lists.list();\n console.log({ lists, listsContainingAccount });\n setListsContainingAccount(listsContainingAccount);\n setUIState('default');\n } catch (e) {\n console.error(e);\n setUIState('error');\n }\n })();\n }, [reloadCount]);\n\n const [showListAddEditModal, setShowListAddEditModal] = useState(false);\n\n return (\n \n {!!onClose && (\n
\n )}\n
\n \n Add/Remove from Lists\n
\n \n
\n {lists.length > 0 ? (\n \n {lists.map((list) => {\n const inList = listsContainingAccount.some(\n (l) => l.id === list.id,\n );\n return (\n - \n \n
\n );\n })}\n
\n ) : uiState === 'loading' ? (\n \n \n
\n ) : uiState === 'error' ? (\n \n Unable to load lists.\n
\n ) : (\n \n No lists.\n
\n )}\n \n \n {showListAddEditModal && (\n
{\n if (e.target === e.currentTarget) {\n setShowListAddEditModal(false);\n }\n }}\n >\n {\n if (result.state === 'success') {\n reload();\n }\n setShowListAddEditModal(false);\n }}\n />\n \n )}\n
\n );\n}\n\nexport default AddRemoveListsSheet;\n","import { Trans, useLingui } from '@lingui/react/macro';\nimport { useEffect, useRef, useState } from 'preact/hooks';\n\nimport { api } from '../utils/api';\n\nimport Icon from './icon';\nimport Loader from './loader';\n\nfunction PrivateNoteSheet({\n account,\n note: initialNote,\n onRelationshipChange = () => {},\n onClose = () => {},\n}) {\n const { t } = useLingui();\n const { masto } = api();\n const [uiState, setUIState] = useState('default');\n const textareaRef = useRef(null);\n\n useEffect(() => {\n let timer;\n if (textareaRef.current && !initialNote) {\n timer = setTimeout(() => {\n textareaRef.current.focus?.();\n }, 100);\n }\n return () => {\n clearTimeout(timer);\n };\n }, []);\n\n return (\n \n {!!onClose && (\n \n )}\n \n \n Notes\n {' '}\n \n Only visible to you\n \n \n \n \n \n
\n );\n}\n\nexport default PrivateNoteSheet;\n","import { Trans, useLingui } from '@lingui/react/macro';\n\nimport getHTMLText from '../utils/getHTMLText';\n\nimport Icon from './icon';\nimport TranslationBlock from './translation-block';\n\nfunction TranslatedBioSheet({ note, fields, onClose }) {\n const { t } = useLingui();\n const fieldsText =\n fields\n ?.map(({ name, value }) => `${name}\\n${getHTMLText(value)}`)\n .join('\\n\\n') || '';\n\n const text = getHTMLText(note) + (fieldsText ? `\\n\\n${fieldsText}` : '');\n\n return (\n \n {!!onClose && (\n
\n )}\n
\n \n Translated Bio\n
\n \n
\n \n {text}\n
\n \n \n
\n );\n}\n\nexport default TranslatedBioSheet;\n","import { msg } from '@lingui/core/macro';\nimport { Trans, useLingui } from '@lingui/react/macro';\nimport { MenuDivider, MenuItem } from '@szhsin/react-menu';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport punycode from 'punycode/';\n\nimport { api } from '../utils/api';\nimport i18nDuration from '../utils/i18n-duration';\nimport isSearchEnabled from '../utils/is-search-enabled';\nimport niceDateTime from '../utils/nice-date-time';\nimport showCompose from '../utils/show-compose';\nimport showToast from '../utils/show-toast';\nimport states from '../utils/states';\nimport { getCurrentAccountID, updateAccount } from '../utils/store-utils';\nimport supports from '../utils/supports';\n\nimport { handleScannerClick } from './account-info';\nimport AddRemoveListsSheet from './add-remove-lists-sheet';\nimport Icon from './icon';\nimport Loader from './loader';\nimport MenuConfirm from './menu-confirm';\nimport Menu2 from './menu2';\nimport Modal from './modal';\nimport PrivateNoteSheet from './private-note-sheet';\nimport SubMenu2 from './submenu2';\nimport TranslatedBioSheet from './translated-bio-sheet';\n\nconst MUTE_DURATIONS = [\n 60 * 5, // 5 minutes\n 60 * 30, // 30 minutes\n 60 * 60, // 1 hour\n 60 * 60 * 6, // 6 hours\n 60 * 60 * 24, // 1 day\n 60 * 60 * 24 * 3, // 3 days\n 60 * 60 * 24 * 7, // 1 week\n 60 * 60 * 24 * 30, // 30 days\n 0, // forever\n];\nconst MUTE_DURATIONS_LABELS = {\n 0: msg`Forever`,\n 300: i18nDuration(5, 'minute'),\n 1_800: i18nDuration(30, 'minute'),\n 3_600: i18nDuration(1, 'hour'),\n 21_600: i18nDuration(6, 'hour'),\n 86_400: i18nDuration(1, 'day'),\n 259_200: i18nDuration(3, 'day'),\n 604_800: i18nDuration(1, 'week'),\n 2592_000: i18nDuration(30, 'day'),\n};\n\nfunction RelatedActions({\n info,\n instance,\n standalone,\n authenticated,\n onRelationshipChange = () => {},\n setShowEditProfile = () => {},\n showEndorsements = false,\n renderEndorsements = false,\n setRenderEndorsements = () => {},\n}) {\n if (!info) return null;\n const { _, t } = useLingui();\n const {\n masto: currentMasto,\n instance: currentInstance,\n authenticated: currentAuthenticated,\n } = api();\n const sameInstance = instance === currentInstance;\n\n const [relationshipUIState, setRelationshipUIState] = useState('default');\n const [relationship, setRelationship] = useState(null);\n\n const { id, acct, url, username, locked, lastStatusAt, note, fields, moved } =\n info;\n const accountID = useRef(id);\n\n const {\n following,\n showingReblogs,\n notifying,\n followedBy,\n blocking,\n blockedBy,\n muting,\n mutingNotifications,\n requested,\n domainBlocking,\n endorsed,\n note: privateNote,\n } = relationship || {};\n\n const [currentInfo, setCurrentInfo] = useState(null);\n const [isSelf, setIsSelf] = useState(false);\n\n const acctWithInstance = acct.includes('@') ? acct : `${acct}@${instance}`;\n\n const supportsEndorsements = supports('@mastodon/endorsements');\n\n useEffect(() => {\n if (info) {\n const currentAccount = getCurrentAccountID();\n let currentID;\n (async () => {\n if (sameInstance && authenticated) {\n currentID = id;\n } else if (!sameInstance && currentAuthenticated) {\n // Grab this account from my logged-in instance\n const acctHasInstance = info.acct.includes('@');\n try {\n const results = await currentMasto.v2.search.list({\n q: acctHasInstance ? info.acct : `${info.username}@${instance}`,\n type: 'accounts',\n limit: 1,\n resolve: true,\n });\n console.log('🥏 Fetched account from logged-in instance', results);\n if (results.accounts.length) {\n currentID = results.accounts[0].id;\n setCurrentInfo(results.accounts[0]);\n }\n } catch (e) {\n console.error(e);\n }\n }\n\n if (!currentID) return;\n\n if (currentAccount === currentID) {\n // It's myself!\n setIsSelf(true);\n return;\n }\n\n accountID.current = currentID;\n\n // if (moved) return;\n\n setRelationshipUIState('loading');\n\n const fetchRelationships = currentMasto.v1.accounts.relationships.fetch(\n {\n id: [currentID],\n },\n );\n\n try {\n const relationships = await fetchRelationships;\n console.log('fetched relationship', relationships);\n setRelationshipUIState('default');\n\n if (relationships.length) {\n const relationship = relationships[0];\n setRelationship(relationship);\n onRelationshipChange({ relationship, currentID });\n }\n } catch (e) {\n console.error(e);\n setRelationshipUIState('error');\n }\n })();\n }\n }, [info, authenticated]);\n\n useEffect(() => {\n if (info && isSelf) {\n updateAccount(info);\n }\n }, [info, isSelf]);\n\n const loading = relationshipUIState === 'loading';\n\n const [showTranslatedBio, setShowTranslatedBio] = useState(false);\n const [showAddRemoveLists, setShowAddRemoveLists] = useState(false);\n const [showPrivateNoteModal, setShowPrivateNoteModal] = useState(false);\n const [lists, setLists] = useState([]);\n const [searchEnabled, setSearchEnabled] = useState(false);\n\n useEffect(() => {\n if (!currentAuthenticated) return;\n (async () => {\n const enabled = await isSearchEnabled(currentInstance);\n setSearchEnabled(enabled);\n })();\n }, [currentInstance, currentAuthenticated]);\n\n let { headerStatic, avatarStatic } = info;\n if (!headerStatic || /missing\\.png$/.test(headerStatic)) {\n if (avatarStatic && !/missing\\.png$/.test(avatarStatic)) {\n headerStatic = avatarStatic;\n }\n }\n\n return (\n <>\n \n \n {followedBy ? (\n \n Follows you\n \n ) : !!lastStatusAt ? (\n \n \n Last post:{' '}\n \n {niceDateTime(lastStatusAt, {\n hideTime: true,\n })}\n \n \n \n ) : (\n \n )}\n {muting && (\n \n Muted\n \n )}\n {blocking && (\n \n Blocked\n \n )}\n {' '}\n \n {!!privateNote && (\n \n )}\n \n \n \n }\n onMenuChange={(e) => {\n if (following && e.open) {\n // Fetch lists that have this account\n (async () => {\n try {\n const lists = await currentMasto.v1.accounts\n .$select(accountID.current)\n .lists.list();\n console.log('fetched account lists', lists);\n setLists(lists);\n } catch (e) {\n console.error(e);\n }\n })();\n }\n }}\n >\n {currentAuthenticated && !isSelf ? (\n <>\n \n {searchEnabled && (\n \n )}\n \n {supports('@mastodon/profile-private-note') && (\n \n )}\n {following && !!relationship && (\n <>\n \n \n >\n )}\n {supportsEndorsements && following && (\n \n )}\n {showEndorsements &&\n supportsEndorsements &&\n !renderEndorsements && (\n \n )}\n {/* Add/remove from lists is only possible if following the account */}\n {following && (\n \n )}\n \n >\n ) : (\n <>\n {searchEnabled && isSelf && (\n \n )}\n {supportsEndorsements && !renderEndorsements && (\n <>\n \n >\n )}\n {((searchEnabled && isSelf) ||\n (supportsEndorsements && !renderEndorsements)) && (\n \n )}\n >\n )}\n \n \n \n \n {!!relationship && (\n <>\n \n {muting ? (\n \n ) : (\n \n \n \n \n \n \n \n >\n }\n >\n \n \n )}\n {followedBy && (\n \n \n \n \n Remove @{username}{' '}\n from followers?\n \n \n >\n }\n onClick={() => {\n setRelationshipUIState('loading');\n (async () => {\n try {\n const newRelationship = await currentMasto.v1.accounts\n .$select(currentInfo?.id || id)\n .removeFromFollowers();\n console.log(\n 'removing from followers',\n newRelationship,\n );\n setRelationship(newRelationship);\n setRelationshipUIState('default');\n showToast(t`@${username} removed from followers`);\n states.reloadGenericAccounts.id = 'followers';\n states.reloadGenericAccounts.counter++;\n } catch (e) {\n console.error(e);\n setRelationshipUIState('error');\n }\n })();\n }}\n >\n \n \n Remove follower…\n \n \n )}\n \n \n \n \n Block @{username}?\n \n \n >\n }\n itemProps={{\n className: 'danger',\n }}\n menuItemClassName=\"danger\"\n onClick={() => {\n // if (!blocking && !confirm(`Block @${username}?`)) {\n // return;\n // }\n setRelationshipUIState('loading');\n (async () => {\n try {\n if (blocking) {\n const newRelationship = await currentMasto.v1.accounts\n .$select(currentInfo?.id || id)\n .unblock();\n console.log('unblocking', newRelationship);\n setRelationship(newRelationship);\n setRelationshipUIState('default');\n showToast(t`Unblocked @${username}`);\n } else {\n const newRelationship = await currentMasto.v1.accounts\n .$select(currentInfo?.id || id)\n .block();\n console.log('blocking', newRelationship);\n setRelationship(newRelationship);\n setRelationshipUIState('default');\n showToast(t`Blocked @${username}`);\n }\n states.reloadGenericAccounts.id = 'block';\n states.reloadGenericAccounts.counter++;\n } catch (e) {\n console.error(e);\n setRelationshipUIState('error');\n if (blocking) {\n showToast(t`Unable to unblock @${username}`);\n } else {\n showToast(t`Unable to block @${username}`);\n }\n }\n })();\n }}\n >\n {blocking ? (\n <>\n \n \n \n Unblock @{username}\n \n \n >\n ) : (\n <>\n \n \n \n Block @{username}…\n \n \n >\n )}\n \n \n >\n )}\n {import.meta.env.DEV && currentAuthenticated && isSelf && (\n <>\n \n \n >\n )}\n \n {currentAuthenticated && isSelf && (\n \n )}\n {!relationship && relationshipUIState === 'loading' && (\n \n )}\n {currentAuthenticated && isSelf && standalone ? (\n \n ) : (\n !isSelf &&\n !!relationship &&\n !moved && (\n \n {requested\n ? t`Withdraw follow request?`\n : t`Unfollow @${info.acct || info.username}?`}\n \n }\n menuItemClassName=\"danger\"\n align=\"end\"\n disabled={loading}\n onClick={() => {\n setRelationshipUIState('loading');\n (async () => {\n try {\n let newRelationship;\n\n if (following || requested) {\n // const yes = confirm(\n // requested\n // ? 'Withdraw follow request?'\n // : `Unfollow @${info.acct || info.username}?`,\n // );\n\n // if (yes) {\n newRelationship = await currentMasto.v1.accounts\n .$select(accountID.current)\n .unfollow();\n // }\n } else {\n newRelationship = await currentMasto.v1.accounts\n .$select(accountID.current)\n .follow();\n }\n\n if (newRelationship) {\n setRelationship(newRelationship);\n\n // Show endorsements if start following\n if (\n showEndorsements &&\n supportsEndorsements &&\n !renderEndorsements &&\n newRelationship.following\n ) {\n setRenderEndorsements('onlyOpenIfHasEndorsements');\n }\n }\n setRelationshipUIState('default');\n } catch (e) {\n alert(e);\n setRelationshipUIState('error');\n }\n })();\n }}\n >\n \n \n )\n )}\n \n
\n {!!showTranslatedBio && (\n {\n setShowTranslatedBio(false);\n }}\n >\n setShowTranslatedBio(false)}\n />\n \n )}\n {!!showAddRemoveLists && (\n {\n setShowAddRemoveLists(false);\n }}\n >\n setShowAddRemoveLists(false)}\n />\n \n )}\n {!!showPrivateNoteModal && (\n {\n setShowPrivateNoteModal(false);\n }}\n >\n {\n setRelationship(relationship);\n // onRelationshipChange({ relationship, currentID: accountID.current });\n }}\n onClose={() => setShowPrivateNoteModal(false)}\n />\n \n )}\n >\n );\n}\n\nfunction niceAccountURL(url) {\n if (!url) return;\n const urlObj = URL.parse(url);\n if (!urlObj) return;\n const { host, pathname } = urlObj;\n const path = pathname.replace(/\\/$/, '').replace(/^\\//, '');\n return (\n <>\n {punycode.toUnicode(host)}/\n \n {path}\n >\n );\n}\n\nexport default RelatedActions;\n","import './account-info.css';\n\nimport { msg, plural } from '@lingui/core/macro';\nimport { Plural, Trans, useLingui } from '@lingui/react/macro';\nimport { MenuDivider, MenuItem } from '@szhsin/react-menu';\nimport {\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'preact/hooks';\n\nimport { api } from '../utils/api';\nimport enhanceContent from '../utils/enhance-content';\nimport getDomain from '../utils/get-domain';\nimport handleContentLinks from '../utils/handle-content-links';\nimport niceDateTime from '../utils/nice-date-time';\nimport pmem from '../utils/pmem';\nimport { supportsNativeQuote } from '../utils/quote-utils';\nimport shortenNumber from '../utils/shorten-number';\nimport showToast from '../utils/show-toast';\nimport states, { hideAllModals } from '../utils/states';\nimport {\n getAccounts,\n getCurrentAccountID,\n saveAccounts,\n} from '../utils/store-utils';\nimport supports from '../utils/supports';\n\nimport AccountBlock from './account-block';\nimport AccountHandleInfo from './account-handle-info';\nimport Avatar from './avatar';\nimport EditProfileSheet from './edit-profile-sheet';\nimport EmojiText from './emoji-text';\nimport Endorsements from './endorsements';\nimport Icon from './icon';\nimport Link from './link';\nimport Menu2 from './menu2';\nimport Modal from './modal';\nimport RelatedActions from './related-actions';\n\nconst LIMIT = 80;\n\nconst ACCOUNT_INFO_MAX_AGE = 1000 * 60 * 10; // 10 mins\n\nfunction fetchFamiliarFollowers(currentID, masto) {\n return masto.v1.accounts.familiarFollowers.fetch({\n id: [currentID],\n });\n}\nconst memFetchFamiliarFollowers = pmem(fetchFamiliarFollowers, {\n expires: ACCOUNT_INFO_MAX_AGE,\n});\n\nasync function fetchPostingStats(accountID, masto) {\n const fetchStatuses = masto.v1.accounts\n .$select(accountID)\n .statuses.list({\n limit: 20,\n })\n .values()\n .next();\n\n const { value: statuses } = await fetchStatuses;\n console.log('fetched statuses', statuses);\n const stats = {\n total: statuses.length,\n originals: 0,\n replies: 0,\n boosts: 0,\n quotes: 0,\n };\n // Categories statuses by type\n // - Original posts (not replies to others)\n // - Threads (self-replies + 1st original post)\n // - Boosts (reblogs)\n // - Replies (not-self replies)\n // - Quotes\n statuses.forEach((status) => {\n if (status.reblog) {\n stats.boosts++;\n } else if (\n !!status.inReplyToId &&\n status.inReplyToAccountId !== status.account.id // Not self-reply\n ) {\n stats.replies++;\n } else if (\n supportsNativeQuote() &&\n (status.quote?.id || status.quote?.quotedStatus?.id)\n ) {\n stats.quotes++;\n } else {\n stats.originals++;\n }\n });\n\n // Count days since last post\n if (statuses.length) {\n stats.daysSinceLastPost = Math.ceil(\n (Date.now() - Date.parse(statuses[statuses.length - 1].createdAt)) /\n 86400000,\n );\n }\n\n console.log('posting stats', stats);\n return stats;\n}\nconst memFetchPostingStats = pmem(fetchPostingStats, {\n expires: ACCOUNT_INFO_MAX_AGE,\n});\n\nconst isValidUrl = (string) => {\n try {\n new URL(string);\n return true;\n } catch (_) {\n return false;\n }\n};\nexport const handleScannerClick = () => {\n states.showQrScannerModal = {\n checkValidity: isValidUrl,\n actionableText: msg`View profile`,\n onClose: ({ text } = {}) => {\n if (text) {\n hideAllModals();\n location.hash = `/${text}`;\n }\n },\n };\n};\n\nfunction AccountInfo({\n account,\n fetchAccount = () => {},\n standalone,\n instance,\n authenticated,\n showEndorsements = false,\n}) {\n const { i18n, t } = useLingui();\n const { masto, authenticated: currentAuthenticated } = api({\n instance,\n });\n const { masto: currentMasto, instance: currentInstance } = api();\n const [uiState, setUIState] = useState('default');\n const isString = typeof account === 'string';\n const [info, setInfo] = useState(isString ? null : account);\n const [reloadCount, reload] = useReducer((c) => c + 1, 0);\n\n const sameCurrentInstance = useMemo(\n () => instance === currentInstance,\n [instance, currentInstance],\n );\n\n useEffect(() => {\n if (!isString) {\n setInfo(account);\n return;\n }\n setUIState('loading');\n (async () => {\n try {\n const info = await fetchAccount();\n states.accounts[`${info.id}@${instance}`] = info;\n setInfo(info);\n setUIState('default');\n } catch (e) {\n console.error(e);\n setInfo(null);\n setUIState('error');\n }\n })();\n }, [isString, account, fetchAccount, reloadCount]);\n\n const {\n acct,\n avatar,\n avatarStatic,\n avatarDescription,\n bot,\n createdAt,\n displayName,\n emojis,\n fields,\n followersCount,\n followingCount,\n group,\n // header,\n // headerStatic,\n headerDescription,\n id,\n lastStatusAt,\n locked,\n note,\n statusesCount,\n url,\n username,\n memorial,\n moved,\n roles,\n hideCollections,\n } = info || {};\n let headerIsAvatar = false;\n let { header, headerStatic } = info || {};\n if (!header || /missing\\.png$/.test(header)) {\n if (avatar && !/missing\\.png$/.test(avatar)) {\n header = avatar;\n headerIsAvatar = true;\n if (avatarStatic && !/missing\\.png$/.test(avatarStatic)) {\n headerStatic = avatarStatic;\n }\n }\n }\n\n const isSelf = useMemo(() => id === getCurrentAccountID(), [id]);\n\n useEffect(() => {\n const infoHasEssentials = !!(\n info?.id &&\n info?.username &&\n info?.acct &&\n info?.avatar &&\n info?.avatarStatic &&\n info?.displayName &&\n info?.url\n );\n if (isSelf && instance && infoHasEssentials) {\n const accounts = getAccounts();\n let updated = false;\n accounts.forEach((account) => {\n if (account.info.id === info.id && account.instanceURL === instance) {\n account.info = info;\n updated = true;\n }\n });\n if (updated) {\n console.log('Updated account info', info);\n saveAccounts(accounts);\n }\n }\n }, [isSelf, info, instance]);\n\n const accountInstance = getDomain(url);\n\n const [headerCornerColors, setHeaderCornerColors] = useState([]);\n\n const followersIterator = useRef();\n const familiarFollowersCache = useRef([]);\n async function fetchFollowers(firstLoad) {\n if (firstLoad || !followersIterator.current) {\n followersIterator.current = masto.v1.accounts\n .$select(id)\n .followers.list({\n limit: LIMIT,\n })\n .values();\n }\n const results = await followersIterator.current.next();\n if (isSelf) return results;\n if (!sameCurrentInstance) return results;\n\n const { value } = results;\n let newValue = [];\n // On first load, fetch familiar followers, merge to top of results' `value`\n // Remove dups on every fetch\n if (firstLoad) {\n let familiarFollowers = [];\n try {\n familiarFollowers = await masto.v1.accounts.familiarFollowers.fetch({\n id: [id],\n });\n } catch (e) {}\n familiarFollowersCache.current = familiarFollowers?.[0]?.accounts || [];\n newValue = [\n ...familiarFollowersCache.current,\n ...value.filter(\n (account) =>\n !familiarFollowersCache.current.some(\n (familiar) => familiar.id === account.id,\n ),\n ),\n ];\n } else if (value?.length) {\n newValue = value.filter(\n (account) =>\n !familiarFollowersCache.current.some(\n (familiar) => familiar.id === account.id,\n ),\n );\n }\n\n return {\n ...results,\n value: newValue,\n };\n }\n\n const followingIterator = useRef();\n async function fetchFollowing(firstLoad) {\n if (firstLoad || !followingIterator.current) {\n followingIterator.current = masto.v1.accounts\n .$select(id)\n .following.list({\n limit: LIMIT,\n })\n .values();\n }\n const results = await followingIterator.current.next();\n return results;\n }\n\n const LinkOrDiv = standalone ? 'div' : Link;\n const accountLink = instance ? `/${instance}/a/${id}` : `/a/${id}`;\n\n const [familiarFollowers, setFamiliarFollowers] = useState([]);\n const [postingStats, setPostingStats] = useState();\n const [postingStatsUIState, setPostingStatsUIState] = useState('default');\n const hasPostingStats = !!postingStats?.total;\n\n const renderFamiliarFollowers = async (currentID) => {\n try {\n const followers = await memFetchFamiliarFollowers(\n currentID,\n currentMasto,\n );\n console.log('fetched familiar followers', followers);\n setFamiliarFollowers(\n followers[0].accounts.slice(0, FAMILIAR_FOLLOWERS_LIMIT),\n );\n } catch (e) {\n console.error(e);\n }\n };\n\n const renderPostingStats = async () => {\n if (!id) return;\n setPostingStatsUIState('loading');\n try {\n const stats = await memFetchPostingStats(id, masto);\n setPostingStats(stats);\n setPostingStatsUIState('default');\n } catch (e) {\n console.error(e);\n setPostingStatsUIState('error');\n }\n };\n\n const onRelationshipChange = useCallback(\n ({ relationship, currentID }) => {\n if (!relationship.following) {\n renderFamiliarFollowers(currentID);\n if (!standalone && statusesCount > 0) {\n // Only render posting stats if not standalone and has posts\n renderPostingStats();\n }\n }\n },\n [standalone, id, statusesCount],\n );\n\n const onProfileUpdate = useCallback(\n (newAccount) => {\n if (newAccount.id === id) {\n console.log('Updated account info', newAccount);\n setInfo(newAccount);\n states.accounts[`${newAccount.id}@${instance}`] = newAccount;\n }\n },\n [id, instance],\n );\n\n const isStringURL = isString && account && /^https?:\\/\\//.test(account);\n\n const [showEditProfile, setShowEditProfile] = useState(false);\n\n const [renderEndorsements, setRenderEndorsements] = useState(false);\n\n return (\n <>\n \n {uiState === 'error' && (\n
\n
\n Unable to load account.\n
\n {isString ? (\n
\n {isStringURL ? (\n \n {account}\n \n ) : (\n {account}\n )}\n
\n ) : (\n
\n \n Go to account page \n \n
\n )}\n {isString && (\n
\n )}\n
\n )}\n {uiState === 'loading' ? (\n <>\n
\n
\n \n
███████ ████ ████
\n
████ ████████ ██████ █████████ ████ ██
\n
\n \n \n \n \n \n \n
\n \n >\n ) : (\n info && (\n <>\n {!!moved && (\n
\n
\n \n {displayName} has indicated that their new account\n is now:\n \n
\n
{\n e.stopPropagation();\n states.showAccount = moved;\n }}\n />\n \n )}\n {!!header && !/missing\\.png$/.test(header) && (\n {\n if (e.target.crossOrigin) {\n if (e.target.src !== headerStatic) {\n e.target.src = headerStatic;\n } else {\n e.target.removeAttribute('crossorigin');\n e.target.src = header;\n }\n } else if (e.target.src !== headerStatic) {\n e.target.src = headerStatic;\n } else {\n e.target.remove();\n }\n }}\n crossOrigin=\"anonymous\"\n onLoad={(e) => {\n e.target.classList.add('loaded');\n const { width, height } = e.target;\n // 25px per second (rough estimate)\n // Clamp between 10s and 120s\n e.target.style.setProperty(\n '--anim-duration',\n `${Math.min(\n Math.max(Math.max(width, height) / 25, 10),\n 120,\n )}s`,\n );\n try {\n // Get color from four corners of image\n const canvas = window.OffscreenCanvas\n ? new OffscreenCanvas(1, 1)\n : document.createElement('canvas');\n const ctx = canvas.getContext('2d', {\n willReadFrequently: true,\n });\n canvas.width = width;\n canvas.height = height;\n ctx.imageSmoothingEnabled = false;\n ctx.drawImage(e.target, 0, 0);\n // const colors = [\n // ctx.getImageData(0, 0, 1, 1).data,\n // ctx.getImageData(e.target.width - 1, 0, 1, 1).data,\n // ctx.getImageData(0, e.target.height - 1, 1, 1).data,\n // ctx.getImageData(\n // e.target.width - 1,\n // e.target.height - 1,\n // 1,\n // 1,\n // ).data,\n // ];\n // Get 10x10 pixels from corners, get average color from each\n const pixelDimension = 10;\n const colors = [\n ctx.getImageData(0, 0, pixelDimension, pixelDimension)\n .data,\n ctx.getImageData(\n e.target.width - pixelDimension,\n 0,\n pixelDimension,\n pixelDimension,\n ).data,\n ctx.getImageData(\n 0,\n e.target.height - pixelDimension,\n pixelDimension,\n pixelDimension,\n ).data,\n ctx.getImageData(\n e.target.width - pixelDimension,\n e.target.height - pixelDimension,\n pixelDimension,\n pixelDimension,\n ).data,\n ].map((data) => {\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n for (let i = 0; i < data.length; i += 4) {\n r += data[i];\n g += data[i + 1];\n b += data[i + 2];\n a += data[i + 3];\n }\n const dataLength = data.length / 4;\n return [\n r / dataLength,\n g / dataLength,\n b / dataLength,\n a / dataLength,\n ];\n });\n const rgbColors = colors.map((color) => {\n const [r, g, b, a] = lightenRGB(color);\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n });\n setHeaderCornerColors(rgbColors);\n console.log({ colors, rgbColors });\n } catch (e) {\n // Silently fail\n }\n }}\n />\n )}\n
\n {standalone ? (\n \n {}}\n />\n \n }\n >\n \n \n \n \n \n \n {!!headerStatic && !headerIsAvatar && (\n \n )}\n {currentAuthenticated &&\n isSelf &&\n supports('@mastodon/profile-edit') && (\n <>\n \n \n >\n )}\n \n ) : (\n \n )}\n \n \n \n {!!memorial && (\n \n In Memoriam\n \n )}\n {!!bot && (\n \n Automated\n \n )}\n {!!group && (\n \n Group\n \n )}\n {/* {roles?.map((role) => (\n \n {role.name}\n {!!accountInstance && (\n <>\n {' '}\n \n {accountInstance}\n \n >\n )}\n \n ))} */}\n \n \n {!!postingStats && (\n {\n // states.showAccount = false;\n // }}\n onClick={\n import.meta.env.DEV && standalone\n ? () => {\n // Debug: undo back\n setPostingStats(null);\n }\n : undefined\n }\n >\n \n
\n {hasPostingStats ? (\n
\n
\n {postingStats.daysSinceLastPost < 365\n ? plural(postingStats.total, {\n one: plural(\n postingStats.daysSinceLastPost,\n {\n one: `Last 1 post in the past 1 day`,\n other: `Last 1 post in the past ${postingStats.daysSinceLastPost} days`,\n },\n ),\n other: plural(\n postingStats.daysSinceLastPost,\n {\n one: `Last ${postingStats.total} posts in the past 1 day`,\n other: `Last ${postingStats.total} posts in the past ${postingStats.daysSinceLastPost} days`,\n },\n ),\n })\n : plural(postingStats.total, {\n one: 'Last 1 post in the past year(s)',\n other: `Last ${postingStats.total} posts in the past year(s)`,\n })}\n
\n
\n {postingStats.originals > 0 && (\n
\n )}\n {postingStats.replies > 0 && (\n
\n )}\n {postingStats.quotes > 0 && (\n
\n )}\n {postingStats.boosts > 0 && (\n
\n )}\n
\n
\n \n {' '}\n Original\n {' '}\n \n {' '}\n Replies\n {' '}\n {supportsNativeQuote() && (\n \n {' '}\n Quotes\n \n )}\n \n {' '}\n Boosts\n \n
\n
\n ) : (\n
\n Post stats unavailable.\n
\n )}\n
\n
\n \n )}\n {!moved && (\n \n )}\n \n \n \n >\n )\n )}\n \n {!!showEditProfile && (\n {\n setShowEditProfile(false);\n }}\n >\n {\n setShowEditProfile(false);\n if (state === 'success') {\n if (account) {\n onProfileUpdate(account);\n } else {\n (async () => {\n try {\n const updatedAccount =\n await masto.v1.accounts.verifyCredentials();\n onProfileUpdate(updatedAccount);\n } catch (e) {\n console.error(e);\n }\n })();\n }\n }\n }}\n />\n \n )}\n >\n );\n}\n\nconst FAMILIAR_FOLLOWERS_LIMIT = 3;\n\nfunction lightenRGB([r, g, b]) {\n const luminence = 0.2126 * r + 0.7152 * g + 0.0722 * b;\n console.log('luminence', luminence);\n let alpha;\n if (luminence >= 220) {\n alpha = 1;\n } else if (luminence <= 50) {\n alpha = 0.1;\n } else {\n alpha = luminence / 255;\n }\n alpha = Math.min(1, alpha);\n return [r, g, b, alpha];\n}\n\nexport default AccountInfo;\n","import { useLingui } from '@lingui/react/macro';\nimport { useEffect } from 'preact/hooks';\n\nimport { api } from '../utils/api';\nimport states from '../utils/states';\nimport useLocationChange from '../utils/useLocationChange';\n\nimport AccountInfo from './account-info';\nimport Icon from './icon';\n\nfunction AccountSheet({ account, instance: propInstance, onClose }) {\n const { t } = useLingui();\n const { masto, instance, authenticated } = api({ instance: propInstance });\n const isString = typeof account === 'string';\n\n useEffect(() => {\n if (!isString) {\n states.accounts[`${account.id}@${instance}`] = account;\n }\n }, [account]);\n\n useLocationChange(onClose);\n\n return (\n {\n // const accountBlock = e.target.closest('.account-block');\n // if (accountBlock) {\n // onClose({\n // destination: 'account-statuses',\n // });\n // }\n // }}\n >\n {!!onClose && (\n
\n )}\n
{\n if (isString) {\n try {\n const info = await masto.v1.accounts.lookup({\n acct: account,\n skip_webfinger: false,\n });\n return info;\n } catch (e) {\n const result = await masto.v2.search.list({\n q: account,\n type: 'accounts',\n limit: authenticated ? 1 : 11, // Magic number\n resolve: authenticated,\n });\n if (result.accounts.length) {\n const accountWithSameString = result.accounts.find(\n (a) => a.url === account || account.startsWith(a.url),\n );\n if (accountWithSameString) {\n return accountWithSameString;\n }\n }\n if (/^https?:\\/\\/[^/]+\\/@[^/]+$/.test(account)) {\n const accountURL = URL.parse(account);\n if (accountURL) {\n const { hostname, pathname } = accountURL;\n const acct =\n pathname.replace(/^\\//, '').replace(/\\/$/, '') +\n '@' +\n hostname;\n const result = await masto.v2.search.list({\n q: acct,\n type: 'accounts',\n limit: 1,\n resolve: authenticated,\n });\n if (result.accounts.length) {\n return result.accounts[0];\n }\n }\n }\n }\n } else {\n return account;\n }\n }}\n />\n \n );\n}\n\nexport default AccountSheet;\n","import './drafts.css';\n\nimport { Trans, useLingui } from '@lingui/react/macro';\nimport { useEffect, useMemo, useReducer, useState } from 'react';\n\nimport { api } from '../utils/api';\nimport db from '../utils/db';\nimport niceDateTime from '../utils/nice-date-time';\nimport states from '../utils/states';\nimport { getCurrentAccountNS } from '../utils/store-utils';\n\nimport Icon from './icon';\nimport Loader from './loader';\nimport MenuConfirm from './menu-confirm';\n\nfunction Drafts({ onClose }) {\n const { t } = useLingui();\n const { masto } = api();\n const [uiState, setUIState] = useState('default');\n const [drafts, setDrafts] = useState([]);\n const [reloadCount, reload] = useReducer((c) => c + 1, 0);\n\n useEffect(() => {\n setUIState('loading');\n (async () => {\n try {\n const keys = await db.drafts.keys();\n if (keys.length) {\n const ns = getCurrentAccountNS();\n const ownKeys = keys.filter((key) => key.startsWith(ns));\n if (ownKeys.length) {\n const drafts = await db.drafts.getMany(ownKeys);\n drafts.sort(\n (a, b) => Date.parse(b.updatedAt) - Date.parse(a.updatedAt),\n );\n setDrafts(drafts);\n } else {\n setDrafts([]);\n }\n } else {\n setDrafts([]);\n }\n setUIState('default');\n } catch (e) {\n console.error(e);\n setUIState('error');\n }\n })();\n }, [reloadCount]);\n\n const hasDrafts = drafts?.length > 0;\n\n return (\n \n {!!onClose && (\n
\n )}\n
\n
\n {hasDrafts ? (\n <>\n \n {drafts.length > 1 && (\n \n \n Delete all drafts?\n \n }\n menuItemClassName=\"danger\"\n disabled={uiState === 'loading'}\n onClick={() => {\n (async () => {\n // const yes = confirm('Delete all drafts?');\n // if (yes) {\n setUIState('loading');\n try {\n await db.drafts.delMany(\n drafts.map((draft) => draft.key),\n );\n setUIState('default');\n reload();\n } catch (e) {\n console.error(e);\n alert(t`Error deleting drafts! Please try again.`);\n setUIState('error');\n }\n // }\n })();\n }}\n >\n \n \n
\n )}\n >\n ) : (\n \n No drafts found.\n
\n )}\n \n
\n );\n}\n\nfunction MiniDraft({ draft }) {\n const { t } = useLingui();\n const { draftStatus, replyTo, quote } = draft;\n const { status, spoilerText, poll, mediaAttachments } = draftStatus;\n const hasPoll = poll?.options?.length > 0;\n const hasMedia = mediaAttachments?.length > 0;\n const hasQuote = !!quote?.id;\n const hasPollOrMedia = hasPoll || hasMedia || hasQuote;\n const firstImageMedia = useMemo(() => {\n if (!hasMedia) return;\n const image = mediaAttachments.find((media) => /image/.test(media.type));\n if (!image) return;\n const { fileData, type, file, url } = image;\n if (fileData) {\n const blob = new Blob([fileData], { type });\n return URL.createObjectURL(blob);\n }\n if (file) return URL.createObjectURL(file);\n return url || null;\n }, [hasMedia, mediaAttachments]);\n\n useEffect(() => {\n return () => {\n if (firstImageMedia?.startsWith('blob:')) {\n URL.revokeObjectURL(firstImageMedia);\n }\n };\n }, [firstImageMedia]);\n\n return (\n <>\n \n {hasPollOrMedia && (\n
\n {hasPoll && }\n {hasMedia && (\n \n {' '}\n {mediaAttachments?.length}\n \n )}\n {hasQuote && }\n
\n )}\n
\n {!!spoilerText &&
{spoilerText}
}\n {!!status &&
{status}
}\n
\n
\n >\n );\n}\n\nexport default Drafts;\n","import './embed-modal.css';\n\nimport { Trans, useLingui } from '@lingui/react/macro';\n\nimport Icon from './icon';\n\nfunction EmbedModal({ html, url, width, height, onClose = () => {} }) {\n const { t } = useLingui();\n return (\n \n );\n}\n\nexport default EmbedModal;\n","import './generic-accounts.css';\n\nimport { Trans, useLingui } from '@lingui/react/macro';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { InView } from 'react-intersection-observer';\nimport { useSnapshot } from 'valtio';\n\nimport { api } from '../utils/api';\nimport { fetchRelationships } from '../utils/relationships';\nimport states from '../utils/states';\nimport useLocationChange from '../utils/useLocationChange';\n\nimport AccountBlock from './account-block';\nimport Icon from './icon';\nimport Link from './link';\nimport Loader from './loader';\nimport Status from './status';\n\nexport default function GenericAccounts({\n instance,\n excludeRelationshipAttrs = [],\n postID,\n onClose = () => {},\n blankCopy,\n}) {\n const { t } = useLingui();\n const { masto, instance: currentInstance } = api();\n const isCurrentInstance = instance ? instance === currentInstance : true;\n const snapStates = useSnapshot(states);\n ``;\n const [uiState, setUIState] = useState('default');\n const [showMore, setShowMore] = useState(false);\n\n useLocationChange(onClose);\n\n if (!snapStates.showGenericAccounts) {\n return null;\n }\n\n const {\n id,\n heading,\n fetchAccounts,\n accounts: staticAccounts,\n showReactions,\n } = snapStates.showGenericAccounts;\n\n const [accounts, setAccounts] = useState(\n staticAccounts?.length ? staticAccounts : [],\n );\n\n const [relationshipsMap, setRelationshipsMap] = useState({});\n\n const loadRelationships = async (accounts) => {\n if (!accounts?.length) return;\n if (!isCurrentInstance) return;\n const relationships = await fetchRelationships(accounts, relationshipsMap);\n if (relationships) {\n setRelationshipsMap({\n ...relationshipsMap,\n ...relationships,\n });\n }\n };\n\n const loadAccounts = (firstLoad) => {\n if (!fetchAccounts) return;\n if (firstLoad && !accounts?.length) setAccounts([]);\n setUIState('loading');\n (async () => {\n try {\n const { done, value } = await fetchAccounts(firstLoad);\n if (Array.isArray(value)) {\n if (firstLoad) {\n const accounts = [];\n for (let i = 0; i < value.length; i++) {\n const account = value[i];\n const theAccount = accounts.find(\n (a, j) => a.id === account.id && i !== j,\n );\n if (!theAccount) {\n accounts.push({\n _types: [],\n ...account,\n });\n } else {\n theAccount._types.push(...account._types);\n }\n }\n setAccounts(accounts);\n } else {\n // setAccounts((prev) => [...prev, ...value]);\n // Merge accounts by id and _types\n setAccounts((prev) => {\n const newAccounts = prev;\n for (const account of value) {\n const theAccount = newAccounts.find((a) => a.id === account.id);\n if (!theAccount) {\n newAccounts.push(account);\n } else {\n theAccount._types.push(...account._types);\n }\n }\n return newAccounts;\n });\n }\n setShowMore(!done);\n\n loadRelationships(value);\n } else {\n setShowMore(false);\n }\n setUIState('default');\n } catch (e) {\n console.error(e);\n setUIState('error');\n }\n })();\n };\n\n const firstLoad = useRef(true);\n useEffect(() => {\n if (accounts?.length > 0) {\n // setAccounts(staticAccounts);\n if (fetchAccounts) {\n loadAccounts(true);\n firstLoad.current = false;\n } else {\n loadRelationships(accounts);\n }\n } else {\n loadAccounts(true);\n firstLoad.current = false;\n }\n }, [fetchAccounts]);\n\n useEffect(() => {\n if (firstLoad.current) return;\n // reloadGenericAccounts contains value like {id: 'mute', counter: 1}\n // We only need to reload if the id matches\n if (snapStates.reloadGenericAccounts?.id === id) {\n loadAccounts(true);\n }\n }, [snapStates.reloadGenericAccounts.counter]);\n\n const post = states.statuses[postID];\n\n return (\n \n
\n
\n {heading || t`Accounts`}
\n \n
\n {post && (\n \n \n \n )}\n {accounts.length > 0 ? (\n <>\n \n {uiState === 'default' ? (\n showMore ? (\n {\n if (inView) {\n loadAccounts();\n }\n }}\n >\n \n \n ) : (\n \n The end.\n
\n )\n ) : (\n uiState === 'loading' && (\n \n \n
\n )\n )}\n >\n ) : uiState === 'loading' ? (\n \n \n
\n ) : uiState === 'error' ? (\n \n Error loading accounts\n
\n ) : (\n \n {blankCopy || t`Nothing to show`}\n
\n )}\n \n
\n );\n}\n","import './import-accounts-selection.css';\n\nimport { Plural, Trans, useLingui } from '@lingui/react/macro';\nimport { useMemo, useState } from 'preact/hooks';\n\nimport states from '../utils/states';\nimport { getAccounts, saveAccounts } from '../utils/store-utils';\n\nimport Avatar from './avatar';\nimport Icon from './icon';\nimport Loader from './loader';\nimport NameText from './name-text';\n\nfunction ImportAccountsSelection({ accounts: importedAccounts, onClose }) {\n const { t } = useLingui();\n const existingAccounts = getAccounts();\n\n const { accountsToImport } = useMemo(() => {\n if (!importedAccounts) return { accountsToImport: [] };\n\n const statusOrder = { duplicate: 0, new: 1 };\n const accountsToImport = importedAccounts\n .map((account) => {\n const existing = existingAccounts.find(\n (a) =>\n a.info.id === account.info.id &&\n a.instanceURL === account.instanceURL,\n );\n const status = existing ? 'duplicate' : 'new';\n return {\n ...account,\n __status: status,\n };\n })\n .sort((a, b) => {\n return statusOrder[a.__status] - statusOrder[b.__status];\n });\n\n return { accountsToImport };\n }, [importedAccounts, existingAccounts]);\n\n const [selectedAccounts, setSelectedAccounts] = useState(() => {\n const initialSelection = {};\n accountsToImport.forEach((a) => {\n if (a.__status === 'duplicate') {\n initialSelection[a.info.id + a.instanceURL] = false;\n } else {\n initialSelection[a.info.id + a.instanceURL] = true;\n }\n });\n return initialSelection;\n });\n\n const [uiState, setUIState] = useState('default');\n\n const handleImportSelection = () => {\n setUIState('importing');\n const newAccounts = [\n ...existingAccounts,\n ...importedAccounts.filter(\n (account) => selectedAccounts[account.info.id + account.instanceURL],\n ),\n ];\n saveAccounts(newAccounts);\n onClose();\n states.showImportExportAccounts = false;\n states.showAccounts = true;\n };\n\n const selectedCount = Object.values(selectedAccounts).filter(Boolean).length;\n\n return (\n \n {!!onClose && (\n
\n )}\n
\n \n Select accounts to import\n \n \n
\n \n {accountsToImport.filter((a) => a.__status !== 'duplicate').length >\n 3 && (\n \n )}\n
\n\n
\n
\n \n
\n );\n}\n\nexport default ImportAccountsSelection;\n","import './import-export-accounts.css';\n\nimport { Plural, Trans, useLingui } from '@lingui/react/macro';\nimport { useState } from 'preact/hooks';\n\nimport showToast from '../utils/show-toast';\nimport { getAccounts } from '../utils/store-utils';\n\nimport Icon from './icon';\nimport ImportAccountsSelection from './import-accounts-selection';\nimport Modal from './modal';\n\nexport default function ImportExportAccounts({ onClose }) {\n const { t } = useLingui();\n const accounts = getAccounts();\n const [uiState, setUIState] = useState('default');\n const [importedAccounts, setImportedAccounts] = useState(null);\n const [dragOver, setDragOver] = useState(false);\n\n const handleExport = async () => {\n setUIState('exporting');\n try {\n const accounts = getAccounts();\n const accountsToExport = accounts.map((account) => {\n const { accessToken, ...rest } = account;\n return rest;\n });\n\n const exportData = {\n accounts: accountsToExport,\n createdAt: Date.now(),\n };\n const json = JSON.stringify(exportData);\n\n const blob = new Blob([json], { type: 'application/json' });\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n const now = new Date();\n const date = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(\n 2,\n '0',\n )}-${String(now.getDate()).padStart(2, '0')}_${String(\n now.getHours(),\n ).padStart(2, '0')}-${String(now.getMinutes()).padStart(2, '0')}`;\n a.download = `accounts-${date}.phanpy.json`;\n a.click();\n URL.revokeObjectURL(url);\n onClose();\n } catch (e) {\n console.error(e);\n showToast(t`Export failed`);\n setUIState('error');\n }\n };\n\n const processFile = async (file) => {\n if (!file) return;\n\n setUIState('importing');\n try {\n const text = await file.text();\n const json = JSON.parse(text);\n\n const accounts = json?.accounts;\n if (!Array.isArray(accounts)) throw new Error('Invalid backup file');\n\n setImportedAccounts(accounts);\n setUIState('default');\n } catch (e) {\n console.error(e);\n showToast(t`Import failed`);\n setUIState('error');\n }\n };\n\n const handleImport = (e) => {\n const file = e.target.files[0];\n processFile(file);\n };\n\n const onDragOver = (e) => {\n e.preventDefault();\n setDragOver(true);\n };\n\n const onDragLeave = () => {\n setDragOver(false);\n };\n\n const onDrop = (e) => {\n e.preventDefault();\n setDragOver(false);\n const file = e.dataTransfer.files[0];\n processFile(file);\n };\n\n return (\n \n {!!onClose && (\n
\n )}\n
\n \n \n Import/Export Accounts\n \n
\n \n
\n \n\n \n \n \n No login information or account access details are stored in the\n exported files. You will need to log in again for each account\n after importing.\n \n \n
\n \n {importedAccounts && (\n
{\n setImportedAccounts(null);\n }}\n >\n {\n setImportedAccounts(null);\n }}\n />\n \n )}\n
\n );\n}\n","import { Trans, useLingui } from '@lingui/react/macro';\nimport { Menu, MenuItem } from '@szhsin/react-menu';\nimport { useEffect, useState } from 'preact/hooks';\nimport { useSnapshot } from 'valtio';\n\nimport getTranslateTargetLanguage from '../utils/get-translate-target-language';\nimport localeMatch from '../utils/locale-match';\nimport { speak, supportsTTS } from '../utils/speech';\nimport states from '../utils/states';\n\nimport Icon from './icon';\nimport Menu2 from './menu2';\nimport TranslationBlock from './translation-block';\n\nconst FORCE_TRANSLATE_LIMIT = 140;\n\nexport default function MediaAltModal({ alt, lang, onClose }) {\n const { t } = useLingui();\n const snapStates = useSnapshot(states);\n const [forceTranslate, setForceTranslate] = useState(false);\n const targetLanguage = getTranslateTargetLanguage(true);\n const contentTranslationHideLanguages =\n snapStates.settings.contentTranslationHideLanguages || [];\n const differentLanguage =\n !!lang &&\n lang !== targetLanguage &&\n !localeMatch([lang], [targetLanguage]) &&\n !contentTranslationHideLanguages.find(\n (l) => lang === l || localeMatch([lang], [l]),\n );\n\n useEffect(() => {\n const isShortAlt = alt?.length > 0 && alt?.length <= FORCE_TRANSLATE_LIMIT;\n if (differentLanguage && isShortAlt) {\n setForceTranslate(true);\n }\n }, [differentLanguage, alt]);\n\n return (\n \n {!!onClose && (\n
\n )}\n \n
\n \n {alt}\n
\n {(differentLanguage || forceTranslate) && (\n \n )}\n \n
\n );\n}\n","const { min, max } = Math;\n\nexport default (x, low = 0, high = 1) => {\n return min(max(low, x), high);\n};\n","// ported from jQuery's $.type\nconst classToType = {};\nfor (let name of [\n 'Boolean',\n 'Number',\n 'String',\n 'Function',\n 'Array',\n 'Date',\n 'RegExp',\n 'Undefined',\n 'Null'\n]) {\n classToType[`[object ${name}]`] = name.toLowerCase();\n}\nexport default function (obj) {\n return classToType[Object.prototype.toString.call(obj)] || 'object';\n}\n","import type from './type.js';\n\nexport default (args, keyOrder = null) => {\n // if called with more than 3 arguments, we return the arguments\n if (args.length >= 3) return Array.prototype.slice.call(args);\n // with less than 3 args we check if first arg is object\n // and use the keyOrder string to extract and sort properties\n if (type(args[0]) == 'object' && keyOrder) {\n return keyOrder\n .split('')\n .filter((k) => args[0][k] !== undefined)\n .map((k) => args[0][k]);\n }\n // otherwise we just return the first argument\n // (which we suppose is an array of args)\n return args[0].slice(0);\n};\n","const { PI, min, max } = Math;\n\nconst rnd2 = (a) => Math.round(a * 100) / 100;\nconst rnd3 = (a) => Math.round(a * 100) / 100;\n\nexport { default as clip_rgb } from './clip_rgb.js';\nexport { default as limit } from './limit.js';\nexport { default as type } from './type.js';\nexport { default as unpack } from './unpack.js';\nexport { default as last } from './last.js';\n\nconst TWOPI = PI * 2;\nconst PITHIRD = PI / 3;\nconst DEG2RAD = PI / 180;\nconst RAD2DEG = 180 / PI;\n\n/**\n * Reverse the first three elements of an array\n *\n * @param {any[]} arr\n * @returns {any[]}\n */\nfunction reverse3(arr) {\n return [...arr.slice(0, 3).reverse(), ...arr.slice(3)];\n}\n\nexport { PI, TWOPI, PITHIRD, DEG2RAD, RAD2DEG, min, max, rnd2, rnd3, reverse3 };\n","// from https://www.w3.org/TR/css-color-4/multiply-matrices.js\nexport default function multiplyMatrices(A, B) {\n let m = A.length;\n\n if (!Array.isArray(A[0])) {\n // A is vector, convert to [[a, b, c, ...]]\n A = [A];\n }\n\n if (!Array.isArray(B[0])) {\n // B is vector, convert to [[a], [b], [c], ...]]\n B = B.map((x) => [x]);\n }\n\n let p = B[0].length;\n let B_cols = B[0].map((_, i) => B.map((x) => x[i])); // transpose B\n let product = A.map((row) =>\n B_cols.map((col) => {\n if (!Array.isArray(row)) {\n return col.reduce((a, c) => a + c * row, 0);\n }\n\n return row.reduce((a, c, i) => a + c * (col[i] || 0), 0);\n })\n );\n\n if (m === 1) {\n product = product[0]; // Avoid [[a, b, c, ...]]\n }\n\n if (p === 1) {\n return product.map((x) => x[0]); // Avoid [[a], [b], [c], ...]]\n }\n\n return product;\n}\n","const labConstants = {\n // Corresponds roughly to RGB brighter/darker\n Kn: 18,\n\n // D65 standard referent\n labWhitePoint: 'd65',\n Xn: 0.95047,\n Yn: 1,\n Zn: 1.08883,\n\n t0: 0.137931034, // 4 / 29\n t1: 0.206896552, // 6 / 29\n t2: 0.12841855, // 3 * t1 * t1\n t3: 0.008856452, // t1 * t1 * t1,\n\n kE: 216.0 / 24389.0,\n kKE: 8.0,\n kK: 24389.0 / 27.0,\n\n RefWhiteRGB: {\n // sRGB\n X: 0.95047,\n Y: 1,\n Z: 1.08883\n },\n\n MtxRGB2XYZ: {\n m00: 0.4124564390896922,\n m01: 0.21267285140562253,\n m02: 0.0193338955823293,\n m10: 0.357576077643909,\n m11: 0.715152155287818,\n m12: 0.11919202588130297,\n m20: 0.18043748326639894,\n m21: 0.07217499330655958,\n m22: 0.9503040785363679\n },\n\n MtxXYZ2RGB: {\n m00: 3.2404541621141045,\n m01: -0.9692660305051868,\n m02: 0.055643430959114726,\n m10: -1.5371385127977166,\n m11: 1.8760108454466942,\n m12: -0.2040259135167538,\n m20: -0.498531409556016,\n m21: 0.041556017530349834,\n m22: 1.0572251882231791\n },\n\n // used in rgb2xyz\n As: 0.9414285350000001,\n Bs: 1.040417467,\n Cs: 1.089532651,\n\n MtxAdaptMa: {\n m00: 0.8951,\n m01: -0.7502,\n m02: 0.0389,\n m10: 0.2664,\n m11: 1.7135,\n m12: -0.0685,\n m20: -0.1614,\n m21: 0.0367,\n m22: 1.0296\n },\n\n MtxAdaptMaI: {\n m00: 0.9869929054667123,\n m01: 0.43230526972339456,\n m02: -0.008528664575177328,\n m10: -0.14705425642099013,\n m11: 0.5183602715367776,\n m12: 0.04004282165408487,\n m20: 0.15996265166373125,\n m21: 0.0492912282128556,\n m22: 0.9684866957875502\n }\n};\n\nexport default labConstants;\n\n// taken from https://de.mathworks.com/help/images/ref/whitepoint.html\nconst ILLUMINANTS = new Map([\n // ASTM E308-01\n ['a', [1.0985, 0.35585]],\n // Wyszecki & Stiles, p. 769\n ['b', [1.0985, 0.35585]],\n // C ASTM E308-01\n ['c', [0.98074, 1.18232]],\n // D50 (ASTM E308-01)\n ['d50', [0.96422, 0.82521]],\n // D55 (ASTM E308-01)\n ['d55', [0.95682, 0.92149]],\n // D65 (ASTM E308-01)\n ['d65', [0.95047, 1.08883]],\n // E (ASTM E308-01)\n ['e', [1, 1, 1]],\n // F2 (ASTM E308-01)\n ['f2', [0.99186, 0.67393]],\n // F7 (ASTM E308-01)\n ['f7', [0.95041, 1.08747]],\n // F11 (ASTM E308-01)\n ['f11', [1.00962, 0.6435]],\n ['icc', [0.96422, 0.82521]]\n]);\n\nexport function setLabWhitePoint(name) {\n const ill = ILLUMINANTS.get(String(name).toLowerCase());\n if (!ill) {\n throw new Error('unknown Lab illuminant ' + name);\n }\n labConstants.labWhitePoint = name;\n labConstants.Xn = ill[0];\n labConstants.Zn = ill[1];\n}\n\nexport function getLabWhitePoint() {\n return labConstants.labWhitePoint;\n}\n","import LAB_CONSTANTS from './lab-constants.js';\nimport { unpack } from '../../utils/index.js';\n\n/*\n * L* [0..100]\n * a [-100..100]\n * b [-100..100]\n */\nconst lab2rgb = (...args) => {\n args = unpack(args, 'lab');\n const [L, a, b] = args;\n const [x, y, z] = lab2xyz(L, a, b);\n const [r, g, b_] = xyz2rgb(x, y, z);\n return [r, g, b_, args.length > 3 ? args[3] : 1];\n};\n\nconst lab2xyz = (L, a, b) => {\n const { kE, kK, kKE, Xn, Yn, Zn } = LAB_CONSTANTS;\n\n const fy = (L + 16.0) / 116.0;\n const fx = 0.002 * a + fy;\n const fz = fy - 0.005 * b;\n\n const fx3 = fx * fx * fx;\n const fz3 = fz * fz * fz;\n\n const xr = fx3 > kE ? fx3 : (116.0 * fx - 16.0) / kK;\n const yr = L > kKE ? Math.pow((L + 16.0) / 116.0, 3.0) : L / kK;\n const zr = fz3 > kE ? fz3 : (116.0 * fz - 16.0) / kK;\n\n const x = xr * Xn;\n const y = yr * Yn;\n const z = zr * Zn;\n\n return [x, y, z];\n};\n\nconst compand = (linear) => {\n /* sRGB */\n const sign = Math.sign(linear);\n linear = Math.abs(linear);\n return (\n (linear <= 0.0031308\n ? linear * 12.92\n : 1.055 * Math.pow(linear, 1.0 / 2.4) - 0.055) * sign\n );\n};\n\nconst xyz2rgb = (x, y, z) => {\n const { MtxAdaptMa, MtxAdaptMaI, MtxXYZ2RGB, RefWhiteRGB, Xn, Yn, Zn } =\n LAB_CONSTANTS;\n\n const As = Xn * MtxAdaptMa.m00 + Yn * MtxAdaptMa.m10 + Zn * MtxAdaptMa.m20;\n const Bs = Xn * MtxAdaptMa.m01 + Yn * MtxAdaptMa.m11 + Zn * MtxAdaptMa.m21;\n const Cs = Xn * MtxAdaptMa.m02 + Yn * MtxAdaptMa.m12 + Zn * MtxAdaptMa.m22;\n\n const Ad =\n RefWhiteRGB.X * MtxAdaptMa.m00 +\n RefWhiteRGB.Y * MtxAdaptMa.m10 +\n RefWhiteRGB.Z * MtxAdaptMa.m20;\n const Bd =\n RefWhiteRGB.X * MtxAdaptMa.m01 +\n RefWhiteRGB.Y * MtxAdaptMa.m11 +\n RefWhiteRGB.Z * MtxAdaptMa.m21;\n const Cd =\n RefWhiteRGB.X * MtxAdaptMa.m02 +\n RefWhiteRGB.Y * MtxAdaptMa.m12 +\n RefWhiteRGB.Z * MtxAdaptMa.m22;\n\n const X1 =\n (x * MtxAdaptMa.m00 + y * MtxAdaptMa.m10 + z * MtxAdaptMa.m20) *\n (Ad / As);\n const Y1 =\n (x * MtxAdaptMa.m01 + y * MtxAdaptMa.m11 + z * MtxAdaptMa.m21) *\n (Bd / Bs);\n const Z1 =\n (x * MtxAdaptMa.m02 + y * MtxAdaptMa.m12 + z * MtxAdaptMa.m22) *\n (Cd / Cs);\n\n const X2 =\n X1 * MtxAdaptMaI.m00 + Y1 * MtxAdaptMaI.m10 + Z1 * MtxAdaptMaI.m20;\n const Y2 =\n X1 * MtxAdaptMaI.m01 + Y1 * MtxAdaptMaI.m11 + Z1 * MtxAdaptMaI.m21;\n const Z2 =\n X1 * MtxAdaptMaI.m02 + Y1 * MtxAdaptMaI.m12 + Z1 * MtxAdaptMaI.m22;\n\n const r = compand(\n X2 * MtxXYZ2RGB.m00 + Y2 * MtxXYZ2RGB.m10 + Z2 * MtxXYZ2RGB.m20\n );\n const g = compand(\n X2 * MtxXYZ2RGB.m01 + Y2 * MtxXYZ2RGB.m11 + Z2 * MtxXYZ2RGB.m21\n );\n const b = compand(\n X2 * MtxXYZ2RGB.m02 + Y2 * MtxXYZ2RGB.m12 + Z2 * MtxXYZ2RGB.m22\n );\n\n return [r * 255, g * 255, b * 255];\n};\n\nexport default lab2rgb;\nexport { xyz2rgb };\n","import { unpack } from '../../utils/index.js';\nimport multiplyMatrices from '../../utils/multiply-matrices.js';\nimport { xyz2rgb } from '../lab/lab2rgb.js';\n\nconst oklab2rgb = (...args) => {\n args = unpack(args, 'lab');\n const [L, a, b, ...rest] = args;\n const [X, Y, Z] = OKLab_to_XYZ([L, a, b]);\n const [r, g, b_] = xyz2rgb(X, Y, Z);\n return [r, g, b_, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\n// from https://www.w3.org/TR/css-color-4/#color-conversion-code\nfunction OKLab_to_XYZ(OKLab) {\n // Given OKLab, convert to XYZ relative to D65\n var LMStoXYZ = [\n [1.2268798758459243, -0.5578149944602171, 0.2813910456659647],\n [-0.0405757452148008, 1.112286803280317, -0.0717110580655164],\n [-0.0763729366746601, -0.4214933324022432, 1.5869240198367816]\n ];\n var OKLabtoLMS = [\n [1.0, 0.3963377773761749, 0.2158037573099136],\n [1.0, -0.1055613458156586, -0.0638541728258133],\n [1.0, -0.0894841775298119, -1.2914855480194092]\n ];\n\n var LMSnl = multiplyMatrices(OKLabtoLMS, OKLab);\n return multiplyMatrices(\n LMStoXYZ,\n LMSnl.map((c) => c ** 3)\n );\n}\n\nexport default oklab2rgb;\n","import LAB_CONSTANTS from './lab-constants.js';\nimport { unpack } from '../../utils/index.js';\n\nconst rgb2lab = (...args) => {\n const [r, g, b, ...rest] = unpack(args, 'rgb');\n const [x, y, z] = rgb2xyz(r, g, b);\n const [L, a, b_] = xyz2lab(x, y, z);\n return [L, a, b_, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\nfunction xyz2lab(x, y, z) {\n const { Xn, Yn, Zn, kE, kK } = LAB_CONSTANTS;\n const xr = x / Xn;\n const yr = y / Yn;\n const zr = z / Zn;\n\n const fx = xr > kE ? Math.pow(xr, 1.0 / 3.0) : (kK * xr + 16.0) / 116.0;\n const fy = yr > kE ? Math.pow(yr, 1.0 / 3.0) : (kK * yr + 16.0) / 116.0;\n const fz = zr > kE ? Math.pow(zr, 1.0 / 3.0) : (kK * zr + 16.0) / 116.0;\n\n return [116.0 * fy - 16.0, 500.0 * (fx - fy), 200.0 * (fy - fz)];\n}\n\nfunction gammaAdjustSRGB(companded) {\n const sign = Math.sign(companded);\n companded = Math.abs(companded);\n const linear =\n companded <= 0.04045\n ? companded / 12.92\n : Math.pow((companded + 0.055) / 1.055, 2.4);\n return linear * sign;\n}\n\nconst rgb2xyz = (r, g, b) => {\n // normalize and gamma adjust\n r = gammaAdjustSRGB(r / 255);\n g = gammaAdjustSRGB(g / 255);\n b = gammaAdjustSRGB(b / 255);\n\n const { MtxRGB2XYZ, MtxAdaptMa, MtxAdaptMaI, Xn, Yn, Zn, As, Bs, Cs } =\n LAB_CONSTANTS;\n\n let x = r * MtxRGB2XYZ.m00 + g * MtxRGB2XYZ.m10 + b * MtxRGB2XYZ.m20;\n let y = r * MtxRGB2XYZ.m01 + g * MtxRGB2XYZ.m11 + b * MtxRGB2XYZ.m21;\n let z = r * MtxRGB2XYZ.m02 + g * MtxRGB2XYZ.m12 + b * MtxRGB2XYZ.m22;\n\n const Ad = Xn * MtxAdaptMa.m00 + Yn * MtxAdaptMa.m10 + Zn * MtxAdaptMa.m20;\n const Bd = Xn * MtxAdaptMa.m01 + Yn * MtxAdaptMa.m11 + Zn * MtxAdaptMa.m21;\n const Cd = Xn * MtxAdaptMa.m02 + Yn * MtxAdaptMa.m12 + Zn * MtxAdaptMa.m22;\n\n let X = x * MtxAdaptMa.m00 + y * MtxAdaptMa.m10 + z * MtxAdaptMa.m20;\n let Y = x * MtxAdaptMa.m01 + y * MtxAdaptMa.m11 + z * MtxAdaptMa.m21;\n let Z = x * MtxAdaptMa.m02 + y * MtxAdaptMa.m12 + z * MtxAdaptMa.m22;\n\n X *= Ad / As;\n Y *= Bd / Bs;\n Z *= Cd / Cs;\n\n x = X * MtxAdaptMaI.m00 + Y * MtxAdaptMaI.m10 + Z * MtxAdaptMaI.m20;\n y = X * MtxAdaptMaI.m01 + Y * MtxAdaptMaI.m11 + Z * MtxAdaptMaI.m21;\n z = X * MtxAdaptMaI.m02 + Y * MtxAdaptMaI.m12 + Z * MtxAdaptMaI.m22;\n\n return [x, y, z];\n};\n\nexport default rgb2lab;\nexport { rgb2xyz };\n","import { unpack } from '../../utils/index.js';\nimport multiplyMatrices from '../../utils/multiply-matrices.js';\nimport { rgb2xyz } from '../lab/rgb2lab.js';\n\nconst rgb2oklab = (...args) => {\n const [r, g, b, ...rest] = unpack(args, 'rgb');\n const xyz = rgb2xyz(r, g, b);\n const oklab = XYZ_to_OKLab(xyz);\n return [...oklab, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\n// from https://www.w3.org/TR/css-color-4/#color-conversion-code\nfunction XYZ_to_OKLab(XYZ) {\n // Given XYZ relative to D65, convert to OKLab\n const XYZtoLMS = [\n [0.819022437996703, 0.3619062600528904, -0.1288737815209879],\n [0.0329836539323885, 0.9292868615863434, 0.0361446663506424],\n [0.0481771893596242, 0.2642395317527308, 0.6335478284694309]\n ];\n const LMStoOKLab = [\n [0.210454268309314, 0.7936177747023054, -0.0040720430116193],\n [1.9779985324311684, -2.4285922420485799, 0.450593709617411],\n [0.0259040424655478, 0.7827717124575296, -0.8086757549230774]\n ];\n\n const LMS = multiplyMatrices(XYZtoLMS, XYZ);\n // JavaScript Math.cbrt returns a sign-matched cube root\n // beware if porting to other languages\n // especially if tempted to use a general power function\n return multiplyMatrices(\n LMStoOKLab,\n LMS.map((c) => Math.cbrt(c))\n );\n // L in range [0,1]. For use in CSS, multiply by 100 and add a percent\n}\n\nexport default rgb2oklab;\n","import { unpack, DEG2RAD } from '../../utils/index.js';\nconst { sin, cos } = Math;\n\nconst lch2lab = (...args) => {\n /*\n Convert from a qualitative parameter h and a quantitative parameter l to a 24-bit pixel.\n These formulas were invented by David Dalrymple to obtain maximum contrast without going\n out of gamut if the parameters are in the range 0-1.\n\n A saturation multiplier was added by Gregor Aisch\n */\n let [l, c, h] = unpack(args, 'lch');\n if (isNaN(h)) h = 0;\n h = h * DEG2RAD;\n return [l, cos(h) * c, sin(h) * c];\n};\n\nexport default lch2lab;\n","import { unpack } from '../../utils/index.js';\nimport lch2lab from '../lch/lch2lab.js';\nimport oklab2rgb from '../oklab/oklab2rgb.js';\n\nconst oklch2rgb = (...args) => {\n args = unpack(args, 'lch');\n const [l, c, h, ...rest] = args;\n const [L, a, b_] = lch2lab(l, c, h);\n const [r, g, b] = oklab2rgb(L, a, b_);\n return [r, g, b, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\nexport default oklch2rgb;\n","import { unpack, RAD2DEG } from '../../utils/index.js';\nconst { sqrt, atan2, round } = Math;\n\nconst lab2lch = (...args) => {\n const [l, a, b] = unpack(args, 'lab');\n const c = sqrt(a * a + b * b);\n let h = (atan2(b, a) * RAD2DEG + 360) % 360;\n if (round(c * 10000) === 0) h = Number.NaN;\n return [l, c, h];\n};\n\nexport default lab2lch;\n","import { unpack } from '../../utils/index.js';\nimport rgb2oklab from '../oklab/rgb2oklab.js';\nimport lab2lch from '../lch/lab2lch.js';\n\nconst rgb2oklch = (...args) => {\n const [r, g, b, ...rest] = unpack(args, 'rgb');\n const [l, a, b_] = rgb2oklab(r, g, b);\n const [L, c, h] = lab2lch(l, a, b_);\n return [L, c, h, ...(rest.length > 0 && rest[0] < 1 ? [rest[0]] : [])];\n};\n\nexport default rgb2oklch;\n","import { Trans, useLingui } from '@lingui/react/macro';\nimport { MenuDivider, MenuItem } from '@szhsin/react-menu';\nimport { getBlurHashAverageColor } from 'fast-blurhash';\nimport {\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'preact/hooks';\nimport { useHotkeys } from 'react-hotkeys-hook';\n\nimport { oklch2rgb, rgb2oklch } from '../utils/color-utils';\nimport isRTL from '../utils/is-rtl';\nimport showToast from '../utils/show-toast';\nimport states from '../utils/states';\nimport store from '../utils/store';\n\nimport Icon from './icon';\nimport Link from './link';\nimport Media from './media';\nimport MenuLink from './menu-link';\nimport Menu2 from './menu2';\n\nconst { PHANPY_IMG_ALT_API_URL: IMG_ALT_API_URL } = import.meta.env;\n\nfunction MediaModal({\n mediaAttachments,\n statusID,\n instance,\n lang,\n index = 0,\n onClose = () => {},\n}) {\n const { t } = useLingui();\n const [uiState, setUIState] = useState('default');\n const carouselRef = useRef(null);\n\n const [currentIndex, setCurrentIndex] = useState(index);\n const carouselFocusItem = useRef(null);\n useLayoutEffect(() => {\n carouselFocusItem.current?.scrollIntoView();\n\n // history.pushState({ mediaModal: true }, '');\n // const handlePopState = (e) => {\n // if (e.state?.mediaModal) {\n // onClose();\n // }\n // };\n // window.addEventListener('popstate', handlePopState);\n // return () => {\n // window.removeEventListener('popstate', handlePopState);\n // };\n }, []);\n const prevStatusID = useRef(statusID);\n useEffect(() => {\n const scrollLeft = index * carouselRef.current.clientWidth;\n const differentStatusID = prevStatusID.current !== statusID;\n if (differentStatusID) prevStatusID.current = statusID;\n carouselRef.current.focus();\n carouselRef.current.scrollTo({\n left: scrollLeft * (isRTL() ? -1 : 1),\n behavior: differentStatusID ? 'auto' : 'smooth',\n });\n }, [index, statusID]);\n\n const [showControls, setShowControls] = useState(true);\n\n useEffect(() => {\n let handleSwipe = (e) => {\n onClose(e, currentIndex, mediaAttachments, carouselRef);\n };\n if (carouselRef.current) {\n carouselRef.current.addEventListener('swiped-down', handleSwipe);\n }\n return () => {\n if (carouselRef.current) {\n carouselRef.current.removeEventListener('swiped-down', handleSwipe);\n }\n };\n }, [currentIndex, mediaAttachments]);\n\n useHotkeys(\n 'esc',\n (e) => {\n onClose(e, currentIndex, mediaAttachments, carouselRef);\n },\n {\n ignoreEventWhen: (e) => {\n const hasModal = !!document.querySelector('#modal-container > *');\n return hasModal || e.metaKey || e.ctrlKey || e.altKey || e.shiftKey;\n },\n useKey: true,\n },\n [onClose, currentIndex, mediaAttachments],\n );\n\n useEffect(() => {\n let handleScroll = () => {\n const { clientWidth, scrollLeft } = carouselRef.current;\n const index = Math.round(Math.abs(scrollLeft) / clientWidth);\n setCurrentIndex(index);\n };\n if (carouselRef.current) {\n carouselRef.current.addEventListener('scroll', handleScroll, {\n passive: true,\n });\n }\n return () => {\n if (carouselRef.current) {\n carouselRef.current.removeEventListener('scroll', handleScroll);\n }\n };\n }, []);\n\n useEffect(() => {\n let timer = setTimeout(() => {\n carouselRef.current?.focus?.();\n }, 100);\n return () => clearTimeout(timer);\n }, []);\n\n const mediaOkColors = useMemo(() => {\n return mediaAttachments?.map((media) => {\n const { blurhash } = media;\n if (blurhash) {\n const averageColor = getBlurHashAverageColor(blurhash);\n return rgb2oklch(averageColor);\n }\n return null;\n });\n }, [mediaAttachments]);\n const mediaAccentColors = useMemo(() => {\n return mediaOkColors?.map((okColor) => {\n if (okColor) {\n return {\n light: oklch2rgb([0.95, 0.01, okColor[2]]),\n dark: oklch2rgb([0.35, 0.01, okColor[2]]),\n default: oklch2rgb([0.6, okColor[1], okColor[2]]),\n };\n }\n return null;\n });\n });\n const mediaAccentGradients = useMemo(() => {\n const gap = 5;\n const range = 100 / mediaAccentColors.length;\n const colors = mediaAccentColors.map((color, i) => {\n const start = i * range + gap;\n const end = (i + 1) * range - gap;\n if (color?.light && color?.dark) {\n return {\n light: `\n rgb(${color.light?.join(',')}) ${start}%, \n rgb(${color.light?.join(',')}) ${end}%\n `,\n dark: `\n rgb(${color.dark?.join(',')}) ${start}%, \n rgb(${color.dark?.join(',')}) ${end}%\n `,\n };\n }\n\n return {\n light: `\n transparent ${start}%, \n transparent ${end}%\n `,\n dark: `\n transparent ${start}%, \n transparent ${end}%\n `,\n };\n });\n const lightGradient = colors.map((color) => color.light).join(', ');\n const darkGradient = colors.map((color) => color.dark).join(', ');\n return {\n light: lightGradient,\n dark: darkGradient,\n };\n }, [mediaAccentColors]);\n\n let toastRef = useRef(null);\n useEffect(() => {\n return () => {\n toastRef.current?.hideToast?.();\n };\n }, []);\n\n useLayoutEffect(() => {\n const currentColor = mediaAccentColors[currentIndex];\n let $meta;\n let metaColor;\n if (currentColor) {\n const theme = store.local.get('theme');\n if (theme) {\n const mediaColor = `rgb(${currentColor[theme].join(',')})`;\n console.log({ mediaColor });\n $meta = document.querySelector(\n `meta[name=\"theme-color\"][data-theme-setting=\"manual\"]`,\n );\n if ($meta) {\n metaColor = $meta.content;\n $meta.content = mediaColor;\n }\n document.documentElement.style.setProperty(\n '--meta-theme-color',\n mediaColor,\n );\n } else {\n const colorScheme = window.matchMedia('(prefers-color-scheme: dark)')\n .matches\n ? 'dark'\n : 'light';\n const mediaColor = `rgb(${currentColor[colorScheme].join(',')})`;\n console.log({ mediaColor });\n $meta = document.querySelector(\n `meta[name=\"theme-color\"][media*=\"${colorScheme}\"]`,\n );\n if ($meta) {\n metaColor = $meta.content;\n $meta.content = mediaColor;\n }\n document.documentElement.style.setProperty(\n '--meta-theme-color',\n mediaColor,\n );\n }\n }\n return () => {\n // Reset meta color\n if ($meta && metaColor) {\n $meta.content = metaColor;\n }\n document.documentElement.style.removeProperty('--meta-theme-color');\n };\n }, [currentIndex, mediaAccentColors]);\n\n return (\n \n );\n}\n\nexport default MediaModal;\n","import './open-link-sheet.css';\n\nimport { Trans, useLingui } from '@lingui/react/macro';\n\nimport showToast from '../utils/show-toast';\n\nimport Icon from './icon';\n\nexport default function OpenLinkSheet({ url, linkText, onClose }) {\n const { t } = useLingui();\n if (!url) return null;\n\n let displayUrl = url;\n try {\n const urlObj = URL.parse(url);\n const protocol = urlObj.protocol;\n const hostname = urlObj.hostname;\n const rest = url.slice(urlObj.origin.length);\n displayUrl = (\n <>\n {protocol}//{hostname}\n {rest}\n >\n );\n } catch (e) {}\n\n const handleCopy = () => {\n try {\n navigator.clipboard.writeText(url);\n showToast(t`Link copied`);\n } catch (e) {\n console.error(e);\n showToast(t`Unable to copy link`);\n }\n };\n\n const handleShare = () => {\n if (navigator.share && navigator.canShare({ url })) {\n try {\n navigator.share({ url });\n } catch (e) {\n console.error(e);\n }\n }\n };\n\n return (\n \n {!!onClose && (\n
\n )}\n \n
\n {!!linkText && (\n <>\n \n {linkText}\n
\n \n \n
\n >\n )}\n {displayUrl}
\n \n
\n
\n );\n}\n","/*!\nCopyright (c) 2023 Paul Miller (paulmillr.com)\nThe library paulmillr-qr is dual-licensed under the Apache 2.0 OR MIT license.\nYou can select a license of your choice.\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n// We do not use newline escape code directly in strings because it's not parser-friendly\nconst chCodes = { newline: 10, reset: 27 };\nfunction assertNumber(n) {\n if (!Number.isSafeInteger(n))\n throw new Error(`integer expected: ${n}`);\n}\nfunction validateVersion(ver) {\n if (!Number.isSafeInteger(ver) || ver < 1 || ver > 40)\n throw new Error(`Invalid version=${ver}. Expected number [1..40]`);\n}\nfunction bin(dec, pad) {\n return dec.toString(2).padStart(pad, '0');\n}\nfunction mod(a, b) {\n const result = a % b;\n return result >= 0 ? result : b + result;\n}\nfunction fillArr(length, val) {\n // Current callers only pass primitive fill values; object fills would alias references.\n return new Array(length).fill(val);\n}\nfunction popcnt(n) {\n n = n - ((n >>> 1) & 0x55555555);\n n = (n & 0x33333333) + ((n >>> 2) & 0x33333333);\n return (((n + (n >>> 4)) & 0x0f0f0f0f) * 0x01010101) >>> 24;\n}\n/**\n * Interleaves byte blocks.\n * @param blocks [[1, 2, 3], [4, 5, 6]]\n * @returns [1, 4, 2, 5, 3, 6]\n */\nfunction interleaveBytes(blocks) {\n let maxLen = 0;\n let totalLen = 0;\n for (const block of blocks) {\n maxLen = Math.max(maxLen, block.length);\n totalLen += block.length;\n }\n const result = new Uint8Array(totalLen);\n let idx = 0;\n // When block lengths differ, callers must pass the shorter blocks first so\n // the interleaving order matches ISO/IEC 18004 §7.6 c).\n for (let i = 0; i < maxLen; i++) {\n for (const block of blocks) {\n if (i < block.length)\n result[idx++] = block[i];\n }\n }\n return result;\n}\n// Optimize for minimal score/penalty\nfunction best() {\n let best;\n let bestScore = Infinity;\n return {\n add(score, value) {\n // Ties keep the first candidate so equal-score selections stay deterministic.\n if (score >= bestScore)\n return;\n best = value;\n bestScore = score;\n },\n get: () => best,\n score: () => bestScore,\n };\n}\n// Based on https://github.com/paulmillr/scure-base/blob/main/index.ts\nfunction alphabet(alphabet) {\n // Character order defines the numeric values used by the target QR mode.\n return Object.freeze({\n has: (char) => alphabet.includes(char),\n decode: (input) => {\n if (!Array.isArray(input) || (input.length && typeof input[0] !== 'string'))\n throw new Error('alphabet.decode input should be array of strings');\n return input.map((letter) => {\n if (typeof letter !== 'string')\n throw new Error(`alphabet.decode: not string element=${letter}`);\n const index = alphabet.indexOf(letter);\n if (index === -1)\n throw new Error(`Unknown letter: \"${letter}\". Allowed: ${alphabet}`);\n return index;\n });\n },\n encode: (digits) => {\n if (!Array.isArray(digits) || (digits.length && typeof digits[0] !== 'number'))\n throw new Error('alphabet.encode input should be an array of numbers');\n return digits.map((i) => {\n assertNumber(i);\n if (i < 0 || i >= alphabet.length)\n throw new Error(`Digit index outside alphabet: ${i} (alphabet: ${alphabet.length})`);\n return alphabet[i];\n });\n },\n });\n}\n// Transpose 32x32 bit matrix in-place\n// a[0..31] are 32 rows of 32 bits each; after transpose they become 32 columns.\nfunction transpose32(a) {\n if (a.length !== 32)\n throw new Error('expects 32 element matrix');\n const masks = [0x55555555, 0x33333333, 0x0f0f0f0f, 0x00ff00ff, 0x0000ffff];\n // Hello again, FFT\n for (let stage = 0; stage < 5; stage++) {\n const m = masks[stage] >>> 0;\n const s = 1 << stage; // 1,2,4,8,16\n const step = s << 1; // 2,4,8,16,32\n for (let i = 0; i < 32; i += step) {\n for (let k = 0; k < s; k++) {\n const i0 = i + k;\n const i1 = i0 + s;\n const x = a[i0] >>> 0;\n const y = a[i1] >>> 0;\n const t = ((x >>> s) ^ y) & m;\n a[i0] = (x ^ (t << s)) >>> 0;\n a[i1] = (y ^ t) >>> 0;\n }\n }\n }\n}\nconst bitMask = (x) => (1 << (x & 31)) >>> 0;\nconst rangeMask = (shift, len) => {\n // len in [0..32], shift in [0..31]\n if (len === 0)\n return 0;\n // Callers only request len=32 for word-aligned spans; JS shift counts wrap at 32,\n // so full-word masks must bypass the generic `(1 << len)` path.\n if (len === 32)\n return 0xffffffff;\n return (((1 << len) - 1) << shift) >>> 0;\n};\n/**\n * Mutable monochrome bitmap used as the internal QR representation.\n * @param size - Square edge length or explicit bitmap dimensions.\n * @param data - Optional row-major pixel matrix using `true`, `false`, or `undefined`.\n * @example\n * Create a bitmap, then scale it for display.\n * ```ts\n * import { Bitmap } from 'qr';\n * const bitmap = Bitmap.fromString('X \\n X');\n * bitmap.scale(2);\n * ```\n */\nexport class Bitmap {\n static size(size, limit) {\n if (typeof size === 'number')\n size = { height: size, width: size };\n if (!Number.isSafeInteger(size.height) && size.height !== Infinity)\n throw new Error(`Bitmap: invalid height=${size.height} (${typeof size.height})`);\n if (!Number.isSafeInteger(size.width) && size.width !== Infinity)\n throw new Error(`Bitmap: invalid width=${size.width} (${typeof size.width})`);\n if (limit !== undefined) {\n // Clamp length, so it won't overflow, also allows to use Infinity, so we draw until end\n size = {\n width: Math.min(size.width, limit.width),\n height: Math.min(size.height, limit.height),\n };\n }\n return size;\n }\n static fromString(s) {\n // Remove linebreaks on start and end, so we draw in `` section\n // Fixture strings use LF-delimited rows of X / space / ? characters; callers\n // must normalize CRLF input before handing it to this debug parser.\n s = s.replace(/^\\n+/g, '').replace(/\\n+$/g, '');\n const lines = s.split(String.fromCharCode(chCodes.newline));\n const height = lines.length;\n let width;\n const rows = [];\n for (const line of lines) {\n const row = line.split('').map((i) => {\n if (i === 'X')\n return true;\n if (i === ' ')\n return false;\n if (i === '?')\n return undefined;\n throw new Error(`Bitmap.fromString: unknown symbol=${i}`);\n });\n if (width !== undefined && row.length !== width)\n throw new Error(`Bitmap.fromString different row sizes: width=${width} cur=${row.length}`);\n width = row.length;\n rows.push(row);\n }\n if (width === undefined)\n width = 0;\n return new Bitmap({ height, width }, rows);\n }\n // Two bitsets:\n // defined=0 -> undefined\n // defined=1,value=0 -> false\n // defined=1,value=1 -> true\n defined;\n value;\n tailMask;\n words;\n fullWords;\n height;\n width;\n constructor(size, data) {\n const { height, width } = Bitmap.size(size);\n // Bitmap coordinates wrap through modulo for negative positions, so invalid\n // dimensions produce NaN, aliasing, or unsafe allocation sizes before later\n // drawing no-op guards can run. `Infinity` is only valid for rectangle sizes\n // that are clamped against an existing positive bitmap.\n if (!Number.isSafeInteger(height) || height <= 0)\n throw new Error(`Bitmap: invalid height=${height}, expected positive safe integer dimension`);\n if (!Number.isSafeInteger(width) || width <= 0)\n throw new Error(`Bitmap: invalid width=${width}, expected positive safe integer dimension`);\n this.height = height;\n this.width = width;\n this.tailMask = rangeMask(0, width & 31 || 32);\n this.words = Math.ceil(width / 32) | 0;\n this.fullWords = Math.floor(width / 32) | 0;\n this.value = new Uint32Array(this.words * height);\n this.defined = new Uint32Array(this.value.length);\n if (data) {\n // accept same semantics as old version\n if (data.length !== height)\n throw new Error(`Bitmap: data height mismatch: exp=${height} got=${data.length}`);\n for (let y = 0; y < height; y++) {\n const row = data[y];\n if (!row || row.length !== width)\n throw new Error(`Bitmap: data width mismatch at y=${y}: exp=${width} got=${row?.length}`);\n for (let x = 0; x < width; x++)\n this.set(x, y, row[x]);\n }\n }\n }\n point(p) {\n // The storage docs above say \"undefined is used as a marker whether cell\n // was written or not\"; `point()` is the detector's dark-module read and\n // intentionally treats both undefined and false as not-dark. Use\n // `isDefined()` when the written/undefined distinction matters.\n return this.get(p.x, p.y);\n }\n // Raw bounds check for scan loops; unlike `xy()`, this does not wrap or normalize coordinates.\n isInside(p) {\n return 0 <= p.x && p.x < this.width && 0 <= p.y && p.y < this.height;\n }\n size(offset) {\n if (!offset)\n return { height: this.height, width: this.width };\n const { x, y } = this.xy(offset);\n return { height: this.height - y, width: this.width - x };\n }\n xy(c) {\n if (typeof c === 'number')\n c = { x: c, y: c };\n if (!Number.isSafeInteger(c.x))\n throw new Error(`Bitmap: invalid x=${c.x}`);\n if (!Number.isSafeInteger(c.y))\n throw new Error(`Bitmap: invalid y=${c.y}`);\n // Bitmap's class docs say \"For most `draw` calls, structure is mutable\";\n // coordinate objects follow that hot-path policy too and are normalized in place.\n c.x = mod(c.x, this.width);\n c.y = mod(c.y, this.height);\n return c;\n }\n /**\n * Return pixel bit index\n */\n wordIndex(x, y) {\n return y * this.words + (x >>> 5);\n }\n bitIndex(x, y) {\n return { word: this.wordIndex(x, y), bit: x & 31 };\n }\n isDefined(x, y) {\n // `isInside()` is the raw bounds check; keep these bitset accessors\n // bounds-check-free for hot paths. Invalid tail coordinates may observe\n // backing-word bits, so callers that accept untrusted coordinates must\n // check `isInside()` first.\n const wi = this.wordIndex(x, y);\n const m = bitMask(x);\n return (this.defined[wi] & m) !== 0;\n }\n get(x, y) {\n const wi = this.wordIndex(x, y);\n const m = bitMask(x);\n return (this.value[wi] & m) !== 0;\n }\n maskWord(wi, mask, v) {\n const { defined, value } = this;\n defined[wi] |= mask;\n // `-v` expands the boolean to either all-zero or all-one bits before masking it into the selected lanes.\n value[wi] = (value[wi] & ~mask) | (-v & mask);\n }\n set(x, y, v) {\n // `undefined` means \"leave the current cell unchanged\", not \"clear it back to undefined\".\n if (v === undefined)\n return;\n // Like `get()` / `isDefined()`, this is a raw in-bounds bitset accessor;\n // check `isInside()` before passing untrusted coordinates.\n this.maskWord(this.wordIndex(x, y), bitMask(x), v);\n }\n // word-span fill for constant values (fast path)\n fillRectConst(x0, y0, w, h, v) {\n if (w <= 0 || h <= 0)\n return;\n if (v === undefined)\n return;\n const { value, defined, words } = this;\n const startWord = x0 >>> 5;\n const endWord = (x0 + w - 1) >>> 5;\n const startBit = x0 & 31;\n const endBit = (x0 + w - 1) & 31;\n for (let ry = 0; ry < h; ry++) {\n const rowBase = (y0 + ry) * words;\n if (startWord === endWord) {\n const mask = rangeMask(startBit, endBit - startBit + 1);\n this.maskWord(rowBase + startWord, mask, v);\n continue;\n }\n this.maskWord(rowBase + startWord, rangeMask(startBit, 32 - startBit), v);\n // Whole interior words can be written directly: every bit in the span becomes defined and equal to v.\n for (let i = startWord + 1; i < endWord; i++) {\n defined[rowBase + i] = 0xffffffff;\n value[rowBase + i] = v ? 0xffffffff : 0;\n }\n this.maskWord(rowBase + endWord, rangeMask(0, endBit + 1), v);\n }\n }\n rectWords(x, y, width, height, cb) {\n for (let yPos = 0; yPos < height; yPos++) {\n const Py = y + yPos;\n for (let xPos = 0; xPos < width;) {\n const bitX = x + xPos;\n const { bit, word } = this.bitIndex(bitX, Py);\n const bitsPerWord = Math.min(32 - bit, width - xPos);\n // bitX stays absolute for word-local masks; xPos/yPos stay rectangle-local for rect callbacks.\n cb(word, bitX, xPos, yPos, bitsPerWord);\n xPos += bitsPerWord;\n }\n }\n }\n // Basically every operation can be represented as rect\n rect(c, size, fn) {\n const { x, y } = this.xy(c);\n const { height, width } = Bitmap.size(size, this.size({ x, y }));\n if (typeof fn !== 'function') {\n this.fillRectConst(x, y, width, height, fn);\n return this;\n }\n const { defined, value } = this;\n this.rectWords(x, y, width, height, (wi, bitX, xPos, yPos, n) => {\n let defWord = 0;\n let valWord = value[wi];\n for (let b = 0; b < n; b++) {\n const mask = bitMask(bitX + b);\n // As with `point()`, callback `cur` is a dark/not-dark read; the\n // storage-level \"undefined is used as a marker whether cell was\n // written or not\" distinction is checked separately with `isDefined()`.\n const res = fn({ x: xPos + b, y: yPos }, (valWord & mask) !== 0);\n // Returning undefined from the callback keeps the existing cell unchanged.\n if (res === undefined)\n continue;\n defWord |= mask;\n valWord = (valWord & ~mask) | (-res & mask);\n }\n defined[wi] |= defWord;\n value[wi] = valWord;\n });\n return this;\n }\n // returns rectangular part of bitmap\n rectRead(c, size, fn) {\n const { x, y } = this.xy(c);\n const { height, width } = Bitmap.size(size, this.size({ x, y }));\n const { value } = this;\n this.rectWords(x, y, width, height, (wi, bitX, xPos, yPos, n) => {\n const valWord = value[wi];\n for (let b = 0; b < n; b++) {\n const mask = bitMask(bitX + b);\n // rectRead is non-mutating; callback coordinates are rectangle-local,\n // and `cur` is the same dark/not-dark read as `point()`.\n fn({ x: xPos + b, y: yPos }, (valWord & mask) !== 0);\n }\n });\n return this;\n }\n // Horizontal & vertical lines\n hLine(c, len, value) {\n return this.rect(c, { width: len, height: 1 }, value);\n }\n vLine(c, len, value) {\n return this.rect(c, { width: 1, height: len }, value);\n }\n // add border\n border(border = 2, value) {\n // `border` is used both as output-size delta and as embed coordinate; keep\n // it a positive safe integer before those paths allocate or normalize.\n if (!Number.isSafeInteger(border) || border <= 0)\n throw new Error(`Bitmap.border: invalid size=${border}`);\n const height = this.height + 2 * border;\n const width = this.width + 2 * border;\n const out = new Bitmap({ height, width });\n // fill everything with border value, then embed original\n out.rect(0, Infinity, value);\n out.embed({ x: border, y: border }, this);\n return out;\n }\n // Embed another bitmap on coordinates\n embed(c, src) {\n const { x, y } = this.xy(c);\n const { height, width } = Bitmap.size(src.size(), this.size({ x, y }));\n if (width <= 0 || height <= 0)\n return this;\n const { value, defined } = this;\n const { words: srcStride, value: srcValue } = src;\n // The Bitmap storage docs say \"undefined is used as a marker whether cell\n // was written or not\"; `embed()` is the packed blit path for materialized\n // source bitmaps, so it flattens the source rectangle to defined dark/light\n // bits instead of treating undefined cells as transparent.\n for (let yPos = 0; yPos < height; yPos++) {\n const srcRow = yPos * srcStride;\n for (let xPos = 0; xPos < width;) {\n const dstX = x + xPos;\n const { word: dstWord, bit: dstBit } = this.bitIndex(dstX, y + yPos);\n const { word: srcWord, bit: srcBit } = src.bitIndex(xPos, yPos);\n const len = Math.min(32 - dstBit, width - xPos);\n const w0 = srcValue[srcWord];\n const w1 = srcBit && srcWord + 1 < srcRow + srcStride ? srcValue[srcWord + 1] : 0;\n // Source and destination bit offsets may differ, so assemble the source span from up to two words.\n const sVal = srcBit ? ((w0 >>> srcBit) | (w1 << (32 - srcBit))) >>> 0 : w0;\n const dstMask = rangeMask(dstBit, len);\n const valBits = ((sVal & rangeMask(0, len)) << dstBit) >>> 0;\n defined[dstWord] |= dstMask;\n value[dstWord] = (value[dstWord] & ~dstMask) | valBits;\n xPos += len;\n }\n }\n return this;\n }\n // returns rectangular part of bitmap\n rectSlice(c, size = this.size()) {\n const { x, y } = this.xy(c);\n const { height, width } = Bitmap.size(size, this.size({ x, y }));\n const rect = new Bitmap({ height, width });\n this.rectRead({ x, y }, { height, width }, (p, cur) => {\n // rectRead reports undefined cells as false, so copy only when the source defined bit is set.\n if (this.isDefined(x + p.x, y + p.y)) {\n rect.set(p.x, p.y, cur);\n }\n });\n return rect;\n }\n // Change shape, replace rows with columns (data[y][x] -> data[x][y])\n transpose() {\n const { height, width, value, defined, words } = this;\n const dst = new Bitmap({ height: width, width: height });\n const { words: dstStride, value: dstValue, defined: dstDefined, tailMask: dstTail } = dst;\n const tmpV = new Uint32Array(32);\n const tmpD = new Uint32Array(32);\n // Process src in blocks: y in [by..by+31], x in 32-bit words\n for (let by = 0; by < height; by += 32) {\n for (let bx = 0; bx < words; bx++) {\n const rows = Math.min(32, height - by);\n for (let r = 0; r < rows; r++) {\n const wi = this.wordIndex(32 * bx, by + r);\n tmpV[r] = value[wi];\n tmpD[r] = defined[wi];\n }\n // zero-pad remainder\n tmpV.fill(0, rows);\n tmpD.fill(0, rows);\n transpose32(tmpV);\n transpose32(tmpD);\n for (let i = 0; i < 32; i++) {\n const dstY = bx * 32 + i;\n if (dstY >= width)\n break;\n const dstPos = dst.wordIndex(by, dstY);\n const curMask = by >>> 5 === dstStride - 1 ? dstTail : 0xffffffff;\n dstValue[dstPos] = tmpV[i] & curMask;\n dstDefined[dstPos] = tmpD[i] & curMask;\n }\n }\n }\n return dst;\n }\n // black <-> white (inplace)\n negate() {\n const n = this.defined.length;\n for (let i = 0; i < n; i++) {\n // ISO/IEC 18004:2024 §12 b)5 says to \"reverse the colouring of the light\n // and dark pixels\"; this dense scratch-bitmap operation materializes every\n // backing bit as defined and does not preserve sparse/undefined cells.\n this.value[i] = ~this.value[i];\n this.defined[i] = 0xffffffff;\n }\n return this;\n }\n // Each pixel size is multiplied by factor\n scale(factor) {\n if (!Number.isSafeInteger(factor) || factor > 1024)\n throw new Error(`invalid scale factor: ${factor}`);\n const { height, width } = this;\n // Bitmap storage docs say \"undefined is used as a marker whether cell was\n // written or not\"; `scale()` is an output materialization path and samples\n // with `get()`, so sparse cells become defined light cells. Positive output\n // dimensions stay validated by the Bitmap constructor instead of duplicating\n // dimension checks in every caller that computes a new bitmap size.\n const res = new Bitmap({ height: factor * height, width: factor * width });\n return res.rect({ x: 0, y: 0 }, Infinity, ({ x, y }) => this.get((x / factor) | 0, (y / factor) | 0));\n }\n clone() {\n const res = new Bitmap(this.size());\n res.defined.set(this.defined);\n res.value.set(this.value);\n return res;\n }\n // Ensure that there is no undefined values left\n assertDrawn() {\n const { height, width, defined, tailMask, fullWords, words } = this;\n if (!height || !width)\n return;\n for (let y = 0; y < height; y++) {\n const rowBase = y * words;\n for (let wi = 0; wi < fullWords; wi++) {\n if (defined[rowBase + wi] !== 0xffffffff)\n throw new Error(`Invalid color type=undefined`);\n }\n if (words !== fullWords && (defined[rowBase + fullWords] & tailMask) !== tailMask)\n throw new Error(`Invalid color type=undefined`);\n }\n }\n countPatternInRow(y, patternLen, ...patterns) {\n // Penalty scanning only passes Table 11 windows over bounded symbol rows;\n // validate this public helper before JS shifts / typed-array reads coerce bad inputs.\n if (!Number.isSafeInteger(patternLen) || patternLen <= 0 || patternLen >= 32)\n throw new Error('wrong patternLen');\n const mask = (1 << patternLen) - 1;\n const { height, width, value, words } = this;\n if (!Number.isSafeInteger(y) || y < 0 || y >= height)\n return 0;\n let count = 0;\n const rowBase = this.wordIndex(0, y);\n for (let i = 0, window = 0; i < words; i++) {\n const w = value[rowBase + i];\n const bitEnd = i === words - 1 ? width & 31 || 32 : 32;\n for (let b = 0; b < bitEnd; b++) {\n window = ((window << 1) | ((w >>> b) & 1)) & mask;\n if (i * 32 + b + 1 < patternLen)\n continue;\n for (const p of patterns) {\n if (window !== p)\n continue;\n count++;\n break;\n }\n }\n }\n return count;\n }\n getRuns(y, fn) {\n const { height, width, value, words } = this;\n if (width === 0)\n return;\n // ISO/IEC 18004:2024 §7.8.3.1 N1 scans adjacent modules in bounded rows\n // and columns; validate this public helper before missing typed-array rows\n // are coerced into all-light runs by bitwise operators.\n if (!Number.isSafeInteger(y) || y < 0 || y >= height)\n return;\n let runLen = 0;\n let runValue;\n const rowBase = this.wordIndex(0, y);\n for (let i = 0; i < words; i++) {\n const word = value[rowBase + i];\n const bitEnd = i === words - 1 ? width & 31 || 32 : 32;\n for (let b = 0; b < bitEnd; b++) {\n const bit = (word & (1 << b)) !== 0;\n if (bit === runValue) {\n runLen++;\n continue;\n }\n if (runValue !== undefined)\n fn(runLen, runValue);\n runValue = bit;\n runLen = 1;\n }\n }\n if (runValue !== undefined)\n fn(runLen, runValue);\n }\n popcnt() {\n const { height, width, words, fullWords, tailMask } = this;\n if (!height || !width)\n return 0;\n let count = 0;\n for (let y = 0; y < height; y++) {\n const rowBase = y * words;\n for (let wi = 0; wi < fullWords; wi++)\n count += popcnt(this.value[rowBase + wi]);\n if (words !== fullWords)\n count += popcnt(this.value[rowBase + fullWords] & tailMask);\n }\n return count;\n }\n countBoxes2x2(y) {\n const { height, width, words } = this;\n // ISO/IEC 18004:2024 §7.8.3.1 N2 counts 2 x 2 module blocks in bounded\n // rows; reject non-integer scan rows before bitwise coercions truncate them.\n if (width < 2 || !Number.isSafeInteger(y) || y < 0 || y + 1 >= height)\n return 0;\n const base0 = this.wordIndex(0, y);\n const base1 = this.wordIndex(0, y + 1);\n // valid \"left-edge\" positions x in [0 .. W-2]\n const tailBits = width & 31;\n const validLast = tailBits === 0 ? 0x7fffffff : rangeMask(0, (width - 1) & 31);\n let boxes = 0;\n for (let wi = 0; wi < words; wi++) {\n const a0 = this.value[base0 + wi];\n const a1 = this.value[base1 + wi];\n // Compare bit x with bit x+1 at same bit position.\n const eqV = ~(a0 ^ a1) >>> 0; // row0[x] == row1[x]\n const n0 = wi + 1 < words ? this.value[base0 + wi + 1] >>> 0 : 0;\n const eqH0 = ~(a0 ^ (((a0 >>> 1) | ((n0 & 1) << 31)) >>> 0)) >>> 0; // row0[x] == row0[x+1]\n const n1 = wi + 1 < words ? this.value[base1 + wi + 1] >>> 0 : 0;\n const eqH1 = ~(a1 ^ (((a1 >>> 1) | ((n1 & 1) << 31)) >>> 0)) >>> 0; // row1[x] == row1[x+1]\n let m = (eqV & eqH0 & eqH1) >>> 0;\n if (wi === words - 1)\n m &= validLast;\n boxes += popcnt(m);\n }\n return boxes;\n }\n // Export\n toString() {\n const nl = String.fromCharCode(chCodes.newline);\n let out = '';\n for (let y = 0; y < this.height; y++) {\n let line = '';\n for (let x = 0; x < this.width; x++) {\n const v = this.get(x, y);\n line += !this.isDefined(x, y) ? '?' : v ? 'X' : ' ';\n }\n out += line + (y + 1 === this.height ? '' : nl);\n }\n return out;\n }\n toRaw() {\n const out = Array.from({ length: this.height }, () => new Array(this.width));\n for (let y = 0; y < this.height; y++) {\n const row = out[y];\n // Bitmap storage docs say \"undefined is used as a marker whether cell was\n // written or not\"; `toRaw()` is the materialized dark/not-dark output path\n // used after `encodeQR()` asserts the QR symbol is fully drawn.\n for (let x = 0; x < this.width; x++)\n row[x] = this.get(x, y);\n }\n return out;\n }\n toASCII() {\n const { height, width } = this;\n let out = '';\n // Terminal character height is x2 of character width, so we process two rows of bitmap\n // to produce one row of ASCII\n for (let y = 0; y < height; y += 2) {\n for (let x = 0; x < width; x++) {\n const first = this.get(x, y);\n const second = y + 1 >= height ? true : this.get(x, y + 1); // if last row outside bitmap, make it black\n if (!first && !second)\n out += '█'; // both rows white (empty)\n else if (!first && second)\n out += '▀'; // top row white\n else if (first && !second)\n out += '▄'; // down row white\n else if (first && second)\n out += ' '; // both rows black\n }\n out += String.fromCharCode(chCodes.newline);\n }\n return out;\n }\n toTerm() {\n const cc = String.fromCharCode(chCodes.reset);\n const reset = cc + '[0m';\n const whiteBG = cc + '[1;47m ' + reset;\n const darkBG = cc + `[40m ` + reset;\n const nl = String.fromCharCode(chCodes.newline);\n let out = '';\n for (let y = 0; y < this.height; y++) {\n for (let x = 0; x < this.width; x++) {\n const v = this.get(x, y); // undefined -> white\n out += v ? darkBG : whiteBG;\n }\n out += nl;\n }\n return out;\n }\n toSVG(optimize = true) {\n let out = ``;\n return out;\n }\n toGIF() {\n // NOTE: Small, but inefficient implementation.\n // Uses 1 byte per pixel.\n const u16le = (i) => [i & 0xff, (i >>> 8) & 0xff];\n const dims = [...u16le(this.width), ...u16le(this.height)];\n const data = [];\n // Palette index 0 is white/light and index 1 is black/dark; rectRead maps undefined cells to light.\n this.rectRead(0, Infinity, (_, cur) => data.push(+(cur === true)));\n // Each chunk starts with an LZW clear code; 126 raw pixels keep codes at 8 bits until the next clear.\n const N = 126; // Block size\n // prettier-ignore\n const bytes = [\n 0x47, 0x49, 0x46, 0x38, 0x37, 0x61, ...dims, 0xf6, 0x00, 0x00, 0xff, 0xff, 0xff,\n ...fillArr(3 * 127, 0x00), 0x2c, 0x00, 0x00, 0x00, 0x00, ...dims, 0x00, 0x07\n ];\n const fullChunks = Math.floor(data.length / N);\n // Full blocks\n for (let i = 0; i < fullChunks; i++)\n bytes.push(N + 1, 0x80, ...data.slice(N * i, N * (i + 1)).map((i) => +i));\n // Remaining bytes\n bytes.push((data.length % N) + 1, 0x80, ...data.slice(fullChunks * N).map((i) => +i));\n bytes.push(0x01, 0x81, 0x00, 0x3b);\n return new Uint8Array(bytes);\n }\n toImage(isRGB = false) {\n const { height, width } = this.size();\n const data = new Uint8Array(height * width * (isRGB ? 3 : 4));\n let i = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const value = this.get(x, y) ? 0 : 255; // undefined -> white\n data[i++] = value;\n data[i++] = value;\n data[i++] = value;\n if (!isRGB)\n data[i++] = 255; // alpha channel\n }\n }\n return { height, width, data };\n }\n}\n// End of utils\n// Runtime type-checking\n/** Error correction mode. low: 7%, medium: 15%, quartile: 25%, high: 30%. */\nexport const ECMode = /* @__PURE__ */ Object.freeze(['low', 'medium', 'quartile', 'high']);\n/**\n * QR payload compaction mode names recognized by the type/validator.\n * `kanji` and `eci` are spec modes, but `encodeQR` currently rejects them until implemented.\n */\nexport const Encoding = \n/* @__PURE__ */ Object.freeze(['numeric', 'alphanumeric', 'byte', 'kanji', 'eci']);\n// Various constants & tables\n// ISO/IEC 18004:2024 Table 1: QR symbol codeword capacity by version (data plus error correction).\n// prettier-ignore\nconst BYTES = [\n // 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346, 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n // 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185, 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706,\n];\n// ISO/IEC 18004:2024 Table 9: error correction codewords per block by version and level.\n// prettier-ignore\nconst WORDS_PER_BLOCK = {\n // Version 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40\n low: [7, 10, 15, 20, 26, 18, 20, 24, 30, 18, 20, 24, 26, 30, 22, 24, 28, 30, 28, 28, 28, 28, 30, 30, 26, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],\n medium: [10, 16, 26, 18, 24, 16, 18, 22, 22, 26, 30, 22, 22, 24, 24, 28, 28, 26, 26, 26, 26, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28],\n quartile: [13, 22, 18, 26, 18, 24, 18, 22, 20, 24, 28, 26, 24, 20, 30, 24, 28, 28, 26, 30, 28, 30, 30, 30, 30, 28, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],\n high: [17, 28, 22, 16, 22, 28, 26, 26, 24, 28, 24, 28, 22, 24, 24, 30, 28, 28, 26, 28, 30, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],\n};\n// ISO/IEC 18004:2024 Table 9: error correction block count by version and level.\n// prettier-ignore\nconst ECC_BLOCKS = {\n // Version 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40\n low: [1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 6, 6, 6, 6, 7, 8, 8, 9, 9, 10, 12, 12, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 24, 25],\n medium: [1, 1, 1, 2, 2, 4, 4, 4, 5, 5, 5, 8, 9, 9, 10, 10, 11, 13, 14, 16, 17, 17, 18, 20, 21, 23, 25, 26, 28, 29, 31, 33, 35, 37, 38, 40, 43, 45, 47, 49],\n quartile: [1, 1, 2, 2, 4, 4, 6, 6, 8, 8, 8, 10, 12, 16, 12, 17, 16, 18, 21, 20, 23, 23, 25, 27, 29, 34, 34, 35, 38, 40, 43, 45, 48, 51, 53, 56, 59, 62, 65, 68],\n high: [1, 1, 2, 4, 4, 4, 5, 6, 8, 8, 11, 11, 16, 16, 18, 16, 19, 21, 25, 25, 25, 34, 30, 32, 35, 37, 40, 42, 45, 48, 51, 54, 57, 60, 63, 66, 70, 74, 77, 81],\n};\n// ISO/IEC 18004:2024 sections 5.3/7.4/7.5/7.9/7.10: QR layout, segment, format/version, and capacity helpers.\nconst info = /* @__PURE__ */ Object.freeze({\n size: /* @__PURE__ */ Object.freeze({\n encode: (ver) => 21 + 4 * (ver - 1), // ver1 = 21, ver40 = 177 modules per side\n decode: (size) => (size - 17) / 4,\n }),\n // ISO/IEC 18004:2024 Table 3: map version ranges 1-9, 10-26, and 27-40 to count-width indexes.\n sizeType: (ver) => Math.floor((ver + 7) / 17),\n // ISO/IEC 18004:2024 Annex E Table E.1: row/column coordinate list of alignment-pattern centres.\n // Based on https://codereview.stackexchange.com/questions/74925/algorithm-to-generate-this-alignment-pattern-locations-table-for-qr-codes\n alignmentPatterns(ver) {\n if (ver === 1)\n return [];\n const first = 6;\n const last = info.size.encode(ver) - first - 1;\n const distance = last - first;\n const count = Math.ceil(distance / 28);\n let interval = Math.floor(distance / count);\n if (interval % 2)\n interval += 1;\n else if ((distance % count) * 2 >= count)\n interval += 2;\n const res = [first];\n for (let m = 1; m < count; m++)\n res.push(last - (count - m) * interval);\n res.push(last);\n return res;\n },\n // ISO/IEC 18004:2024 §7.9.1 Table 12: error-correction-level indicators for the top two format-information data bits.\n ECCode: /* @__PURE__ */ Object.freeze({\n low: 0b01,\n medium: 0b00,\n quartile: 0b11,\n high: 0b10,\n }),\n // ISO/IEC 18004:2024 §7.9.1 final paragraph: XOR the 15-bit format information with mask pattern 101010000010010.\n formatMask: 0b101010000010010,\n // ISO/IEC 18004:2024 §7.9.1 / Annex C.2: append the 10-bit BCH remainder for the 5 data bits, then apply the fixed QR format mask.\n formatBits(ecc, maskIdx) {\n const data = (info.ECCode[ecc] << 3) | maskIdx;\n let d = data;\n for (let i = 0; i < 10; i++)\n d = (d << 1) ^ ((d >> 9) * 0b10100110111);\n return ((data << 10) | d) ^ info.formatMask;\n },\n // ISO/IEC 18004:2024 §7.10 / Annex D.2: append the 12-bit Golay remainder to the 6-bit version word; version information is not masked.\n versionBits(ver) {\n let d = ver;\n for (let i = 0; i < 12; i++)\n d = (d << 1) ^ ((d >> 11) * 0b1111100100101);\n return (ver << 12) | d;\n },\n // ISO/IEC 18004:2024 §7.3.3 / §7.3.4 / §7.4.5 Table 5: character-set membership and value codecs for numeric and alphanumeric QR modes.\n alphabet: /* @__PURE__ */ Object.freeze({\n // ISO/IEC 18004:2024 §7.3.3 / §7.4.4: numeric-mode digits map directly to values 0..9 before 3-digit grouping.\n numeric: alphabet('0123456789'),\n // ISO/IEC 18004:2024 §7.3.4 / §7.4.5 Table 5: 45-character alphanumeric-mode value order used for 11-bit pair packing. Keep the legacy `alphanumerc` key name in sync with existing callers.\n alphanumerc: alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:'),\n }), // as Record>,\n // ISO/IEC 18004:2024 Table 3 gives QR character-count widths for data modes; ECI headers instead carry only the mode indicator plus the designator from §7.4.3.\n lengthBits(ver, type) {\n const table = {\n numeric: [10, 12, 14],\n alphanumeric: [9, 11, 13],\n byte: [8, 16, 16],\n kanji: [8, 10, 12],\n eci: [0, 0, 0],\n };\n return table[type][info.sizeType(ver)];\n },\n // ISO/IEC 18004:2024 §7.4.2 Table 2: 4-bit QR mode indicators for the segment types this library models.\n modeBits: /* @__PURE__ */ Object.freeze({\n numeric: '0001',\n alphanumeric: '0010',\n byte: '0100',\n kanji: '1000',\n eci: '0111',\n }),\n // ISO/IEC 18004:2024 Table 1 / §7.5.1 Table 9: derive total data bits and short/long RS block layout from total codewords, ECC words per block, and block counts.\n capacity(ver, ecc) {\n const bytes = BYTES[ver - 1];\n const words = WORDS_PER_BLOCK[ecc][ver - 1];\n const numBlocks = ECC_BLOCKS[ecc][ver - 1];\n const blockLen = Math.floor(bytes / numBlocks) - words;\n const shortBlocks = numBlocks - (bytes % numBlocks);\n return {\n words,\n numBlocks,\n shortBlocks,\n blockLen,\n capacity: (bytes - words * numBlocks) * 8,\n total: (words + blockLen) * numBlocks + numBlocks - shortBlocks,\n };\n },\n});\n// ISO/IEC 18004:2024 Table 10: QR data-mask predicates 000..111, written here in (x column, y row) form.\nconst PATTERNS = /* @__PURE__ */ Object.freeze([\n (x, y) => (x + y) % 2 == 0,\n (_x, y) => y % 2 == 0,\n (x, _y) => x % 3 == 0,\n (x, y) => (x + y) % 3 == 0,\n (x, y) => (Math.floor(y / 2) + Math.floor(x / 3)) % 2 == 0,\n (x, y) => ((x * y) % 2) + ((x * y) % 3) == 0,\n (x, y) => (((x * y) % 2) + ((x * y) % 3)) % 2 == 0,\n (x, y) => (((x + y) % 2) + ((x * y) % 3)) % 2 == 0,\n]);\n// Galois field && reed-solomon encoding\n// ISO/IEC 18004:2024 §7.5.2 / Annex A / Annex B: GF(2^8) field and polynomial helpers shared by QR Reed-Solomon parity generation and decoding.\nconst GF = {\n tables: ((p_poly) => {\n const exp = fillArr(256, 0);\n const log = fillArr(256, 0);\n for (let i = 0, x = 1; i < 256; i++) {\n exp[i] = x;\n log[x] = i;\n x <<= 1;\n if (x & 0x100)\n x ^= p_poly;\n }\n // Keep α^255 = 1 in exp[255]; GF.log() folds the matching log[1] = 255\n // back to 0 with `% 255`, so later helpers can wrap exponents without a special case.\n return { exp, log };\n })(0x11d),\n // Raw α^i lookup from the precomputed field table; callers are expected\n // to reduce / validate exponents before indexing it.\n exp: (x) => GF.tables.exp[x],\n // log(0) is undefined in GF(2^8); `% 255` also folds the wrapped table\n // entry for α^255 = 1 back to exponent 0.\n log(x) {\n if (x === 0)\n throw new Error(`GF.log: invalid arg=${x}`);\n return GF.tables.log[x] % 255;\n },\n // Zero has no logarithm in GF(2^8), so it must short-circuit here; all\n // other products are α^(log(x) + log(y) mod 255) in the reviewed field.\n mul(x, y) {\n if (x === 0 || y === 0)\n return 0;\n return GF.tables.exp[(GF.tables.log[x] + GF.tables.log[y]) % 255];\n },\n // In characteristic 2 fields, addition and subtraction are the same\n // bitwise XOR operation used by the QR Reed-Solomon arithmetic.\n add: (x, y) => x ^ y,\n // Raw nonzero field power helper. Current QR use is GF.pow(2, i) for the\n // Annex A generator factors; x = 0 or negative exponents are not validated.\n pow: (x, e) => GF.tables.exp[(GF.tables.log[x] * e) % 255],\n // Multiplicative inverse for nonzero field elements. Current callers only\n // use it on values already known to be nonzero; 0 has no inverse in GF(2^8).\n inv(x) {\n if (x === 0)\n throw new Error(`GF.inverse: invalid arg=${x}`);\n return GF.tables.exp[255 - GF.tables.log[x]];\n },\n // Canonicalize coefficient arrays by trimming leading zero coefficients\n // while preserving `[0]` as the zero polynomial; already-normalized inputs\n // are returned by reference.\n polynomial(poly) {\n if (poly.length == 0)\n throw new Error('GF.polymomial: invalid length');\n if (poly[0] !== 0)\n return poly;\n // Strip leading zeros\n let i = 0;\n for (; i < poly.length - 1 && poly[i] == 0; i++)\n ;\n return poly.slice(i);\n },\n // Represent c*x^degree in the descending-power coefficient layout used\n // by the QR Reed-Solomon helpers; coefficient 0 canonicalizes to `[0]`.\n monomial(degree, coefficient) {\n if (degree < 0)\n throw new Error(`GF.monomial: invalid degree=${degree}`);\n if (coefficient == 0)\n return [0];\n let coefficients = fillArr(degree + 1, 0);\n coefficients[0] = coefficient;\n return GF.polynomial(coefficients);\n },\n // Canonical polynomials keep the highest-order coefficient first and use\n // `[0]` for zero, so degree is just `length - 1`.\n degree: (a) => a.length - 1,\n // Read the coefficient for x^degree from the descending-power array layout.\n // Canonical arrays make this a direct index; out-of-range degrees return `undefined`.\n coefficient: (a, degree) => a[GF.degree(a) - degree],\n // Multiply descending-power coefficient arrays by convolution over GF(2^8).\n // Zero short-circuits here before the log-based field multiply is consulted.\n mulPoly(a, b) {\n if (a[0] === 0 || b[0] === 0)\n return [0];\n const res = fillArr(a.length + b.length - 1, 0);\n for (let i = 0; i < a.length; i++) {\n for (let j = 0; j < b.length; j++) {\n res[i + j] = GF.add(res[i + j], GF.mul(a[i], b[j]));\n }\n }\n return GF.polynomial(res);\n },\n // Scale every coefficient by the same field element in descending-power order.\n // Scalar 0 canonicalizes to `[0]`, and scalar 1 reuses the original array.\n mulPolyScalar(a, scalar) {\n if (scalar == 0)\n return [0];\n if (scalar == 1)\n return a;\n const res = fillArr(a.length, 0);\n for (let i = 0; i < a.length; i++)\n res[i] = GF.mul(a[i], scalar);\n return GF.polynomial(res);\n },\n // Multiply a polynomial by c*x^degree in descending-power coefficient form.\n // This scales existing coefficients, then appends trailing zero coefficients.\n mulPolyMonomial(a, degree, coefficient) {\n if (degree < 0)\n throw new Error('GF.mulPolyMonomial: invalid degree');\n if (coefficient == 0)\n return [0];\n const res = fillArr(a.length + degree, 0);\n for (let i = 0; i < a.length; i++)\n res[i] = GF.mul(a[i], coefficient);\n return GF.polynomial(res);\n },\n // Add descending-power coefficient arrays with GF(2^8) XOR on the aligned\n // suffix; `[0]` short-circuits by returning the other array unchanged.\n addPoly(a, b) {\n if (a[0] === 0)\n return b;\n if (b[0] === 0)\n return a;\n let smaller = a;\n let larger = b;\n if (smaller.length > larger.length)\n [smaller, larger] = [larger, smaller];\n let sumDiff = fillArr(larger.length, 0);\n let lengthDiff = larger.length - smaller.length;\n let s = larger.slice(0, lengthDiff);\n for (let i = 0; i < s.length; i++)\n sumDiff[i] = s[i];\n for (let i = lengthDiff; i < larger.length; i++)\n sumDiff[i] = GF.add(smaller[i - lengthDiff], larger[i]);\n return GF.polynomial(sumDiff);\n },\n // Synthetic division for monic divisors in descending-power coefficient form.\n // Callers are expected to append `divisor.length - 1` zero coefficients first.\n remainderPoly(data, divisor) {\n const out = Array.from(data);\n for (let i = 0; i < data.length - divisor.length + 1; i++) {\n const elm = out[i];\n if (elm === 0)\n continue;\n for (let j = 1; j < divisor.length; j++) {\n if (divisor[j] !== 0)\n out[i + j] = GF.add(out[i + j], GF.mul(divisor[j], elm));\n }\n }\n return out.slice(data.length - divisor.length + 1, out.length);\n },\n // Build Annex A's monic generator polynomial g_n(x) = Π(x - 2^i).\n // degree=0 returns `[1]`; callers are expected to validate degree bounds.\n divisorPoly(degree) {\n let g = [1];\n for (let i = 0; i < degree; i++)\n g = GF.mulPoly(g, [1, GF.pow(2, i)]);\n return g;\n },\n // Evaluate a descending-power coefficient array at `a` with Horner's rule.\n // The `a == 0` fast-path returns the x^0 coefficient directly.\n evalPoly(poly, a) {\n if (a == 0)\n return GF.coefficient(poly, 0); // Just return the x^0 coefficient\n let res = poly[0];\n for (let i = 1; i < poly.length; i++)\n res = GF.add(GF.mul(a, res), poly[i]);\n return res;\n },\n // TODO: cleanup\n // Extended Euclidean RS step: derive the locator/evaluator pair from x^R\n // and the syndrome polynomial, then normalize sigma(0) to 1.\n euclidian(a, b, R) {\n // Force degree(a) >= degree(b)\n if (GF.degree(a) < GF.degree(b))\n [a, b] = [b, a];\n let rLast = a;\n let r = b;\n let tLast = [0];\n let t = [1];\n // while degree of Ri ≥ t/2\n while (2 * GF.degree(r) >= R) {\n let rLastLast = rLast;\n let tLastLast = tLast;\n rLast = r;\n tLast = t;\n if (rLast[0] === 0)\n throw new Error('rLast[0] === 0');\n r = rLastLast;\n let q = [0];\n const dltInverse = GF.inv(rLast[0]);\n while (GF.degree(r) >= GF.degree(rLast) && r[0] !== 0) {\n const degreeDiff = GF.degree(r) - GF.degree(rLast);\n const scale = GF.mul(r[0], dltInverse);\n q = GF.addPoly(q, GF.monomial(degreeDiff, scale));\n r = GF.addPoly(r, GF.mulPolyMonomial(rLast, degreeDiff, scale));\n }\n q = GF.mulPoly(q, tLast);\n t = GF.addPoly(q, tLastLast);\n if (GF.degree(r) >= GF.degree(rLast))\n throw new Error(`Division failed r: ${r}, rLast: ${rLast}`);\n }\n const sigmaTildeAtZero = GF.coefficient(t, 0);\n if (sigmaTildeAtZero == 0)\n throw new Error('sigmaTilde(0) was zero');\n const inverse = GF.inv(sigmaTildeAtZero);\n return [GF.mulPolyScalar(t, inverse), GF.mulPolyScalar(r, inverse)];\n },\n};\n// Per-block Reed-Solomon coder: encode emits only the parity bytes for one\n// data block, while decode expects data+parity bytes and returns the corrected full block.\nfunction RS(eccWords) {\n return {\n encode(from) {\n const d = GF.divisorPoly(eccWords);\n const pol = Array.from(from);\n pol.push(...d.slice(0, -1).fill(0));\n return Uint8Array.from(GF.remainderPoly(pol, d));\n },\n decode(to) {\n const res = to.slice();\n const poly = GF.polynomial(Array.from(to));\n // Find errors\n let syndrome = fillArr(eccWords, 0);\n let hasError = false;\n for (let i = 0; i < eccWords; i++) {\n const evl = GF.evalPoly(poly, GF.exp(i));\n syndrome[syndrome.length - 1 - i] = evl;\n if (evl !== 0)\n hasError = true;\n }\n if (!hasError)\n return res;\n syndrome = GF.polynomial(syndrome);\n const monomial = GF.monomial(eccWords, 1);\n const [errorLocator, errorEvaluator] = GF.euclidian(monomial, syndrome, eccWords);\n // Error locations\n const locations = fillArr(GF.degree(errorLocator), 0);\n let e = 0;\n for (let i = 1; i < 256 && e < locations.length; i++) {\n if (GF.evalPoly(errorLocator, i) === 0)\n locations[e++] = GF.inv(i);\n }\n if (e !== locations.length)\n throw new Error('RS.decode: invalid errors number');\n for (let i = 0; i < locations.length; i++) {\n const pos = res.length - 1 - GF.log(locations[i]);\n if (pos < 0)\n throw new Error('RS.decode: invalid error location');\n const xiInverse = GF.inv(locations[i]);\n let denominator = 1;\n for (let j = 0; j < locations.length; j++) {\n if (i === j)\n continue;\n denominator = GF.mul(denominator, GF.add(1, GF.mul(locations[j], xiInverse)));\n }\n res[pos] = GF.add(res[pos], GF.mul(GF.evalPoly(errorEvaluator, xiInverse), GF.inv(denominator)));\n }\n return res;\n },\n };\n}\n// Interleaves blocks\n// QR block interleaver / deinterleaver. Shorter data blocks stay first so\n// encode matches ISO/IEC 18004 §7.6 c) and decode can reverse it via §12 z)1.\nfunction interleave(ver, ecc) {\n const { words, shortBlocks, numBlocks, blockLen, total } = info.capacity(ver, ecc);\n const rs = RS(words);\n return {\n encode(bytes) {\n // Caller must pass exactly the data codewords for this version/ecc;\n // this helper only splits blocks and interleaves them with RS parity.\n // Add error correction to bytes\n const blocks = [];\n const eccBlocks = [];\n for (let i = 0; i < numBlocks; i++) {\n const isShort = i < shortBlocks;\n const len = blockLen + (isShort ? 0 : 1);\n blocks.push(bytes.subarray(0, len));\n eccBlocks.push(rs.encode(bytes.subarray(0, len)));\n bytes = bytes.subarray(len);\n }\n const resBlocks = interleaveBytes(blocks);\n const resECC = interleaveBytes(eccBlocks);\n const res = new Uint8Array(resBlocks.length + resECC.length);\n res.set(resBlocks);\n res.set(resECC, resBlocks.length);\n return res;\n },\n decode(data) {\n if (data.length !== total)\n throw new Error(`interleave.decode: len(data)=${data.length}, total=${total}`);\n const blocks = [];\n for (let i = 0; i < numBlocks; i++) {\n const isShort = i < shortBlocks;\n blocks.push(new Uint8Array(words + blockLen + (isShort ? 0 : 1)));\n }\n // Short blocks\n let pos = 0;\n for (let i = 0; i < blockLen; i++) {\n for (let j = 0; j < numBlocks; j++)\n blocks[j][i] = data[pos++];\n }\n // Long blocks\n for (let j = shortBlocks; j < numBlocks; j++)\n blocks[j][blockLen] = data[pos++];\n // ECC\n for (let i = blockLen; i < blockLen + words; i++) {\n for (let j = 0; j < numBlocks; j++) {\n const isShort = j < shortBlocks;\n blocks[j][i + (isShort ? 0 : 1)] = data[pos++];\n }\n }\n // Decode\n // Error-correct and copy data blocks together into a stream of bytes\n const res = [];\n for (const block of blocks)\n res.push(...Array.from(rs.decode(block)).slice(0, -words));\n return Uint8Array.from(res);\n },\n };\n}\n// Draw\n// Generic template per version+ecc+mask. Can be cached, to speedup calculations.\n// Function-pattern template plus reserved format/version areas; data modules\n// are filled later by zigzag placement in `drawQR`.\nfunction drawTemplate(ver, ecc, maskIdx, test = false) {\n const size = info.size.encode(ver);\n let b = new Bitmap(size + 2);\n // Finder patterns\n // We draw full pattern and later slice, since before addition of borders finder is truncated by one pixel on sides\n const finder = new Bitmap(3).rect(0, 3, true).border(1, false).border(1, true).border(1, false);\n b = b\n .embed(0, finder) // top left\n .embed({ x: -finder.width, y: 0 }, finder) // top right\n .embed({ x: 0, y: -finder.height }, finder); // bottom left\n b = b.rectSlice(1, size);\n // Alignment patterns\n const align = new Bitmap(1).rect(0, 1, true).border(1, false).border(1, true);\n const alignPos = info.alignmentPatterns(ver);\n for (const y of alignPos) {\n for (const x of alignPos) {\n if (b.isDefined(x, y))\n continue;\n b.embed({ x: x - 2, y: y - 2 }, align); // center of pattern should be at position\n }\n }\n // Timing patterns\n b = b\n .hLine({ x: 0, y: 6 }, Infinity, ({ x }) => (b.isDefined(x, 6) ? undefined : x % 2 == 0))\n .vLine({ x: 6, y: 0 }, Infinity, ({ y }) => (b.isDefined(6, y) ? undefined : y % 2 == 0));\n // Format information\n {\n const bits = info.formatBits(ecc, maskIdx);\n const getBit = (i) => !test && ((bits >> i) & 1) == 1;\n // vertical\n for (let i = 0; i < 6; i++)\n b.set(8, i, getBit(i)); // right of top-left finder\n // TODO: re-write as lines, like:\n // b.vLine({ x: 8, y: 0 }, 6, ({ x, y }) => getBit(y));\n for (let i = 6; i < 8; i++)\n b.set(8, i + 1, getBit(i)); // after timing pattern\n for (let i = 8; i < 15; i++)\n b.set(8, size - 15 + i, getBit(i)); // right of bottom-left finder\n // horizontal\n for (let i = 0; i < 8; i++)\n b.set(size - i - 1, 8, getBit(i)); // under top-right finder\n for (let i = 8; i < 9; i++)\n b.set(15 - i - 1 + 1, 8, getBit(i)); // VVV, after timing\n for (let i = 9; i < 15; i++)\n b.set(15 - i - 1, 8, getBit(i)); // under top-left finder\n b.set(8, size - 8, !test); // bottom-left finder, right\n }\n // Version information\n if (ver >= 7) {\n const bits = info.versionBits(ver);\n for (let i = 0; i < 18; i += 1) {\n const bit = !test && ((bits >> i) & 1) == 1;\n const x = Math.floor(i / 3);\n const y = (i % 3) + size - 8 - 3;\n // two copies\n b.set(y, x, bit);\n b.set(x, y, bit);\n }\n }\n return b;\n}\n// Walk undefined data modules in the QR two-column zigzag order from the\n// lower right, skipping function patterns and the vertical timing column.\nfunction zigzag(tpl, maskIdx, fn) {\n const bm = tpl;\n const size = bm.height;\n const pattern = PATTERNS[maskIdx];\n // zig-zag pattern\n let dir = -1;\n let y = size - 1;\n // two columns at time\n for (let xOffset = size - 1; xOffset > 0; xOffset -= 2) {\n if (xOffset == 6)\n xOffset = 5; // skip vertical timing pattern\n for (;; y += dir) {\n for (let j = 0; j < 2; j += 1) {\n const x = xOffset - j;\n if (bm.isDefined(x, y))\n continue; // skip already written elements\n fn(x, y, pattern(x, y));\n }\n if (y + dir < 0 || y + dir >= size)\n break;\n }\n dir = -dir; // change direction\n }\n}\n// NOTE: byte encoding is just representation, QR works with strings only. Most decoders will fail on raw byte array,\n// since they expect unicode or other text encoding inside bytes\n// Auto-pick among the currently supported single-segment modes only.\n// Empty strings stay numeric, and any non-alphanumeric character falls back to byte.\nfunction detectType(str) {\n let type = 'numeric';\n for (let x of str) {\n if (info.alphabet.numeric.has(x))\n continue;\n type = 'alphanumeric';\n if (!info.alphabet.alphanumerc.has(x))\n return 'byte';\n }\n return type;\n}\n/**\n * Encode a string as UTF-8 bytes.\n * @param str - Text to encode into UTF-8.\n * @returns UTF-8 bytes for the provided string.\n * @throws If the input is not a string. {@link Error}\n * @example\n * Encode a string as UTF-8 bytes.\n * ```ts\n * const bytes = utf8ToBytes('abc'); // new Uint8Array([97, 98, 99])\n * ```\n */\n// ISO/IEC 18004:2024 §7.3.2 says QR's default interpretation is\n// \"ECI 000003 representing the ISO/IEC 8859-1 character set\"; §7.4.2 says\n// non-default initial ECI data starts with an ECI header. Keep UTF-8 bytes\n// without that header for compatibility with existing emoji/qrcode fixtures.\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n// Build one QR mode/count/data segment, then append the terminator, zero padding,\n// and alternating pad codewords before RS interleaving.\nfunction encode(ver, ecc, data, type, encoder = utf8ToBytes) {\n let encoded = '';\n let dataLen = data.length;\n if (type === 'numeric') {\n const t = info.alphabet.numeric.decode(data.split(''));\n const n = t.length;\n for (let i = 0; i < n - 2; i += 3)\n encoded += bin(t[i] * 100 + t[i + 1] * 10 + t[i + 2], 10);\n if (n % 3 === 1) {\n encoded += bin(t[n - 1], 4);\n }\n else if (n % 3 === 2) {\n encoded += bin(t[n - 2] * 10 + t[n - 1], 7);\n }\n }\n else if (type === 'alphanumeric') {\n const t = info.alphabet.alphanumerc.decode(data.split(''));\n const n = t.length;\n for (let i = 0; i < n - 1; i += 2)\n encoded += bin(t[i] * 45 + t[i + 1], 11);\n if (n % 2 == 1)\n encoded += bin(t[n - 1], 6); // pad if odd number of chars\n }\n else if (type === 'byte') {\n // The default encoder is intentionally UTF-8-without-ECI; see utf8ToBytes().\n const utf8 = encoder(data);\n dataLen = utf8.length;\n encoded = Array.from(utf8)\n .map((i) => bin(i, 8))\n .join('');\n }\n else {\n throw new Error('encode: unsupported type');\n }\n const { capacity } = info.capacity(ver, ecc);\n const len = bin(dataLen, info.lengthBits(ver, type));\n let bits = info.modeBits[type] + len + encoded;\n if (bits.length > capacity)\n throw new Error('Capacity overflow');\n // Terminator\n bits += '0'.repeat(Math.min(4, Math.max(0, capacity - bits.length)));\n // Pad bits string untill full byte\n if (bits.length % 8)\n bits += '0'.repeat(8 - (bits.length % 8));\n // Add padding until capacity is full\n const padding = '1110110000010001';\n for (let idx = 0; bits.length !== capacity; idx++)\n bits += padding[idx % padding.length];\n // Convert a bitstring to array of bytes\n const bytes = Uint8Array.from(bits.match(/(.{8})/g).map((i) => Number(`0b${i}`)));\n return interleave(ver, ecc).encode(bytes);\n}\n// DRAW\n// Stream interleaved codeword bits MSB-first through zigzag; any leftover\n// cells after the final codeword become zero-valued remainder bits before masking.\nfunction drawQR(ver, ecc, data, maskIdx, test = false) {\n const b = drawTemplate(ver, ecc, maskIdx, test);\n let i = 0;\n const need = 8 * data.length;\n zigzag(b, maskIdx, (x, y, mask) => {\n let value = false;\n if (i < need) {\n value = ((data[i >>> 3] >> ((7 - i) & 7)) & 1) !== 0;\n i++;\n }\n b.set(x, y, value !== mask); // !== as xor\n });\n if (i !== need)\n throw new Error('QR: bytes left after draw');\n return b;\n}\n// Pack a left-to-right row pattern for `Bitmap.countPatternInRow()`; keep the\n// explicit width because leading light modules vanish from the numeric value.\nconst mkPattern = (pattern) => {\n const s = pattern.map((i) => (i ? '1' : '0')).join('');\n return { len: s.length, n: Number(`0b${s}`) };\n};\n// 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column, preceded or followed by light area 4 modules wide\nconst finderPattern = [true, false, true, true, true, false, true]; // dark:light:dark:light:dark\nconst lightPattern = [false, false, false, false]; // light area 4 modules wide\nconst P1 = /* @__PURE__ */ (() => mkPattern([...finderPattern, ...lightPattern]))();\nconst P2 = /* @__PURE__ */ (() => mkPattern([...lightPattern, ...finderPattern]))();\nfunction penalty(bm) {\n const b = bm;\n const { width, height } = b;\n const transposed = b.transpose();\n // Adjacent modules in row/column in same | No. of modules = (5 + i) color\n let adjacent = 0;\n for (let y = 0; y < height; y++) {\n b.getRuns(y, (len) => {\n if (len >= 5)\n adjacent += 3 + (len - 5);\n });\n }\n for (let y = 0; y < width; y++) {\n transposed.getRuns(y, (len) => {\n if (len >= 5)\n adjacent += 3 + (len - 5);\n });\n }\n // Block of modules in same color (Block size = 2x2)\n let box = 0;\n for (let y = 0; y < height - 1; y++)\n box += 3 * b.countBoxes2x2(y);\n let finder = 0;\n for (let y = 0; y < height; y++)\n finder += 40 * b.countPatternInRow(y, P1.len, P1.n, P2.n);\n for (let y = 0; y < width; y++)\n finder += 40 * transposed.countPatternInRow(y, P1.len, P1.n, P2.n);\n const total = height * width;\n const darkPixels = b.popcnt();\n // ISO/IEC 18004:2024 §7.8.3.1 NOTE 4 assigns \"0 points\" when the dark ratio\n // is \"between 45 % and 55 %\"; subtract that first 5% deviation band before\n // rating further 5% steps, so exact 45/55 and 40/60 boundaries stay in-band.\n const darkSteps = Math.ceil(Math.max(0, Math.abs(darkPixels * 100 - total * 50) - total * 5) / (total * 5));\n const dark = 10 * darkSteps;\n return adjacent + box + finder + dark;\n}\n// Selects best mask according to penalty, if no mask is provided\nfunction drawQRBest(ver, ecc, data, maskIdx) {\n if (maskIdx === undefined) {\n const bestMask = best();\n // ISO/IEC 18004:2024 §7.8.3.1 says mask penalty area is \"the complete symbol\",\n // but python-qrcode scores this placeholder form. Keep that output for compatibility\n // with common QR generators and to avoid fingerprinting this implementation.\n for (let mask = 0; mask < PATTERNS.length; mask++)\n bestMask.add(penalty(drawQR(ver, ecc, data, mask, true)), mask);\n maskIdx = bestMask.get();\n }\n if (maskIdx === undefined)\n throw new Error('Cannot find mask'); // Should never happen\n return drawQR(ver, ecc, data, maskIdx);\n}\nfunction validateECC(ec) {\n if (!ECMode.includes(ec))\n throw new Error(`Invalid error correction mode=${ec}. Expected: ${ECMode}`);\n}\nfunction validateEncoding(enc) {\n if (!Encoding.includes(enc))\n throw new Error(`Encoding: invalid mode=${enc}. Expected: ${Encoding}`);\n if (enc === 'kanji' || enc === 'eci')\n throw new Error(`Encoding: ${enc} is not supported (yet?).`);\n}\nfunction validateMask(mask) {\n if (![0, 1, 2, 3, 4, 5, 6, 7].includes(mask) || !PATTERNS[mask])\n throw new Error(`Invalid mask=${mask}. Expected number [0..7]`);\n}\nexport function encodeQR(text, output = 'raw', opts = {}) {\n const _opts = opts;\n const ecc = _opts.ecc !== undefined ? _opts.ecc : 'medium';\n validateECC(ecc);\n const encoding = _opts.encoding !== undefined ? _opts.encoding : detectType(text);\n validateEncoding(encoding);\n if (_opts.mask !== undefined)\n validateMask(_opts.mask);\n let ver = _opts.version;\n let data, err = new Error('Unknown error');\n if (ver !== undefined) {\n validateVersion(ver);\n data = encode(ver, ecc, text, encoding, _opts.textEncoder);\n }\n else {\n // If no version is provided, try to find smallest one which fits\n // Currently just scans all version, can be significantly speedup if needed\n for (let i = 1; i <= 40; i++) {\n try {\n data = encode(i, ecc, text, encoding, _opts.textEncoder);\n ver = i;\n break;\n }\n catch (e) {\n err = e;\n }\n }\n }\n if (!ver || !data)\n throw err;\n let res = drawQRBest(ver, ecc, data, _opts.mask);\n res.assertDrawn();\n // ISO/IEC 18004:2024 §5.3.8 says a QR quiet zone's \"width shall be 4X\",\n // and §9.1 requires 4X \"on all four sides\". Keep the compact historical\n // 2-module default to avoid changing encoder output; callers that need a\n // standards-conformant quiet zone must pass `border: 4` explicitly.\n const border = _opts.border === undefined ? 2 : _opts.border;\n if (!Number.isSafeInteger(border) || border <= 0)\n throw new Error(`invalid border=${border}`);\n res = res.border(border, false); // Add border\n if (_opts.scale !== undefined)\n res = res.scale(_opts.scale); // Scale image\n if (output === 'raw')\n return res.toRaw();\n else if (output === 'ascii')\n return res.toASCII();\n else if (output === 'svg')\n return res.toSVG(_opts.optimize);\n else if (output === 'gif')\n return res.toGIF();\n else if (output === 'term')\n return res.toTerm();\n else\n throw new Error(`Unknown output: ${output}`);\n}\n/**\n * Default export alias for {@link encodeQR}.\n * @param text - Text payload that should be encoded into the QR symbol.\n * @param output - Output format to generate: raw matrix, ASCII, terminal ANSI, GIF, or SVG.\n * @param opts - Encoding and rendering options. See {@link QrOpts} and {@link SvgQrOpts}.\n * @returns Encoded QR data in the format selected by `output`.\n * @throws If the payload, options, QR capacity, or output format are invalid. {@link Error}\n * @example\n * Encode text into the default export from the package root.\n * ```ts\n * import encodeQR from 'qr';\n * encodeQR('Hello world', 'ascii');\n * ```\n */\nexport default encodeQR;\n/**\n * Low-level helpers used by the encoder and test suite.\n * Exports the shared helper tables/functions through a frozen container.\n * @example\n * Read low-level QR metadata tables.\n * ```ts\n * import { utils } from 'qr';\n * const size = utils.info.size.encode(1); // 21\n * ```\n */\nexport const utils = /* @__PURE__ */ Object.freeze({\n best,\n bin,\n popcnt,\n drawTemplate,\n fillArr,\n info,\n interleave,\n validateVersion,\n zigzag,\n});\n// Unsafe API utils, exported only for tests\n// Exposes the shared internal helpers/tables through a frozen container.\nexport const _tests = /* @__PURE__ */ Object.freeze({\n Bitmap,\n info,\n detectType,\n encode,\n drawQR,\n penalty,\n PATTERNS,\n});\n// Type tests\n// const o1 = qr('test', 'ascii');\n// const o2 = qr('test', 'raw');\n// const o3 = qr('test', 'gif');\n// const o4 = qr('test', 'svg');\n// const o5 = qr('test', 'term');\n//# sourceMappingURL=index.js.map","import './qr-code.css';\n\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport encodeQR from 'qr';\n\nconst canvas = window.OffscreenCanvas\n ? new OffscreenCanvas(1, 1)\n : document.createElement('canvas');\nconst ctx = canvas.getContext('2d', {\n willReadFrequently: true,\n});\nctx.imageSmoothingEnabled = false;\n\nexport default function QrCode({\n text,\n arena,\n backgroundMask,\n arenaCircle = true,\n caption,\n}) {\n const captionRef = useRef(null);\n const [captionHeight, setCaptionHeight] = useState(0);\n const [arenaLoaded, setArenaLoaded] = useState(false);\n const [arenaHasAlpha, setArenaHasAlpha] = useState(false);\n\n const effectiveArenaCircle = arenaHasAlpha ? false : arenaCircle;\n\n useEffect(() => {\n if (caption && captionRef.current) {\n const height = captionRef.current.offsetHeight;\n setCaptionHeight(height);\n }\n }, [caption]);\n\n useEffect(() => {\n if (arena) {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => {\n setArenaLoaded(true);\n try {\n const { width, height } = img;\n canvas.width = width;\n canvas.height = height;\n ctx.drawImage(img, 0, 0);\n const allPixels = ctx.getImageData(0, 0, width, height);\n const data = allPixels.data;\n const totalPixels = data.length / 4;\n let lowAlphaCount = 0;\n let hasAlpha = false;\n for (let i = 3; i < data.length; i += 4) {\n if (data[i] <= 128) lowAlphaCount++;\n if (lowAlphaCount / totalPixels > 0.1) {\n hasAlpha = true;\n break;\n }\n }\n setArenaHasAlpha(hasAlpha);\n } catch (e) {\n setArenaHasAlpha(false);\n }\n };\n img.onerror = (error) => {\n console.error('Failed to load arena image:', error);\n setArenaLoaded(true); // Still show the image even on CORS error\n };\n img.src = arena;\n } else {\n setArenaLoaded(false);\n }\n }, [arena]);\n\n if (!text) return null;\n\n const qrData = useMemo(\n () =>\n encodeQR(text, 'raw', {\n ecc: 'high',\n border: 0,\n scale: 1,\n }),\n [text],\n );\n const gridSize = qrData.length;\n\n const centerExcludeSize = arenaLoaded ? Math.ceil(gridSize * 0.3) : 0;\n const centerStart = Math.floor((gridSize - centerExcludeSize) / 2);\n const centerEnd = centerStart + centerExcludeSize;\n\n const isFilled = (x, y) => {\n if (x < 0 || x >= gridSize || y < 0 || y >= gridSize) return false;\n\n if (\n arenaLoaded &&\n x >= centerStart &&\n x < centerEnd &&\n y >= centerStart &&\n y < centerEnd\n ) {\n if (arenaCircle) {\n const centerX = (centerStart + centerEnd) / 2;\n const centerY = (centerStart + centerEnd) / 2;\n const radius = centerExcludeSize / 2;\n const dx = x + 0.5 - centerX;\n const dy = y + 0.5 - centerY;\n const distance = Math.sqrt(dx * dx + dy * dy);\n if (distance < radius) return false;\n } else {\n return false;\n }\n }\n\n return qrData[y][x];\n };\n\n const isFilledInGrid = (x, y) => {\n if (x < 0 || x >= gridSize || y < 0 || y >= gridSize) return false;\n return isFilled(x, y);\n };\n\n const isInPositionMarker = (x, y) => {\n if (x < 7 && y < 7) return true;\n if (x >= gridSize - 7 && y < 7) return true;\n if (x < 7 && y >= gridSize - 7) return true;\n return false;\n };\n\n const pathData = useMemo(() => {\n let data = '';\n\n for (let y = 0; y < gridSize; y++) {\n for (let x = 0; x < gridSize; x++) {\n if (!isFilledInGrid(x, y)) continue;\n if (isInPositionMarker(x, y)) continue;\n\n const cx = x + 0.5;\n const cy = y + 0.5;\n const hasTop =\n isFilledInGrid(x, y - 1) && !isInPositionMarker(x, y - 1);\n const hasRight =\n isFilledInGrid(x + 1, y) && !isInPositionMarker(x + 1, y);\n const hasBottom =\n isFilledInGrid(x, y + 1) && !isInPositionMarker(x, y + 1);\n const hasLeft =\n isFilledInGrid(x - 1, y) && !isInPositionMarker(x - 1, y);\n\n if (hasRight) {\n data += `M ${cx} ${cy} L ${cx + 1} ${cy} `;\n }\n if (hasBottom) {\n data += `M ${cx} ${cy} L ${cx} ${cy + 1} `;\n }\n if (!hasTop && !hasRight && !hasBottom && !hasLeft) {\n data += `M ${cx} ${cy} L ${cx} ${cy} `;\n }\n }\n }\n\n return data;\n }, [\n gridSize,\n qrData,\n arenaLoaded,\n centerStart,\n centerEnd,\n centerExcludeSize,\n effectiveArenaCircle,\n ]);\n\n const markerPositions = [\n { x: 0, y: 0 }, // Top-left\n { x: gridSize - 7, y: 0 }, // Top-right\n { x: 0, y: gridSize - 7 }, // Bottom-left\n ];\n\n const markerOuterRadius = 1.1; // Outer 7x7 square corner radius\n const markerInnerRadius = 0.6; // Inner 3x3 square corner radius\n\n const centerImagePadding = 1; // 1 cell width padding around the image\n const centerImageSize = centerExcludeSize - centerImagePadding * 2;\n const centerImageX = centerStart + centerImagePadding;\n const centerImageY = centerStart + centerImagePadding;\n const padding = 2;\n const captionSpacing = 2; // Space between QR code and caption\n\n const viewBoxWidth = gridSize + padding * 2;\n const viewBoxHeight =\n gridSize + padding * 2 + (caption ? captionSpacing + captionHeight : 0);\n const bleed = viewBoxWidth * 0.25;\n\n return (\n \n );\n}\n","import './qr-code-modal.css';\n\nimport { useLingui } from '@lingui/react/macro';\n\nimport Icon from './icon';\nimport QrCode from './qr-code';\n\nexport const mediaDevicesSupported = !!navigator.mediaDevices?.getUserMedia;\n\nfunction QrCodeModal({\n text,\n arena,\n backgroundMask,\n caption,\n onClose,\n onScannerClick,\n}) {\n const { t } = useLingui();\n console.log('onScannerClick', onScannerClick);\n\n return (\n \n
\n {mediaDevicesSupported && typeof onScannerClick === 'function' ? (\n \n ) : (\n \n )}\n {!!onClose && (\n \n )}\n
\n
\n
{text}
\n
\n );\n}\n\nexport default QrCodeModal;\n","import './qr-scanner-modal.css';\n\nimport { Trans, useLingui } from '@lingui/react/macro';\nimport { useEffect, useRef, useState } from 'preact/hooks';\n\nconst hasBarcodeDetector = 'BarcodeDetector' in window;\n\nif (!hasBarcodeDetector) {\n // Prefetch qr/dom.js for caching\n setTimeout(() => {\n import('qr/dom.js').catch(() => {});\n }, 1000);\n}\n\nimport Icon from './icon';\nimport Loader from './loader';\n\n// Copied from qr/dom.js because it's not exported\nclass QRCamera {\n constructor(stream, player) {\n this.stream = stream;\n this.player = player;\n this.setStream(stream);\n }\n setStream(stream) {\n this.stream = stream;\n const { player } = this;\n player.setAttribute('autoplay', '');\n player.setAttribute('muted', '');\n player.setAttribute('playsinline', '');\n player.srcObject = stream;\n }\n async listDevices() {\n if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices)\n throw new Error('Media Devices not supported');\n const devices = await navigator.mediaDevices.enumerateDevices();\n return devices\n .filter((device) => device.kind === 'videoinput')\n .map((i) => ({\n deviceId: i.deviceId,\n label: i.label || `Camera ${i.deviceId}`,\n }));\n }\n async setDevice(deviceId) {\n this.stop();\n const stream = await navigator.mediaDevices.getUserMedia({\n video: { deviceId: { exact: deviceId } },\n });\n this.setStream(stream);\n }\n readFrame(canvas, fullSize = false) {\n const { player } = this;\n if (fullSize)\n return canvas.drawImage(player, player.videoHeight, player.videoWidth);\n const size = getSize(player);\n return canvas.drawImage(player, size.height, size.width);\n }\n stop() {\n for (const track of this.stream.getTracks()) track.stop();\n }\n}\n\n// Copy of frontalCamera from qr/dom.js, but with custom constraints\nconst createQRCamera = async (player) => {\n if (navigator.permissions?.query) {\n try {\n const permission = await navigator.permissions.query({\n name: 'camera',\n });\n console.log('Camera permission status:', permission.state);\n\n permission.addEventListener('change', () => {\n console.log('Camera permission changed to:', permission.state);\n });\n } catch (err) {\n console.warn('Permissions API camera query not supported:', err);\n }\n }\n\n const stream = await navigator.mediaDevices.getUserMedia({\n video: {\n height: { ideal: 720 },\n width: { ideal: 1280 },\n facingMode: 'environment',\n },\n });\n return new QRCamera(stream, player);\n};\n\nfunction QrScannerModal({ onClose, checkValidity, actionableText }) {\n const { t, _ } = useLingui();\n const containerRef = useRef(null);\n const videoRef = useRef(null);\n const overlayRef = useRef(null);\n const [decodedText, setDecodedText] = useState('');\n const [isScanning, setIsScanning] = useState(true);\n const [uiState, setUIState] = useState('loading');\n\n // Based on screen, not viewport or window\n useEffect(() => {\n // portrait as default\n let handleScreenOrientationChange;\n if (screen?.orientation?.type && containerRef.current) {\n handleScreenOrientationChange = () => {\n const screenOrientation = /landscape/.test(\n window.screen.orientation.type,\n )\n ? 'landscape'\n : 'portrait';\n containerRef.current.classList.toggle(\n 'landscape',\n screenOrientation === 'landscape',\n );\n };\n\n screen.orientation.addEventListener(\n 'change',\n handleScreenOrientationChange,\n );\n handleScreenOrientationChange();\n }\n return () => {\n if (\n handleScreenOrientationChange &&\n screen?.orientation?.removeEventListener\n ) {\n screen.orientation.removeEventListener(\n 'change',\n handleScreenOrientationChange,\n );\n }\n };\n }, []);\n\n useEffect(() => {\n let cancelMainLoop;\n let cam;\n let qrCanvas;\n let detector;\n let qrDom;\n\n const startCamera = async () => {\n try {\n cam = await createQRCamera(videoRef.current);\n\n if (hasBarcodeDetector) {\n detector = new BarcodeDetector({ formats: ['qr_code'] });\n } else {\n qrDom = await import('qr/dom.js');\n qrCanvas = new qrDom.QRCanvas(\n {\n overlay: overlayRef.current,\n },\n {\n cropToSquare: false,\n overlayMainColor: 'transparent',\n overlayFinderColor: 'rgba(255, 0, 255, 0.5)',\n },\n );\n }\n\n // Start scanning loop when video plays (following demo pattern)\n const video = videoRef.current;\n if (video) {\n video.addEventListener('loadedmetadata', () => {\n setUIState('default');\n });\n video.addEventListener('play', () => {\n // We won't have correct size until video starts playing\n console.log('Video started playing, beginning scan loop');\n\n // Get width, height from video\n const { videoWidth: width, videoHeight: height } = video;\n\n console.log('📹', { cam, video });\n\n if (width && height) {\n containerRef.current.style.setProperty(\n '--long-dimension',\n Math.max(width, height),\n );\n containerRef.current.style.setProperty(\n '--short-dimension',\n Math.min(width, height),\n );\n }\n\n if (hasBarcodeDetector) {\n const mainLoop = async () => {\n try {\n const results = await detector.detect(videoRef.current);\n if (results.length > 0) {\n console.log('Scan result:', results[0].rawValue);\n setDecodedText(results[0].rawValue);\n }\n } catch (e) {\n console.error('Error in barcode detection:', e);\n }\n };\n\n let animationId;\n const rafLoop = () => {\n mainLoop();\n animationId = requestAnimationFrame(rafLoop);\n };\n rafLoop();\n cancelMainLoop = () => cancelAnimationFrame(animationId);\n } else {\n const mainLoop = () => {\n try {\n const result = cam.readFrame(qrCanvas, true);\n if (result !== undefined && result !== null) {\n console.log('Scan result:', result);\n setDecodedText(result);\n }\n } catch (e) {\n console.error('Error in scan loop:', e);\n }\n };\n\n cancelMainLoop = qrDom.frameLoop(mainLoop);\n }\n });\n }\n } catch (err) {\n console.error('Error accessing camera:', err);\n setUIState('error');\n setIsScanning(false);\n }\n };\n\n if (isScanning) {\n startCamera();\n }\n\n return () => {\n if (cancelMainLoop) cancelMainLoop();\n if (cam) {\n cam.stop();\n }\n if (qrCanvas) {\n qrCanvas.clear();\n }\n };\n }, [isScanning]);\n\n const showActionableButton =\n typeof checkValidity === 'function'\n ? checkValidity(decodedText)\n : !!decodedText;\n\n return (\n \n \n {uiState === 'error' ? (\n
\n
\n Unable to access camera. Please check permissions.\n
\n
\n ) : (\n <>\n
\n
\n {!hasBarcodeDetector && (\n
\n )}\n
\n
\n
\n {!!decodedText && (\n <>\n
{decodedText}
\n {showActionableButton && (\n
\n )}\n >\n )}\n
\n >\n )}\n
\n );\n}\n\nexport default QrScannerModal;\n","import './report-modal.css';\n\nimport { msg } from '@lingui/core/macro';\nimport { Trans, useLingui } from '@lingui/react/macro';\nimport { Fragment } from 'preact';\nimport { useMemo, useRef, useState } from 'preact/hooks';\n\nimport { api } from '../utils/api';\nimport localeMatch from '../utils/locale-match';\nimport showToast from '../utils/show-toast';\nimport { getCurrentInstance } from '../utils/store-utils';\n\nimport AccountBlock from './account-block';\nimport Icon from './icon';\nimport Loader from './loader';\nimport Status from './status';\n\n// NOTE: `dislike` hidden for now, it's actually not used for reporting\n// Mastodon shows another screen for unfollowing, muting or blocking instead of reporting\n\nconst CATEGORIES = [/*'dislike' ,*/ 'spam', 'legal', 'violation', 'other'];\n// `violation` will be set if there are `rule_ids[]`\n\nconst CATEGORIES_INFO = {\n // dislike: {\n // label: 'Dislike',\n // description: 'Not something you want to see',\n // },\n spam: {\n label: msg`Spam`,\n description: msg`Malicious links, fake engagement, or repetitive replies`,\n },\n legal: {\n label: msg`Illegal`,\n description: msg`Violates the law of your or the server's country`,\n },\n violation: {\n label: msg`Server rule violation`,\n description: msg`Breaks specific server rules`,\n stampLabel: msg`Violation`,\n },\n other: {\n label: msg`Other`,\n description: msg`Issue doesn't fit other categories`,\n excludeStamp: true,\n },\n};\n\nfunction findMatchingLanguage(rule, currentLang) {\n if (!rule.translations || !currentLang) return null;\n const availableLanguages = Object.keys(rule.translations);\n if (!availableLanguages?.length) return null;\n\n let matchedLang = localeMatch([currentLang], availableLanguages, null);\n if (!matchedLang) {\n // localeMatch fails if there are keys like zhCn, zhTw\n // Convert them something like zh-CN first, try again\n // Detect uppercase, then split by dash\n const normalizedLanguages = availableLanguages.map((lang) => {\n const parts = lang.split(/(?=[A-Z])/);\n return parts\n .map((part, i) => (i === 0 ? part : part.toLowerCase()))\n .join('-');\n });\n matchedLang = localeMatch([currentLang], normalizedLanguages, null);\n }\n\n // If matchedLang has dash, convert back to original format\n // E.g. zh-cn to zhCn\n if (matchedLang && matchedLang.includes('-')) {\n const [lang, region] = matchedLang.split('-');\n matchedLang = lang + region.charAt(0).toUpperCase() + region.slice(1);\n }\n\n return matchedLang;\n}\n\nfunction translateRules(rules, currentLang) {\n if (!rules?.length) return [];\n if (!currentLang) return rules;\n return rules.map((rule) => {\n const matchedLang = findMatchingLanguage(rule, currentLang);\n return {\n ...rule,\n _translatedText: rule.translations?.[matchedLang]?.text || null,\n };\n });\n}\n\nfunction ReportModal({ account, post, onClose }) {\n const { _, t, i18n } = useLingui();\n const { masto } = api();\n const [uiState, setUIState] = useState('default');\n const [username, domain] = account.acct.split('@');\n\n const [translatedRules, currentDomain] = useMemo(() => {\n const { rules, domain } = getCurrentInstance();\n const rawRules = rules || [];\n return [translateRules(rawRules, i18n.locale), domain];\n }, [i18n.locale]);\n\n const [selectedCategory, setSelectedCategory] = useState(null);\n const [showRules, setShowRules] = useState(false);\n\n const rulesRef = useRef(null);\n const [hasRules, setHasRules] = useState(false);\n\n return (\n \n
\n
{post ? t`Report Post` : t`Report @${username}`}
\n \n \n
\n \n {post ? (\n
\n ) : (\n
\n )}\n
\n {!!selectedCategory &&\n !CATEGORIES_INFO[selectedCategory].excludeStamp && (\n \n {_(\n CATEGORIES_INFO[selectedCategory].stampLabel ||\n _(CATEGORIES_INFO[selectedCategory].label),\n )}\n \n Pending review\n \n \n )}\n \n \n
\n );\n}\n\nexport default ReportModal;\n","// Copyright (c) 2013 Pieroxy \n// This work is free. You can redistribute it and/or modify it\n// under the terms of the WTFPL, Version 2\n// For more information see LICENSE.txt or http://www.wtfpl.net/\n//\n// For more information, the home page:\n// http://pieroxy.net/blog/pages/lz-string/testing.html\n//\n// LZ-based compression algorithm, version 1.4.5\nvar LZString = (function() {\n\n// private property\nvar f = String.fromCharCode;\nvar keyStrBase64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nvar keyStrUriSafe = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$\";\nvar baseReverseDic = {};\n\nfunction getBaseValue(alphabet, character) {\n if (!baseReverseDic[alphabet]) {\n baseReverseDic[alphabet] = {};\n for (var i=0 ; i>> 8;\n buf[i*2+1] = current_value % 256;\n }\n return buf;\n },\n\n //decompress from uint8array (UCS-2 big endian format)\n decompressFromUint8Array:function (compressed) {\n if (compressed===null || compressed===undefined){\n return LZString.decompress(compressed);\n } else {\n var buf=new Array(compressed.length/2); // 2 bytes per character\n for (var i=0, TotalLen=buf.length; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n // Add wc to the dictionary.\n context_dictionary[context_wc] = context_dictSize++;\n context_w = String(context_c);\n }\n }\n\n // Output the code for w.\n if (context_w !== \"\") {\n if (Object.prototype.hasOwnProperty.call(context_dictionaryToCreate,context_w)) {\n if (context_w.charCodeAt(0)<256) {\n for (i=0 ; i> 1;\n }\n } else {\n value = 1;\n for (i=0 ; i> 1;\n }\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n delete context_dictionaryToCreate[context_w];\n } else {\n value = context_dictionary[context_w];\n for (i=0 ; i> 1;\n }\n\n\n }\n context_enlargeIn--;\n if (context_enlargeIn == 0) {\n context_enlargeIn = Math.pow(2, context_numBits);\n context_numBits++;\n }\n }\n\n // Mark the end of the stream\n value = 2;\n for (i=0 ; i> 1;\n }\n\n // Flush the last char\n while (true) {\n context_data_val = (context_data_val << 1);\n if (context_data_position == bitsPerChar-1) {\n context_data.push(getCharFromInt(context_data_val));\n break;\n }\n else context_data_position++;\n }\n return context_data.join('');\n },\n\n decompress: function (compressed) {\n if (compressed == null) return \"\";\n if (compressed == \"\") return null;\n return LZString._decompress(compressed.length, 32768, function(index) { return compressed.charCodeAt(index); });\n },\n\n _decompress: function (length, resetValue, getNextValue) {\n var dictionary = [],\n next,\n enlargeIn = 4,\n dictSize = 4,\n numBits = 3,\n entry = \"\",\n result = [],\n i,\n w,\n bits, resb, maxpower, power,\n c,\n data = {val:getNextValue(0), position:resetValue, index:1};\n\n for (i = 0; i < 3; i += 1) {\n dictionary[i] = i;\n }\n\n bits = 0;\n maxpower = Math.pow(2,2);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (next = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n c = f(bits);\n break;\n case 2:\n return \"\";\n }\n dictionary[3] = c;\n w = c;\n result.push(c);\n while (true) {\n if (data.index > length) {\n return \"\";\n }\n\n bits = 0;\n maxpower = Math.pow(2,numBits);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n switch (c = bits) {\n case 0:\n bits = 0;\n maxpower = Math.pow(2,8);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 1:\n bits = 0;\n maxpower = Math.pow(2,16);\n power=1;\n while (power!=maxpower) {\n resb = data.val & data.position;\n data.position >>= 1;\n if (data.position == 0) {\n data.position = resetValue;\n data.val = getNextValue(data.index++);\n }\n bits |= (resb>0 ? 1 : 0) * power;\n power <<= 1;\n }\n dictionary[dictSize++] = f(bits);\n c = dictSize-1;\n enlargeIn--;\n break;\n case 2:\n return result.join('');\n }\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n if (dictionary[c]) {\n entry = dictionary[c];\n } else {\n if (c === dictSize) {\n entry = w + w.charAt(0);\n } else {\n return null;\n }\n }\n result.push(entry);\n\n // Add w+entry[0] to the dictionary.\n dictionary[dictSize++] = w + entry.charAt(0);\n enlargeIn--;\n\n w = entry;\n\n if (enlargeIn == 0) {\n enlargeIn = Math.pow(2, numBits);\n numBits++;\n }\n\n }\n }\n};\n return LZString;\n})();\n\nif (typeof define === 'function' && define.amd) {\n define(function () { return LZString; });\n} else if( typeof module !== 'undefined' && module != null ) {\n module.exports = LZString\n} else if( typeof angular !== 'undefined' && angular != null ) {\n angular.module('LZString', [])\n .factory('LZString', function () {\n return LZString;\n });\n}\n","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20viewBox='0%200%2084%2062'%3e%3crect%20width='64'%20height='48'%20x='18'%20y='2'%20fill='%23fff'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3crect%20width='32'%20height='48'%20x='2'%20y='12'%20fill='%23fff'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3cpath%20fill='%234169E1'%20d='M14%2052a4%204%200%201%201-8%200%204%204%200%200%201%208%200Zm64-42a4%204%200%201%201-8%200%204%204%200%200%201%208%200Z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20viewBox='0%200%2082%2062'%3e%3crect%20width='78'%20height='58'%20x='2'%20y='2'%20fill='%23999'%20fill-opacity='.3'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3crect%20width='18'%20height='46'%20x='8'%20y='8'%20fill='%23fff'%20stroke='%23999'%20stroke-width='2'%20rx='1'/%3e%3crect%20width='18'%20height='46'%20x='32'%20y='8'%20fill='%23fff'%20stroke='%23999'%20stroke-width='2'%20rx='1'/%3e%3crect%20width='18'%20height='46'%20x='56'%20y='8'%20fill='%23fff'%20stroke='%23999'%20stroke-width='2'%20rx='1'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20viewBox='0%200%2084%2062'%3e%3crect%20width='64'%20height='48'%20x='18'%20y='2'%20fill='%23fff'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3cpath%20fill='%23999'%20fill-opacity='.3'%20d='M19%203h62v10H19z'/%3e%3cpath%20stroke='%234169E1'%20stroke-width='2'%20d='M43%208a2%202%200%201%201-4%200%202%202%200%200%201%204%200Z'/%3e%3cpath%20stroke='%23999'%20stroke-width='2'%20d='M52%208a2%202%200%201%201-4%200%202%202%200%200%201%204%200Zm9%200a2%202%200%201%201-4%200%202%202%200%200%201%204%200Z'/%3e%3crect%20width='32'%20height='48'%20x='2'%20y='12'%20fill='%23fff'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3cpath%20fill='%23999'%20fill-opacity='.3'%20d='M3%2049h30v10H3z'/%3e%3cpath%20stroke='%234169E1'%20stroke-width='2'%20d='M11%2054a2%202%200%201%201-4%200%202%202%200%200%201%204%200Z'/%3e%3cpath%20stroke='%23999'%20stroke-width='2'%20d='M20%2054a2%202%200%201%201-4%200%202%202%200%200%201%204%200Zm9%200a2%202%200%201%201-4%200%202%202%200%200%201%204%200Z'/%3e%3c/svg%3e\"","import { api } from '../utils/api';\nimport store from '../utils/store';\n\nconst LIMIT = 200;\nconst MAX_FETCH = 10;\n\nexport async function fetchFollowedTags() {\n const { masto } = api();\n const iterator = masto.v1.followedTags\n .list({\n limit: LIMIT,\n })\n .values();\n const tags = [];\n let fetchCount = 0;\n do {\n const { value, done } = await iterator.next();\n if (done || value?.length === 0) break;\n tags.push(...value);\n fetchCount++;\n } while (fetchCount < MAX_FETCH);\n tags.sort((a, b) => a.name.localeCompare(b.name));\n console.log(tags);\n\n if (tags.length) {\n setTimeout(() => {\n // Save to local storage, with saved timestamp\n store.account.set('followedTags', {\n tags,\n updatedAt: Date.now(),\n });\n }, 1);\n }\n\n return tags;\n}\n\nconst MAX_AGE = 24 * 60 * 60 * 1000; // 1 day\nexport async function getFollowedTags() {\n try {\n const { tags, updatedAt } = store.account.get('followedTags') || {};\n if (!tags?.length) return await fetchFollowedTags();\n if (Date.now() - updatedAt > MAX_AGE) {\n // Stale-while-revalidate\n fetchFollowedTags();\n return tags;\n }\n return tags;\n } catch (e) {\n return [];\n }\n}\n\nconst fauxDiv = document.createElement('div');\nexport const extractTagsFromStatus = (content) => {\n if (!content) return [];\n if (content.indexOf('#') === -1) return [];\n fauxDiv.innerHTML = content;\n const hashtagLinks = fauxDiv.querySelectorAll('a.hashtag');\n if (!hashtagLinks.length) return [];\n return Array.from(hashtagLinks).map((a) =>\n a.innerText.trim().replace(/^[^#]*#+/, ''),\n );\n};\n","import { useEffect, useState } from 'preact/hooks';\n\nfunction AsyncText({ children }) {\n if (typeof children === 'string') return children;\n const [text, setText] = useState('');\n useEffect(() => {\n Promise.resolve(children).then(setText);\n }, [children]);\n return text;\n}\n\nexport default AsyncText;\n","import './shortcuts-settings.css';\n\nimport { useAutoAnimate } from '@formkit/auto-animate/preact';\nimport { msg, t } from '@lingui/core/macro';\nimport { Plural, Trans, useLingui } from '@lingui/react/macro';\nimport {\n compressToEncodedURIComponent,\n decompressFromEncodedURIComponent,\n} from 'lz-string';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { useSnapshot } from 'valtio';\n\nimport floatingButtonUrl from '../assets/floating-button.svg';\nimport multiColumnUrl from '../assets/multi-column.svg';\nimport tabMenuBarUrl from '../assets/tab-menu-bar.svg';\n\nimport { api } from '../utils/api';\nimport { fetchFollowedTags } from '../utils/followed-tags';\nimport { getLists, getListTitle } from '../utils/lists';\nimport pmem from '../utils/pmem';\nimport showToast from '../utils/show-toast';\nimport states from '../utils/states';\nimport store from '../utils/store';\nimport { getCurrentAccount, getCurrentAccountID } from '../utils/store-utils';\n\nimport AsyncText from './AsyncText';\nimport Icon from './icon';\nimport MenuConfirm from './menu-confirm';\nimport Modal from './modal';\nimport { mediaDevicesSupported } from './qr-code-modal';\n\nexport const SHORTCUTS_LIMIT = 9;\n\nconst TYPES = [\n 'following',\n 'mentions',\n 'notifications',\n 'list',\n 'public',\n 'trending',\n 'search',\n 'hashtag',\n 'bookmarks',\n 'favourites',\n 'profile', // Own profile\n // NOTE: Hide for now\n // 'account-statuses', // Need @acct search first\n];\nconst TYPE_TEXT = {\n following: msg`Home / Following`,\n notifications: msg`Notifications`,\n list: msg`Lists`,\n public: msg`Public (Local / Federated)`,\n search: msg`Search`,\n 'account-statuses': msg`Account`,\n bookmarks: msg`Bookmarks`,\n favourites: msg`Likes`,\n hashtag: msg`Hashtag`,\n trending: msg`Trending`,\n mentions: msg`Mentions`,\n profile: msg`Profile`,\n};\nconst TYPE_PARAMS = {\n list: [\n {\n text: msg`List ID`,\n name: 'id',\n notRequired: true,\n },\n ],\n public: [\n {\n text: msg`Local only`,\n name: 'local',\n type: 'checkbox',\n },\n {\n text: msg`Server`,\n name: 'instance',\n type: 'text',\n placeholder: msg`Optional, e.g. mastodon.social`,\n notRequired: true,\n },\n ],\n trending: [\n {\n text: msg`Server`,\n name: 'instance',\n type: 'text',\n placeholder: msg`Optional, e.g. mastodon.social`,\n notRequired: true,\n },\n ],\n search: [\n {\n text: msg`Search term`,\n name: 'query',\n type: 'text',\n placeholder: msg`Optional, unless for multi-column mode`,\n notRequired: true,\n },\n ],\n 'account-statuses': [\n {\n text: '@',\n name: 'id',\n type: 'text',\n placeholder: 'cheeaun@mastodon.social',\n },\n ],\n hashtag: [\n {\n text: '#',\n name: 'hashtag',\n type: 'text',\n placeholder: msg`e.g. PixelArt (Max 5, space-separated)`,\n pattern: '[^#]+',\n },\n {\n text: msg`Media only`,\n name: 'media',\n type: 'checkbox',\n },\n {\n text: msg`Server`,\n name: 'instance',\n type: 'text',\n placeholder: msg`Optional, e.g. mastodon.social`,\n notRequired: true,\n },\n ],\n};\nconst fetchAccountTitle = pmem(async ({ id }) => {\n const account = await api().masto.v1.accounts.$select(id).fetch();\n return account.username || account.acct || account.displayName;\n});\nexport const SHORTCUTS_META = {\n following: {\n id: 'home',\n title: (_, index) =>\n index === 0\n ? t`Home`\n : t({ id: 'following.title', message: 'Following' }),\n path: '/',\n icon: 'home',\n },\n mentions: {\n id: 'mentions',\n title: msg`Mentions`,\n path: '/mentions',\n icon: 'at',\n },\n notifications: {\n id: 'notifications',\n title: msg`Notifications`,\n path: '/notifications',\n icon: 'notification',\n },\n list: {\n id: ({ id }) => (id ? 'list' : 'lists'),\n title: ({ id }) => (id ? getListTitle(id) : t`Lists`),\n path: ({ id }) => (id ? `/l/${id}` : '/l'),\n icon: 'list',\n excludeViewMode: ({ id }) => (!id ? ['multi-column'] : []),\n },\n public: {\n id: 'public',\n title: ({ local }) => (local ? t`Local` : t`Federated`),\n subtitle: ({ instance }) => instance || api().instance,\n path: ({ local, instance }) => `/${instance}/p${local ? '/l' : ''}`,\n icon: ({ local }) => (local ? 'building' : 'earth'),\n },\n trending: {\n id: 'trending',\n title: msg`Trending`,\n subtitle: ({ instance }) => instance || api().instance,\n path: ({ instance }) => `/${instance}/trending`,\n icon: 'chart',\n },\n search: {\n id: 'search',\n title: ({ query }) => (query ? `“${query}”` : t`Search`),\n path: ({ query }) =>\n query\n ? `/search?q=${encodeURIComponent(query)}&type=statuses`\n : '/search',\n icon: 'search',\n excludeViewMode: ({ query }) => (!query ? ['multi-column'] : []),\n },\n profile: {\n id: 'profile',\n title: msg`Profile`,\n path: () => `/a/${getCurrentAccountID()}?replies=1`,\n icon: 'user',\n altIcon: () => {\n const account = getCurrentAccount();\n return {\n // Prefer static URL\n url: account?.info?.avatarStatic || account?.info?.avatar,\n type: 'avatar',\n };\n },\n },\n 'account-statuses': {\n id: 'account-statuses',\n title: fetchAccountTitle,\n path: ({ id }) => `/a/${id}`,\n icon: 'user',\n },\n bookmarks: {\n id: 'bookmarks',\n title: msg`Bookmarks`,\n path: '/b',\n icon: 'bookmark',\n },\n favourites: {\n id: 'favourites',\n title: msg`Likes`,\n path: '/f',\n icon: 'heart',\n },\n hashtag: {\n id: 'hashtag',\n title: ({ hashtag }) => hashtag,\n subtitle: ({ instance }) => instance || api().instance,\n path: ({ hashtag, instance, media }) =>\n `${instance ? `/${instance}` : ''}/t/${hashtag.split(/\\s+/).join('+')}${\n media ? '?media=1' : ''\n }`,\n icon: 'hashtag',\n },\n};\n\nfunction ShortcutsSettings({ onClose }) {\n const { _ } = useLingui();\n const snapStates = useSnapshot(states);\n const { shortcuts } = snapStates;\n const [showForm, setShowForm] = useState(false);\n const [showImportExport, setShowImportExport] = useState(false);\n\n const [shortcutsListParent] = useAutoAnimate();\n\n return (\n \n {!!onClose && (\n
\n )}\n
\n \n Shortcuts{' '}\n \n beta\n \n
\n \n
\n \n Specify a list of shortcuts that'll appear as:\n
\n \n {[\n {\n value: 'float-button',\n label: t`Floating button`,\n imgURL: floatingButtonUrl,\n },\n {\n value: 'tab-menu-bar',\n label: t`Tab/Menu bar`,\n imgURL: tabMenuBarUrl,\n },\n {\n value: 'multi-column',\n label: t`Multi-column`,\n imgURL: multiColumnUrl,\n },\n ].map(({ value, label, imgURL }) => {\n const checked =\n snapStates.settings.shortcutsViewMode === value ||\n (value === 'float-button' &&\n !snapStates.settings.shortcutsViewMode);\n return (\n
\n );\n })}\n
\n {shortcuts.length > 0 ? (\n <>\n \n {shortcuts.filter(Boolean).map((shortcut, i) => {\n // const key = i + Object.values(shortcut);\n const key = Object.values(shortcut).join('-');\n const { type } = shortcut;\n if (!SHORTCUTS_META[type]) return null;\n let { icon, title, subtitle, excludeViewMode } =\n SHORTCUTS_META[type];\n if (typeof title === 'function') {\n title = title(shortcut, i);\n } else {\n title = _(title);\n }\n if (typeof subtitle === 'function') {\n subtitle = subtitle(shortcut, i);\n } else {\n subtitle = _(subtitle);\n }\n if (typeof icon === 'function') {\n icon = icon(shortcut, i);\n }\n if (typeof excludeViewMode === 'function') {\n excludeViewMode = excludeViewMode(shortcut, i);\n }\n const excludedViewMode = excludeViewMode?.includes(\n snapStates.settings.shortcutsViewMode,\n );\n return (\n - \n \n \n {title}\n {subtitle && (\n <>\n {' '}\n {subtitle}\n >\n )}\n {excludedViewMode && (\n \n Not available in current view mode\n \n )}\n \n \n \n \n \n {/* */}\n \n
\n );\n })}\n
\n {shortcuts.length === 1 &&\n snapStates.settings.shortcutsViewMode !== 'float-button' && (\n \n {' '}\n \n \n Add more than one shortcut/column to make this work.\n \n \n
\n )}\n >\n ) : (\n \n )}\n \n {shortcuts.length >= SHORTCUTS_LIMIT &&\n (snapStates.settings.shortcutsViewMode === 'multi-column'\n ? t`Max ${SHORTCUTS_LIMIT} columns`\n : t`Max ${SHORTCUTS_LIMIT} shortcuts`)}\n
\n \n \n \n
\n \n {showForm && (\n
{\n if (e.target === e.currentTarget) {\n setShowForm(false);\n }\n }}\n >\n {\n console.log('onSubmit', result);\n if (mode === 'edit') {\n states.shortcuts[showForm.shortcutIndex] = result;\n } else {\n states.shortcuts.push(result);\n }\n }}\n onClose={() => setShowForm(false)}\n />\n \n )}\n {showImportExport && (\n
{\n if (e.target === e.currentTarget) {\n setShowImportExport(false);\n }\n }}\n >\n setShowImportExport(false)}\n />\n \n )}\n
\n );\n}\n\nconst FORM_NOTES = {\n list: msg`Specific list is optional. For multi-column mode, list is required, else the column will not be shown.`,\n search: msg`For multi-column mode, search term is required, else the column will not be shown.`,\n hashtag: msg`Multiple hashtags are supported. Space-separated.`,\n};\n\nfunction ShortcutForm({\n onSubmit,\n disabled,\n shortcut,\n shortcutIndex,\n onClose,\n}) {\n const { _ } = useLingui();\n console.log('shortcut', shortcut);\n const editMode = !!shortcut;\n const [currentType, setCurrentType] = useState(shortcut?.type || null);\n\n const [uiState, setUIState] = useState('default');\n const [lists, setLists] = useState([]);\n const [followedHashtags, setFollowedHashtags] = useState([]);\n useEffect(() => {\n (async () => {\n if (currentType !== 'list') return;\n try {\n setUIState('loading');\n const lists = await getLists();\n setLists(lists);\n setUIState('default');\n } catch (e) {\n console.error(e);\n setUIState('error');\n }\n })();\n\n (async () => {\n if (currentType !== 'hashtag') return;\n try {\n const tags = await fetchFollowedTags();\n setFollowedHashtags(tags);\n } catch (e) {\n console.error(e);\n }\n })();\n }, [currentType]);\n\n const formRef = useRef();\n useEffect(() => {\n if (editMode && currentType && TYPE_PARAMS[currentType]) {\n // Populate form\n const form = formRef.current;\n TYPE_PARAMS[currentType].forEach(({ name, type }) => {\n const input = form.querySelector(`[name=\"${name}\"]`);\n if (input && shortcut[name]) {\n if (type === 'checkbox') {\n input.checked = shortcut[name] === 'on' ? true : false;\n } else {\n input.value = shortcut[name];\n }\n }\n });\n }\n }, [editMode, currentType]);\n\n return (\n \n );\n}\n\nfunction ImportExport({ shortcuts, onClose }) {\n const { _ } = useLingui();\n const { masto } = api();\n const shortcutsStr = useMemo(() => {\n if (!shortcuts) return '';\n if (!shortcuts.filter(Boolean).length) return '';\n return compressToEncodedURIComponent(\n JSON.stringify(shortcuts.filter(Boolean)),\n );\n }, [shortcuts]);\n const [importShortcutStr, setImportShortcutStr] = useState('');\n const [importUIState, setImportUIState] = useState('default');\n const parsedImportShortcutStr = useMemo(() => {\n if (!importShortcutStr) {\n setImportUIState('default');\n return null;\n }\n try {\n const parsed = JSON.parse(\n decompressFromEncodedURIComponent(importShortcutStr),\n );\n // Very basic validation, I know\n if (!Array.isArray(parsed)) throw new Error('Not an array');\n setImportUIState('default');\n console.log('⚡ Parsed imported shortcuts', parsed);\n return parsed;\n } catch (err) {\n // Fallback to JSON string parsing\n // There's a chance that someone might want to import a JSON string instead of the compressed version\n try {\n const parsed = JSON.parse(importShortcutStr);\n if (!Array.isArray(parsed)) throw new Error('Not an array');\n setImportUIState('default');\n return parsed;\n } catch (err) {\n setImportUIState('error');\n return null;\n }\n }\n }, [importShortcutStr]);\n const hasCurrentSettings = states.shortcuts.length > 0;\n\n const shortcutsImportFieldRef = useRef();\n\n return (\n \n {!!onClose && (\n
\n )}\n
\n \n \n Import/Export Shortcuts\n \n
\n \n
\n \n \n {' '}\n \n Import\n \n
\n \n {\n setImportShortcutStr(e.target.value);\n }}\n dir=\"auto\"\n />\n {mediaDevicesSupported && (\n \n )}\n {states.settings.shortcutSettingsCloudImportExport && (\n \n )}\n
\n {!!parsedImportShortcutStr &&\n Array.isArray(parsedImportShortcutStr) && (\n <>\n \n {parsedImportShortcutStr.length} shortcut\n {parsedImportShortcutStr.length > 1 ? 's' : ''}{' '}\n \n ({importShortcutStr.length} characters)\n \n
\n \n {parsedImportShortcutStr.map((shortcut) => (\n - \n \n // Compare all properties\n Object.keys(s).every((key) => {\n if (!(key in shortcut)) return true;\n const val = shortcut[key];\n if (\n val === '' ||\n val === null ||\n val === undefined\n ) {\n return true;\n }\n return s[key] === val;\n }),\n )\n ? 1\n : 0,\n }}\n >\n *\n \n \n {_(TYPE_TEXT[shortcut.type])}\n {shortcut.type === 'list' &&\n !!shortcut.id &&\n ' ⚠️'}{' '}\n {TYPE_PARAMS[shortcut.type]?.map?.(\n ({ text, name, type }) =>\n shortcut[name] ? (\n <>\n \n {_(text)}:{' '}\n {type === 'checkbox'\n ? shortcut[name] === 'on'\n ? '✅'\n : '❌'\n : shortcut[name]}\n {' '}\n >\n ) : null,\n )}\n \n
\n ))}\n
\n \n \n * Exists in current shortcuts\n \n
\n \n ⚠️{' '}\n \n List may not work if it's from a different account.\n \n \n
\n >\n )}\n {importUIState === 'error' && (\n \n \n ⚠️ Invalid settings format\n \n
\n )}\n \n {hasCurrentSettings && (\n <>\n
\n }\n onClick={() => {\n // states.shortcuts = [\n // ...states.shortcuts,\n // ...parsedImportShortcutStr,\n // ];\n // Append non-unique shortcuts only\n const nonUniqueShortcuts = parsedImportShortcutStr.filter(\n (shortcut) =>\n !states.shortcuts.some((s) =>\n // Compare all properties\n Object.keys(s).every(\n (key) => s[key] === shortcut[key],\n ),\n ),\n );\n if (!nonUniqueShortcuts.length) {\n showToast(t`No new shortcuts to import`);\n return;\n }\n let newShortcuts = [\n ...states.shortcuts,\n ...nonUniqueShortcuts,\n ];\n const exceededLimit = newShortcuts.length > SHORTCUTS_LIMIT;\n if (exceededLimit) {\n // If exceeded, trim it\n newShortcuts = newShortcuts.slice(0, SHORTCUTS_LIMIT);\n }\n states.shortcuts = newShortcuts;\n showToast(\n exceededLimit\n ? t`Shortcuts imported. Exceeded max ${SHORTCUTS_LIMIT}, so the rest are not imported.`\n : t`Shortcuts imported`,\n );\n onClose?.();\n }}\n >\n \n {' '}\n >\n )}\n {\n states.shortcuts = parsedImportShortcutStr;\n showToast(t`Shortcuts imported`);\n onClose?.();\n }}\n >\n \n \n
\n \n \n \n {' '}\n \n Export\n \n
\n \n {\n if (!e.target.value) return;\n e.target.select();\n // Copy url to clipboard\n try {\n navigator.clipboard.writeText(e.target.value);\n showToast(t`Shortcuts copied`);\n } catch (e) {\n console.error(e);\n showToast(t`Unable to copy shortcuts`);\n }\n }}\n dir=\"auto\"\n />\n \n {states.settings.shortcutSettingsCloudImportExport && (\n \n )}\n
\n \n {' '}\n {navigator?.share &&\n navigator?.canShare?.({\n text: shortcutsStr,\n }) && (\n \n )}{' '}\n {shortcutsStr.length > 0 && (\n \n \n \n )}\n
\n {!!shortcutsStr && (\n \n \n \n Raw Shortcuts JSON\n \n
\n \n \n )}\n \n {states.settings.shortcutSettingsCloudImportExport && (\n \n )}\n \n \n );\n}\n\nexport default ShortcutsSettings;\n","import { useLingui } from '@lingui/react/macro';\nimport { useEffect } from 'preact/hooks';\nimport { useLocation, useNavigate } from 'react-router-dom';\nimport { subscribe, useSnapshot } from 'valtio';\n\nimport Accounts from '../pages/accounts';\nimport Settings from '../pages/settings';\nimport { useAuth } from '../utils/auth-context';\nimport focusDeck from '../utils/focus-deck';\nimport showToast from '../utils/show-toast';\nimport states from '../utils/states';\n\nimport AccountSheet from './account-sheet';\nimport ComposeSuspense, { preload } from './compose-suspense';\nimport Drafts from './drafts';\nimport EmbedModal from './embed-modal';\nimport GenericAccounts from './generic-accounts';\nimport ImportExportAccounts from './import-export-accounts';\nimport MediaAltModal from './media-alt-modal';\nimport MediaModal from './media-modal';\nimport Modal from './modal';\nimport OpenLinkSheet from './open-link-sheet';\nimport QrCodeModal from './qr-code-modal';\nimport QrScannerModal from './qr-scanner-modal';\nimport ReportModal from './report-modal';\nimport ShortcutsSettings from './shortcuts-settings';\n\nsubscribe(states, (changes) => {\n for (const [action, path, value, prevValue] of changes) {\n // When closing modal, focus on deck\n if (/^show/i.test(path) && !value) {\n focusDeck();\n }\n }\n});\n\nexport default function Modals() {\n const { t } = useLingui();\n const snapStates = useSnapshot(states);\n const navigate = useNavigate();\n const location = useLocation();\n const isLoggedIn = useAuth();\n\n useEffect(() => {\n setTimeout(preload, 1000);\n }, []);\n\n return (\n <>\n {isLoggedIn && !!snapStates.showCompose && (\n \n {\n const { newStatus, instance, type, scheduledAt } = results || {};\n states.showCompose = false;\n window.__COMPOSE__ = null;\n window.__SHARED_DATA__ = null;\n if (newStatus) {\n states.reloadStatusPage++;\n if (scheduledAt) states.reloadScheduledPosts++;\n showToast({\n text: {\n post: scheduledAt\n ? t`Post scheduled`\n : t`Post published. Check it out.`,\n reply: scheduledAt\n ? t`Reply scheduled`\n : t`Reply posted. Check it out.`,\n edit: t`Post updated. Check it out.`,\n }[type || 'post'],\n delay: 1000,\n duration: 10_000, // 10 seconds\n onClick: (toast) => {\n toast.hideToast();\n states.prevLocation = location;\n if (scheduledAt) {\n navigate('/sp');\n } else {\n navigate(\n instance\n ? `/${instance}/s/${newStatus.id}`\n : `/s/${newStatus.id}`,\n );\n }\n },\n });\n }\n }}\n />\n \n )}\n {isLoggedIn && !!snapStates.showSettings && (\n {\n states.showSettings = false;\n }}\n >\n {\n states.showSettings = false;\n }}\n />\n \n )}\n {isLoggedIn && !!snapStates.showAccounts && (\n {\n states.showAccounts = false;\n }}\n >\n {\n states.showAccounts = false;\n }}\n />\n \n )}\n {!!snapStates.showAccount && (\n {\n states.showAccount = false;\n }}\n >\n {\n states.showAccount = false;\n // states.showGenericAccounts = false;\n // if (destination) {\n // states.showAccounts = false;\n // }\n }}\n />\n \n )}\n {!!snapStates.showOpenLink && (\n {\n states.showOpenLink = false;\n }}\n >\n {\n states.showOpenLink = false;\n }}\n />\n \n )}\n {isLoggedIn && !!snapStates.showDrafts && (\n {\n states.showDrafts = false;\n }}\n >\n (states.showDrafts = false)} />\n \n )}\n {!!snapStates.showMediaModal && (\n {\n if (\n e.target === e.currentTarget ||\n e.target.classList.contains('media')\n ) {\n states.showMediaModal = false;\n }\n }}\n >\n {\n states.showMediaModal = false;\n }}\n />\n \n )}\n {isLoggedIn && !!snapStates.showShortcutsSettings && (\n {\n states.showShortcutsSettings = false;\n }}\n >\n (states.showShortcutsSettings = false)}\n />\n \n )}\n {!!snapStates.showGenericAccounts && (\n {\n states.showGenericAccounts = false;\n }}\n >\n (states.showGenericAccounts = false)}\n blankCopy={snapStates.showGenericAccounts.blankCopy}\n />\n \n )}\n {!!snapStates.showMediaAlt && (\n {\n states.showMediaAlt = false;\n }}\n >\n {\n states.showMediaAlt = false;\n }}\n />\n \n )}\n {!!snapStates.showEmbedModal && (\n {\n states.showEmbedModal = false;\n }}\n >\n {\n states.showEmbedModal = false;\n }}\n />\n \n )}\n {isLoggedIn && !!snapStates.showReportModal && (\n {\n states.showReportModal = false;\n }}\n >\n {\n states.showReportModal = false;\n }}\n />\n \n )}\n {!!snapStates.showQrCodeModal && (\n {\n states.showQrCodeModal = false;\n }}\n >\n {\n states.showQrCodeModal = false;\n }}\n onScannerClick={snapStates.showQrCodeModal.onScannerClick}\n />\n \n )}\n {!!snapStates.showQrScannerModal && (\n {\n states.showQrScannerModal = false;\n }}\n >\n {\n if (snapStates.showQrScannerModal.onClose) {\n snapStates.showQrScannerModal.onClose(...args);\n }\n states.showQrScannerModal = false;\n }}\n />\n \n )}\n {isLoggedIn && !!snapStates.showImportExportAccounts && (\n {\n states.showImportExportAccounts = false;\n }}\n >\n {\n states.showImportExportAccounts = false;\n }}\n exportDisabled={\n typeof snapStates.showImportExportAccounts === 'object'\n ? snapStates.showImportExportAccounts.exportDisabled\n : false\n }\n />\n \n )}\n >\n );\n}\n","import { memo } from 'preact/compat';\nimport { useHotkeys } from 'react-hotkeys-hook';\nimport { useNavigate } from 'react-router-dom';\n\nimport states from '../utils/states';\nimport { getCurrentAccount } from '../utils/store-utils';\n\n// ignoreEventWhen doesn't work with sequence shortcuts, so we wrap callbacks instead\nconst useGoHotkeys = (key, callback) => {\n useHotkeys(\n `g>${key}`,\n (e) => {\n const hasModal = !!document.querySelector('#modal-container > *');\n const shouldIgnore = hasModal || e.metaKey || e.ctrlKey || e.altKey;\n if (!shouldIgnore) {\n callback(e);\n }\n },\n { useKey: true },\n );\n};\n\nexport default memo(function NavigationCommand() {\n const navigate = useNavigate();\n\n useGoHotkeys('h', () => navigate('/'));\n useGoHotkeys('n', () => navigate('/notifications'));\n useGoHotkeys('s', () => {\n states.showSettings = true;\n });\n useGoHotkeys('p', () => {\n const account = getCurrentAccount();\n if (account) {\n const { instanceURL } = account;\n const { id } = account.info;\n navigate(`/${instanceURL}/a/${id}`);\n }\n });\n useGoHotkeys('b', () => navigate('/b'));\n\n return null;\n});\n","import { Trans, useLingui } from '@lingui/react/macro';\nimport { useState } from 'preact/hooks';\n\nimport { api } from '../utils/api';\nimport haptics from '../utils/haptics';\n\nimport Icon from './icon';\nimport Loader from './loader';\n\nfunction FollowRequestButtons({ accountID, onChange }) {\n const { t } = useLingui();\n const { masto } = api();\n const [uiState, setUIState] = useState('default');\n const [requestState, setRequestState] = useState(null); // accept, reject\n const [relationship, setRelationship] = useState(null);\n\n const hasRelationship = relationship !== null;\n\n return (\n \n {' '}\n \n \n {hasRelationship && requestState ? (\n requestState === 'accept' ? (\n \n ) : (\n \n )\n ) : (\n \n )}\n \n
\n );\n}\n\nexport default FollowRequestButtons;\n","import { msg, t } from '@lingui/core/macro';\nimport { Plural, Select, Trans, useLingui } from '@lingui/react/macro';\nimport { Fragment } from 'preact';\nimport { memo } from 'preact/compat';\n\nimport { api } from '../utils/api';\nimport { isFiltered } from '../utils/filters';\nimport shortenNumber from '../utils/shorten-number';\nimport states, { statusKey } from '../utils/states';\nimport { getCurrentAccountID } from '../utils/store-utils';\nimport useTruncated from '../utils/useTruncated';\n\nimport Avatar from './avatar';\nimport CustomEmoji from './custom-emoji';\nimport FollowRequestButtons from './follow-request-buttons';\nimport Icon from './icon';\nimport Link from './link';\nimport NameText from './name-text';\nimport Status from './status';\n\nconst NOTIFICATION_ICONS = {\n mention: 'comment',\n status: 'notification',\n reblog: 'rocket',\n follow: 'follow',\n follow_request: 'follow-add',\n favourite: 'heart',\n poll: 'poll',\n update: 'pencil',\n 'admin.sign_up': 'account-edit',\n 'admin.report': 'account-warning',\n severed_relationships: 'heart-break',\n moderation_warning: 'alert',\n emoji_reaction: 'emoji2',\n reaction: 'emoji2',\n 'pleroma:emoji_reaction': 'emoji2',\n annual_report: 'celebrate',\n quote: 'quote',\n quoted_update: 'pencil',\n};\n\n/*\nNotification types\n==================\nmention = Someone mentioned you in their status\nstatus = Someone you enabled notifications for has posted a status\nreblog = Someone boosted one of your statuses\nfollow = Someone followed you\nfollow_request = Someone requested to follow you\nfavourite = Someone favourited one of your statuses\npoll = A poll you have voted in or created has ended\nupdate = A status you interacted with has been edited\nadmin.sign_up = Someone signed up (optionally sent to admins)\nadmin.report = A new report has been filed\nsevered_relationships = Severed relationships\nmoderation_warning = Moderation warning\nquote = Someone quoted one of your statuses\nquoted_update = A status you have quoted has been edited\n*/\n\nfunction emojiText({ account, emoji, emojiURL }) {\n let url;\n let staticUrl;\n if (typeof emojiURL === 'string') {\n url = emojiURL;\n } else {\n url = emojiURL?.url;\n staticUrl = emojiURL?.staticUrl;\n }\n const emojiObject = url ? (\n \n ) : (\n emoji\n );\n return (\n \n {account} reacted to your post with {emojiObject}\n \n );\n}\n\nconst contentText = {\n status: ({ account }) => {account} published a post.,\n reblog: ({\n count,\n account,\n postsCount,\n postType,\n components: { Subject },\n }) => (\n {account} boosted your reply.}\n other={{account} boosted your post.}\n />\n }\n other={\n \n {account} boosted {postsCount} of your posts.\n \n }\n />\n }\n other={\n