PageSourceSearch

https://www.gq.com/verso/static/8828.1f95b62a76a8a2f7bd8a.js

js gq.com collected 2026-09-24 08:24:12 UTC 10,375 bytes, 153 lines download raw bytes

1"use strict";(globalThis.webpackChunkverso=globalThis.webpackChunkverso||[]).push([[8828],{55058(e,o,t){t.d(o,{LR:()=>s,VS:()=>a,Vh:()=>r,hg:()=>i,l9:()=>l,th:()=>n});const r={sm:0,md:320,lg:768,xl:1024,xxl:1280,xxxl:1600},a={sm:r.md-1,md:r.lg-1,lg:r.xl-1,xl:r.xxl-1,xxl:r.xxxl-1},i=["sm","md","lg","xl","xxl","xxxl"],l=[...i].reverse(),n={small:"sm",medium:"md",large:"lg",xLarge:"xl",xxLarge:"xxl",xxxLarge:"xxxl"},s=[...i]},1804(e,o,t){t.d(o,{_J:()=>s,No:()=>h,D1:()=>i,W$:()=>c,$9:()=>d,NY:()=>m});t(3613);var r=t(5736),a=(t(98788),t(50643));const i={BOOKMARK_MOVE_FAILED:"bookmark could not be moved",COLLECTION_COUNT_UNAVAILABLE:"could not get collection count",COLLECTION_DATA_FETCHING_ISSUE:"could not fetch collection data",COLLECTION_NOT_MADE:"collection could not be made",DUPLICATE_NAME:"collection name exists",MISSING_ACCESS_TOKEN:"user not logged in",RECORD_ALREADY_EXISTS:"Record already exists"},l=async({addBookmarkIds:e,addCopilotDetails:o,collectionName:t,federatedGraphqlUrl:i,meta:l,organizationId:n,removeBookmarkIds:s,removeCopilotIds:c,updateCollectionId:d})=>{const h={addBookmarkIds:e,addCopilotDetails:o,collectionName:t,meta:l,organizationId:n,removeBookmarkIds:s,removeCopilotIds:c,updateCollectionId:d};try{return await(0,r.j)({federatedGraphqlUrl:i,query:a.Jx,variables:h,queryLabelForError:"updateCollection"})}catch(e){}return null},n=({federatedGraphqlUrl:e,organizationId:o,query:t=a.bw,includeBookmarks:i=!1,signal:l})=>(0,r.j)({federatedGraphqlUrl:e,query:t,variables:{organizationId:o,limit:200,offset:0,bookmarksLimit:200,sortOrder:"DESC",sortBy:"createdAt",bookmarksOffset:0,includeBookmarks:i},queryLabelForError:"allCollections",signal:l}),s=async({copilotIds:e,federatedGraphqlUrl:o,organizationId:t,updateCollectionId:r,documentType:a})=>{const i=a&&{documentType:a},n=e.map(e=>({copilotId:e,...i})),s=await l({addCopilotDetails:n,updateCollectionId:r,federatedGraphqlUrl:o,organizationId:t});return null===s?{success:!1,error:"Failed to add bookmark to collection"}:{success:!0,data:s}},c=async({federatedGraphqlUrl:e,organizationId:o,signal:t})=>{try{const{data:{allCollections:{allCollectionCount:r}}}=await n({query:a.d2,federatedGraphqlUrl:e,organizationId:o,signal:t});return r}catch(e){if(e.message.includes(i.MISSING_ACCESS_TOKEN))return 0;if("AbortError"===e.name)throw e}return 0},d=async({federatedGraphqlUrl:e,organizationId:o})=>{const{data:{allCollections:{collections:t}}}=await n({query:a.bw,federatedGraphqlUrl:e,organizationId:o});return t},h=async({copilotIds:e=[],collectionName:o,federatedGraphqlUrl:t,organizationId:l,documentType:n})=>{const s=n&&{documentType:n},c={copilotDetails:e.map(e=>({copilotId:e,...s})),collectionName:o,organizationId:l};try{const{data:{createCollection:e}}=await(({federatedGraphqlUrl:e,createCollectionVariables:o})=>(0,r.j)({federatedGraphqlUrl:e,query:a.oU,variables:o,queryLabelForError:"createCollection"}))({createCollectionVariables:c,federatedGraphqlUrl:t});return e}catch(e){return e.message.includes(i.RECORD_ALREADY_EXISTS)?{errorType:i.DUPLICATE_NAME}:{errorType:i.COLLECTION_NOT_MADE}}},m=async({fromCollectionId:e,toCollectionId:o,federatedGraphqlUrl:t,copilotId:l})=>{try{const i=await(async({fromCollectionId:e,toCollectionId:o,copilotIds:t,bookmarkIds:i,moveAll:l,federatedGraphqlUrl:n})=>{const s={fromCollectionId:e,toCollectionId:o,copilotIds:t,bookmarkIds:i,moveAll:l};return await(0,r.j)({federatedGraphqlUrl:n,query:a.IY,variables:s,queryLabelForError:"moveBookmarks"})})({fromCollectionId:e,toCollectionId:o,federatedGraphqlUrl:t,copilotIds:[l]});return{success:!0,data:i}}catch(e){return e.message.includes(i.MISSING_ACCESS_TOKEN)?{success:!1,error:"Authentication required to move bookmark"}:{success:!1,error:e.message||i.BOOKMARK_MOVE_FAILED}}}},70713(e,o,t){t.d(o,{B$:()=>n,Lu:()=>s,S9:()=>c,iT:()=>m,rI:()=>h});var r=t(30271);let a;const i=e=>e?.current?.querySelector("ul"),l=(e,o)=>{const t=e.getBoundingClientRect(),r=o.getBoundingClientRect();return t.left<r.left&&t.right>r.right},n=e=>{const o=i(e);if(!o)return 0;const t=o.querySelectorAll("li");let r;for(r=0;r<t.length&&!l(o,t[r]);r++);return r},s=e=>{const o=i(e);return o&&!(0,r.vY)(o)},c=e=>()=>{clearTimeout(a),a=setTimeout(()=>e(),100)},d=(e,o,t,r)=>{const a=i(o);let n=e;t<0&&(n+=r);const s=a?.querySelector(`li:nth-child(${n})`);
1if(l(a,s)){return d(e+t,o,t)}return e},h=(e,o,t)=>{let r=e-o;return r=d(r,t,-1,o),r+1<1?1:r+1},m=(e,o,t)=>{const r=i(t);if(!r)return e;let a=e+o;const l=r.querySelectorAll("li");return a=a>l.length?l.length:a,d(a,t,1)}},62389(e,o,t){t.d(o,{AD:()=>q,BK:()=>v,H6:()=>g,IJ:()=>f,TW:()=>p,aN:()=>k,dZ:()=>y,gs:()=>I,jK:()=>C,vV:()=>b,w6:()=>u});var r=t(38267),a=t(96472),i=t(62282),l=t(18608),n=t(26865),s=t(7228),c=t(18117),d=t(88456),h=t(50531),m=t(8070);const u=r.Ay.div.withConfig({displayName:"PhotoBookmarkWrapper"})`
2  ${h.ny} {
3    line-height: 0;
4
5    /* Desktop-only hover effect using media query to prevent iOS scroll triggering hover */
6    @media (hover: hover) and (pointer: fine) {
7      transition: transform 0.3s ease;
8
9      &:hover {
10        transform: scale(1.25);
11      }
12    }
13
14    /* Use high specificity selector (svg.class path) to override inline SVG attributes
15       This prevents iOS scroll repaint flickering where inline attrs briefly show */
16    svg.icon-bookmark-outline path {
17      ${({isInverted:e})=>e?(0,n._o)("stroke","colors.interactive.base.white"):(0,n._o)("stroke","colors.interactive.base.black")};
18      fill: none;
19    }
20
21    svg.icon-bookmark-fill path {
22      ${({isInverted:e})=>e?(0,n._o)("stroke","colors.interactive.base.white"):(0,n._o)("stroke","colors.interactive.base.black")}
23      ${({isInverted:e})=>e?(0,n._o)("fill","colors.interactive.base.white"):(0,n._o)("fill","colors.interactive.base.black")}
24    }
25  }
26`,g=(0,r.Ay)(d.A.Utility).withConfig({displayName:"PhotoBookmarkButton"})`
27  cursor: pointer;
28
29  ${({$variant:e})=>"compact"===e&&r.AH`
30      padding: ${(0,n.Kq)(1)} ${(0,n.Kq)(1)}
31        ${(0,n.Kq)(.5)};
32      height: auto;
33
34      .button-icon {
35        width: ${(0,n.Kq)(2)};
36        height: ${(0,n.Kq)(2)};
37      }
38    `}
39`,p=(0,r.Ay)(i.A).withConfig({displayName:"PhotoBookmarkMessageBannerWrapper"})`
40  position: fixed;
41  bottom: ${(0,n.Kq)(2.5)};
42  left: 50%;
43  transform: translateX(-50%);
44  z-index: ${(0,n.fl)("hyperstitialLayer")};
45  border: 1px solid;
46  padding: ${(0,n.Kq)(1)} ${(0,n.Kq)(2)} ${(0,n.Kq)(1)}
47    ${(0,n.Kq)(1)};
48  ${({theme:e})=>(0,n.iq)(e)?(0,n._o)("border-color","colors.interactive.base.border"):(0,n._o)("border-color","colors.interactive.base.light")};
49  ${({theme:e})=>(0,n.iq)(e)&&(0,n._o)("background","colors.interactive.base.black")};
50
51  width: calc(100vw - ${(0,n.Kq)(4)});
52  height: ${(0,n.Kq)(7)};
53
54  @media (min-width: ${a.LO.md}) {
55    right: ${(0,n.Kq)(6)};
56    bottom: ${(0,n.Kq)(6)};
57    left: unset;
58    transform: unset;
59    width: ${(0,n.Kq)(45)};
60  }
61
62  ${m.px} {
63    display: flex;
64    flex-direction: column;
65    justify-content: center;
66    height: 100%;
67  }
68
69  ${m.O$} {
70    align-self: center;
71    margin: 0 0 0 ${(0,n.Kq)(1)};
72
73    ${h.a2} g {
74      ${(0,n._o)("stroke","colors.interactive.base.deemphasized")};
75    }
76  }
77`,y=r.Ay.div.withConfig({displayName:"SaveBookmarkAlertContent"})`
78  display: flex;
79  align-items: center;
80  width: 100%;
81  height: 100%;
82  overflow: hidden;
83
84  ${c.B},
85  ${s.Em}, ${s.BF} {
86    flex-shrink: 0;
87    margin-right: ${(0,n.Kq)(1)};
88    height: 100%;
89    aspect-ratio: 2/3;
90    object-fit: cover;
91  }
92`,f=(0,r.Ay)(l.vm).withConfig({displayName:"SaveBookmarkAlertLabel"})`
93  flex: 2;
94  margin-right: ${(0,n.Kq)(.5)};
95  margin-left: ${(0,n.Kq)(.5)};
96  min-width: 0;
97  overflow: hidden;
98  text-overflow: ellipsis;
99  white-space: nowrap;
100  ${({theme:e})=>(0,n.iq)(e)&&(0,n._o)("color","colors.interactive.base.white")};
101
102  ${(0,n.Gg)("typography.definitions.utility.assistive-text")};
103`,k=(0,r.Ay)(l.sH).withConfig({displayName:"SaveBookmarkAlertLink"})`
104  /* This should be possible using baseLink's props colorStaticLinkToken, hasUnderline/linkStyle
105  but due to the way styles are added in MessageBannerContent they are being overridden */
106  &&:link,
107  &&:visited,
108  &&&:hover,
109  &&&:focus {
110    text-decoration: none;
111    ${({theme:e})=>(0,n.iq)(e)&&(0,n._o)("color","colors.interactive.base.white")};
112  }
113
114  ${(0,n.Gg)("typography.definitions.foundation.link-primary")};
115`,b=r.Ay.div.withConfig({displayName:"PhotoMessageBannerContent"})`
116  display: flex;
117  align-items: center;
118`,v=r.Ay.div.withConfig({displayName:"PhotoMessageBannerIcon"})`
119  margin-right: ${(0,n.Kq)(1)};
120  min-width: ${(0,n.Kq)(4)};
121
122  path {
123    ${({theme:e})=>(0,n.iq)(e)?(0,n._o)("stroke","colors.interactive.base.white"):(0,n._o)("stroke","colors.interactive.base.black")};
124  }
125`,C=(0,r.Ay)(l.vm).withConfig({displayName:"PhotoBookmarkMessageBannerMessage"})`
126  ${({theme:e})=>(0,n.iq)(e)?(0,n._o)("color","colors.interactive.base.white"):(0,n._o)("color","colors.interactive.base.black")};
127
128  ${(0,n.Gg)("typography.definitions.utility.assistive-text")};
129`,I=(0,r.Ay)(d.A.Utility).withConfig({displayName:"SaveBookmarkAlertButton"})`
130  &,
131  &:hover {
132    border: none;
133    background-color: transparent;
134    padding: 0;
135    min-width: unset;
136    ${({theme:e})=>(0,n.iq)(e)?(0,n._o)("color","colors.interactive.base.white"):(0,n._o)("color","colors.interactive.base.black")};
137    ${(0,n.Gg)("typography.definitions.foundation.link-primary")};
138  }
139`,q=r.Ay.div.withConfig({displayName:"DrawerMessageBannerWrapper"})`
140  && {
141    ${h.Lj} {
142      display: block;
143    }
144    ${h.eM} {
145      width: auto;
146
147      &:hover {
148        border-radius: inherit;
149        ${({$messageBannerTheme:e,theme:o})=>"inverted"===e?"\n              background: transparent;\n              background-color: transparent;\n            ":(0,n._o)(o,"background","colors.interactive.base.black")};
150      }
151    }
152  }
153`},5736(e,o,t){t.d(o,{j:()=>s});var r=t(3613),a=t(39295),i=t(20656),l=t(53788),n=t(1804);const s=async({allowPartialData:e=!1,federatedGraphqlUrl:o,query:t,variables:s,queryLabelForError:c,signal:d})=>{const h=i.d.getCookieValue(l.A.oidcCookies.id);if(!h)throw new Error(n.D1.MISSING_ACCESS_TOKEN);try{return await(0,r.n)(o,h,t,{...s},{},d)}catch(o){if(o instanceof Error&&"AbortError"===o.name)throw o;const t=o.response;if(e&&(m=t,200===m?.status&&null!=m.data&&Boolean(m.errors?.length)))return t;(0,a.E)(c)(o)}var m;return{}}}}]);

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.