1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3242],{2896:(e,t,r)=>{"use strict";function l({moduleIds:e}){return null}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PreloadChunks",{enumerable:!0,get:function(){return l}}),r(54568),r(97509),r(85999),r(12918),r(32106)},6035:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorageInstance",{enumerable:!0,get:function(){return l}});let l=(0,r(59113).createAsyncLocalStorage)()},9415:(e,t,r)=>{"use strict";r.d(t,{l:()=>c});var l=r(20295);let n=null,a=null,s=!1,i=new Set;function o(){for(let e of i)e()}let c={setToken(e,t){let r=Date.parse(t);Number.isNaN(r)&&l.v.error({l500ExpiresAt:t},"Auth response carried an unparseable l500ExpiresAt"),n=e,a=Number.isNaN(r)?null:r,s=!0,o()},clearToken(){n=null,a=null,o()},markSettled(){s=!0,o()},getToken:()=>n,getExpiresAt:()=>a,getSessionStatus:()=>s?n?"authenticated":"anonymous":"unknown",subscribe:e=>(i.add(e),()=>{i.delete(e)})}},9766:(e,t,r)=>{"use strict";r.d(t,{F:()=>o,j:()=>c});var l=r(54568),n=r(7620);let a=e=>`comparison-${e}`,s=(e,t)=>e.slug===t.slug&&e.bookedRegionSlug===t.bookedRegionSlug,i=(0,n.createContext)(null),o=({children:e})=>{let[t,r]=(0,n.useState)({}),o=(0,n.useCallback)(e=>t[e]??[],[t]),c=(0,n.useCallback)((e,t)=>{r(r=>({...r,[t]:e})),localStorage.setItem(a(t),JSON.stringify(e))},[]),u=(0,n.useCallback)(e=>{let t=a(e),r=localStorage.getItem(t);if(!r)return[];try{let e=JSON.parse(r);return Array.isArray(e)?e:[]}catch{return localStorage.removeItem(t),[]}},[]),d=(0,n.useCallback)(e=>{localStorage.removeItem(a(e))},[]),f=(0,n.useCallback)(e=>{r(t=>({...t,[e]:[]})),d(e)},[d]),g=(0,n.useCallback)((e,t)=>{if(t)return void c(t,e);let l=u(e);l.length?r(t=>({...t,[e]:l})):f(e)},[u,c,f]),m=(0,n.useCallback)(e=>{r(t=>{let r=[...t[e.practiceAreaSlug]??[],e];return localStorage.setItem(a(e.practiceAreaSlug),JSON.stringify(r)),{...t,[e.practiceAreaSlug]:r}})},[]),p=(0,n.useCallback)(e=>{r(t=>{let r=(t[e.practiceAreaSlug]??[]).filter(t=>!s(t,e));return localStorage.setItem(a(e.practiceAreaSlug),JSON.stringify(r)),{...t,[e.practiceAreaSlug]:r}})},[]),b=(0,n.useCallback)(e=>(t[e.practiceAreaSlug]??[]).some(t=>s(t,e)),[t]),h=(0,n.useCallback)(e=>{let r=t[e.practiceAreaSlug]??[];return!r.some(t=>s(t,e))&&3===r.length},[t]),_=(0,n.useCallback)(e=>{b(e)?p(e):m(e)},[m,b,p]),y=(0,n.useMemo)(()=>({getFirms:o,getStorage:u,removeStorage:d,setInitialState:g,add:m,remove:p,reset:f,isSelected:b,isDisabled:h,toggle:_}),[o,u,d,g,m,p,f,b,h,_]);return(0,l.jsx)(i.Provider,{value:y,children:e})},c=()=>{let e=(0,n.useContext)(i);if(!e)throw Error("useComparisonTool must be used within ComparisonToolProvider");return e}},23597:(e,t,r)=>{"use strict";function l({reason:e,children:t}){return t}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BailoutToCSR",{enumerable:!0,get:function(){return l}}),r(61841)},32707:(e,t,r)=>{"use strict";r.d(t,{M:()=>s});var l=r(7620),n=r(51956),a=r(74417);function s(){let{analytics:e,pageProperties:t,isLoggedIn:r}=(0,a.u)();return(0,l.useCallback)(l=>{if(!e||!t)return Promise.resolve();let a={...t,is_logged_in:r,page_name:l.pageName};return(0,n.M)(()=>"filtersSelected"in l?e.track(l.event,{...a,filters_selected:l.filtersSelected,filters_selected_text:l.filtersSelected.join(","),target_is_booked:l.targetIsBooked}):"targetIsBooked"in l?e.track(l.event,{...a,target_is_booked:l.targetIsBooked}):e.track(l.event,a))},[e,t,r])}},39999:(e,t,r)=>{"use strict";function l(e){return e.replace(/^c-/,"c/").replace(/^r-/,"r/")}function n(e){return e.is_booked}function a(e){let t=e.ranking_tables.find(e=>!e.table_type.startsWith("lawyer")),r=t?.rankings[0]?.reference_list.find(e=>"account"===e.type);return r?.profile_url??null}function s(e){let t=new Set;return e.filter(e=>!(!e.is_local||t.has(e.rating_type))&&(t.add(e.rating_type),!0))}r.d(t,{DX:()=>l,MR:()=>n,l:()=>a,zH:()=>s})},59113:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={bindSnapshot:function(){return o},createAsyncLocalStorage:function(){return i},createSnapshot:function(){return c}};for(var l in r)Object.defineProperty(t,l,{enumerable:!0,get:r[l]});let n=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,
1configurable:!0});class a{disable(){throw n}getStore(){}run(){throw n}exit(){throw n}enterWith(){throw n}static bind(e){return e}}let s="u">typeof globalThis&&globalThis.AsyncLocalStorage;function i(){return s?new s:new a}function o(e){return s?s.bind(e):a.bind(e)}function c(){return s?s.snapshot():function(e,...t){return e(...t)}}},66446:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return n}});let l=r(74468)._(r(67926));function n(e,t){let r={};"function"==typeof e&&(r.loader=e);let n={...r,...t};return(0,l.default)({...n,modules:n.loadableGenerated?.modules})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},67926:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let l=r(54568),n=r(7620),a=r(23597);function s(e){return{default:e&&"default"in e?e.default:e}}r(2896);let i={loader:()=>Promise.resolve(s(()=>null)),loading:null,ssr:!0},o=function(e){let t={...i,...e},r=(0,n.lazy)(()=>t.loader().then(s)),o=t.loading;function c(e){let s=o?(0,l.jsx)(o,{isLoading:!0,pastDelay:!0,error:null}):null,i=!t.ssr||!!t.loading,c=i?n.Suspense:n.Fragment,u=t.ssr?(0,l.jsxs)(l.Fragment,{children:[null,(0,l.jsx)(r,{...e})]}):(0,l.jsx)(a.BailoutToCSR,{reason:"next/dynamic",children:(0,l.jsx)(r,{...e})});return(0,l.jsx)(c,{...i?{fallback:s}:{},children:u})}return c.displayName="LoadableComponent",c}},74417:(e,t,r)=>{"use strict";r.d(t,{u:()=>s});var l=r(74894),n=r(13511),a=r(56880);function s(){let e=(0,a.s)(),t=(0,n.usePageAnalytics)(),r=(0,l.K)();return{analytics:e,pageProperties:t,isLoggedIn:"unknown"===r?null:"authenticated"===r}}},85999:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"workAsyncStorage",{enumerable:!0,get:function(){return l.workAsyncStorageInstance}});let l=r(6035)},95199:e=>{e.exports={eyebrow:"PageFieldsSummaryCard_eyebrow__TeAtA",strapline:"PageFieldsSummaryCard_strapline__MdrLW",summary:"PageFieldsSummaryCard_summary__To2Gx"}},97614:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>z});var l=r(54568),n=r(9917),a=r(33971),s=r(66446),i=r.n(s),o=r(79748),c=r(7620),u=r(98977),d=r(37020),f=r(49733),g=r(23062),m=r(52053),p=r(83307),b=r(58351),h=r(11288),_=r(51944),y=r(53565);function x({selectionMode:e,onToggle:t}){let r=(0,a.c)("FirmRankingsTable");return(0,l.jsxs)("div",{className:"hidden md:flex items-center gap-2",children:[(0,l.jsx)(_.A,{styleType:"outline",color:"secondary",onClick:t,type:"button",children:r(e?"cancel":"compareFirms")}),(0,l.jsx)(y.A,{title:r("newFeatureTooltipTitle"),content:(0,l.jsx)("span",{children:r.rich("newFeatureTooltipContent",{style:e=>(0,l.jsx)(b.A,{type:"interface-l-bold",className:"items-center text-lg",children:e})})}),namespace:"select-firms-info",position:"bottom-end"})]})}var j=r(70830),k=r(8800),v=r(74785),S=r(56024),w=r(31858),A=r(39999),C=r(9766);function N({bookedRegionSlug:e,company_slug:t,content:r,practiceAreaSlug:n,regionSlug:s}){let{isDisabled:i,isSelected:o,toggle:c}=(0,C.j)(),u={name:r,slug:t,bookedRegionSlug:(0,A.DX)(e),practiceAreaSlug:`${s.replace("-","/")}/${n}`},d=(0,a.c)("FirmRankingsTable");return(0,l.jsx)(w.A,{name:`compare-${t}`,label:"",value:t,"data-name":r,"data-bookedregionslug":e,checked:o(u),onChange:()=>c(u),disabled:i(u),tooltipTitle:i(u)?d("firmComparisonTooltipTitle"):void 0,tooltipContent:i(u)?d("firmComparisonTooltipContent"):void 0,tooltipNamespace:`compare-${t}`,tooltipPosition:"bottom-end",labelHasTooltip:!0})}let P=(e,t)=>{let r=u.OF[t],l="badgeKey"in r?r.badgeKey:t,n=e?.badges;return Array.isArray(n)&&n.includes(l)},O=u.D6.reduce((e,t)=>(e[t]=(e,r)=>"true"!==r.get(t)?e:{...e,reference_list:e.reference_list.filter(e=>e.badges.some(e=>e.type===t))},e),{}),T=u._X.reduce((e,t)=>(e[t]=(e,r)=>{if("true"!==r.get(t))return e;let l=P(e,t);return{...e,reference_list:l?e.reference_list:[]}},e),{}),M=({href:e,className:t,children:r,...n})=>e?(0,l.jsx)("a",{href:e,className:t,...n,children:r}):(0,l.jsx)("div",{className:t,children:r}),R=({children:e,isBooked:t})=>(0,l.jsx)("li",{className:(0,n.A)("flex md:pl-2 [&+&]:border-t [&+&]:border-t-grey-200 hover:bg-cyan-100 first-of-type:rounded-t-2xl last-of-type:rounded-b-2xl",t?"bg-white text-primary focus:bg-cyan-100 focus:text-primary focus-within:bg-cyan-100 focus-within:text-primary":"bg-grey-200 text-secondary focus:bg-grey-220 focus:text-secondary focus-within:bg-grey-220 focus-within:text-secondary"),"data-testid":"ranking-table-row",children:e}),F=(0,c.memo)(function({entry:e,reference:t,badgeVisibility:r,showReportCards:s,showTiers:i,showAvatars:o,showFirmComparison:c,selectionMode:u,practiceAreaSlug:d,regionSlug:g,onReportCardClick:m,onFirmProfileClick:p}){let h=(0,a.c)("FirmRankingsTable");if("account"!==t.type)return null;let _=t.bookings.includes("firm_profiles"),y=t.badges.filter(e=>r[e.type]),x=s?t.report_card_url:t.profile_url;return(0,l.jsxs)(R,{isBooked:_,children:[(0,l.jsxs)(M,{href:x,className:"flex-1 flex gap-4 p-4 items-top",onClick:s?()=>m(_):void 0,children:[i&&e.ranking_tier>0?(0,l.jsx)(k.A,{tier:String(e.ranking_tier),color:_?"default":"muted"}):null,!i&&o?(0,l.jsx)(f.A,{imageUrl:t.company_logo_url||void 0,fallback:t.company_logo_url?"none":"business",size:"200",intent:"contained",className:"-my-5 self-center"}):null,(0,l.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,l.jsx)(b.A,{type:_?"interface-l-bold":"interface-l",className:"text-balance",as:"h4",children:t.content}),P(e,"is-new")?(0,l.jsx)(S.A,{children:h("updatedContent")}):null]}),y.length?(0,l.jsx)("div",{className:"flex gap-3 flex-wrap",children:y.map(e=>(0,l.jsx)(v.default,{name:e.type,icon:e.icon},e.type))}):null]})]}),t.profile_url?(0,l.jsx)("div",{children:(0,l.jsx)(j.A,{href:t.profile_url,underline:"no",icon:"chevron-right",className:"p-4",onClick:()=>p(_),children:(0,l.jsx)("span",{className:"sr-only sm:not-sr-only",children:h(t.is_agency?"agencyProfile":"firmProfile")})})}
1):null,c&&t.company_slug&&d?(0,l.jsx)("div",{className:(0,n.A)("hidden md:flex items-center self-start transition-all duration-300 ease-in-out py-[18px]",u?"pr-4 pl-2 opacity-100 translate-x-0":"pr-0 pl-0 opacity-0 translate-x-4 w-0 overflow-hidden pointer-events-none"),children:(0,l.jsx)(N,{bookedRegionSlug:e.country_slug||g,company_slug:t.company_slug,content:t.content,practiceAreaSlug:d,regionSlug:g})}):null]})});var I=r(70829),E=r(32707),L=r(98873),$=r(87642),B=r(28502);let D=i()(()=>r.e(6489).then(r.bind(r,66489)),{loadableGenerated:{webpack:()=>[66489]},ssr:!1}),W=({children:e})=>(0,l.jsx)("ul",{className:"border border-grey-200 rounded-2xl","data-testid":"ranking-group",children:e});function z({rankingsData:e,sponsoredContentData:t,showReportCards:r=!0,showLawyerTeamQuality:s=!0,showBillingSatisfaction:i=!0,showSectorKnowledge:_=!0,showNPS:y=!0,showIsNew:j=!0,showFirmComparison:k,showTiers:v=!0,showAvatars:S=!1,showAllFirmsOption:w=!0,contextualNavigationItems:A,regionSlug:N,practiceAreaSlug:M="",infoText:U,rankingsExplorerEntry:X}){let[q,G]=(0,c.useState)(!1),[J,K]=(0,c.useState)(!1),H=(0,o.useSearchParams)()||new o.ReadonlyURLSearchParams(new URLSearchParams),Q=`Rankings - ${e[0].practice_area.name}, ${e[0].practice_area.country.name}`,V=(0,L.s)(),Y=(0,E.M)(),{getStorage:Z,reset:ee,setInitialState:et}=(0,C.j)(),er=(0,c.useMemo)(()=>({"lawyer-team-quality":s,"billing-satisfaction":i,"sector-knowledge":_,nps:y}),[s,i,_,y]),el=(0,c.useMemo)(()=>e.flatMap(e=>e.rankings).some(e=>P(e,"is-new")),[e]),en=j&&el,ea=s||i||_||y||en;(0,c.useEffect)(()=>{let e=`${N.replace("-","/")}/${M}`;Z(e).length?et(e):ee(e)},[]);let es=(0,c.useRef)(null),ei=(0,c.useRef)(null),eo=new URLSearchParams(Object.fromEntries(H?.entries()||[])),ec=(0,u.hM)(eo),eu=(0,c.useMemo)(()=>{if(!A)return new Map;let t=A.filter(e=>"Firms to watch"!==e.name),r=new Map;return e.forEach((e,l)=>{let n=t.find(t=>t.name===e.table_name);n&&r.set(l,n)}),r},[A,e]),ed=e.find(e=>e.table_name.includes("Top Firms")),ef=(0,c.useMemo)(()=>e.map(e=>Object.groupBy(e.rankings,({ranking_tier:e})=>e)),[e]),eg=(0,c.useMemo)(()=>{var t;return"c-worldwide"!==N&&"c/global"!==(t=N)&&"c-global"!==t&&e.some(e=>e.rankings.some(e=>e.reference_list.some(e=>e.is_global)))},[N,e]),em=(0,c.useMemo)(()=>ef.map(e=>Object.values(e).map(e=>e?.map(e=>{let t,r;return H?(t=((e,t,r=!0)=>"global"===t.get("location")?{...e,reference_list:e.reference_list.filter(e=>e.is_global)}:"local"!==t.get("location")&&r?e:{...e,reference_list:e.reference_list.filter(e=>!e.is_global)})(Object.values(O).reduce((e,t)=>t(e,H),e),H,void 0),r=Object.values(T).reduce((e,t)=>t(e,H),e),{...e,reference_list:t.reference_list.filter(t=>Object.values(O).every(r=>r(e,H).reference_list.some(e=>e.report_card_url===t.report_card_url))&&r.reference_list.some(e=>e.report_card_url===t.report_card_url))}):e})).filter(e=>e?.some(e=>e.reference_list.length))),[ef,H]),ep=(0,a.c)("FirmRankingsTable"),eb=(0,c.useCallback)(()=>{ei.current?.toggle(),V({event:I._6,pageName:Q,filtersSelected:(0,$.Wr)((0,B.q6)())})},[V,Q]),eh=(0,c.useCallback)((e,t)=>{V({event:"is-new"===e?I.Fu:I.R9,pageName:Q,filtersSelected:t})},[V,Q]),e_=(0,c.useCallback)(()=>{K(e=>!e)},[]),ey=(0,c.useCallback)(e=>{Y({event:I.nO,pageName:Q,targetIsBooked:e,filtersSelected:(0,$.Wr)((0,B.q6)())})},[Y,Q]),ex=(0,c.useCallback)(e=>{Y({event:I.NX,pageName:Q,targetIsBooked:e,filtersSelected:(0,$.Wr)((0,B.q6)())})},[Y,Q]);return(0,l.jsxs)("div",{className:"flex flex-col gap-6",children:[U?(0,l.jsx)("p",{className:"max-w-prose mb-10 typography-body",children:U}):null,ea||X?(0,l.jsxs)(d.wv,{as:"form",className:"w-full flex-wrap",children:[ea?(0,l.jsx)(d.HG,{isActive:q,activeFilterCount:ec,onClick:eb,ref:es}):null,eg?(0,l.jsx)(d.iB,{showAllFirmsOption:w,className:(0,n.A)("flex items-center transition-none lg:transition-all motion-reduce:transition-none duration-500 ease-in-out relative z-10",q?"lg:translate-x-[100px]":"lg:translate-x-0")}):null,X||k?(0,l.jsxs)("div",{className:"flex items-center gap-6 sm:ml-auto",children:[X,k?(0,l.jsx)(x,{selectionMode:J,onToggle:e_}):null]}):null]}):null,(0,l.jsxs)(h.A,{className:"gap-10",children:[ea?(0,l.jsx)(u.Ay,{ref:ei,filterToggleRef:es,showLawyerTeamQuality:s,showBillingSatisfaction:i,showSectorKnowledge:_,showNPS:y,showIsNew:en,persistOpenState:!0,onOpenChangeAction:G,onFilterChangeAction:eh}):null,(0,l.jsxs)("div",{className:"flex flex-col gap-6 flex-1",children:[(0,l.jsx)("h2",{className:"sr-only",children:ep("rankingsTitle")}),t.length?(0,l.jsx)(W,{children:t.map(e=>(0,l.jsx)(R,{isBooked:!0,children:(0,l.jsxs)("a",{href:e.post_url||"",className:"flex-1 flex gap-4 p-4 items-center md:-my-1.5",target:"_blank",rel:"noreferrer",children:[(0,l.jsx)(f.A,{imageUrl:e.image_url||void 0,fallback:e.image_url?"none":"business",size:"200",intent:"contained"}),(0,l.jsxs)("div",{className:"flex flex-col md:flex-row gap-2 md:gap-4 items-start md:items-center",children:[(0,l.jsx)(b.A,{type:"interface-l-bold",children:e.post_content}
1),(0,l.jsx)(g.A,{name:ep("sponsored"),color:"cyan"})]})]})},e.id))}):null,em.flat().length?em.map((t,n)=>{let a=eu.get(n);return t.length?(0,l.jsxs)(c.Fragment,{children:[A&&a?(0,l.jsx)("h3",{id:a.id,className:"typography-heading-s mt-4 -mb-2",children:a.name}):null,"firm to_watch"===e[n].table_type?(0,l.jsx)("h3",{id:"firms-to-watch",children:(0,l.jsx)(m.A,{className:"mt-4 -mb-2"})}):null,t.map(e=>e?.length?(0,l.jsxs)(W,{children:[e[0].ranking_tier?(0,l.jsx)("h3",{className:"sr-only",children:ed?ep("topFirms"):ep("tierTitle",{tier:String(e[0].ranking_tier)})}):null,e.map(e=>e.reference_list.map(t=>(0,l.jsx)(F,{entry:e,reference:t,badgeVisibility:er,showReportCards:r,showTiers:v,showAvatars:S,showFirmComparison:k,selectionMode:J,practiceAreaSlug:M,regionSlug:N,onReportCardClick:ey,onFirmProfileClick:ex},`${t.office_id}-${t.contact_id}`)))]},e[0].id):null)]},n):null}):(0,l.jsx)(p.A,{title:ep("noResultsTitle"),children:ep("noResultsNotification")})]})]}),k?(0,l.jsx)(D,{regionSlug:N,practiceAreaSlug:M,selectionMode:J}):null]})}},98873:(e,t,r)=>{"use strict";r.d(t,{s:()=>s});var l=r(7620),n=r(51956),a=r(74417);function s(){let{analytics:e,pageProperties:t,isLoggedIn:r}=(0,a.u)();return(0,l.useCallback)(({event:l,pageName:a,filtersSelected:s})=>e&&t?(0,n.M)(()=>e.track(l,{...t,is_logged_in:r,page_name:a,filters_selected:s,filters_selected_text:s.join(",")})):Promise.resolve(),[e,t,r])}}}]); 2//# sourceMappingURL=3242-d98b712f85571537.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.