1"use strict";(self.webpackChunksketchfab=self.webpackChunksketchfab||[]).push([[1973],{XuRc:(e,t,a)=>{a.d(t,{Z:()=>o});var s=a("3Z9q"),r=a("g/7r");const o=(e,t,a,o=[])=>{const n=(0,s.useRef)(e()),l=e=>t((t=>{const s=a(t,e);return n.current=s,s})),i=(0,s.useRef)(l);(0,s.useEffect)((()=>{i.current=l}));const u=(0,s.useMemo)((()=>{let e=()=>{throw new Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")};const t={getState:()=>n.current,dispatch:(...t)=>e(...t)},a=o.map((e=>e(t)));return e=(0,r.qC)(...a)(((...e)=>i.current(...e))),e}),[]);return[e(),u]}},iqY9:(e,t,a)=>{a.d(t,{Z:()=>i});var s=a("D4hk"),r=a("3MRe"),o=a("3Z9q"),n=a("vAnt");const l=["size","doesFollow","onToggleFollow"],i=e=>{let{size:t,doesFollow:a,onToggleFollow:i}=e,u=(0,r.Z)(e,l);const[c,d]=(0,o.useState)(!1);return o.createElement(n.Z,(0,s.Z)({size:t,type:a?"important":"primary",text:a?c?"Unfollow":"Following":"Follow",onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),onClick:i},u))}},jyRc:(e,t,a)=>{a.d(t,{Z:()=>o});var s=a("sQwH"),r=(a("3Z9q"),a("A2i4"));const o=function({user:e,width:t=20,height:a=20}){return(0,s.Z)("div",{className:"avatar","data-user-summary-anchor":"true","data-user":e.uid},void 0,(0,s.Z)(r.ZP,{alt:`Avatar of ${e.username}`,images:e.avatars,width:t,height:a}))}},LvQi:(e,t,a)=>{a.d(t,{Z:()=>u});var s=a("sQwH"),r=(a("3Z9q"),a("X40V")),o=a("hDfq"),n=a("iu9k"),l=a("jyRc"),i=a("BNNE");const u=function({user:e,target:t,withAvatar:a=!1,noLink:u=!1,noBadgeLink:c=!1,withoutBadge:d=!1,tag:m=!1,withSummary:v=!0,by:p=!1,className:f}){return(0,s.Z)("div",{className:(0,r.AK)("user-name",f,{"--no-link":u,"--no-badge-link":c})},void 0,(0,s.Z)("a",{href:(0,n.HQ)("users:profile_summary",{username:e.username}),onClick:e=>e.stopPropagation(),target:t,className:"user-name__link"},void 0,a&&(0,s.Z)("span",{},void 0,(0,s.Z)(i.Z,{uid:e.uid,disabled:!v},void 0,(0,s.Z)(l.Z,{user:e}))),(0,s.Z)("div",{className:"text"},void 0,p?"by":"",(0,s.Z)("span",{"data-selenium":"username",className:"username-wrapper",itemProp:"name",title:e.displayName},void 0,e.displayName))),d?null:function(e){return Object.prototype.hasOwnProperty.call(e,"planDetail")&&Boolean(e.planDetail)}(e)&&e.planDetail.badge?(0,s.Z)("a",{className:"user-name__flag",href:"staff"===e.planDetail.badge?(0,n.HQ)("pages:about"):"master"===e.planDetail.badge?(0,n.HQ)("pages:masters_landing"):"organization"===e.planDetail.title?(0,n.HQ)("pages:3d_asset_management"):(0,n.HQ)("pages:plans",{},{ref:"plan-badge"}),target:"_blank",rel:"noopener noreferrer","data-testid":"user-badge"},void 0,(0,s.Z)("span",{className:`flag --${e.planDetail.badge}`},void 0,e.planDetail.title)):"basic"===e.account?null:(0,s.Z)("a",{className:"user-name__flag",href:(0,n.HQ)("pages:plans",{},{ref:"plan-badge"}),target:"_blank","data-testid":"user-badge"},void 0,(0,s.Z)("span",{className:`flag --${e.account}`},void 0,(0,o.w8)(e.account))),m&&(0,s.Z)("span",{className:"user-name__tag"},void 0," (@",e.username,")"))}},lvYc:(e,t,a)=>{a.d(t,{Z:()=>u});var s=a("sQwH"),r=a("eKF4"),o=a("3Z9q"),n=a("VDcQ"),l=a("MB/E"),i=a("pLUK");const u=({user:e,children:t})=>{const a=(0,n.I0)(),{hasEntity:u,doesFollow:c}=(0,n.v9)((t=>{const a=l.wl.entities.user(e.uid,t);return{doesFollow:l.wl.authUser.doesFollow(e.uid,t),hasEntity:!!a}})),d=(0,i.Z)((()=>r.Z.authenticate((async()=>{u||a(l.Nw.entities.update({users:[e]})),await a(l.Nw.authUser.toggleFollow(e.uid))})))),m=(0,o.useCallback)((()=>a(l.Nw.authUser.getDoesFollow(e.uid))),[a,e.uid]);return(0,o.useEffect)((()=>{m()}),[m,e.uid]),(0,s.Z)(o.Fragment,{},void 0,t({doesFollow:c,onToggleFollow:d}))}},"BR/Y":(e,t,a)=>{a.d(t,{Z:()=>m});var s=a("3Z9q"),r=a("4fae"),o=a("MB/E"),n=a("D7W8"),l=a("rEmB"),i=a("Sbzs"),u=a("HGbS"),c=a("XuRc"),d=a("MBtD");const m=(e,t,a,m=[])=>{const v=(0,s.useContext)(u.N1),[p,f]=(0,s.useState)(t),w=(0,s.useRef)(t),Z=(0,s.useRef)({}),h=(0,s.useRef)(!0),g=(0,s.useCallback)((e=>{const{entities:t}=(0,r.Fv)(e,a);(0,n.Z)(t)||(0,l.Z)(t,Z.current)||(Z.current=t,h.current=!0,o.n2.store.dispatch(o.Nw.entities.update(t)),h.current=!1)}),[a]),N=(0,s.useCallback)((()=>w.current),[]),b=(0,s.useCallback)((e=>{w.current=(0,i.Z)(e)?e(w.current):e,f(w.current),g(w.current)}),[g]);(0,s.useEffect)((()=>(0,d.se)(o.n2.store,o.wl.entities.all,(e=>{h.current||(e=>{const{result:t}=(0,r.Fv)(w.current,a),s=(0,r.cY)(t,a,e);w.current=s,f(s)})(e)}))),[a]);const y=(0,s.useMemo)((()=>[(0,u.OF)(v),...m]),[v]),[,k]=(0,c.Z)(N,b,e,y);return[p,k]}},pLUK:(e,t,a)=>{a.d(t,{Z:()=>r});var s=a("3Z9q");const r=e=>{const t=(0,s.useRef)();return(0,s.useCallback)(((...a)=>t.current?t.current:(t.current=e(...a),t.current.catch((e=>{throw t.current=void 0,e})).then((e=>(t.current=void 0,e))))),[e])}},ajs0:(e,t,a)=>{a.d(t,{Z:()=>n});var s=a("3Z9q"),r=a("3wYL"),o=a("BR/Y");function n(e,t,{initialState:a=r.E3,reducer:n=r.I6,schema:l}={}){const i=s.useCallback(((t,a)=>e(t,a).then((({results:e,cursors:t})=>({list:e,cursors:t})))),t),[u,c]=(0,o.Z)(n,a,s.useMemo((()=>l?{list:[l]}:{}),[l])),d=s.useCallback((()=>c(r.Nw.first((e=>i(e,null))))),[i,c]),m=s.useCallback((()=>c(r.Nw.next(((e,t)=>i(e,t))))),[i,c]),v=s.useCallback((()=>c(r.Nw.previous(((e,t)=>i(e,t))))),[i,c]),p=s.useCallback((()=>c(r.Nw.reset())),[c]);return{dispatch:c,onLoadFirst:d,onLoadNext:m,onLoadPrevious:v,onReset:p,list:r.wl.list(u),loading:r.wl.loading(u),isLoading:r.wl.isLoading(u),hasPreviousPage:r.wl.hasPreviousPage(u),hasNextPage:r.wl.hasNextPage(u)}}},BNNE:(e,t,a)=>{a.d(t,{Z:()=>y});var s=a("sQwH"),r=a("3Z9q"),o=a("I0q+"),n=a("N+9a"),l=a("p5Lb"),i=a("1nxQ"),u=a("VDcQ"),c=a("MB/E"),d=a("iqY9"),m=a("lvYc"),v=a("6tbf"),p=a("S4Ue"),f=a("jQKg"),w=a("X40V"),Z=a("AnwU"),h=a("iu9k"),g=a("Cgfs");const N=document.body,b=({children:e})=>{const t=(0,r.useRef)(document.createElement("div"));return(0,r.useEffect)((()=>{const e=t.current;return N.appendChild(e),()=>{N.removeChild(e)}}),[]),Z.createPortal(e,t.current)},y=({uid:e,children:t,followButton:a=!0,disabled:Z})=>{var N,y;const k=(0,u.v9)(c.wl.authUser.user),[C,E]=(0,r.useState)(),[_,H]=(0,r.useState)(!1),[F,L]=(0,r.useState)(!1),Q=(0,r.useRef)(null),R=()=>{const e=Q.current;if(!e)return;const t=e.getBoundingClientRect(),a=Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),s=Math.max(document.documentElement.clientHeight||0,window.innerHeight||0);let r="summary-right",o="summary-bottom",n={left:"auto",right:"auto",top:"auto",bottom:"auto"};return t.left+400>
1a&&(r="summary-left"),t.top+255>s&&(o="summary-top"),n.left="summary-right"===r?t.left+e.offsetWidth/2-23:t.left-400+e.offsetWidth+8,n.top="summary-bottom"===o?t.top+e.offsetHeight+12+window.scrollY:t.top-255-e.offsetHeight/3+window.scrollY,{position:n,class:(0,w.AK)(r,o)}},D=(0,g.Z)((t=>{Z||(L(t),!t||_||C||(H(!0),f.Z.getUserSummary(e).then((e=>{E(e),H(!1)}))))}),400);return r.createElement("div",{ref:Q,onMouseEnter:()=>D(!0),onMouseLeave:()=>D(!1),onMouseOver:()=>D(!0),onMouseOut:()=>D(!1)},t,C?(0,s.Z)(b,{},void 0,(0,s.Z)("div",{className:(0,w.AK)(p.Z.profileSummaryContainer,{"--active":F})},void 0,(0,s.Z)("div",{className:(0,w.AK)("user-summary",null===(N=R())||void 0===N?void 0:N.class,p.Z.userSummary),style:null===(y=R())||void 0===y?void 0:y.position},void 0,(0,s.Z)("div",{className:"user"},void 0,(0,s.Z)(n.Z,{className:p.Z.profilePictureLink,"aria-label":`Visit ${C.username} profile`,to:"users:profile_summary",params:{username:C.username}},void 0,(0,s.Z)(o.Z,{alt:`avatar of ${C.username}`,avatars:C.avatars,size:104})),(0,s.Z)("div",{className:"info"},void 0,(0,s.Z)("p",{className:"name",title:C.displayName},void 0,(0,s.Z)("a",{href:(0,h.HQ)("users:profile_summary",{username:C.username})},void 0,C.displayName)),(0,s.Z)("p",{className:"tagline",title:C.tagline?C.tagline:void 0},void 0,(0,s.Z)("a",{href:"{{ url('users:profile_summary', username=user.username) }}"},void 0,C.tagline)),a&&k.uid!==e?(0,s.Z)("div",{className:"follow-wrapper"},void 0,(0,s.Z)(m.Z,{user:C},void 0,(e=>r.createElement(d.Z,e))),(0,s.Z)("p",{className:"follow-count"},void 0,(0,s.Z)("a",{href:(0,h.HQ)("users:profile_followers",{username:C.username})},void 0,(0,s.Z)("span",{},void 0,(0,l.sH)(C.followerCount))," ","follower",(0,i._6)(C.followerCount)))):null)),(0,s.Z)("div",{className:"models"},void 0,C.thumbnails.map(((e,t)=>t<3?(0,s.Z)("a",{href:e.viewerUrl,style:{width:133}},e.viewerUrl,(0,s.Z)(v.Z,{thumbnails:e.thumbnail})):null))),(0,s.Z)("div",{className:"stats"},void 0,(0,s.Z)("p",{className:"model-count"},void 0,(0,l.sH)(C.modelCount)," model",(0,i._6)(C.modelCount)),(0,s.Z)("p",{className:"view-count"},void 0,(0,l.sH)(C.stats.viewCount)," view",(0,i._6)(C.stats.viewCount)),(0,s.Z)("p",{className:"like-count"},void 0,(0,l.sH)(C.stats.modelLikeCount)," like",(0,i._6)(C.stats.modelLikeCount)))))):null)}}}]); 2//# sourceMappingURL=227f15b085f452c10b73a64fa9b2ea83-v2.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.