1import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t,t as n}from"./jsx-runtime-D3F0h15I.js";import{a as r,c as i,s as a}from"./react-intl-CZJDGRhA.js";import{d as o}from"./initial_state-CQfWVRE7.js";import{Ti as s,Yr as c,ct as l,et as u,ft as d,mt as f,nt as p,vt as m,yi as h}from"./time-BMcu91WH.js";import{s as g}from"./react-router-D0L-bsDO.js";import{f as _}from"./accounts_typed-Dtk3HjqX.js";import{o as v,s as y}from"./typed_functions--Rew8955.js";import{t as b}from"./react-router-dom-o_eSX_Kh.js";import{n as x}from"./modal-CxkWa4aF.js";import{Jt as S,en as C}from"./collection_preview_card-CYvkLk34.js";import{t as w}from"./classnames-CfLRLWYq.js";import{V as T,_ as E,b as D,h as O,i as k,k as A,w as j}from"./poll-B7YBr8xg.js";import{n as M}from"./display_name-uxgdH2-3.js";import{r as ee,t as te}from"./Trash.es-DTABaRj0.js";import{r as ne,t as N}from"./redesign-BZzNV9Zk.js";import{g as re}from"./menu-B0LYhy3O.js";var P=e(w()),F=e(t());function I(e=!1){let[t,n]=(0,F.useState)(e);return[t,{setValue:n,onTrue:(0,F.useCallback)(()=>{n(!0)},[]),onFalse:(0,F.useCallback)(()=>{n(!1)},[]),onToggle:(0,F.useCallback)(()=>{n(e=>!e)},[])}]}var L=n(),R=(0,F.createContext)({});function z(){return(0,F.use)(R)}var B=a({quote_noun:{id:`status.quote_noun`,defaultMessage:`Quote`},contains_quote:{id:`status.contains_quote`,defaultMessage:`Contains quote`},boosted:{id:`status.reblogged_by`,defaultMessage:`{name} boosted`}});function V({status:e,contextType:t,onOpen:n}){let r=y(n=>d(n,{contextType:t,statusId:e?.id})),[i,{onToggle:a}]=I(!1),o=v(),l=e?.id,f=(0,F.useCallback)(()=>{o(s(l))},[o,l]),p=(0,F.useCallback)(()=>{e&&((!r.length||i)&&o(s(e.id)),(!e.hidden||!e.spoiler_text)&&a())},[o,r.length,a,i,e]),m=(0,F.useCallback)(e=>()=>{o(u({statusId:l,intent:e,contextType:t}))},[t,o,l]),h=e?.account.id,_=(0,F.useCallback)(()=>{o(c(h))},[o,h]),b=g(),S=(0,F.useCallback)((t=!1)=>{if(n||!e){n?.();return}let r=`/@${e.account.acct}/${e.id}`;t?window.open(r,`_blank`,`noopener`):b.location.pathname.replace(`/deck/`,`/`)===r?b.replace(r,{focusTarget:C.POST}):b.push(r,{focusTarget:C.POST})},[b,n,e]),w=(0,F.useCallback)(e=>{e.preventDefault(),e.button===0&&!(e.ctrlKey||e.metaKey)?S():(e.button===1||e.button===0&&(e.ctrlKey||e.metaKey))&&S(!0)},[S]),T=e?.account.acct,E=(0,F.useCallback)(()=>{T&&b.push(`/@${T}`)},[b,T]),D=(0,F.useCallback)(()=>{let t=e?.media_attachments[0];if(!t)return;let n=e.translation?.language??e.language;t.type===`video`?o(x({modalType:`VIDEO`,modalProps:{statusId:e.id,media:t,lang:n,options:{startTime:0}}})):o(x({modalType:`MEDIA`,modalProps:{statusId:e.id,media:e.media_attachments,lang:n,index:0}}))},[o,e]);return(0,F.useMemo)(()=>({showDespiteFilter:i,onOpenClick:w,onExpandedToggle:f,onFilterToggle:a,onMention:_,onOpen:()=>{S()},onOpenMedia:D,onOpenProfile:E,onToggleHidden:p,onReply:m(`reply`),onFavourite:m(`favourite`),onBoost:m(`reblog`),onQuote:m(`quote`),onTranslate:m(`translate`)}),[m,f,a,_,S,w,D,E,p,i])}var H=new DOMParser;function U({statusId:e,reblogAcct:t,isQuote:n=!1}){let r=i(),a=O(e);return(0,F.useMemo)(()=>{if(!a)return``;let e=a.account.display_name,i=a.translation?.spoiler_text??a.spoiler_text,o=a.translation?.contentHtml??a.contentHtml,s=H.parseFromString(o,`text/html`).documentElement.textContent;return[n?r.formatMessage(B.quote_noun):void 0,e.length===0?a.account.acct.split(`@`)[0]:e,i&&a.hidden?i:s,a.quote?r.formatMessage(B.contains_quote):void 0,r.formatDate(a.created_at,{hour:`2-digit`,minute:`2-digit`,month:`short`,day:`numeric`}),a.account.acct,t?r.formatMessage(B.boosted,{name:t}):!1].filter(e=>!!e).join(`, `)},[r,n,t,a])}function ie(e){let t=(0,F.useCallback)(t=>e?.mentions.find(e=>e.url===t),[e?.mentions]),n=(0,F.useCallback)(t=>e?.tagged_collections.find(e=>e.url===t)?.id,[e?.tagged_collections]);return S({hashtagAccountId:typeof e?.account==`string`?e.account:e?.account.id,hrefToCollectionId:n,hrefToMention:t})}var W=(e,{key:t,href:n},r,i)=>{if(e instanceof HTMLParagraphElement&&e.children.length===1&&e.firstChild instanceof HTMLAnchorElement&&e.firstChild.href===i.card?.url)return null;if(e instanceof HTMLAnchorElement)return n===i.card?.url?null:(0,F.createElement)(`strong`,{key:t},r)},G={root:`_comp_status__root`,variantThread:`_comp_status__variantThread`,variantPage:`_comp_status__variantPage`,isQuote:`_comp_status__isQuote`,header:`_comp_status__header`,content:`_comp_status__content`,footer
1:`_comp_status__footer`,translate:`_comp_status__translate`,translateInfo:`_comp_status__translateInfo`,collapsed:`_comp_status__collapsed`,contentText:`_comp_status__contentText`,contentImage:`_comp_status__contentImage`,contentBlurHash:`_comp_status__contentBlurHash`,contentReadMore:`_comp_status__contentReadMore`,hashtagsWrapper:`_comp_status__hashtagsWrapper`,hashtags:`_comp_status__hashtags`,hashtagsShowAll:`_comp_status__hashtagsShowAll`,meta:`_comp_status__meta`,actions:`_comp_status__actions`,actionsButtonGap:`_comp_status__actionsButtonGap`},K={root:`_comp_card__root`,image:`_comp_card__image`,title:`_comp_card__title`,titleImage:`_comp_card__titleImage`,body:`_comp_card__body`,description:`_comp_card__description`,clamp:`_comp_card__clamp`,delete:`_comp_card__delete`},q=(0,F.createContext)({id:``}),J=({as:e,children:t,className:n,image:i,onDelete:a,...o})=>{let s=e??`div`,c=(0,F.useId)(),l=!a||e===`a`||e===`button`||`to`in o,u=typeof i==`string`?(0,L.jsx)(`img`,{src:i,alt:``,className:K.image}):i&&(0,L.jsx)(`div`,{className:K.image,children:i});return(0,L.jsxs)(s,{...o,className:(0,P.default)(n,K.root),children:[(0,L.jsx)(q.Provider,{value:{id:c},children:t}),u,!l&&(0,L.jsx)(ne,{size:`sm`,icon:te,onClick:a,color:`destructive`,className:K.delete,"aria-describedby":`${c}_title`,variant:i?`solid`:`ghost`,"data-color-scheme":i?`dark`:void 0,children:(0,L.jsx)(r,{id:`card.delete`,defaultMessage:`Remove this`})})]})},Y=({children:e,image:t,afterContent:n,className:r,...i})=>{let{id:a}=(0,F.use)(q);return(0,L.jsxs)(`div`,{...i,className:(0,P.default)(r,K.title),children:[t&&(0,L.jsx)(`span`,{className:K.titleImage,children:t}),(0,L.jsx)(`span`,{id:`${a}_title`,children:e}),n&&(0,L.jsxs)(`span`,{children:[`\xA0â¢\xA0`,n]})]})},X=({as:e,children:t,className:n,isDescription:r,noClamp:i,...a})=>(0,L.jsx)(e??`div`,{...a,className:(0,P.default)(n,K.body,!i&&K.clamp,r&&K.description),children:t}),Z=({attachment:e,children:t,sensitive:n,className:r,style:i,...a})=>{let o=50,s=50,c=e.meta.focus?.x,l=e.meta.focus?.y;c&&l&&(o=(c/2+.5)*100,s=(l/-2+.5)*100);let u={backgroundImage:!n&&e.preview_url?`url(${e.preview_url})`:void 0,backgroundPosition:`${o}% ${s}%`,"--aspect":`${e.meta.original.width} / ${e.meta.original.height}`,...i};return(0,L.jsxs)(`div`,{...a,className:(0,P.default)(G.contentImage,r),style:u,"data-color-scheme":`dark`,children:[n&&e.blurhash&&(0,L.jsx)(E,{hash:e.blurhash,className:G.contentBlurHash}),t]})},Q={title:`_comp_status_quote__title`,quoteAccountLink:`_comp_status_quote__quoteAccountLink`,accountLink:`_comp_status_quote__accountLink`,spoiler:`_comp_status_quote__spoiler`,body:`_comp_status_quote__body`,reply:`_comp_status_quote__reply`,media:`_comp_status_quote__media`,mediaGrid:`_comp_status_quote__mediaGrid`,mediaUpload:`_comp_status_quote__mediaUpload`,mediaSingle:`_comp_status_quote__mediaSingle`,image:`_comp_status_quote__image`,videoDuration:`_comp_status_quote__videoDuration`,error:`_comp_status_quote__error`,errorButton:`_comp_status_quote__errorButton`,infoPopup:`_comp_status_quote__infoPopup`},ae=e=>{let t=ce(e);if(t)return(0,L.jsx)(J,{children:(0,L.jsx)(X,{className:(0,P.default)(Q.body,Q.error),noClamp:!0,children:t})});let n=e.quoted_status;return n?(0,L.jsx)($,{id:n}):null},$=({id:e,clamp:t,onDelete:n})=>{let r=y(t=>p(t,e));if(!r)return null;let i=`/@${r.account.acct}/${r.id}`;return(0,L.jsxs)(J,{onDelete:n,children:[(0,L.jsx)(Y,{className:Q.title,image:(0,L.jsx)(j,{account:r.account,className:Q.accountLink,withLink:!0}),afterContent:(0,L.jsx)(b,{to:i,children:(0,L.jsx)(k,{timestamp:r.created_at})}),children:(0,L.jsx)(M,{displayProps:{account:r.account,variant:`noDomain`}
1,className:Q.accountLink})}),(0,L.jsx)(X,{className:Q.body,as:b,to:i,noClamp:!t,children:(0,L.jsx)(oe,{status:r})}),!r.spoilerHtml&&(0,L.jsx)(se,{status:r})]})},oe=({status:e})=>{let t=e.media_attachments,n=t.find(e=>e.type===`audio`||e.type===`video`),i=t.filter(e=>e.type===`gifv`||e.type===`image`),a=(0,F.useMemo)(()=>{let e=n?.meta.original.duration;if(!e)return``;let t=document.documentElement.lang,r=new Intl.DurationFormat(t,{style:`digital`,hoursDisplay:`auto`}),i=Math.floor(e),a=Math.floor(i/3600),o=Math.floor(i%3600/60),s=i%60;return r.format({hours:a,minutes:o,seconds:s})},[n?.meta.original.duration]),o=e.sensitive,s=y(t=>t.polls[e.poll??``]),c=y(t=>m(t,e.in_reply_to_account_id));if(e.spoilerHtml)return(0,L.jsxs)(`div`,{className:Q.spoiler,children:[(0,L.jsx)(r,{id:`compose.quote.spoiler`,defaultMessage:`Content:`}),`\xA0`,(0,L.jsx)(A,{as:`span`,htmlString:e.translation?.spoilerHtml??e.spoilerHtml,lang:e.translation?.language??e.language,extraEmojis:e.emojis})]});let l=null;return e.in_reply_to_account_id===e.account.id?l=(0,L.jsx)(r,{id:`status.continued_thread`,defaultMessage:`Continued thread`}):c&&(l=(0,L.jsx)(r,{id:`status.replied_to`,defaultMessage:`Replied to {name}`,values:{name:(0,L.jsx)(D,{account:c})}})),(0,L.jsxs)(L.Fragment,{children:[!!l&&(0,L.jsx)(`p`,{className:Q.reply,children:l}),(0,L.jsx)(A,{htmlString:e.translation?.contentHtml??e.contentHtml,extraEmojis:e.emojis,lang:e.translation?.language??e.language,onElement:W,extraArgs:e}),s&&(0,L.jsx)(`div`,{className:Q.spoiler,children:(0,L.jsx)(r,{id:`compose.quote.poll`,defaultMessage:`Poll {sep} {isOpen, select, open {Accepting responses} other {Closed}}`,values:{isOpen:s.expired?`closed`:`open`,sep:(0,L.jsx)(L.Fragment,{children:`â¢`})}})}),n?.type===`audio`&&(0,L.jsx)(`div`,{className:(0,P.default)(Q.media,Q.spoiler),"aria-label":n.description,children:(0,L.jsx)(r,{id:`compose.quote.audio`,defaultMessage:`Audio file {duration}`,values:{duration:`(${a})`}})}),n?.type===`video`&&(0,L.jsx)(`div`,{className:(0,P.default)(Q.media,Q.mediaSingle),children:(0,L.jsx)(Z,{className:Q.image,attachment:n,sensitive:o,"aria-label":n.description,children:(0,L.jsxs)(`div`,{className:Q.videoDuration,children:[(0,L.jsx)(T,{icon:ee,weight:`fill`}),a]})})}),i.length>0&&(0,L.jsx)(`div`,{className:(0,P.default)(Q.media,i.length===1&&Q.mediaSingle,i.length>1&&Q.mediaGrid),"data-number":i.length,children:i.map(e=>(0,L.jsx)(Z,{className:Q.image,attachment:e,sensitive:o,"aria-label":e.description},e.id))})]})},se=({status:e})=>{let t=y(t=>p(t,e.quote?.quoted_status)),n=null;t&&(n=(0,L.jsx)(b,{to:`/@${t.account.acct}/${t.id}`,children:t.uri})),e.card&&(n=new URL(e.card.url).host===o?(0,L.jsx)(b,{to:e.card.url,children:e.card.url}):(0,L.jsx)(`a`,{href:e.card.url,target:`_blank`,rel:`noopener`,children:e.card.url}));let r=e.tagged_collections[0];return r&&(n=(0,L.jsx)(b,{to:`/collections/${r.id}`,children:r.url})),n?(0,L.jsx)(X,{children:n}):null};function ce({quoted_status:e,state:t,parentId:n}){let{state:i,status:a}=y(t=>l(t,{statusId:e})),o=a?.account.id,s=y(e=>m(e,o))?.acct,c=s?.split(`@`)[1],u=v(),d=(0,F.useCallback)(()=>{o&&u(_({id:o}))},[u,o]),p=y(e=>o&&f(e,o)),g=null,b=null,[x,S]=(0,F.useState)(null),[C,{onTrue:w}]=I(),[T,{onFalse:E,onToggle:D}]=I(),O=!a?.isLoading&&t!==`deleted`&&i===`not-found`;if((0,F.useEffect)(()=>{O&&e&&u(h(e,{parentQuotePostId:n,alsoFetchContext:!1}))},[O,u,e,n]),t===`pending`)return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(r,{id:`status.quote_error.pending_approval`,defaultMessage:`Post pending`}),(0,L.jsx)(N,{size:`xs`,variant:`ghost`,onClick:D,ref:S,"aria-expanded":T,className:Q.errorButton,children:(0,L.jsx)(r,{id:`learn_more_link.learn_more`,defaultMessage:`Learn more`})}),(0,L.jsx)(re,{reference:x,onClose:E,isOpen:T,maxWidth:200,className:Q.infoPopup,placement:`bottom-end`,children:(0,L.jsx)(r,{id:`status.quote_error.pending_approval_popout.body`,defaultMessage:`On Mastodon, you can control whether someone can quote you. This post is pending while we're getting the original author's approval.`,tagName:`p`})})]});if(i===`filtered`)g=(0,L.jsx)(r,{id:`status.quote_error.filtered`,defaultMessage:`Hidden due to one of your filters`});else if(t===`revoked`)g=(0,L.jsx)(r,{id:`status.quote_error.revoked`,defaultMessage:`Post removed by author`});else if((t===`blocked_account`||t===`blocked_domain`||t===`muted_account`)&&!C&&o)switch(b=w,t){case`blocked_account`:g=(0,L.jsx)(r,{id:`status.quote_error.blocked_account_hint.title`,defaultMessage:`This post is hidden because you've blocked @{name}.`,values:{name:s}});break;case`blocked_domain`:g=(0,L.jsx)(r,{id:`status.quote_error.blocked_domain_hint.title`,defaultMessage:`This post is hidden because you've blocked {domain}.`,values:{domain:c}});break;case`muted_account`:g=(0,L.jsx)(r,{id:`status.quote_error.muted_account_hint.title`,defaultMessage:`This post is hidden because you've muted @{name}.`,values:{name:s}})}else!a?.id||t===`deleted`||t===`rejected`||t===`unauthorized`?g=(0,L.jsx)(r,{id:`status.quote_error.
1not_available`,defaultMessage:`Post unavailable`}):p&&o&&(b=d,g=(0,L.jsx)(r,{id:`status.quote_error.limited_account_hint.title`,defaultMessage:`This account has been hidden by the moderators of {domain}.`,values:{domain:c}}));return g?(0,L.jsxs)(L.Fragment,{children:[g,b&&(0,L.jsx)(N,{size:`xs`,variant:`ghost`,onClick:b,className:Q.errorButton,children:(0,L.jsx)(r,{id:`status.quote_error.limited_account_hint.action`,defaultMessage:`Show anyway`})})]}):null}function le({account:e,id:t}){return`/@${typeof e==`string`?e:e.acct}/${t}`}export{J as a,G as c,ie as d,z as f,I as h,Z as i,R as l,U as m,$ as n,X as o,V as p,ae as r,Y as s,le as t,W as u}; 2//# sourceMappingURL=utils-DSDEjIGO.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.