1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5850],{2802:function(e,t,r){(window.__NEXT_P=window.__NEXT_P||[]).push(["/articles/[slug]",function(){return r(9830)}])},5480:function(e,t,r){"use strict";r.d(t,{Z:function(){return AccordionUsage}});var o=r(5893),s=r(7294),h=r(2280),m=r(8895),g=r(2797),b=r(5820),v=r(5675),x=r.n(v),y=r(7737),E=r.n(y),S=r(4155);function AccordionUsage(e){let{accordionData:t}=e,[r,v]=s.useState(!1),handleChange=e=>{v(r!==e&&e)};return(0,o.jsx)("div",{className:"text-base px-4 sm:px-10 md:px-20 flex flex-col gap-4 sm:gap-2.5 mb-8",children:t.map((e,t)=>(0,o.jsxs)(h.Z,{elevation:0,expanded:r===t,onChange:()=>handleChange(t),sx:{"&:before":{height:0},backgroundColor:"#F5F6FF",boxShadow:"none",borderLeft:"2px solid",borderLeftColor:r===t?"#589EFE":"transparent",transition:"border-color 150ms ease-in-out"},children:[(0,o.jsx)(m.Z,{expandIcon:(0,o.jsx)(x(),{src:(0,b.L)("icons/navigate_down_blue.svg"),className:"flex shrink-0 w-10 h-6 ml-1 sm:ml-0",width:20,height:20,alt:"expand"}),"aria-controls":"panel".concat(t+1,"-content"),id:"panel".concat(t+1,"-header"),className:"font-semibold",children:(0,o.jsx)("h3",{className:"font-semibold m-0",children:e.title})}),(0,o.jsx)(g.Z,{children:"string"==typeof e.details?e.details:(0,o.jsx)(E(),{content:e.details,dataset:S.env.
1NEXT_PUBLIC_SANITY_DATASET,projectId:S.env.NEXT_PUBLIC_SANITY_PROJECT_ID,serializers:{normal:e=>{let{children:t}=e;return(0,o.jsx)("p",{className:"text-base leading-6 mb-2 text-black",children:t})},strong:e=>{let{children:t}=e;return(0,o.jsx)("strong",{children:t})},em:e=>{let{children:t}=e;return(0,o.jsx)("em",{children:t})},sub:e=>{let{children:t}=e;return(0,o.jsx)("sub",{children:t})},sup:e=>{let{children:t}=e;return(0,o.jsx)("sup",{children:t})}}})})]},t))})}},2908:function(e,t,r){"use strict";var o=r(5893);r(7294);var s=r(5480);t.Z=function(e){let{accordionData:t,isResource:r=!1}=e;return(0,o.jsxs)("div",{children:[(0,o.jsx)("div",{className:"sm:block hidden px-4 sm:px-10 md:px-20 ".concat(r?"mt-8 mb-4":"mt-8 mb-4 sm:my-12"),children:(0,o.jsx)("h2",{className:r?"font-bold text-[#001E96] text-xl sm:text-[20px] border-b border-gray-300 pb-3":"text-primary-950 font-semibold text-xl sm:text-[26px]",children:"Frequently Asked Questions"})}),(0,o.jsx)("h2",{className:"text-primary-950 font-semibold text-[22px] mt-8 mb-4 px-4 sm:hidden block",children:"FAQs"}),(0,o.jsx)(s.Z,{accordionData:t})]})}},533:function(e,t,r){"use strict";var o=r(5893),s=r(9586);t.Z=e=>{let{content:t=[],fetchType:r,isHome:h=!1,excludeId:m="",flag:g=!1}=e,b=t.filter(e=>e._id!==m);return(0,o.jsx)(s.Z,{flag:g,content:b,fetchType:r,isHome:h,excludeId:m})}},9830:function(e,t,r){"use strict";r.r(t),r.d(t,{__N_SSG:function(){return R}});var o=r(5893),s=r(8705),h=r(7737),m=r.n(h),g=r(8004),b=r(753),v=r(5675),x=r.n(v),y=r(533),E=r(2577),S=r(1664),j=r.n(S),N=r(7294),A=r(7116),T=r(6096),k=r(2908),C=r(9008),P=r.n(C),_=r(4155);let hasContent=e=>{if(null==e)return!1;if("string"==typeof e)return e.trim().length>0;if(Array.isArray(e))return e.some(hasContent);if("object"==typeof e&&"props"in e){var t;return hasContent(null===(t=e.props)||void 0===t?void 0:t.children)}return!!e};var R=!0;t.default=function(e){var t,r,h,v;let{page:S,meta:C,relatedArticles:R}=e,[F,I]=(0,N.useState)({}),[L,D]=(0,N.useState)(!0),[O,W]=(0,N.useState)("absolute"),B=(null==S?void 0:S.image)?(0,s.uH)(S.image).url():"";null==S||S.linkedin_url;let H=(0,N.useRef)(null),q=(0,N.useRef)(null),Z=(0,N.useRef)(null),z=(0,A.useReactToPrint)({contentRef:H}),handleShare=async()=>{navigator.share&&navigator.canShare({url:null==C?void 0:C.url})&&await navigator.share({url:C.url})},[U,M]=(0,N.useState)(0);(0,N.useEffect)(()=>{let e;if(!L)return;let handleScroll=()=>{if(window.innerWidth<640)return;let e=document.querySelector("nav"),t=(null==e?void 0:e.offsetHeight)||96,r=H.current,o=Z.current,s=q.current;if(!r||!o||!s)return;let h=r.getBoundingClientRect(),m=o.getBoundingClientRect(),g=s.offsetHeight,b=m.top-h.top-g;M(b),h.top<=t?m.top<=t+g?W("with-contact-form"):W("fixed"):W("absolute")},t=!1,throttledHandleScroll=()=>{t||(requestAnimationFrame(()=>{handleScroll(),t=!1}),t=!0)};return window.addEventListener("scroll",throttledHandleScroll,{passive:!0}),window.addEventListener("resize",handleScroll,{passive:!0}),H.current&&"ResizeObserver"in window&&(e=new ResizeObserver(()=>handleScroll())).observe(H.current),handleScroll(),()=>{window.removeEventListener("scroll",throttledHandleScroll),window.removeEventListener("resize",handleScroll),null==e||e.disconnect()}},[L]);let Y={"@context":"https://schema.org","@type":"Article","@id":"".concat(null==C?void 0:C.url,"#article"),headline:null==S?void 0:S.title,description:null==S?void 0:null===(t=S.meta)||void 0===t?void 0:t.description,image:null==C?void 0:C.imageUrl,url:null==C?void 0:C.url,datePublished:null==S?void 0:S.date,dateModified:(null==S?void 0:S.modifiedDate)||(null==S?void 0:S._updatedAt),author:(null==S?void 0:S.authorSection)?{"@type":"Person",name:S.authorSection}:void 0,publisher:{"@type":"Organization","@id":"https://www.procdna.com/#organization",name:"ProcDNA",url:"https://www.procdna.com/"}};return console.log(S),(0,o.jsxs)(o.Fragment,{children:[(null==S?void 0:S.listed)===!1&&(0,o.jsx)(P(),{children:(0,o.jsx)("meta",{name:"robots",content:"noindex, nofollow"})}),(0,o.jsx)(T.default,{title:(null==S?void 0:null===(r=S.meta)||void 0===r?void 0:r.title)||(null==S?void 0:S.title),description:null==S?void 0:null===(h=S.meta)||void 0===h?void 0:h.description,canonicalUrl:null==C?void 0:C.url,imageUrl:null==C?void 0:C.imageUrl,schema:Y}),(0,o.jsx)("main",{children:(0,o.jsxs)("div",{children:[(0,o.jsxs)("div",{className:"relative",children:[(0,o.jsx)(b.Z,{image:null==F?void 0:F.key,heading:"BACK TO ARTICLES",link:"/articles",title:null==S?void 0:S.title,authorSection:null==S?void 0:S.authorSection,handlePrint:z,handleShare:handleShare}),(0,o.jsxs)("div",{className:"w-full flex flex-col relative",children:[(0,o.jsxs)("div",{className:"".concat((null==R?void 0:R.length)>0?"sm:w-[65%] md:w-[70%]":"w-full"," w-full"),ref:H,children:[(0,o.jsxs)("div",{className:"my-5 sm:my-12 px-4 sm:px-10 md:px-20 text-lg text-black",children:[(0,o.jsx)("div",{className:"block sm:hidden w-full h-full mb-6 sm:mb-0 hide-on-print",children:(0,o.jsx)(x(),{className:"object-cover w-full h-full",src:B,height:500,width:500,alt:(null==S?void 0:S.title)||"Content Image"})}),(0,o.jsx)(m(),{dataset:_.env.NEXT_PUBLIC_SANITY_DATASET,projectId:_.env.NEXT_PUBLIC_SANITY_PROJECT_ID,content:null==S?void 0:S.content,serializers:{h4:e=>hasContent(e.children)?(0,o.jsx)("h2",{className:"mt-8 mb-4 font-bold text-[#001E96] text-xl sm:font-base border-b border-gray-300 pb-3",...e}):null,h5:e=>hasContent(e.children)?(0,o.jsx)("h3",{className:"mt-6 mb-2 font-bold text-[#001E96] text-xl sm:font-base",...e}):null,ul:e=>{let{children:t}=e;return(0,o.jsx)("ul",{className:"mb-4 sm:mb-8 text-black ml-10 list-[square] marker:text-[#001E96]",children:t})},ol:e=>{let{children:t}=e;return(0,o.jsx)("ol",{className:"mb-4 sm:mb-8 text-black ml-10 list-decimal",children:t})},li:e=>{let{children:t}=e;return(0,o.jsx)("li",{className:"text-base leading-6 text-black",children:t})},normal:e=>{let{children:t}=e;
1return(0,o.jsx)("div",{className:"text-base leading-6 mb-2 sm:mb-3 text-black",children:t})},hardBreak:e=>{let{children:t}=e;return(0,o.jsx)("div",{className:"hidden",children:t})},strong:e=>{let{children:t}=e;return(0,o.jsx)("div",{className:"mt-2 sm:mt-4 font-bold text-black inline",children:t})},sub:e=>{let{children:t}=e;return(0,o.jsx)("sub",{children:t})},sup:e=>{let{children:t}=e;return(0,o.jsx)("sup",{children:t})},link:e=>{let{href:t,children:r}=e;return(0,o.jsx)(j(),{href:t.startsWith("http")?t:"https://".concat(t),className:"text-blue-70 underline",target:"_blank",rel:"noreferrer",children:r})},image:e=>{}}})]}),(null==S?void 0:null===(v=S.faqs)||void 0===v?void 0:v.length)>0&&(0,o.jsx)(k.Z,{accordionData:S.faqs,isResource:!0})]}),L&&(null==R?void 0:R.length)>0&&(0,o.jsxs)("div",{className:(()=>{let e="bg-[#F5F6FF] pt-6 sm:pt-10 sm:pb-10 pl-4 pr-4 sm:pl-[30px] sm:pr-[30px] sm:w-[35%] md:w-[30%] w-full pb-6 sm:mb-0 h-[400px] sm:h-[calc(100vh-96px)] sm:z-20 sm:max-h-[calc(100vh-96px)] overflow-y-auto";switch(O){case"fixed":return"".concat(e," sm:fixed sm:right-0 sm:top-[96px] sm:z-20");case"with-contact-form":return"".concat(e," sm:absolute sm:right-0");default:return"".concat(e," sm:absolute sm:top-0 sm:right-0")}})(),ref:q,style:"with-contact-form"===O?{top:"".concat(U,"px")}:void 0,children:[(0,o.jsx)("h2",{className:"text-[#3346B7] text-[22px] font-semibold leading-8 mb-5",children:"Read more articles"}),(0,o.jsx)(y.Z,{content:R,fetchType:"articles",excludeId:null==S?void 0:S._id,setShowMoreSection:D},null==S?void 0:S._id)]})]})]}),(0,o.jsx)("div",{ref:Z,children:(0,o.jsx)(E.Z,{product:null==S?void 0:S.title,resourceType:"Article",isResource:!0,text:"Partner with us",description:"At the heart of our approach is a commitment to your success. We take time to understand your unique challenges and craft tailored solutions that drive meaningful results. Let's build something extraordinary together."})}),(0,o.jsx)(g.Z,{})]})})]})}},7116:function(e,t,r){var o;"undefined"!=typeof self&&self,e.exports=(o=r(7294),function(){"use strict";var e={155:function(e){e.exports=o}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var s=t[r]={exports:{}};return e[r](s,s.exports,n),s.exports}n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};n.r(r),n.d(r,{useReactToPrint:function(){return f}});var s=n(155);function i({level:e="error",messages:t,suppressErrors:r=!1}){r||("error"===e?console.error(t):"warning"===e?console.warn(t):console.debug(t))}function l(e,t){if(t||!e){let e=document.getElementById("printWindow");e&&document.body.removeChild(e)}}function a(e){return e instanceof Error?e:Error("Unknown Error")}function c(e,t){let{documentTitle:r,onAfterPrint:o,onPrintError:s,preserveAfterPrint:h,print:m,suppressErrors:g}=t;setTimeout(()=>{var t,b;if(e.contentWindow){function p(){null==o||o(),l(h)}if(e.contentWindow.focus(),m)m(e).then(p).catch(e=>{s?s("print",a(e)):i({messages:["An error was thrown by the specified `print` function"],suppressErrors:g})});else{if(e.contentWindow.print){let o=null!==(b=null===(t=e.contentDocument)||void 0===t?void 0:t.title)&&void 0!==b?b:"",s=e.ownerDocument.title;r&&(e.ownerDocument.title=r,e.contentDocument&&(e.contentDocument.title=r)),e.contentWindow.print(),r&&(e.ownerDocument.title=s,e.contentDocument&&(e.contentDocument.title=o))}else i({messages:["Printing for this browser is not currently possible: the browser does not have a `print` method available for iframes."],suppressErrors:g});[/Android/i,/webOS/i,/iPhone/i,/iPad/i,/iPod/i,/BlackBerry/i,/Windows Phone/i].some(e=>{var t,r;return(null!==(r=null!==(t=navigator.userAgent)&&void 0!==t?t:navigator.vendor)&&void 0!==r?r:"opera"in window&&window.opera).match(e)})?setTimeout(p,500):p()}}else i({messages:["Printing failed because the `contentWindow` of the print iframe did not load. This is possibly an error with `react-to-
1print`. Please file an issue: https://github.com/MatthewHerbst/react-to-print/issues/"],suppressErrors:g})},500)}function d(e){let t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,null),o=r.nextNode();for(;o;)t.push(o),o=r.nextNode();return t}function f({bodyClass:e,contentRef:t,copyShadowRoots:r,documentTitle:o,fonts:h,ignoreGlobalStyles:m,nonce:g,onAfterPrint:b,onBeforePrint:v,onPrintError:x,pageStyle:y,preserveAfterPrint:E,print:S,suppressErrors:j}){return(0,s.useCallback)(s=>{function w(){let N={bodyClass:e,contentRef:t,copyShadowRoots:r,documentTitle:o,fonts:h,ignoreGlobalStyles:m,nonce:g,onAfterPrint:b,onBeforePrint:v,onPrintError:x,pageStyle:y,preserveAfterPrint:E,print:S,suppressErrors:j},A=function(){let e=document.createElement("iframe");return e.width=`${document.documentElement.clientWidth}px`,e.height=`${document.documentElement.clientHeight}px`,e.style.position="absolute",e.style.top=`-${document.documentElement.clientHeight+100}px`,e.style.left=`-${document.documentElement.clientWidth+100}px`,e.id="printWindow",e.srcdoc="<!DOCTYPE html>",e}(),T=function(e,t){let{contentRef:r,fonts:o,ignoreGlobalStyles:s,suppressErrors:h}=t,m=function({contentRef:e,optionalContent:t,suppressErrors:r}){return!t||t instanceof Event||(e&&i({level:"warning",messages:['"react-to-print" received a `contentRef` option and a optional-content param passed to its callback. The `contentRef` option will be ignored.']}),"function"!=typeof t)?e?e.current:void i({messages:['"react-to-print" did not receive a `contentRef` option or a optional-content param pass to its callback.'],suppressErrors:r}):t()}({contentRef:r,optionalContent:e,suppressErrors:h});if(!m)return;let g=m.cloneNode(!0),b=document.querySelectorAll("link[rel~='stylesheet'], link[as='style']"),v=g.querySelectorAll("img"),x=g.querySelectorAll("video"),y=o?o.length:0;return{contentNode:m,clonedContentNode:g,clonedImgNodes:v,clonedVideoNodes:x,numResourcesToLoad:(s?0:b.length)+v.length+x.length+y,originalCanvasNodes:m.querySelectorAll("canvas")}}(s,N);if(!T)return void i({messages:["There is nothing to print"],suppressErrors:j});let k=function(e,t,r){let{suppressErrors:o}=e,s=[],h=[];return function(m,g){s.includes(m)?i({level:"debug",messages:["Tried to mark a resource that has already been handled",m],suppressErrors:o}):(g?(i({messages:['"react-to-print" was unable to load a resource but will continue attempting to print the page',...g],suppressErrors:o}),h.push(m)):s.push(m),s.length+h.length===t&&c(r,e))}}(N,T.numResourcesToLoad,A);A.onload=()=>{(function(e,t,r,o){var s,h,m,g,b;let{contentNode:v,clonedContentNode:x,clonedImgNodes:y,clonedVideoNodes:E,numResourcesToLoad:S,originalCanvasNodes:j}=r,{bodyClass:N,fonts:A,ignoreGlobalStyles:T,pageStyle:k,nonce:C,suppressErrors:P,copyShadowRoots:_}=o;e.onload=null;let R=null!==(s=e.contentDocument)&&void 0!==s?s:null===(h=e.contentWindow)||void 0===h?void 0:h.document;if(R){let r=R.body.appendChild(x);_&&function u(e,t,r){let o=d(e),s=d(t);if(o.length===s.length)for(let e=0;e<o.length;e++){let t=o[e],h=s[e],m=t.shadowRoot;if(null!==m){let e=h.attachShadow({mode:m.mode});e.innerHTML=m.innerHTML,u(m,e,r)}}else i({messages:["When cloning shadow root content, source and target elements have different size. `onBeforePrint` likely resolved too early.",e,t],suppressErrors:r})}(v,r,!!P),A&&((null===(m=e.contentDocument)||void 0===m?void 0:m.fonts)&&(null===(g=e.contentWindow)||void 0===g?void 0:g.FontFace)?A.forEach(r=>{let o=new FontFace(r.family,r.source,{weight:r.weight,style:r.style});e.contentDocument.fonts.add(o),o.loaded.then(()=>{t(o)}).catch(e=>{t(o,["Failed loading the font:",o,"Load error:",a(e)])})}):(A.forEach(e=>{t(e)}),i({messages:['"react-to-print" is not able to load custom fonts because the browser does not support the FontFace API but will continue attempting to print the page'],suppressErrors:P})));let o=null!=k?k:'\n @page {\n /* Remove browser default header (title) and footer (url) */\n margin: 0;\n }\n @media print {\n body {\n /* Tell browsers to print background colors */\n color-adjust: exact; /* Firefox. This is an older version of "print-color-adjust" */\n print-color-adjust: exact; /* Firefox/Safari */\n -webkit-print-color-adjust: exact; /* Chrome/Safari/Edge/Opera */\n }\n }\n',s=R.createElement("style");C&&(s.setAttribute("nonce",C),R.head.setAttribute("nonce",C)),s.appendChild(R.createTextNode(o)),R.head.appendChild(s),N&&R.body.classList.add(...N.split(" "));let h=R.querySelectorAll("canvas");for(let e=0;e<j.length;++e){let t=j[e],r=h[e];if(void 0===r){i({messages:["A canvas element could not be copied for printing, has it loaded? `onBeforePrint` likely resolved too early.",t],suppressErrors:P});continue}let o=r.getContext("2d");o&&o.drawImage(t,0,0)}for(let e=0;e<y.length;e++){let r=y[e],o=r.getAttribute("src");if(o){let e=new Image;e.onload=()=>{t(r)},e.onerror=(e,o,s,h,m)=>{t(r,["Error loading <img>",r,"Error",m])},e.src=o}else t(r,['Found an <img> tag with an empty "src" attribute. This prevents pre-loading it.',r])}for(let e=0;e<E.length;e++){let r=E[e];r.preload="auto";let o=r.getAttribute("poster");if(o){let e=new Image;e.onload=()=>{t(r)},e.onerror=(e,s,h,m,g)=>{t(r,["Error loading video poster",o,"for video",r,"Error:",g])},e.src=o}else r.readyState>=2?t(r):r.src?(r.onloadeddata=()=>{t(r)},r.onerror=(e,o,s,h,m)=>{t(r,["Error loading video",r,"Error",m])},r.onstalled=()=>{t(r,["Loading video stalled, skipping",r])}):t(r,["Error loading video, `src` is empty",r])}let S="select",F=v.querySelectorAll(S),I=R.querySelectorAll(S);for(let e=0;e<F.length;e++)I[e].value=F[e].value;if(!T){let e=document.querySelectorAll("style, link[rel~='stylesheet'], link[as='style']");for(let r=0,o=e.length;r<o;++r){let o=e[r];if("style"===o.tagName.toLowerCase()){let e=R.createElement(o.tagName),t=o.sheet;if(t){let s="";try{let e=t.cssRules.length;for(let r=0;r<e;++r)"string"==typeof t.cssRules[r].cssText&&(s+=`${t.cssRules[r].cssText}\r 2`)}catch(e){i({messages:["A stylesheet could not be accessed. This is likely due to the stylesheet having cross-origin imports, and many browsers block script access to cross-origin stylesheets. See https://github.com/MatthewHerbst/react-to-
2print/issues/429 for details. You may be able to load the sheet by both marking the stylesheet with the cross `crossorigin` attribute, and setting the `Access-Control-Allow-Origin` header on the server serving the stylesheet. Alternatively, host the stylesheet on your domain to avoid this issue entirely.",o,`Original error: ${a(e).message}`],level:"warning"})}e.setAttribute("id",`react-to-print-${r}`),C&&e.setAttribute("nonce",C),e.appendChild(R.createTextNode(s)),R.head.appendChild(e)}}else if(o.getAttribute("href")){if(o.hasAttribute("disabled"))i({messages:["`react-to-print` encountered a <link> tag with a `disabled` attribute and will ignore it. Note that the `disabled` attribute is deprecated, and some browsers ignore it. You should stop using it. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link#attr-disabled. The <link> is:",o],level:"warning"}),t(o);else{let e=R.createElement(o.tagName);for(let t=0,r=o.attributes.length;t<r;++t){let r=o.attributes[t];r&&e.setAttribute(r.nodeName,null!==(b=r.nodeValue)&&void 0!==b?b:"")}e.onload=()=>{t(e)},e.onerror=(r,o,s,h,m)=>{t(e,["Failed to load",e,"Error:",m])},C&&e.setAttribute("nonce",C),R.head.appendChild(e)}}else i({messages:["`react-to-print` encountered a <link> tag with an empty `href` attribute. In addition to being invalid HTML, this can cause problems in many browsers, and so the <link> was not loaded. The <link> is:",o],level:"warning"}),t(o)}}}0===S&&c(e,o)})(A,k,T,N)},document.body.appendChild(A)}l(E,!0),v?v().then(()=>{w()}).catch(e=>{null==x||x("onBeforePrint",a(e))}):w()},[e,t,r,o,h,m,g,b,v,x,y,E,S,j])}return r}())}},function(e){e.O(0,[674,9942,4238,2015,2025,4472,1872,7440,8004,2577,2563,9774,2888,179],function(){return e(e.s=2802)}),_N_E=e.O()}]);
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.