PageSourceSearch

https://dnacomplete.com/_next/static/chunks/0eu2ol~st-w15.js

js dnacomplete.com collected 2026-10-08 02:34:59 UTC 16,029 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,61802,e=>{"use strict";var t=e.i(71645);let r={essential:{name:"Essential",badge:"1x WGS DNA Test",kitPriceCents:24500,kitOriginalPriceCents:39500,membershipPriceCents:9500},pro:{name:"Pro",badge:"30x WGS DNA Test",kitPriceCents:59500,kitOriginalPriceCents:89500,membershipPriceCents:19500},elite:{name:"Elite",badge:"100x WGS DNA Test",kitPriceCents:129500,kitOriginalPriceCents:179500,membershipPriceCents:49500}},n="dnacomplete:pricing-changed",i=!1;async function a(){if(!i){i=!0;try{let t=await fetch("/api/tier-pricing");if(!t.ok)return;var e=await t.json();for(let t of Object.keys(r)){let n=e[t];n&&("number"==typeof n.saleCents&&(r[t].kitPriceCents=n.saleCents),"number"==typeof n.originalCents&&(r[t].kitOriginalPriceCents=n.originalCents),"number"==typeof n.membershipCents&&(r[t].membershipPriceCents=n.membershipCents))}window.dispatchEvent(new CustomEvent(n))}catch{}}}let o="dnacomplete:cart:v2",l="dnacomplete:cart:v1",s="dnacomplete:cart-changed";function c(e){let t=Math.floor(Number(e));return!Number.isFinite(t)||t<1?1:Math.min(10,t)}function u(e){return"string"==typeof e&&e in r}function f(e){e&&0!==e.items.length?window.localStorage.setItem(o,JSON.stringify(e)):window.localStorage.removeItem(o),window.dispatchEvent(new CustomEvent(s))}function d(){return function(){try{let e=window.localStorage.getItem(o);if(e){let t=JSON.parse(e),r=function(e){if(!Array.isArray(e))return[];let t=new Map;for(let r of e){if(!r||"object"!=typeof r||!u(r.tier))continue;let e=c(r.quantity);t.set(r.tier,(t.get(r.tier)??0)+e)}return Array.from(t.entries()).slice(0,3).map(([e,t])=>({tier:e,quantity:c(t)}))}(t.items);if(0===r.length)return null;return{items:r}}let t=window.localStorage.getItem(l);if(t){let e=JSON.parse(t);if(u(e.tier)){let t={items:[{tier:e.tier,quantity:c(e.quantity)}]};return window.localStorage.setItem(o,JSON.stringify(t)),window.localStorage.removeItem(l),t}window.localStorage.removeItem(l)}return null}catch{return null}}()}function p(e){return!!e&&"US"!==e.toUpperCase()}async function h(e){try{let t=await fetch("/api/validate-promo",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({promoCode:e})}),r=await t.json().catch(()=>({}));if(!r.valid||!r.code)return{error:r.error||"That code isn't valid."};return{code:r.code,percentOff:r.percentOff??null,amountOffCents:r.amountOffCents??null}}catch{return{error:"Could not validate code right now."}}}function m(e){let t=r[e.tier],n=t.kitOriginalPriceCents??t.kitPriceCents,i=n*e.quantity,a=t.kitPriceCents*e.quantity,o=t.membershipPriceCents*e.quantity;return{tier:e.tier,quantity:e.quantity,kitUnitCents:t.kitPriceCents,kitOriginalUnitCents:n,membershipUnitCents:t.membershipPriceCents,kitSubtotalCents:a,kitOriginalSubtotalCents:i,membershipSubtotalCents:o,savingsCents:i-a}}e.s(["CART_LIMITS",0,{MIN_QUANTITY:1,MAX_QUANTITY:10,MAX_DISTINCT_ITEMS:3},"TIERS",0,r,"addCartItem",0,function(e,t=1){let r=d()??{items:[]},n={items:r.items.find(t=>t.tier===e)?r.items.map(r=>r.tier===e?{...r,quantity:c(r.quantity+t)}:r):[...r.items,{tier:e,quantity:c(t)}].slice(0,3)};return f(n),n},"clearCart",0,function(){f(null)},"computePromoDiscountCents",0,function(e,t){return e?null!=e.percentOff?Math.round(t*(e.percentOff/100)):null!=e.amountOffCents?Math.min(e.amountOffCents,t):0:0},"formatCents",0,function(e){return`$${(e/100).toLocaleString("en-US",{minimumFractionDigits:2*(e%100!=0),maximumFractionDigits:2})}`},"getCart",0,d,"getCartTotals",0,function(e){let t=e.items.map(m),r=t.reduce((e,t)=>e+t.quantity,0),n=t.reduce((e,t)=>e+t.kitOriginalSubtotalCents,0),i=t.reduce((e,t)=>e+t.kitSubtotalCents,0),a=t.reduce((e,t)=>e+t.membershipSubtotalCents,0);return{itemCount:r,perItem:t,kitOriginalSubtotalCents:n,kitSubtotalCents:i,membershipSubtotalCents:a,savingsCents:n-i,totalDueCents:i}},"getShippingCents",0,function(e){return 2500*!!p(e)},"isInternationalCountry",0,p,"loadPricing",0,a,"removeCartItem",0,function(e){let t=d();if(!t)return;let r=t.items.filter(t=>t.tier!==e);f(0===r.length?null:{items:r})},"subscribeToCart",0,function(e){let t=()=>e();return window.addEventListener(s,t),window.addEventListener("storage",t),()=>{window.removeEventListener(s,t),window.removeEventListener("storage",t)}},"updateCartItemQuantity",0,function(e,t){let r=d();if(!r)return;let n=c(t);f({items:r.items.map(t=>t.tier===e?{...t,quantity:n}:t)})},"usePricing",0,function(){let[e,r]=(0,t.useReducer)(e=>e+1,0);return(0,t.useEffect)(()=>{let e=()=>r();return window.addEventListener(n,e),a(),()=>window.removeEventListener(n,e)},[]),e},"validatePromo",0,h])},7670,e=>{"use strict";e.s(["default",0,function(){for(var e,t,r=0,n="",i=arguments.length;r<i;r++)(e=arguments[r])&&(t=function e(t){var r,n,i="";if("string"==typeof t||"number"==typeof t)i+=t;else if("object"==typeof t)if(Array.isArray(t)){var a=t.length;for(r=0;r<a;r++)t[r]&&(n=e(t[r]))&&(i&&(i+=" "),i+=n)}else for(n in t)t[n]&&(i&&(i+=" "),i+=n);return i}(e))&&(n&&(n+=" "),n+=t);return n}])},40687,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(7670),i=e.i(61802);let a=[{label:"Shop",href:"/dnacomplete/shop"},{label:"Science and Tech",href:"/dnacomplete/science-and-technology"},{label:"Upload DNA Data",href:"/dnacomplete/upload"},{label:"About Us",href:"/dnacomplete/about-us"},{label:"Reports",href:"/dnacomplete/reports"},{label:"Business",href:"/dnacomplete/business"},{label:"FAQ",href:"/dnacomplete#faq"}];e.s(["default",0,function({overlay:e=!1}={}){let[o,l]=(0,r.useState)(!1),[s,c]=(0,r.useState)(0),[u,f]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let t=e?64:8,r=()=>f(window.scrollY>t);return r(),window.addEventListener("scroll",r,{passive:!0}),()=>window.removeEventListener("scroll",r)},[e]);let d=e&&!u,p=(0,n.default)("text-[13px] transition-colors whitespace-nowrap font-medium",d?"text-[#221E1F] hover:text-[#EC8B5E] [text-shadow:0_1px_10px_rgba(255,255,255,0.45)]":"text-[#221E1F] hover:text-[#EC8B5E]");(0,r.useEffect)(()=>{let e=()=>{let e=(0,i.getCart)();e&&0!==e.items.length?c((0,i.getCartTotals)(e).itemCount):c(0)};return e(),(0,i.subscribeToCart)(e)},[]);let h=s>0?"/dnacomplete/checkout":"/dnacomplete/shop",m=s>0?`Cart (${s} ${1===s?"item":"items"})`:"Cart";return(0,t.jsx)("div",{className:(0,n.default)("sticky top-3 lg:top-4 z-50 px-6 lg:px-[60px]",e?"mt-[42px] lg:mt-[48px] mb-[-98px] lg:mb-[-120px]":"mt-3 lg:mt-4"),children:(0,t.jsxs)("nav",{className:(0,n.default)("mx-auto max-w-[1660px] rounded-[1000px] h-[56px] lg:h-[72px] px-4 lg:px-10 flex items-center relative backdrop-blur-md transition-all duration-300",d?"bg-white/10 border border-white/25 shadow-[0_4px_24px_rgba(0,0,0,0.14)]":(0,n.default)("bg-white/95 border border-black/[0.06]",u?"shadow-md":"shadow-sm")),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between w-full gap-4",children:[(0,t.jsx)("a",{href:"/dnacomplete",className:"shrink-0",children:(0,t.jsx)("img",{src:"/images/dc-by-nebula-logo.png",alt:"DNA C
1omplete by Nebula Genomics",width:600,height:118,fetchPriority:"high",className:(0,n.default)("h-[26px] lg:h-[32px] w-auto",d&&"drop-shadow-[0_2px_10px_rgba(255,255,255,0.35)]")})}),(0,t.jsx)("div",{className:"hidden xl:flex items-center gap-7",children:a.map(e=>(0,t.jsx)("a",{href:e.href,className:p,children:e.label},e.label))}),(0,t.jsxs)("div",{className:"hidden lg:flex items-center gap-5 shrink-0",children:[(0,t.jsx)("a",{href:"https://portal.dnacomplete.com/register",target:"_blank",rel:"noopener noreferrer",className:p,children:"Register Your Kit"}),(0,t.jsx)("a",{href:"https://portal.dnacomplete.com/login",target:"_blank",rel:"noopener noreferrer",className:p,children:"Login"}),(0,t.jsxs)("a",{href:h,"aria-label":m,title:m,className:"relative inline-flex items-center transition-colors text-[#221E1F] hover:text-[#EC8B5E]",children:[(0,t.jsx)("img",{src:"/images/dc-cart.svg",alt:"",width:20,height:20,className:(0,n.default)("w-5 h-5",d&&"drop-shadow-[0_1px_6px_rgba(255,255,255,0.45)]")}),s>0&&(0,t.jsx)("span",{"aria-hidden":!0,className:"absolute -top-1.5 -right-2 min-w-[18px] h-[18px] px-[5px] rounded-full bg-[#ff7f48] text-white text-[11px] font-bold leading-none flex items-center justify-center",children:s>99?"99+":s})]})]}),(0,t.jsxs)("div",{className:"lg:hidden flex items-center gap-3",children:[(0,t.jsxs)("a",{href:h,"aria-label":m,className:"relative inline-flex items-center transition-colors p-1 text-[#221E1F] hover:text-[#EC8B5E]",children:[(0,t.jsx)("img",{src:"/images/dc-cart.svg",alt:"",width:20,height:20,className:(0,n.default)("w-5 h-5",d&&"drop-shadow-[0_1px_6px_rgba(255,255,255,0.45)]")}),s>0&&(0,t.jsx)("span",{"aria-hidden":!0,className:"absolute -top-0.5 -right-0.5 min-w-[16px] h-[16px] px-[4px] rounded-full bg-[#ff7f48] text-white text-[10px] font-bold leading-none flex items-center justify-center",children:s>99?"99+":s})]}),(0,t.jsxs)("button",{onClick:()=>l(!o),className:"flex flex-col gap-1.5 p-2","aria-label":"Toggle menu","aria-expanded":o,children:[(0,t.jsx)("span",{className:(0,n.default)("block w-6 h-0.5 transition-all bg-[#221E1F]",o&&"rotate-45 translate-y-2")}),(0,t.jsx)("span",{className:(0,n.default)("block w-6 h-0.5 transition-all bg-[#221E1F]",o&&"opacity-0")}),(0,t.jsx)("span",{className:(0,n.default)("block w-6 h-0.5 transition-all bg-[#221E1F]",o&&"-rotate-45 -translate-y-2")})]})]})]}),o&&(0,t.jsx)("div",{className:"dc-menu-in lg:hidden absolute top-full left-0 right-0 mt-2 rounded-2xl bg-white shadow-lg border border-black/[0.06] overflow-hidden",children:(0,t.jsxs)("div",{className:"flex flex-col items-stretch py-3",children:[a.map(e=>(0,t.jsx)("a",{href:e.href,onClick:()=>l(!1),className:"text-[14px] text-[#221E1F] py-3 px-6 hover:bg-[#fbf8f1] transition-colors",children:e.label},e.label)),(0,t.jsx)("a",{href:"https://portal.dnacomplete.com/register",target:"_blank",rel:"noopener noreferrer",onClick:()=>l(!1),className:"text-[14px] text-[#221E1F] py-3 px-6 hover:bg-[#fbf8f1] transition-colors border-t border-[#eee] mt-2",children:"Register Your Kit"}),(0,t.jsx)("a",{href:"https://portal.dnacomplete.com/login",target:"_blank",rel:"noopener noreferrer",onClick:()=>l(!1),className:"text-[14px] text-[#221E1F] py-3 px-6 hover:bg-[#fbf8f1] transition-colors",children:"Login"})]})})]})})}])},95057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return l},formatWithValidation:function(){return c},urlObjectKeys:function(){return s}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let a=e.r(90809)._(e.r(98183)),o=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:r}=e,n=e.protocol||"",i=e.pathname||"",l=e.hash||"",s=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),s&&"object"==typeof s&&(s=String(a.urlQueryToSearchParams(s)));let u=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||o.test(n))&&!1!==c?(c="//"+(c||""),i&&"/"!==i[0]&&(i="/"+i)):c||(c=""),l&&"#"!==l[0]&&(l="#"+l),u&&"?"!==u[0]&&(u="?"+u),i=i.replace(/[?#]/g,encodeURIComponent),u=u.replace("#","%23"),`${n}${c}${i}${u}${l}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return l(e)}},18581,(e,t,r)=>{"use strict";
1Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return i}});let n=e.r(71645);function i(e,t){let r=(0,n.useRef)(null),i=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(r.current=a(e,n)),t&&(i.current=a(t,n))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return a}});let n=e.r(18967),i=e.r(52817);function a(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,i.hasBasePath)(r.pathname)}catch(e){return!1}}},84508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},22016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return b},useLinkStatus:function(){return y}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let a=e.r(90809),o=e.r(43476),l=a._(e.r(71645)),s=e.r(95057),c=e.r(8372),u=e.r(18581),f=e.r(18967),d=e.r(5550);e.r(33525);let p=e.r(88540),h=e.r(91949),m=e.r(73668),g=e.r(9396);function b(t){var r,n;let i,a,b,[y,C]=(0,l.useOptimistic)(h.IDLE_LINK_STATUS),v=(0,l.useRef)(null),{href:w,as:j,children:S,prefetch:_=null,passHref:E,replace:N,shallow:P,scroll:k,onClick:O,onMouseEnter:T,onTouchStart:I,legacyBehavior:A=!1,onNavigate:L,transitionTypes:M,ref:R,unstable_dynamicOnHover:U,...F}=t;i=S,A&&("string"==typeof i||"number"==typeof i)&&(i=(0,o.jsx)("a",{children:i}));let D=l.default.useContext(c.AppRouterContext),q=!1!==_,B=!1!==_?null===(n=_)||"auto"===n?g.FetchStrategy.PPR:g.FetchStrategy.Full:g.FetchStrategy.PPR,$="string"==typeof(r=j||w)?r:(0,s.formatUrl)(r);if(A){if(i?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});a=l.default.Children.only(i)}let K=A?a&&"object"==typeof a&&a.ref:R,J=l.default.useCallback(e=>(null!==D&&(v.current=(0,h.mountLinkInstance)(e,$,D,B,q,C)),()=>{v.current&&((0,h.unmountLinkForCurrentNavigation)(v.current),v.current=null),(0,h.unmountPrefetchableInstance)(e)}),[q,$,D,B,C]),Q={ref:(0,u.useMergedRef)(J,K),onClick(t){A||"function"!=typeof O||O(t),A&&a.props&&"function"==typeof a.props.onClick&&a.props.onClick(t),!D||t.defaultPrevented||function(t,r,n,i,a,o,s){if("u">typeof window){let c,{nodeName:u}=t.currentTarget;if("A"===u.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,m.isLocalURL)(r)){i&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);l.default.startTransition(()=>{f(r,i?"replace":"push",!1===a?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,n.current,s)})}}(t,$,v,N,k,L,M)},onMouseEnter(e){A||"function"!=typeof T||T(e),A&&a.props&&"function"==typeof a.props.onMouseEnter&&a.props.onMouseEnter(e),D&&q&&(0,h.onNavigationIntent)(e.currentTarget,!0===U)},onTouchStart:function(e){A||"function"!=typeof I||I(e),A&&a.props&&"function"==typeof a.props.onTouchStart&&a.props.onTouchStart(e),D&&q&&(0,h.onNavigationIntent)(e.currentTarget,!0===U)}};return(0,f.isAbsoluteUrl)($)?Q.href=$:A&&!E&&("a"!==a.type||"href"in a.props)||(Q.href=(0,d.addBasePath)($)),b=A?l.default.cloneElement(a,Q):(0,o.jsx)("a",{...F,...Q,children:i}),(0,o.jsx)(x.Provider,{value:y,children:b})}e.r(84508);let x=(0,l.createContext)(h.IDLE_LINK_STATUS),y=()=>(0,l.useContext)(x);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esMo
1dule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]);

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.