1/*! For license information please see jobnew.js.LICENSE.txt */ 2"use strict";(self.webpackChunknd_template=self.webpackChunknd_template||[]).push([["jobnew"],{
2"./js/config.js":(e,t,a)=>{a.r(t),a.d(t,{config:()=>r,getEnvConfig:()=>n});const r={fingerprintJs:{key:"mvgfsRh13q2bLEVNPTMy"},usaJobs:{staging:"https://script.google.com/macros/s/AKfycbxlSI8JcuDCO4dbbbcXLaWbSlsnMXzv5_rS2SRwi6m8i0-Dk12WPcj-lBT2TmT5XBuujg/exec",production:"https://script.google.com/macros/s/AKfycbwp1fey4sU-IMkqxnyym-B1LuLjJjjehFh5ww35t8nFN83zjGzHX9XwMjb9LnNdCyCN/exec"},recaptcha:{staging:"6LddtH4tAAAAADIqx3vOYR_k7vVoIbN6suA9-wBc",production:"6LddtH4tAAAAADIqx3vOYR_k7vVoIbN6suA9-wBc"}},n=()=>{const e="undefined"!=typeof document&&"roundglass.com"===document.location.hostname?"production":"staging";return{usaJobsUrl:r.usaJobs[e],recaptchaSiteKey:r.recaptcha[e]}}},
2"./js/domutils.js":(e,t,a)=>{function r(e){const t=document.createElement("template");return t.innerHTML=e.trim(),t.content.firstChild}function n(e,t="*"){return o(e.parentNode,t).filter((t=>t!=e))}function o(e,t="*"){return[...e.querySelectorAll(":scope > "+t)]}function i(){if(arguments[0].forEach){let e=[...arguments];arguments[0].forEach((t=>{e[0]=t,s(...e)}))}else if(3==arguments.length){const[e,t,a]=arguments,r=n=>{e.removeEventListener(t,r),a.apply(e,arguments)};e.addEventListener(t,r)}else if(4==arguments.length){const[e,t,a,r]=arguments,n=o=>{o.target.matches(a)&&(e.removeEventListener(t,n),r(o))};e.addEventListener(t,n)}}function s(){if(arguments[0].forEach){let e=[...arguments];arguments[0].forEach((t=>{e[0]=t,s(...e)}))}else if(3==arguments.length){const[e,t,a]=arguments;e.addEventListener(t,a)}else if(4==arguments.length){const[e,t,a,r]=arguments;e.addEventListener(t,(e=>{e.target.matches(a)&&r(e)}))}}function l(e){if(!arguments.length)return"loading"!==document.readyState?Promise.resolve(document):new Promise(((e,t)=>{document.addEventListener("DOMContentLoaded",(()=>e(document)),{once:!0})}));"loading"!==document.readyState?e():document.addEventListener("DOMContentLoaded",e,{once:!0})}function c(e,t=300){let a;return(...r)=>{clearTimeout(a),a=setTimeout((()=>{e.apply(this,r)}),t)}}a.r(t),a.d(t,{children:()=>o,create:()=>r,debounce:()=>c,on:()=>s,once:()=>i,ready:()=>l,siblings:()=>n})},
2"./js/job-new.js":(e,t,a)=>{a.r(t);var r=a("./js/domutils.js"),n=a("./js/config.js");const{usaJobsUrl:o,recaptchaSiteKey:i}=(0,n.getEnvConfig)();r.ready((()=>{const e=document.getElementById("careers-job-slot-india"),t=document.getElementById("careers-job-slot-USA");if(!t&&!e)return;const a=e=>{const t=e&&e.Country;return!(!t||"string"!=typeof t)&&"india"===t.trim().toLowerCase()},r=e=>String(e||"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,"""),n=({slot:e,url:t,prepare:a,render:n,errorMessage:o,onSettled:i})=>{(e=>{const t="undefined"!=typeof AbortController?new AbortController:null,a=t?window.setTimeout((()=>t.abort()),45e3):null;return fetch(e,t?{signal:t.signal}:{}).then((e=>{if(!e.ok)throw new Error(String(e.status));return e.json()})).finally((()=>{a&&window.clearTimeout(a)}))})(t).then((e=>{n(a(e))})).catch((t=>{const a=t&&t.fromApi?t.message:o;e.innerHTML=`<p class="careers-job-slot__error">${r(a)}</p>`})).finally((()=>{"function"==typeof i&&i()}))},s=e=>{if(!e||!e.classList.contains("open"))return;const t=Math.max(e.scrollHeight,e.offsetHeight);e.style.maxHeight=`${t+28}px`},l=(e,t)=>{if("1"===e.dataset.panelLayoutBound)return;e.dataset.panelLayoutBound="1";const a=e.closest(".careers-preapply-tabs__panel"),r=e.closest(".careers-preapply-tabs");if(!a||!r)return;const n=()=>
2{if(a.hidden)return;const t=e.querySelector(".content-item .items:not(.download)"),r=e.querySelector(".content-item .heading img");var n;t&&r&&!t.classList.contains("open")&&(t.classList.add("open"),r.src="/images/minus.svg"),(n=e)&&n.querySelectorAll(".content-item .items.open").forEach((e=>{e.classList.contains("download")||s(e)}))},o=()=>{a.hidden||window.requestAnimationFrame((()=>{window.requestAnimationFrame((()=>{n(),window.setTimeout(n,0),window.setTimeout(n,50)}))}))};"undefined"!=typeof MutationObserver&&new MutationObserver((()=>o())).observe(a,{attributes:!0,attributeFilter:["hidden"]}),r.addEventListener("click",(e=>{const a=e.target.closest("[data-preapply-tab]");a&&a.getAttribute("data-preapply-tab")===t&&o()})),o()},c=e=>{if(!e||"1"===e.dataset.jobAccordionInit)return;e.dataset.jobAccordionInit="1";const t=e.closest(".careers-preapply-tabs__panel"),a=Boolean(t&&t.hidden),r=e.querySelector(".content-item .items:not(.download)"),n=e.querySelector(".content-item .heading img");!a&&r&&n&&(r.classList.add("open"),s(r),n.src="/images/minus.svg"),e.querySelectorAll(".content-item .heading").forEach((t=>{const a=t.querySelector("img");a&&t.addEventListener("click",(()=>{const r=t.nextElementSibling;if(!r||r.classList.contains("download"))return;const n=r.classList.contains("open");e.querySelectorAll(".content-item .items").forEach((e=>{e.classList.contains("download")||(e.classList.remove("open"),e.style.maxHeight=null)})),e.querySelectorAll(".content-item .heading img").forEach((e=>{e.src="/images/plus.svg"})),n||(r.classList.add("open"),s(r),a.src="/images/minus.svg")}))}))},d=(e,t)=>{let a='<div class="content-items">';return e.forEach((e=>{const n=t(e),o=r(n.title),i=r(n.url||"#"),s=(l=n.description||"",String(l||"").replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim());var l;const c=s?r(s.replace(/\s+/g," ").trim()):"",d=r(n.locationLine||"");let p="";if(c?p+=`<div class="item"><div class="item-description">${c}</div></div>`:d?p+=`<div class="item"><div class="item-description">${d}</div></div>`:p='<div class="item"><div class="item-description">Open the listing for full details.</div></div>',n.useApplyForm){const e=r(n.jobId||"");p+=`<a class="link careers-job-detail-btn" href="${r(n.jobHref||"#")}" data-job-id="${e}">View role<img src="/images/arrow-right-bold.svg" alt=""></a>`}else p+=`<a class="link" target="_blank" rel="noopener noreferrer" href="${i}">View role<img src="/images/arrow-right-bold.svg" alt=""></a>`;a+=`<div class="content-item"><div class="heading"><span class="span">${o}</span><img src="/images/plus.svg" alt=""></div><div class="items">${p}</div></div>`})),a+="</div>",a},p=e=>{const t=e.Date_Opened||e.date_opened||"",a=new Date(t);return Number.isNaN(a.getTime())?0:a.getTime()},u=(e,t)=>{if(!e||"object"!=typeof e)return"";for(let a=0;a<t.length;a+=1){const r=e[t[a]];if(null==r)continue;const n=String(r).trim();if(n)return n}return""},m=e=>u(e,["Job ID","jobId"]),h=e=>u(e,["Position Title","positionTitle","jobTitle","Title"]),g=e=>u(e,["Location"]),y=e=>u(e,["Position Type","Job Type"]),f=e=>u(e,["Experience"]),S=e=>u(e,["Salary"]),b=e=>u(e,["Skills / Qualifications","Skills"]),A=e=>u(e,["Preferred Qualifications"]),w=e=>u(e,["Description"]),v=e=>u(e,["About the Role"]),_=e=>u(e,["Responsibilities"]),U=e=>u(e,["Status"]),L=e=>u(e,["Posted Date"]),j=e=>{if(!e||"object"!=typeof e)return!1;const t=U(e).toLowerCase();if(t&&"active"!==t)return!1;const a=(e=>u(e,["Expiry Date"]))(e);if(a){const e=new Date(a);if(!Number.isNaN(e.getTime())&&e.getTime()<Date.now())return!1}return Boolean(h(e))};let k={};const E="job",C=()=>{try{return String(new URLSearchParams(window.location.search).get(E)||"").trim()}catch(e){return""}},T=e=>{const t=new URL(window.location.href),a=String(e||"").trim();return a?t.searchParams.set(E,a):t.searchParams.delete(E),t.toString()},x=(e,{replace:t=!1}={})=>{const a=T(e);if(a===window.location.href)return;const r={careersUSAJobId:String(e||"").trim()||null};t?window.history.replaceState(r,"",a):window.history.pushState(r,"",a)},q=e=>/<\/?[a-z][\s\S]*>/i.test(String(e||"")),P=e=>String(e||"").replace(/<script[\s\S]*?>[\s\S]*?<\/script>/gi,"").replace(/\son\w+\s*=\s*(['"]).*?\1/gi,"").replace(/\son\w+\s*=\s*[^\s>]+/gi,"").replace(/javascript:/gi,""),N=(e,t,{asList:a=!0}={})=>{const n=String(e||"").trim();if(!n)return"";if(q(n)){let e=P(n);return a||(e=e.replace(/<\/?ul[^>]*>/gi,"").replace(/<\/?ol[^>]*>/gi,"").replace(/<li[^>]*>/gi,"<p>").replace(/<\/li>/gi,"</p>")),e}const o=e=>e.map((e=>e.replace(/^[\sâ¢\-*·]+/,"").replace(/[;
2\s]+$/,"").trim())).filter(Boolean);let i=o(n.split(/\r?\n/));return 1===i.length&&t&&(i=o(i[0].split(t))),i.length>1?a?`<ul>${i.map((e=>`<li>${r(e)}</li>`)).join("")}</ul>`:i.map((e=>`<p>${r(e)}</p>`)).join(""):`<p>${r(i[0]||n)}</p>`},R=e=>{const t=w(e),a=v(e);let n="";if(t&&(n+=q(t)?P(t):`<p class="careers-USA-detail__lead">${r(t)}</p>`),n+="\n <h3 class=\"careers-USA-detail__h-orange\">Who we are:</h3>\n <p>Roundglass is a wholistic wellbeing company working to empower healthier lives, stronger communities, and a more sustainable world. That w in wholistic is there for a reason: We believe true wellbeing spans the whole human experience, from how we care for ourselves to our connections with others and the planet.</p>\n <p>Roundglass creates real-world impact through diverse, interconnected initiatives:</p>\n <p><strong>Roundglass Living</strong> delivers personalized wellbeing guidance rooted in science. The app helps people develop healthy habits that last through breathwork, meditation, movement, nutrition, music, and more.</p>\n <p><strong>Roundglass Foundation</strong> drives our development work in communities and ecosystems across India, from empowering rural villages to nurturing world-class athletes and documenting biodiversity. Initiatives include Roundglass Punjab, Roundglass Sports, and Roundglass Sustain.</p>\n <p>We're driven by a mission to make wellbeing accessible and actionable for everyone, everywhere. That mission shapes how we work and show up for each other. If you're committed to creating meaningful impact and want to help build a culture that reflects it, we'd love to meet you.</p>\n ",a&&a!==t){const e=N(a,null,{asList:!1});e&&(n+=`<h3 class="careers-USA-detail__h-orange">About the Role:</h3>${e}`)}const o=(e=>{const t=String(e||"").trim();if(!t)return"";if(q(t))return P(t);const a=e=>e.replace(/^[\sâ¢\-*·]+/,"").trim(),n=t.split(/\n\s*\n/).map((e=>e.split(/\r?\n/).map(a).filter(Boolean))).filter((e=>e.length)),o=e=>Boolean(e)&&e.length<80&&!/[.!?]"?$/.test(e);return n.some((e=>e.length>=2&&o(e[0])))?n.map((e=>{if(e.length>=2&&o(e[0])){const[t,...a]=e;return`<h4>${r(t)}</h4><ul>${a.map((e=>`<li>${r(e)}</li>`)).join("")}</ul>`}return 1===e.length?`<p>${r(e[0])}</p>`:`<ul>${e.map((e=>`<li>${r(e)}</li>`)).join("")}</ul>`})).join(""):n.map((e=>e.map((e=>`<p>${r(e)}</p>`)).join(""))).join("")})((e=>u(e,["What Youâll Do","What You'll Do"]))(e));o&&(n+=`<h3 class="careers-USA-detail__h-orange">What Youâll Do:</h3>${o}`),[["Responsibilities:",_(e),/;\s*/],["Skills / Qualifications:",b(e),/,\s*/],["Preferred Qualifications:",A(e),/,\s*/]].forEach((([e,t,a])=>{const o=N(t,a);o&&(n+=`<h3 class="careers-USA-detail__h-orange">${r(e)}</h3>${o}`)}));const i=S(e),s=f(e);if(i||s){n+='<h3 class="careers-USA-detail__h-orange">Pay & Benefits:</h3>';const e=[];i&&e.push(`Anticipated salary / compensation: ${r(i)}.`),s&&e.push(`Experience: ${r(s)}.`),n+=`<p>${e.join(" ")}</p>`}return n+='\n <h3 class="careers-USA-detail__h-orange">Equal Opportunity:</h3>\n <p>Roundglass values diversity and is committed to providing equal opportunities. We do not discriminate against race, color, religion, sex, sexual orientation, gender identity, gender expression, pregnancy (including childbirth, lactation and related medical conditions), national origin, age, physical and mental disability, marital status, genetic information (including characteristics and testing), military and veteran status, and any other characteristic protected by applicable law. We will provide reasonable accommodation to individuals with disabilities who need assistance applying for a job. Please contact <a href="mailto:[email protected]">[email protected]</a> for more information.</p>\n <p>We rely on legitimate interest as a legal basis for processing personal information under the GDPR for purposes of recruitment and applications for employment.</p>\n ',n},I=({syncUrl:e=!0}={})=>{const t=document.getElementById("careers-USA-detail-modal");t&&!t.hidden?(t.hidden=!0,document.body.classList.remove("careers-USA-detail-open"),e&&x("",{replace:!0})):e&&C()&&x("",{replace:!0})},B=(e,{syncUrl:t=!0}={})=>{const a=k[e];if(!a)return;const n=(()=>{let e=document.getElementById("careers-USA-detail-modal");if(e)return e;e=document.createElement("div"),e.id="careers-USA-detail-modal",e.className="
2careers-USA-detail",e.hidden=!0,e.innerHTML='\n <div class="careers-USA-detail__page" role="dialog" aria-modal="true" aria-labelledby="careers-USA-detail-title">\n <header class="careers-USA-detail__topbar">\n <button type="button" class="careers-USA-detail__back" data-USA-detail-close>\n <img src="/images/arrow-right-bold.svg" alt=""> Back to roles\n </button>\n <button type="button" class="careers-USA-detail__close" data-USA-detail-close aria-label="Close">×</button>\n </header>\n <div class="careers-USA-detail__body">\n <div class="careers-USA-detail__title-row">\n <h1 id="careers-USA-detail-title" class="careers-USA-detail__title" data-USA-detail-title></h1>\n <p class="careers-USA-detail__req" data-USA-detail-req></p>\n </div>\n <p class="careers-USA-detail__location" data-USA-detail-location></p>\n <hr class="careers-USA-detail__rule" />\n <div class="careers-USA-detail__toolbar">\n <button type="button" class="careers-USA-detail__apply" data-USA-detail-apply>Apply</button>\n <button type="button" class="careers-USA-detail__share" data-USA-detail-share>\n <svg width="16" height="16" viewBox="0 0 24 24" fill="none" aria-hidden="true">\n <circle cx="18" cy="5" r="3" stroke="currentColor" stroke-width="2"/>\n <circle cx="6" cy="12" r="3" stroke="currentColor" stroke-width="2"/>\n <circle cx="18" cy="19" r="3" stroke="currentColor" stroke-width="2"/>\n <path d="M8.6 13.5l6.8 3.9M15.4 6.6l-6.8 3.9" stroke="currentColor" stroke-width="2"/>\n </svg>\n Share\n </button>\n </div>\n <h2 class="careers-USA-detail__jd-heading">Job Description</h2>\n <p class="careers-USA-detail__posted" data-USA-detail-posted></p>\n <ul class="careers-USA-detail__facts" data-USA-detail-facts></ul>\n <div class="careers-USA-detail__rich" data-USA-detail-description></div>\n \n \n </div>\n </div>\n ',document.body.appendChild(e);const t=()=>{I({syncUrl:!0})};return e.querySelectorAll("[data-USA-detail-close]").forEach((e=>{e.addEventListener("click",t)})),document.addEventListener("keydown",(a=>{if("Escape"!==a.key||e.hidden)return;const r=document.getElementById("careers-USA-apply-modal");r&&!r.hidden||t()})),e.addEventListener("click",(t=>{const a=t.target.closest("[data-USA-detail-apply]");if(a&&e.contains(a)){const t=e.dataset.applyUrl||"";return t?void window.open(t,"_blank","noopener,noreferrer"):void F(e.dataset.jobId||"",e.dataset.jobTitle||"")}const r=t.target.closest("[data-USA-detail-share]");if(!r||!e.contains(r))return;const n=e.dataset.jobTitle||"Roundglass role",o=T(e.dataset.jobId||"");navigator.share?navigator.share({title:n,url:o}).catch((()=>{})):navigator.clipboard&&navigator.clipboard.writeText&&navigator.clipboard.writeText(o).then((()=>{r.classList.add("is-copied"),window.setTimeout((()=>r.classList.remove("is-copied")),1600)}))})),e})(),o=h(a)||"Role",i=g(a),s=y(a),l=(e=>u(e,["Company"]))(a),c=m(a)||e||"";n.dataset.jobId=c,n.dataset.jobTitle=o,n.dataset.applyUrl=(e=>u(e,["Apply Link"]))(a),t&&x(c);const d=n.querySelector("[data-USA-detail-title]");d&&(d.textContent=o);const p=n.querySelector("[data-USA-detail-req]");if(p){const e=String(c).replace(/^JOB-?/i,"").trim()||c;p.textContent=e?`Req #${e}`:""}const b=n.querySelector("[data-USA-detail-location]");if(b){const e=[l,i].filter(Boolean);b.textContent=e.join(" · "),b.hidden=!e.length}const A=n.querySelector("[data-USA-detail-posted]");if(A){const e=(e=>{if(!e)return"";const t=new Date(e);return Number.isNaN(t.getTime())?"":t.toLocaleDateString("en-US",{weekday:"long",year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"2-digit"})})(L(a));A.textContent=e?`Posted ${e}`:"",A.hidden=!e}const w=[["Position Title",o],["Location",i],["Position Type",s],["Experience",f(a)],["Company",l]].filter((([,e])=>e)),v=w.map((([e,t])=>`<li><strong>${r(e)}:</strong> ${r(t)}</li>`)).join(""),_=n.querySelector("[data-USA-detail-facts]");_&&(_.innerHTML=v);const j=n.querySelector("[data-USA-detail-details]");if(j){const e=[["Job ID",c],...w,["Salary",S(a)],["Status",U(a)]].filter((([,e])=>e));j.innerHTML=e.map((([e,t])=>`<li><strong>${r(e)}:</strong> ${r(t)}</li>`)).join("")}const E=n.querySelector("[data-USA-detail-description]");E&&(E.innerHTML=R(a)),n.hidden=!1,document.body.classList.add("careers-USA-detail-open");const C=n.querySelector(".careers-USA-detail__page");C&&(C.scrollTop=0)},$=5242880,D=e=>new Promise(((t,a)=>{const r=new FileReader;r.onload=()=>{const e=String(r.result||""),a=e.indexOf(",");t(a>=0?e.slice(a+1):e)},r.onerror=()=>
2a(new Error("Could not read resume file.")),r.readAsDataURL(e)})),M=()=>{let e=document.getElementById("careers-USA-apply-modal");if(e)return e;e=document.createElement("div"),e.id="careers-USA-apply-modal",e.className="careers-USA-apply",e.hidden=!0,e.innerHTML='\n <div class="careers-USA-apply__page" role="dialog" aria-modal="true" aria-labelledby="careers-USA-apply-title">\n <header class="careers-USA-apply__header">\n <button type="button" class="careers-USA-apply__back" data-USA-close>\n <img src="/images/arrow-right-bold.svg" alt=""> Back to role\n </button>\n <button type="button" class="careers-USA-apply__close" data-USA-close aria-label="Close">×</button>\n </header>\n <div class="careers-USA-apply__body">\n <div class="careers-USA-apply__thanks" data-USA-thanks hidden>\n <p class="careers-USA-apply__thanks-eyebrow">Application received</p>\n <h2 class="careers-USA-apply__thanks-title">Thank you for applying</h2>\n <p class="careers-USA-apply__thanks-copy" data-USA-thanks-copy>\n Your application has been submitted successfully. Weâre taking you back now.\n </p>\n <p class="careers-USA-apply__thanks-id" data-USA-thanks-id hidden></p>\n </div>\n <div class="careers-USA-apply__form-wrap" data-USA-form-wrap>\n <h1 id="careers-USA-apply-title" class="careers-USA-apply__title">Apply for <span data-USA-job-label></span></h1>\n <p class="careers-USA-apply__intro">Share a few details and weâll get back to you.</p>\n <form class="careers-USA-apply__form" novalidate>\n <input type="hidden" name="jobId" />\n <input type="hidden" name="jobTitle" />\n <div class="careers-USA-apply__grid">\n <label class="careers-USA-apply__field"><span>First name *</span><input type="text" name="firstName" required autocomplete="given-name" maxlength="80" /></label>\n <label class="careers-USA-apply__field"><span>Last name *</span><input type="text" name="lastName" required autocomplete="family-name" maxlength="80" /></label>\n <label class="careers-USA-apply__field"><span>Preferred first name</span><input type="text" name="preferredFirstName" autocomplete="nickname" maxlength="80" /></label>\n <label class="careers-USA-apply__field"><span>Email *</span><input type="email" name="email" required autocomplete="email" maxlength="200" /></label>\n <label class="careers-USA-apply__field"><span>Phone *</span><input type="tel" name="phone" required autocomplete="tel" maxlength="40" /></label>\n <label class="careers-USA-apply__field"><span>Country *</span><input type="text" name="country" required autocomplete="country-name" maxlength="80" /></label>\n <label class="careers-USA-apply__field"><span>Location *</span><input type="text" name="location" required autocomplete="address-level2" placeholder="e.g. New York" maxlength="120" /></label>\n <div class="careers-USA-apply__field">\n <span>Resume (PDF, max 5 MB) *</span>\n <div class="careers-USA-apply__upload">\n <input type="file" name="resumeFile" accept="application/pdf,.pdf" required hidden data-USA-resume-input />\n <button type="button" class="careers-USA-apply__upload-btn" data-USA-resume-pick>Upload PDF</button>\n <span class="careers-USA-apply__upload-name" data-USA-resume-name>No file chosen</span>\n </div>\n </div>\n <label class="careers-USA-apply__field"><span>LinkedIn</span><input type="url" name="linkedin" placeholder="https://linkedin.com/in/â¦" maxlength="300" /></label>\n <label class="careers-USA-apply__field"><span>Portfolio</span><input type="url" name="portfolio" placeholder="https://â¦" maxlength="300" /></label>\n <label class="careers-USA-apply__field"><span>Current company</span><input type="text" name="currentCompany" maxlength="120" /></label>
2\n <label class="careers-USA-apply__field"><span>Experience</span><input type="text" name="experience" placeholder="e.g. 5 years" maxlength="80" /></label>\n <label class="careers-USA-apply__field"><span>Do you have US work authorization? *</span>\n <select name="usWorkAuthorization" required>\n <option value="">Select</option>\n <option value="Yes">Yes</option>\n <option value="No">No</option>\n </select>\n </label>\n <label class="careers-USA-apply__field"><span>Will you require US sponsorship? *</span>\n <select name="usSponsorshipRequired" required>\n <option value="">Select</option>\n <option value="Yes">Yes</option>\n <option value="No">No</option>\n </select>\n </label>\n <label class="careers-USA-apply__field"><span>Are you at least 18 years old? *</span>\n <select name="atLeast18" required>\n <option value="">Select</option>\n <option value="Yes">Yes</option>\n <option value="No">No</option>\n </select>\n </label>\n <label class="careers-USA-apply__field careers-USA-apply__field--full"><span>Cover letter</span><textarea name="coverLetter" rows="6" maxlength="5000"></textarea></label>\n </div>\n <div class="careers-USA-apply__recaptcha" data-USA-recaptcha></div>\n <p class="careers-USA-apply__status" data-USA-status hidden></p>\n <div class="careers-USA-apply__progress" data-USA-progress hidden>\n <div class="careers-USA-apply__progress-bar" data-USA-progress-bar></div>\n </div>\n <div class="careers-USA-apply__actions">\n <button type="button" class="careers-USA-apply__cancel" data-USA-close>Cancel</button>\n <button type="submit" class="careers-USA-apply__submit">Submit application</button>\n </div>\n </form>\n </div>\n </div>\n </div>\n ',document.body.appendChild(e);const t=e.querySelector("form"),a=e.querySelector("[data-USA-status]"),r=e.querySelector(".careers-USA-apply__submit"),n=e.querySelectorAll("[data-USA-close]"),s=e.querySelector("[data-USA-resume-input]"),l=e.querySelector("[data-USA-resume-name]"),c=e.querySelector("[data-USA-resume-pick]"),d=e.querySelector("[data-USA-progress]"),p=e.querySelector("[data-USA-progress-bar]"),u=e.querySelector("[data-USA-recaptcha]"),m=e.querySelector("[data-USA-thanks]"),h=e.querySelector("[data-USA-thanks-copy]"),g=e.querySelector("[data-USA-thanks-id]"),y=e.querySelector("[data-USA-form-wrap]");let f=null,S=null,b=null,A=0,w=!1,v=null,_=null,U=null;const L=()=>
2{if(null!==_&&window.grecaptcha&&"function"==typeof window.grecaptcha.reset)try{window.grecaptcha.reset(_)}catch(e){}},j=(e,t)=>{a&&(a.hidden=!t,a.className="careers-USA-apply__status"+("success"===e?" is-success":"error"===e?" is-error":""),a.textContent=t||"")},k=(e,t)=>{if(d&&p){if(!t)return d.hidden=!0,void(p.style.width="0%");d.hidden=!1,p.style.width=`${Math.max(0,Math.min(100,e))}%`}},E=()=>{v&&(window.clearInterval(v),v=null)},C=e=>{w=e,r.disabled=e,c&&(c.disabled=e),n.forEach((t=>{t.disabled=e})),r.textContent=e?"Submittingâ¦":"Submit application"},T=()=>{A+=1,S=null,b=null,s&&(s.value=""),l&&(l.textContent="No file chosen",l.classList.remove("is-selected")),E(),k(0,!1)},x=()=>{f&&(window.clearTimeout(f),f=null),m&&(m.hidden=!0),y&&(y.hidden=!1),g&&(g.hidden=!0,g.textContent="")},q=()=>{w||(x(),e.hidden=!0,document.body.classList.remove("careers-USA-apply-open"))};return n.forEach((e=>{e.addEventListener("click",q)})),document.addEventListener("keydown",(t=>{"Escape"!==t.key||e.hidden||q()})),c&&s&&c.addEventListener("click",(()=>{w||s.click()})),s&&s.addEventListener("change",(()=>{const e=s.files&&s.files[0];if(A+=1,S=null,b=null,!e)return void T();if("application/pdf"!==e.type&&!/\.pdf$/i.test(e.name||""))return T(),void j("error","Please upload a PDF resume.");if(e.size>$)return T(),void j("error","Resume must be 5 MB or smaller.");j("",""),l&&(l.textContent=`${e.name} (preparingâ¦)`,l.classList.add("is-selected"));const t=A;b=D(e).then((a=>t!==A?null:(S={file:e,resumeBase64:a,resumeFileName:e.name,resumeMimeType:e.type||"application/pdf"},l&&(l.textContent=e.name),S))).catch((()=>(t!==A||(S=null,b=null,j("error","Could not read resume file. Please choose it again.")),null)))})),t.addEventListener("submit",(a=>{if(a.preventDefault(),w)return;if(!t.reportValidity())return;const r=s&&s.files&&s.files[0];if(!r)return void j("error","Please upload a PDF resume.");if(r.size>$)return void j("error","Resume must be 5 MB or smaller.");const n=String(t.firstName.value||"").trim(),i=String(t.lastName.value||"").trim(),l=String(t.email.value||"").trim(),c=String(t.phone.value||"").trim(),d=String(t.location.value||"").trim(),p=String(t.usWorkAuthorization.value||"").trim(),u=String(t.usSponsorshipRequired.value||"").trim(),A=String(t.atLeast18.value||"").trim();if(!(n&&i&&l&&c&&d))return void j("error","Please fill in all required fields.");if(!p||!u||!A)return void j("error","Please answer all required questions.");const U=null!==_&&window.grecaptcha&&"function"==typeof window.grecaptcha.getResponse?String(window.grecaptcha.getResponse(_)||"").trim():"";if(!U)return void j("error","Please complete the captcha.");const x=new FormData(t);j("",""),C(!0),(()=>{E();let e=12;k(e,!0),v=window.setInterval((()=>{e=Math.min(90,e+Math.max(1,.08*(90-e))),k(e,!0)}),400)})(),(e=>S&&S.file===e?Promise.resolve(S):b?b.then((t=>t&&t.file===e?t:D(e).then((t=>({file:e,resumeBase64:t,resumeFileName:e.name,resumeMimeType:e.type||"application/pdf"}))))):D(e).then((t=>({file:e,resumeBase64:t,resumeFileName:e.name,resumeMimeType:e.type||"application/pdf"}))))(r).then((e=>{if(!e||!e.resumeBase64)throw new Error("Could not read resume file. Please choose it again.");return(async e=>{const t=JSON.stringify(e),a=new AbortController,r=window.setTimeout((()=>a.abort()),12e4);try{const e=await fetch(o,{method:"POST",headers:{"Content-Type":"text/plain;charset=utf-8"},body:t,signal:a.signal}),r=String(await e.text()||"").trim();if(!r)throw new Error("Empty response from server. Please try again.");let n;try{n=JSON.parse(r)}catch(e){throw new Error("Unexpected response from server. Please try again.")}if(n&&!1===n.success)throw new Error(n.message||n.error||"Application was not accepted.");return n||{success:!0}}catch(e){if(e&&"AbortError"===e.name)throw new Error("Request timed out. Please try a smaller PDF (under 5 MB).");if((e=>{const t=String(e&&e.message||e||"");return/Failed to fetch|NetworkError|Load failed|network/i.test(t)})(e)){if("undefined"!=typeof navigator&&!1===navigator.onLine)throw new Error("You appear to be offline. Please reconnect and try again.");try{const e=new AbortController,t=window.setTimeout((()=>e.abort()),15e3),a=await fetch(o,{method:"GET",signal:e.signal});if(window.clearTimeout(t),a.ok)return{success:!0,recoveredFromCors:!0}}catch(e){}throw new Error("Could not submit application. Please try again in a moment.")}throw e instanceof Error?e:new Error(String(e||"Could not submit application."))}finally{window.clearTimeout(r)}})({jobId:String(x.get("jobId")||"").trim(),positionTitle:String(x.get("jobTitle")||"").trim(),jobTitle:String(x.get("jobTitle")||"").trim(),firstName:n,lastName:i,preferredFirstName:String(x.get("preferredFirstName")||"").trim(),country:String(x.get("country")||"").trim(),location:d,email:l,phone:c,linkedin:String(x.get("linkedin")||"").trim(),portfolio:String(x.get("portfolio")||"").trim(),coverLetter:String(x.get("coverLetter")||"").trim(),currentCompany:String(x.get("currentCompany")||"").trim(),experience:String(x.get("experience")||"").trim(),usWorkAuthorization:p,usSponsorshipRequired:u,atLeast18:A,resumeFileName:e.resumeFileName,resumeMimeType:e.resumeMimeType,resumeBase64:e.resumeBase64,recaptchaToken:U})})).then((a=>{E(),k(100,!0);const r=a&&a.applicationId;
2t.reset(),T(),L(),j("",""),C(!1),(t=>{y&&(y.hidden=!0),m&&(m.hidden=!1),h&&(h.textContent="Your application has been submitted successfully. Weâre taking you back now."),g&&(t?(g.hidden=!1,g.textContent=`Your application ID is ${t}.`):(g.hidden=!0,g.textContent=""));const a=e.querySelector(".careers-USA-apply__page");a&&(a.scrollTop=0)})(r),f&&window.clearTimeout(f),f=window.setTimeout((()=>{f=null,q(),I({syncUrl:!1});const e=new URL("/careers/",window.location.origin);e.hash="jobPosoting",window.history.replaceState({careersUSAJobId:null},"",e.toString());const t=document.getElementById("jobPosoting");t&&t.scrollIntoView({behavior:"smooth",block:"start"})}),r?5200:4e3)})).catch((e=>{E(),k(0,!1),j("error",e&&e.message||"Could not submit application. Please try again."),L(),C(!1)}))})),e._resetResumeUi=T,e._resetRecaptcha=L,e._mountRecaptcha=()=>i?null!==_?(L(),Promise.resolve(_)):U||(U=("undefined"==typeof window?Promise.reject(new Error("reCAPTCHA is unavailable.")):(window.__careersRecaptchaApiPromise||(window.__careersRecaptchaApiPromise=new Promise(((e,t)=>{const a=()=>{window.grecaptcha&&"function"==typeof window.grecaptcha.render?window.grecaptcha.ready((()=>e(window.grecaptcha))):t(new Error("reCAPTCHA failed to load. Please refresh and try again."))};if(window.grecaptcha&&"function"==typeof window.grecaptcha.render)return void a();const r=document.querySelector("script[data-careers-recaptcha]");if(r){const e=window.__onCareersRecaptchaLoad;return window.__onCareersRecaptchaLoad=()=>{"function"==typeof e&&e(),a()},void r.addEventListener("error",(()=>{t(new Error("Could not load reCAPTCHA. Please refresh and try again."))}))}window.__onCareersRecaptchaLoad=a;const n=document.createElement("script");n.src="https://www.google.com/recaptcha/api.js?onload=__onCareersRecaptchaLoad&render=explicit",n.async=!0,n.defer=!0,n.dataset.careersRecaptcha="1",n.onerror=()=>{t(new Error("Could not load reCAPTCHA. Please refresh and try again."))},document.head.appendChild(n)}))),window.__careersRecaptchaApiPromise)).then((e=>{if(!u)throw new Error("reCAPTCHA container missing.");return null!==_||(_=e.render(u,{sitekey:i,theme:"light"})),_})).catch((e=>{throw U=null,e})),U):Promise.reject(new Error("reCAPTCHA is not configured. Please add the site key.")),e._hideThanks=x,e._isSubmitting=()=>w,e},F=(e,t)=>{const a=M();if("function"==typeof a._isSubmitting&&a._isSubmitting())return;const r=a.querySelector("form"),n=a.querySelector("[data-USA-status]"),o=a.querySelector("[data-USA-job-label]"),i=a.querySelector("[data-USA-progress]"),s=a.querySelector("[data-USA-progress-bar]");r.reset(),"function"==typeof a._hideThanks&&a._hideThanks(),"function"==typeof a._resetResumeUi&&a._resetResumeUi(),r.jobId.value=e||"",r.jobTitle.value=t||"",o&&(o.textContent=t||"this role"),n&&(n.hidden=!0,n.textContent="",n.className="careers-USA-apply__status"),i&&(i.hidden=!0),s&&(s.style.width="0%"),a.hidden=!1,document.body.classList.add("careers-USA-apply-open");const l=a.querySelector(".careers-USA-apply__page");l&&(l.scrollTop=0);const c=r.querySelector('input[name="firstName"]');c&&c.focus(),"function"==typeof a._mountRecaptcha?a._mountRecaptcha().catch((e=>{n&&(n.hidden=!1,n.className="careers-USA-apply__status is-error",n.textContent=e&&e.message||"Could not load captcha. Please refresh and try again.")})):"function"==typeof a._resetRecaptcha&&a._resetRecaptcha()};window.addEventListener("popstate",(()=>{const e=C();e&&k[e]?B(e,{syncUrl:!1}):I({syncUrl:!1})})),C()&&((()=>{let e=document.getElementById("careers-USA-job-loader");return e||(e=document.createElement("div"),e.id="careers-USA-job-loader",e.className="careers-USA-job-loader",e.hidden=!0,e.setAttribute("role","status"),e.setAttribute("aria-live","polite"),e.innerHTML='\n <div class="careers-USA-job-loader__inner">\n <div class="careers-USA-job-loader__spinner" aria-hidden="true"></div>\n <p class="careers-USA-job-loader__text">Loading roleâ¦</p>\n </div>\n ',document.body.appendChild(e),e)})().hidden=!1,document.body.classList.add("careers-USA-job-loading")),e&&n({slot:e,url:"https://roundglass.zohorecruit.com/recruit/v2/public/Job_Openings?pagename=Careers&source=CareerSite",prepare:e=>{const t=(e=>e&&"success"===e.code&&Array.isArray(e.data)?e.data:[])(e).filter(a).filter((e=>e.Publish));return t.sort(((e,t)=>p(t)-p(e))),t},render:t=>{if(!e)return;if(!t.length)return void(e.innerHTML='<p class="careers-job-slot__empty">No current openings in India.</p>');const a=d(t,(e=>{const t=e.Posting_Title||e.Job_Opening_Name||"Role",a=e.$url||e.url||"#",r=[e.City||"",e.State||""].filter(
2Boolean).join(", ");return{title:t,url:a,description:"string"==typeof e.Job_Description?e.Job_Description:"",locationLine:r}}));e.innerHTML=a,delete e.dataset.jobAccordionInit,c(e),l(e,"c")},errorMessage:"India roles could not be loaded."}),t&&n({slot:t,url:o,prepare:e=>{const t=(e=>{if(Array.isArray(e))return e;if(e&&Array.isArray(e.Jobs))return e.Jobs;if(e&&Array.isArray(e.jobs))return e.jobs;if(e&&!1===e.success){const t=new Error(e.message||"Roles could not be loaded.");throw t.fromApi=!0,t}return[]})(e).filter(j);return t.sort(((e,t)=>{const a=new Date(L(e)||0).getTime(),r=new Date(L(t)||0).getTime();return(Number.isNaN(r)?0:r)-(Number.isNaN(a)?0:a)})),t},render:e=>{if(!t)return;if(!e.length)return k={},void(t.innerHTML='<p class="careers-job-slot__empty">No current openings.</p>');k={},e.forEach((e=>{const t=m(e);t&&(k[t]=e)}));const a=d(e,(e=>{const t=[g(e),y(e),f(e)].filter(Boolean).join(" · "),a=m(e);return{title:h(e),jobId:a,jobHref:a?T(a):"#",useApplyForm:!0,description:w(e)||v(e),locationLine:t}}));var r;t.innerHTML=a,delete t.dataset.jobAccordionInit,delete t.dataset.USADetailBound,c(t),l(t,"a"),(r=t)&&"1"!==r.dataset.USADetailBound&&(r.dataset.USADetailBound="1",r.addEventListener("click",(e=>{const t=e.target.closest(".careers-job-detail-btn");t&&r.contains(t)&&(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||1===e.button||(e.preventDefault(),B(t.getAttribute("data-job-id")||"")))})));const n=C();n&&k[n]?B(n,{syncUrl:!1}):n&&x("",{replace:!0})},errorMessage:"Roles could not be loaded.",onSettled:()=>{const e=document.getElementById("careers-USA-job-loader");e&&(e.hidden=!0),document.body.classList.remove("careers-USA-job-loading")}})}))}
2},e=>{e(e.s="./js/job-new.js")}]);
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.