@redacto.io/consent-sdk-js 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/redacto.global.js +2 -2
- package/dist/redacto.global.js.map +1 -1
- package/dist/redacto.js +306 -118
- package/dist/redacto.mjs +306 -118
- package/package.json +1 -1
package/dist/redacto.global.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var RedactoConsent=(()=>{var Ee=Object.defineProperty;var ht=Object.getOwnPropertyDescriptor;var mt=Object.getOwnPropertyNames;var bt=Object.prototype.hasOwnProperty;var yt=(i,e)=>{for(var t in e)Ee(i,t,{get:e[t],enumerable:!0})},xt=(i,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of mt(e))!bt.call(i,a)&&a!==t&&Ee(i,a,{get:()=>e[a],enumerable:!(o=ht(e,a))||o.enumerable});return i};var vt=i=>xt(Ee({},"__esModule",{value:!0}),i);var Pt={};yt(Pt,{default:()=>Tt,destroy:()=>Re,digilockerCallback:()=>pt,init:()=>dt,inline:()=>ct});var ie=class{constructor(e){this.listeners=new Set;this.state={...e}}getState(){return this.state}setState(e){let t=this.state;this.state={...this.state,...e},this.listeners.forEach(o=>o(this.state,t))}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}destroy(){this.listeners.clear()}};function r(i,e,...t){let o=document.createElement(i);return e&&Ct(o,e),Ve(o,t),o}function P(i,e,...t){let o=document.createElementNS("http://www.w3.org/2000/svg",i);if(e)for(let[a,n]of Object.entries(e))n==null||n===!1||(a==="style"&&typeof n=="object"?fe(o,n):o.setAttribute(a,String(n)));return Ve(o,t),o}function Ct(i,e){for(let[t,o]of Object.entries(e))if(!(o==null||o===!1))if(t==="style"&&typeof o=="object")fe(i,o);else if(t==="className")i.className=o;else if(t==="dataset"&&typeof o=="object")Object.assign(i.dataset,o);else if(t.startsWith("on")&&typeof o=="function"){let a=t.slice(2).toLowerCase();i.addEventListener(a,o)}else t==="checked"||t==="disabled"||t==="readOnly"?i[t]=o:i.setAttribute(t,String(o))}function fe(i,e){for(let[t,o]of Object.entries(e))o!=null&&(i.style[t]=typeof o=="number"?`${o}px`:o)}function Ve(i,e){for(let t of e)t==null||t===!1||(typeof t=="string"?i.appendChild(document.createTextNode(t)):i.appendChild(t))}function X(i){for(;i.firstChild;)i.removeChild(i.firstChild)}function he(i){let e=window.matchMedia(i),t=e.matches,o=new Set,a=n=>{t=n.matches,o.forEach(s=>s(t))};return e.addEventListener("change",a),{get matches(){return t},subscribe(n){o.add(n)},destroy(){e.removeEventListener("change",a),o.clear()}}}var Z=class extends Error{};Z.prototype.name="InvalidTokenError";function Et(i){return decodeURIComponent(atob(i).replace(/(.)/g,(e,t)=>{let o=t.charCodeAt(0).toString(16).toUpperCase();return o.length<2&&(o="0"+o),"%"+o}))}function St(i){let e=i.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw new Error("base64 string is not of the correct length")}try{return Et(e)}catch{return atob(e)}}function $e(i,e){if(typeof i!="string")throw new Z("Invalid token specified: must be a string");e||(e={});let t=e.header===!0?0:1,o=i.split(".")[t];if(typeof o!="string")throw new Z(`Invalid token specified: missing part #${t+1}`);let a;try{a=St(o)}catch(n){throw new Z(`Invalid token specified: invalid base64 for part #${t+1} (${n.message})`)}try{return JSON.parse(a)}catch(n){throw new Z(`Invalid token specified: invalid json for part #${t+1} (${n.message})`)}}function re(i){try{return $e(i)}catch(e){return console.warn("Failed to decode JWT token:",e),null}}var me=new Map,wt=300*1e3;function Ue(i){let e=me.get(i);return e&&Date.now()-e.timestamp<e.ttl?e.data:(e&&me.delete(i),null)}function ze(i,e,t=wt){me.set(i,{data:e,timestamp:Date.now(),ttl:t})}function Ge(){me.clear()}var se="https://api.redacto.io/consent",Ne="https://api.redacto.tech/consent",Oe=async({noticeId:i,accessToken:e,baseUrl:t,language:o="en",specific_uuid:a,validate_against:n="all",include_fully_consented_data:s=!1,signal:p})=>{if(!i||!e||!n)throw new Error("noticeId and accessToken are required");let d=re(e);if(!d)throw new Error("Invalid access token");let{organisation_uuid:l,workspace_uuid:c}=d;if(!l||!c)throw new Error("Invalid token: missing organization or workspace UUID");let u=t||se,v=`${e}-${i}-${n}-${o}-${a||""}-${s}`;if(n==="all"&&!a){let x=Ue(v);if(x)return x}let h=new URL(`${u}/public/organisations/${l}/workspaces/${c}/notices/${i}`);a&&h.searchParams.append("specific_uuid",a),h.searchParams.append("validate_against",n),s&&h.searchParams.append("include_fully_consented_data","true");let y=await fetch(h.toString(),{method:"GET",headers:{Authorization:`Bearer ${e}`,"Accept-Language":o},signal:p});if(!y.ok){let x=`Failed to fetch consent content: ${y.status} ${y.statusText}`;y.status===401?x="Unauthorized: Invalid or expired token":y.status===403?x="Forbidden: Access denied":y.status===404?x="Notice not found":y.status===409?x="User has already provided consent":y.status>=500&&(x="Server error: Please try again later");let C=new Error(x);throw C.status=y.status,C}let f=await y.json();return n==="all"&&!a&&ze(v,f),f},qe=async({org_uuid:i,workspace_uuid:e,notice_uuid:t,baseUrl:o,language:a="en",specific_uuid:n})=>{let s=o||Ne,p=new URL(`${s}/public/organisations/${i}/workspaces/${e}/notices/get-notice/${t}`);n&&p.searchParams.append("specific_uuid",n);let d=await fetch(p.toString(),{method:"GET",headers:{"Content-Type":"application/json"}});if(d.status===401){let l=new Error("Unauthorized");throw l.status=401,l}if(d.status===409){let l=new Error("User has already provided consent");throw l.status=409,l}if(!d.ok)throw new Error(`Failed to fetch consent content: ${d.statusText}`);return await d.json()},je=async({accessToken:i,baseUrl:e,noticeUuid:t,purposes:o,declined:a,meta_data:n,guardianVerificationReference:s,selfDeclaredAdult:p,signal:d})=>{if(!t||!i||!Array.isArray(o))throw new Error("noticeUuid, accessToken, and purposes array are required");let l=re(i);if(!l)throw new Error("Invalid access token");let{organisation_uuid:c,workspace_uuid:u}=l;if(!c||!u)throw new Error("Invalid token: missing organization or workspace UUID");let v=e||se,h=o.map(x=>{if(!x.uuid)throw new Error("Invalid purpose data: missing uuid");let C=(x.data_elements||[]).filter(T=>T.enabled).map(T=>({uuid:T.uuid,selected:T.required?!0:!!T.selected}));return{purpose_uuid:x.uuid,selected:!!x.selected,data_elements:C.length>0?C:void 0}}),y={notice_uuid:t,purposes:h,select_all_mandatory:!1,source:"WEB",declined:!!a,meta_data:n?{specific_uuid:n.specific_uuid,minor_age:n.minor_age}:void 0,guardian_verification_reference:s,self_declared_adult:p},f=await fetch(`${v}/public/organisations/${c}/workspaces/${u}/submit-consent`,{method:"POST",headers:{Authorization:`Bearer ${i}`,"Content-Type":"application/json"},body:JSON.stringify(y),signal:d});if(!f.ok){let x=`Failed to submit consent: ${f.status} ${f.statusText}`;if(f.status===400)try{x=(await f.json()).message||"Invalid request data"}catch{x="Invalid request data"}else f.status===401?x="Unauthorized: Invalid or expired token":f.status===403?x="Forbidden: Access denied":f.status===404?x="Notice not found":f.status>=500&&(x="Server error: Please try again later");let C=new Error(x);throw C.status=f.status,C}Ge()},We=async({org_uuid:i,workspace_uuid:e,accessToken:t,baseUrl:o,noticeUuid:a,purposes:n,declined:s,meta_data:p})=>{var u,v;let d=o||Ne,l={notice_uuid:a,purposes:n.map(h=>{if(!h.uuid)throw new Error("Invalid purpose data: missing uuid");let y=h.data_elements.filter(f=>f.enabled).map(f=>({uuid:f.uuid,selected:f.required?!0:!!f.selected}));return{purpose_uuid:h.uuid,selected:!!h.selected,data_elements:y.length>0?y:void 0}}),select_all_mandatory:!1,source:"WEB",declined:s,meta_data:p},c=await fetch(`${d}/public/organisations/${i}/workspaces/${e}/submit-consent`,{method:"POST",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"},body:JSON.stringify(l)});if(!c.ok){let h;try{h=await c.json()}catch{h={message:c.statusText}}if(c.status===409){let f=new Error(((u=h.detail)==null?void 0:u.message)||h.message||"User has already provided consent");throw f.status=409,f.code=h.code||409,f}let y=new Error(((v=h.detail)==null?void 0:v.message)||h.message||`Failed to submit consent event: ${c.statusText}`);throw y.status=c.status,y.code=h.code,y}},Ke=async({accessToken:i,baseUrl:e,noticeUuid:t,language:o,signal:a})=>{if(!i||!t||!o)throw new Error("accessToken, noticeUuid, and language are required");let n=re(i);if(!n)throw new Error("Invalid access token");let{organisation_uuid:s,workspace_uuid:p}=n;if(!s||!p)throw new Error("Invalid token: missing organization or workspace UUID");let l=`${e||se}/public/organisations/${s}/workspaces/${p}/notices/${t}/audio/${o}`,c=await fetch(l,{method:"GET",headers:{Authorization:`Bearer ${i}`,Accept:"application/json"},signal:a});if(!c.ok){let u=`Failed to fetch TTS audio URLs: ${c.status} ${c.statusText}`;c.status===401?u="Unauthorized: Invalid or expired token":c.status===403?u="Forbidden: Access denied":c.status===404?u="Notice or audio not found":c.status>=500&&(u="Server error: Please try again later");let v=new Error(u);throw v.status=c.status,v}return await c.json()},Qe=async({accessToken:i,baseUrl:e,guardianName:t,guardianContact:o,guardianRelationship:a,frontendCallbackUrl:n,metadata:s,signal:p})=>{var x;if(!i)throw new Error("accessToken is required");if(!(t!=null&&t.trim()))throw new Error("Guardian name is required");if(!(o!=null&&o.trim()))throw new Error("Guardian contact is required");if(!(a!=null&&a.trim()))throw new Error("Guardian relationship is required");let d=re(i);if(!d)throw new Error("Invalid access token");let{organisation_uuid:l,workspace_uuid:c}=d;if(!l||!c)throw new Error("Invalid token: missing organization or workspace UUID");let u=e||se,v={guardian_name:t.trim(),guardian_contact:o.trim(),guardian_relationship:a.trim()};n&&(v.frontend_callback_url=n),s&&(v.metadata=s);let h=await fetch(`${u}/public/organisations/${l}/workspaces/${c}/guardian/initiate-verification`,{method:"POST",headers:{Authorization:`Bearer ${i}`,"Content-Type":"application/json"},body:JSON.stringify(v),signal:p});if(!h.ok){let C=`Failed to initiate verification: ${h.status} ${h.statusText}`;if(h.status===400)try{C=(await h.json()).message||"Invalid request data"}catch{C="Invalid request data"}else if(h.status===401)C="Unauthorized: Invalid or expired token";else if(h.status===404)C="Organization or workspace not found";else if(h.status===422)try{C=(await h.json()).message||"Validation error: Please check your input"}catch{C="Validation error: Please check your input"}else h.status>=500&&(C="Server error: Please try again later");let T=new Error(C);throw T.status=h.status,T}let y=await h.json(),f=y.detail||y;if(f.already_verified)return{success:!0,guardian_info_uuid:f.guardian_info_uuid,already_verified:!0,verification_reference:f.verification_reference};if(!f.session_token||!f.digilocker_redirect_url)throw new Error("Invalid response: missing session_token or digilocker_redirect_url");return{success:(x=f.success)!=null?x:!0,guardian_info_uuid:f.guardian_info_uuid,already_verified:!1,session_token:f.session_token,digilocker_redirect_url:f.digilocker_redirect_url,expires_at:f.expires_at}},be=async({accessToken:i,baseUrl:e,sessionToken:t,signal:o})=>{var u,v,h,y,f,x,C,T;if(!i||!t)throw new Error("accessToken and sessionToken are required");let a=re(i);if(!a)throw new Error("Invalid access token");let{organisation_uuid:n,workspace_uuid:s}=a;if(!n||!s)throw new Error("Invalid token: missing organization or workspace UUID");let d=await fetch(`${e||se}/public/organisations/${n}/workspaces/${s}/guardian/verify-status`,{method:"POST",headers:{Authorization:`Bearer ${i}`,"Content-Type":"application/json"},body:JSON.stringify({session_token:t}),signal:o});if(!d.ok){let m=`Failed to check verification status: ${d.status} ${d.statusText}`;if(d.status===400)try{let A=await d.json();m=A.message||((u=A.detail)==null?void 0:u.message)||"Invalid session token"}catch{m="Invalid session token"}else d.status===401?m="Unauthorized: Invalid or expired token":d.status===404?m="Verification session not found or expired. Please restart the verification process.":d.status===410?m="Verification session has expired. Please restart the verification process.":d.status>=500&&(m="Server error: Please try again later");let M=new Error(m);throw M.status=d.status,M}let l=await d.json(),c=l.detail||l;return{status:(v=c.status)!=null?v:"in_progress",guardian_info_uuid:(h=c.guardian_info_uuid)!=null?h:null,verification_reference:(y=c.verification_reference)!=null?y:null,guardian_details:(f=c.guardian_details)!=null?f:null,error:(x=c.error)!=null?x:null,error_code:(C=c.error_code)!=null?C:null,can_retry:(T=c.can_retry)!=null?T:!0}};var Se=!1,ae=()=>{if(Se||typeof document=="undefined")return;let i="redacto-consent-checkbox-styles";if(document.getElementById(i)){Se=!0;return}let e=document.createElement("style");e.id=i,e.textContent=`
|
|
1
|
+
"use strict";var RedactoConsent=(()=>{var Ee=Object.defineProperty;var mt=Object.getOwnPropertyDescriptor;var bt=Object.getOwnPropertyNames;var yt=Object.prototype.hasOwnProperty;var xt=(n,e)=>{for(var t in e)Ee(n,t,{get:e[t],enumerable:!0})},vt=(n,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of bt(e))!yt.call(n,r)&&r!==t&&Ee(n,r,{get:()=>e[r],enumerable:!(o=mt(e,r))||o.enumerable});return n};var Ct=n=>vt(Ee({},"__esModule",{value:!0}),n);var At={};xt(At,{default:()=>Mt,destroy:()=>Ie,digilockerCallback:()=>ut,init:()=>ct,inline:()=>pt});var ie=class{constructor(e){this.listeners=new Set;this.state={...e}}getState(){return this.state}setState(e){let t=this.state;this.state={...this.state,...e},this.listeners.forEach(o=>o(this.state,t))}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}destroy(){this.listeners.clear()}};function a(n,e,...t){let o=document.createElement(n);return e&&Et(o,e),$e(o,t),o}function R(n,e,...t){let o=document.createElementNS("http://www.w3.org/2000/svg",n);if(e)for(let[r,i]of Object.entries(e))i==null||i===!1||(r==="style"&&typeof i=="object"?he(o,i):o.setAttribute(r,String(i)));return $e(o,t),o}function Et(n,e){for(let[t,o]of Object.entries(e))if(!(o==null||o===!1))if(t==="style"&&typeof o=="object")he(n,o);else if(t==="className")n.className=o;else if(t==="dataset"&&typeof o=="object")Object.assign(n.dataset,o);else if(t.startsWith("on")&&typeof o=="function"){let r=t.slice(2).toLowerCase();n.addEventListener(r,o)}else t==="checked"||t==="disabled"||t==="readOnly"?n[t]=o:n.setAttribute(t,String(o))}var St=new Set(["animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","fontWeight","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","lineHeight","opacity","order","orphans","scale","tabSize","widows","zIndex","zoom"]);function he(n,e){for(let[t,o]of Object.entries(e)){if(o==null)continue;let r=typeof o=="number"&&!St.has(t)?`${o}px`:String(o);n.style[t]=r}}function $e(n,e){for(let t of e)t==null||t===!1||(typeof t=="string"?n.appendChild(document.createTextNode(t)):n.appendChild(t))}function X(n){for(;n.firstChild;)n.removeChild(n.firstChild)}function fe(n){let e=window.matchMedia(n),t=e.matches,o=new Set,r=i=>{t=i.matches,o.forEach(s=>s(t))};return e.addEventListener("change",r),{get matches(){return t},subscribe(i){o.add(i)},destroy(){e.removeEventListener("change",r),o.clear()}}}var Z=class extends Error{};Z.prototype.name="InvalidTokenError";function wt(n){return decodeURIComponent(atob(n).replace(/(.)/g,(e,t)=>{let o=t.charCodeAt(0).toString(16).toUpperCase();return o.length<2&&(o="0"+o),"%"+o}))}function kt(n){let e=n.replace(/-/g,"+").replace(/_/g,"/");switch(e.length%4){case 0:break;case 2:e+="==";break;case 3:e+="=";break;default:throw new Error("base64 string is not of the correct length")}try{return wt(e)}catch{return atob(e)}}function Ue(n,e){if(typeof n!="string")throw new Z("Invalid token specified: must be a string");e||(e={});let t=e.header===!0?0:1,o=n.split(".")[t];if(typeof o!="string")throw new Z(`Invalid token specified: missing part #${t+1}`);let r;try{r=kt(o)}catch(i){throw new Z(`Invalid token specified: invalid base64 for part #${t+1} (${i.message})`)}try{return JSON.parse(r)}catch(i){throw new Z(`Invalid token specified: invalid json for part #${t+1} (${i.message})`)}}function re(n){try{return Ue(n)}catch(e){return console.warn("Failed to decode JWT token:",e),null}}var me=new Map,_t=300*1e3;function ze(n){let e=me.get(n);return e&&Date.now()-e.timestamp<e.ttl?e.data:(e&&me.delete(n),null)}function Ne(n,e,t=_t){me.set(n,{data:e,timestamp:Date.now(),ttl:t})}function Ge(){me.clear()}var se="https://api.redacto.io/consent",Oe="https://api.redacto.tech/consent",qe=async({noticeId:n,accessToken:e,baseUrl:t,language:o="en",specific_uuid:r,validate_against:i="all",include_fully_consented_data:s=!1,signal:p})=>{if(!n||!e||!i)throw new Error("noticeId and accessToken are required");let d=re(e);if(!d)throw new Error("Invalid access token");let{organisation_uuid:l,workspace_uuid:c}=d;if(!l||!c)throw new Error("Invalid token: missing organization or workspace UUID");let u=t||se,x=`${e}-${n}-${i}-${o}-${r||""}-${s}`;if(i==="all"&&!r){let y=ze(x);if(y)return y}let f=new URL(`${u}/public/organisations/${l}/workspaces/${c}/notices/${n}`);r&&f.searchParams.append("specific_uuid",r),f.searchParams.append("validate_against",i),s&&f.searchParams.append("include_fully_consented_data","true");let b=await fetch(f.toString(),{method:"GET",headers:{Authorization:`Bearer ${e}`,"Accept-Language":o},signal:p});if(!b.ok){let y=`Failed to fetch consent content: ${b.status} ${b.statusText}`;b.status===401?y="Unauthorized: Invalid or expired token":b.status===403?y="Forbidden: Access denied":b.status===404?y="Notice not found":b.status===409?y="User has already provided consent":b.status>=500&&(y="Server error: Please try again later");let S=new Error(y);throw S.status=b.status,S}let h=await b.json();return i==="all"&&!r&&Ne(x,h),h},je=async({org_uuid:n,workspace_uuid:e,notice_uuid:t,baseUrl:o,language:r="en",specific_uuid:i})=>{let s=o||Oe,p=new URL(`${s}/public/organisations/${n}/workspaces/${e}/notices/get-notice/${t}`);i&&p.searchParams.append("specific_uuid",i);let d=await fetch(p.toString(),{method:"GET",headers:{"Content-Type":"application/json"}});if(d.status===401){let l=new Error("Unauthorized");throw l.status=401,l}if(d.status===409){let l=new Error("User has already provided consent");throw l.status=409,l}if(!d.ok)throw new Error(`Failed to fetch consent content: ${d.statusText}`);return await d.json()},We=async({accessToken:n,baseUrl:e,noticeUuid:t,purposes:o,declined:r,meta_data:i,guardianVerificationReference:s,selfDeclaredAdult:p,signal:d})=>{if(!t||!n||!Array.isArray(o))throw new Error("noticeUuid, accessToken, and purposes array are required");let l=re(n);if(!l)throw new Error("Invalid access token");let{organisation_uuid:c,workspace_uuid:u}=l;if(!c||!u)throw new Error("Invalid token: missing organization or workspace UUID");let x=e||se,f=o.map(y=>{if(!y.uuid)throw new Error("Invalid purpose data: missing uuid");let S=(y.data_elements||[]).filter(_=>_.enabled).map(_=>({uuid:_.uuid,selected:_.required?!0:!!_.selected}));return{purpose_uuid:y.uuid,selected:!!y.selected,data_elements:S.length>0?S:void 0}}),b={notice_uuid:t,purposes:f,select_all_mandatory:!1,source:"WEB",declined:!!r,meta_data:i?{specific_uuid:i.specific_uuid,minor_age:i.minor_age}:void 0,guardian_verification_reference:s,self_declared_adult:p},h=await fetch(`${x}/public/organisations/${c}/workspaces/${u}/submit-consent`,{method:"POST",headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json"},body:JSON.stringify(b),signal:d});if(!h.ok){let y=`Failed to submit consent: ${h.status} ${h.statusText}`;if(h.status===400)try{y=(await h.json()).message||"Invalid request data"}catch{y="Invalid request data"}else h.status===401?y="Unauthorized: Invalid or expired token":h.status===403?y="Forbidden: Access denied":h.status===404?y="Notice not found":h.status>=500&&(y="Server error: Please try again later");let S=new Error(y);throw S.status=h.status,S}Ge()},Ke=async({org_uuid:n,workspace_uuid:e,accessToken:t,baseUrl:o,noticeUuid:r,purposes:i,declined:s,meta_data:p})=>{var u,x;let d=o||Oe,l={notice_uuid:r,purposes:i.map(f=>{if(!f.uuid)throw new Error("Invalid purpose data: missing uuid");let b=f.data_elements.filter(h=>h.enabled).map(h=>({uuid:h.uuid,selected:h.required?!0:!!h.selected}));return{purpose_uuid:f.uuid,selected:!!f.selected,data_elements:b.length>0?b:void 0}}),select_all_mandatory:!1,source:"WEB",declined:s,meta_data:p},c=await fetch(`${d}/public/organisations/${n}/workspaces/${e}/submit-consent`,{method:"POST",headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"},body:JSON.stringify(l)});if(!c.ok){let f;try{f=await c.json()}catch{f={message:c.statusText}}if(c.status===409){let h=new Error(((u=f.detail)==null?void 0:u.message)||f.message||"User has already provided consent");throw h.status=409,h.code=f.code||409,h}let b=new Error(((x=f.detail)==null?void 0:x.message)||f.message||`Failed to submit consent event: ${c.statusText}`);throw b.status=c.status,b.code=f.code,b}},Qe=async({accessToken:n,baseUrl:e,noticeUuid:t,language:o,signal:r})=>{if(!n||!t||!o)throw new Error("accessToken, noticeUuid, and language are required");let i=re(n);if(!i)throw new Error("Invalid access token");let{organisation_uuid:s,workspace_uuid:p}=i;if(!s||!p)throw new Error("Invalid token: missing organization or workspace UUID");let l=`${e||se}/public/organisations/${s}/workspaces/${p}/notices/${t}/audio/${o}`,c=await fetch(l,{method:"GET",headers:{Authorization:`Bearer ${n}`,Accept:"application/json"},signal:r});if(!c.ok){let u=`Failed to fetch TTS audio URLs: ${c.status} ${c.statusText}`;c.status===401?u="Unauthorized: Invalid or expired token":c.status===403?u="Forbidden: Access denied":c.status===404?u="Notice or audio not found":c.status>=500&&(u="Server error: Please try again later");let x=new Error(u);throw x.status=c.status,x}return await c.json()},Ye=async({accessToken:n,baseUrl:e,guardianName:t,guardianContact:o,guardianRelationship:r,frontendCallbackUrl:i,metadata:s,signal:p})=>{var y;if(!n)throw new Error("accessToken is required");if(!(t!=null&&t.trim()))throw new Error("Guardian name is required");if(!(o!=null&&o.trim()))throw new Error("Guardian contact is required");if(!(r!=null&&r.trim()))throw new Error("Guardian relationship is required");let d=re(n);if(!d)throw new Error("Invalid access token");let{organisation_uuid:l,workspace_uuid:c}=d;if(!l||!c)throw new Error("Invalid token: missing organization or workspace UUID");let u=e||se,x={guardian_name:t.trim(),guardian_contact:o.trim(),guardian_relationship:r.trim()};i&&(x.frontend_callback_url=i),s&&(x.metadata=s);let f=await fetch(`${u}/public/organisations/${l}/workspaces/${c}/guardian/initiate-verification`,{method:"POST",headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json"},body:JSON.stringify(x),signal:p});if(!f.ok){let S=`Failed to initiate verification: ${f.status} ${f.statusText}`;if(f.status===400)try{S=(await f.json()).message||"Invalid request data"}catch{S="Invalid request data"}else if(f.status===401)S="Unauthorized: Invalid or expired token";else if(f.status===404)S="Organization or workspace not found";else if(f.status===422)try{S=(await f.json()).message||"Validation error: Please check your input"}catch{S="Validation error: Please check your input"}else f.status>=500&&(S="Server error: Please try again later");let _=new Error(S);throw _.status=f.status,_}let b=await f.json(),h=b.detail||b;if(h.already_verified)return{success:!0,guardian_info_uuid:h.guardian_info_uuid,already_verified:!0,verification_reference:h.verification_reference};if(!h.session_token||!h.digilocker_redirect_url)throw new Error("Invalid response: missing session_token or digilocker_redirect_url");return{success:(y=h.success)!=null?y:!0,guardian_info_uuid:h.guardian_info_uuid,already_verified:!1,session_token:h.session_token,digilocker_redirect_url:h.digilocker_redirect_url,expires_at:h.expires_at}},be=async({accessToken:n,baseUrl:e,sessionToken:t,signal:o})=>{var u,x,f,b,h,y,S,_;if(!n||!t)throw new Error("accessToken and sessionToken are required");let r=re(n);if(!r)throw new Error("Invalid access token");let{organisation_uuid:i,workspace_uuid:s}=r;if(!i||!s)throw new Error("Invalid token: missing organization or workspace UUID");let d=await fetch(`${e||se}/public/organisations/${i}/workspaces/${s}/guardian/verify-status`,{method:"POST",headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json"},body:JSON.stringify({session_token:t}),signal:o});if(!d.ok){let m=`Failed to check verification status: ${d.status} ${d.statusText}`;if(d.status===400)try{let L=await d.json();m=L.message||((u=L.detail)==null?void 0:u.message)||"Invalid session token"}catch{m="Invalid session token"}else d.status===401?m="Unauthorized: Invalid or expired token":d.status===404?m="Verification session not found or expired. Please restart the verification process.":d.status===410?m="Verification session has expired. Please restart the verification process.":d.status>=500&&(m="Server error: Please try again later");let A=new Error(m);throw A.status=d.status,A}let l=await d.json(),c=l.detail||l;return{status:(x=c.status)!=null?x:"in_progress",guardian_info_uuid:(f=c.guardian_info_uuid)!=null?f:null,verification_reference:(b=c.verification_reference)!=null?b:null,guardian_details:(h=c.guardian_details)!=null?h:null,error:(y=c.error)!=null?y:null,error_code:(S=c.error_code)!=null?S:null,can_retry:(_=c.can_retry)!=null?_:!0}};var Se="redacto-consent-checkbox-styles",Tt=`
|
|
2
2
|
/* Redacto Consent SDK Checkbox Styles */
|
|
3
3
|
.redacto-checkbox-large {
|
|
4
4
|
appearance: none !important;
|
|
@@ -128,6 +128,6 @@
|
|
|
128
128
|
.redacto-dl-retry-btn:hover {
|
|
129
129
|
background-color: #2563eb !important;
|
|
130
130
|
}
|
|
131
|
-
`,document.head.appendChild(e),Se=!0};var g={overlay:{position:"fixed",top:0,left:0,width:"100%",height:"100%",backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:999,animation:"overlayFadeIn 0.2s cubic-bezier(0.16, 1, 0.3, 1)",pointerEvents:"all",margin:0,padding:0,boxSizing:"border-box"},modal:{position:"fixed",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:"700px",borderRadius:"8px",backgroundColor:"#ffffff",boxShadow:"4px 0px 4px 0px #00000040",border:"none",display:"flex",flexDirection:"column",maxHeight:"90vh",zIndex:1e3,margin:0,padding:0,boxSizing:"border-box",textAlign:"left",fontFamily:"inherit"},content:{margin:"22px",display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",minHeight:0,boxSizing:"border-box",textAlign:"left"},topSection:{display:"flex",justifyContent:"space-between",alignItems:"center",paddingBottom:"15px",borderBottom:"none",backgroundColor:"#ffffff",margin:0,boxSizing:"border-box",textAlign:"left"},topLeft:{display:"flex",alignItems:"center",gap:"10px",margin:0,padding:0,boxSizing:"border-box"},logo:{height:"32px",width:"auto",objectFit:"contain",margin:0,padding:0,display:"block"},title:{fontSize:"18px",fontWeight:700,lineHeight:"150%",letterSpacing:"0.2px",verticalAlign:"middle",color:"#101828",margin:0,padding:0,textAlign:"left"},topRight:{borderRadius:"8px",padding:"3px 9px",border:"1px solid #d0d5dd",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:400,fontSize:"12px",lineHeight:"150%",letterSpacing:"0.2px",verticalAlign:"middle",color:"#344054",gap:"5px",margin:0,boxSizing:"border-box",textAlign:"left",cursor:"pointer",backgroundColor:"#ffffff"},middleSection:{margin:"0px",display:"flex",flexDirection:"column",gap:"12px",flexGrow:1,overflowY:"auto",minHeight:0,paddingRight:"15px",boxSizing:"border-box",textAlign:"left"},privacyText:{fontSize:"16px",fontWeight:400,lineHeight:"150%",color:"#344054",margin:0,padding:0,textAlign:"left"},link:{color:"#4f87ff",textDecoration:"none",margin:0,padding:0,boxSizing:"border-box"},subTitle:{fontWeight:600,fontSize:"16px",lineHeight:"150%",letterSpacing:"0.2px",color:"#101828",margin:0,padding:0,textAlign:"left"},optionsContainer:{display:"flex",flexDirection:"column",gap:"10px",margin:0,padding:0,boxSizing:"border-box"},optionItem:{display:"flex",justifyContent:"space-between",alignItems:"center",margin:0,padding:0,boxSizing:"border-box"},optionLeft:{display:"flex",gap:"12px",alignItems:"center",cursor:"pointer",margin:0,padding:0,boxSizing:"border-box"},optionTextContainer:{display:"flex",flexDirection:"column",margin:0,padding:0,boxSizing:"border-box"},optionTitle:{fontWeight:500,fontSize:"16px",lineHeight:"150%",letterSpacing:"0.2px",color:"#101828",margin:0,padding:0,textAlign:"left"},optionDescription:{fontWeight:400,fontSize:"12px",lineHeight:"150%",letterSpacing:"0.2px",color:"#475467",verticalAlign:"middle",margin:0,padding:0,textAlign:"left"},checkboxLarge:{height:"20px",width:"20px",padding:"4px",borderRadius:"5px",border:"2px solid #d0d5dd",margin:0,boxSizing:"border-box",appearance:"none",WebkitAppearance:"none",MozAppearance:"none",cursor:"pointer",position:"relative",backgroundColor:"transparent"},dataElementsContainer:{marginLeft:"27px",display:"flex",flexDirection:"column",margin:0,padding:0,boxSizing:"border-box",paddingLeft:"22px"},dataElementItem:{display:"flex",alignItems:"center",gap:"10px",justifyContent:"space-between",margin:0,padding:0,boxSizing:"border-box",minHeight:"24px"},dataElementText:{fontWeight:400,fontSize:"14px",lineHeight:"150%",letterSpacing:"0.2px",color:"#344054",margin:0,padding:0,textAlign:"left"},checkboxSmall:{height:"16px",width:"16px",padding:"4px",borderRadius:"5px",border:"2px solid #d0d5dd",margin:0,boxSizing:"border-box",appearance:"none",WebkitAppearance:"none",MozAppearance:"none",cursor:"pointer",position:"relative",backgroundColor:"transparent"},bottomSection:{display:"flex",justifyContent:"space-between",gap:"29px",paddingTop:"15px",borderTop:"none",backgroundColor:"#ffffff",margin:0,boxSizing:"border-box"},button:{width:"100%",borderRadius:"8px",padding:"9px 45px",fontWeight:400,fontSize:"16px",lineHeight:"150%",letterSpacing:"0.2px",cursor:"pointer",margin:0,boxSizing:"border-box",textAlign:"center"},acceptButton:{backgroundColor:"#4f87ff",border:"none",color:"#ffffff"},cancelButton:{border:"1px solid #d0d5dd",backgroundColor:"#ffffff",color:"#000000"},languageSelectorContainer:{position:"relative",margin:0,padding:0,boxSizing:"border-box"},languageDropdown:{position:"absolute",top:"100%",right:0,backgroundColor:"#ffffff",border:"1px solid #d0d5dd",borderRadius:"4px",boxShadow:"0px 2px 4px rgba(0, 0, 0, 0.1)",zIndex:10,width:"max-content",maxHeight:"200px",overflowY:"auto",marginTop:"4px",padding:0,boxSizing:"border-box",textAlign:"left"},languageItem:{padding:"8px 12px",cursor:"pointer",fontSize:"12px",color:"#344054",backgroundColor:"#ffffff",borderBottom:"1px solid #e5e7eb",margin:0,boxSizing:"border-box",textAlign:"left"},selectedLanguageItem:{backgroundColor:"#f3f4f6",fontWeight:600},loadingContainer:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"2rem",minHeight:"200px",margin:0,boxSizing:"border-box"},loadingSpinner:{width:"40px",height:"40px",border:"4px solid #f3f3f3",borderTop:"4px solid #3498db",borderRadius:"50%",animation:"spin 1s linear infinite",marginBottom:"1rem",boxSizing:"border-box"}};function we(i,e){var L,V;let{selectedPurposes:t,collapsedPurposes:o,selectedDataElements:a,initialDataElementSelections:n={},settings:s,isMobile:p,isAlreadyConsented:d,getTranslatedText:l,onPurposeToggle:c,onPurposeCollapse:u,onDataElementToggle:v}=e,h=new Map,y=new Map,f=new Map,x=new Map,C=new Map,T=new Map,m=new Map,M=(s==null?void 0:s.headingColor)||"#323B4B",A=(s==null?void 0:s.textColor)||"#344054",b=(s==null?void 0:s.font)||"inherit",k=r("div",{style:g.optionsContainer});for(let E of i){let U=r("div"),w=P("svg",{width:"7",height:"12",viewBox:"0 0 7 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:M,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",style:{transform:o[E.uuid]?"rotate(0deg)":"rotate(90deg)",transition:"transform 0.3s ease"},"aria-hidden":"true"},P("path",{d:"M1 1L6 6L1 11"}));x.set(E.uuid,w);let B=r("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",marginLeft:"5px"}},w),I=r("h2",{id:`purpose-name-${E.uuid}`,style:{...g.optionTitle,fontSize:p?"14px":"16px",color:M,fontFamily:b}});I.textContent=l("purposes.name",E.name,E.uuid),C.set(E.uuid,I);let z=r("h3",{id:`purpose-description-${E.uuid}`,style:{...g.optionDescription,fontSize:p?"11px":"12px",color:A,fontFamily:b}});z.textContent=l("purposes.description",E.description,E.uuid),T.set(E.uuid,z);let N=r("div",{style:g.optionTextContainer},I,z),F=r("div",{style:g.optionLeft,role:"button",tabIndex:"0","aria-expanded":String(!o[E.uuid]),"aria-controls":`purpose-${E.uuid}`,"aria-label":`${o[E.uuid]?"Expand":"Collapse"} ${l("purposes.name",E.name,E.uuid)} details`,onClick:()=>u(E.uuid),onKeydown:S=>{(S.key==="Enter"||S.key===" ")&&(S.preventDefault(),u(E.uuid))}},B,N);y.set(E.uuid,F);let G;if(d)G=Ye(20,`Already consented to ${l("purposes.name",E.name,E.uuid)}`),fe(G,{marginLeft:"12px"});else{let S=r("input",{className:"redacto-checkbox-large",type:"checkbox",checked:t[E.uuid]||!1,"aria-label":`Select all data elements for ${l("purposes.name",E.name,E.uuid)}`,onChange:()=>c(E.uuid)});h.set(E.uuid,S),G=S}let j=r("div",{style:g.optionItem},F,G),O=r("div",{id:`purpose-${E.uuid}`,style:g.dataElementsContainer});if(((L=E.data_elements)==null?void 0:L.length)>0)for(let S of E.data_elements){let _=`${E.uuid}-${S.uuid}`,R=r("span",{id:`data-element-${E.uuid}-${S.uuid}`,style:{...g.dataElementText,fontSize:p?"12px":"14px",color:A,fontFamily:b}});if(R.textContent=l("data_elements.name",S.name,S.uuid),m.set(_,R),S.required){let q=r("span",{style:{color:"red",marginLeft:"4px"},"aria-label":"required"});q.textContent="*",R.appendChild(q)}let H;if(d)n[_]||!1?H=Ye(16,`Consented to ${l("data_elements.name",S.name,S.uuid)}`):H=r("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",borderRadius:"50%",border:"2px solid #d0d5dd",backgroundColor:"transparent"},"aria-label":`Not consented to ${l("data_elements.name",S.name,S.uuid)}`});else{let q=r("input",{className:"redacto-checkbox-small",type:"checkbox",checked:a[_]||!1,"aria-label":`Select ${l("data_elements.name",S.name,S.uuid)}${S.required?" (required)":""}`,onChange:()=>v(S.uuid,E.uuid)});h.set(_,q),H=q}let $=r("div",{style:g.dataElementItem},R,H);O.appendChild($)}f.set(E.uuid,O),O.style.display=!o[E.uuid]&&((V=E.data_elements)==null?void 0:V.length)>0?"flex":"none",U.appendChild(j),U.appendChild(O),k.appendChild(U)}return{container:k,checkboxes:h,collapseButtons:y,dataElementContainers:f,chevrons:x,titleElements:C,descriptionElements:T,dataElementLabels:m}}function Ye(i,e){let t=i===20?12:10,o=i===20?"2":"1.5",a=i===20?"M4 6L5.5 7.5L8.5 4.5":"M3 5L4.5 6.5L7.5 3.5",n=P("svg",{width:String(t),height:String(t),viewBox:`0 0 ${t} ${t}`,fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},P("path",{d:a,stroke:"white","stroke-width":o,"stroke-linecap":"round","stroke-linejoin":"round"}));return r("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:`${i}px`,height:`${i}px`,borderRadius:"50%",backgroundColor:"#10B981"},"aria-label":e},n)}function Je(i){var T,m,M,A;let{languages:e,selectedLanguage:t,settings:o,onSelect:a}=i,n=!1,s=r("span");s.textContent=t;let p=P("svg",{width:"8",height:"5",viewBox:"0 0 8 5",fill:"none",xmlns:"http://www.w3.org/2000/svg"},P("path",{d:"M1 1L4 4L7 1",stroke:((m=(T=o==null?void 0:o.button)==null?void 0:T.language)==null?void 0:m.textColor)||"#344054","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})),d={...g.topRight};(M=o==null?void 0:o.button)!=null&&M.language&&(d.backgroundColor=o.button.language.backgroundColor,d.color=o.button.language.textColor);let l=r("div",{style:d,role:"button",tabIndex:"0","aria-haspopup":"listbox","aria-expanded":"false","aria-label":`Language selector, current: ${t}`,onClick:()=>f(),onKeydown:b=>{b.key==="Enter"||b.key===" "?(b.preventDefault(),f()):b.key==="Escape"&&C()}},s,p),c=r("div",{style:{position:"fixed",backgroundColor:"#ffffff",border:"1px solid #d0d5dd",borderRadius:"4px",boxShadow:"0px 4px 12px rgba(0, 0, 0, 0.15)",zIndex:2147483647,minWidth:"140px",maxHeight:"200px",overflowY:"auto",padding:0,boxSizing:"border-box",textAlign:"left",display:"none"},role:"listbox","aria-label":"Select language"});for(let b of e){let k=b===t,L=k?{...g.languageItem,...g.selectedLanguageItem}:{...g.languageItem};(A=o==null?void 0:o.button)!=null&&A.language&&(k&&o.button.language.selectedBackgroundColor&&(L.backgroundColor=o.button.language.selectedBackgroundColor),k&&o.button.language.selectedTextColor&&(L.color=o.button.language.selectedTextColor));let V=r("div",{style:L,role:"option","aria-selected":String(k),onClick:()=>{a(b),C()},onMouseenter:E=>{E.target.style.backgroundColor="#f3f4f6"},onMouseleave:E=>{E.target.style.backgroundColor=k?"#f3f4f6":"#ffffff"}});V.textContent=b,c.appendChild(V)}let u=r("div",{style:g.languageSelectorContainer},l);typeof document!="undefined"&&document.body.appendChild(c);function v(){let b=l.getBoundingClientRect();c.style.top=`${b.bottom+4}px`,c.style.right=`${window.innerWidth-b.right}px`,c.style.left="auto"}let h=b=>{let k=b.target;!u.contains(k)&&!c.contains(k)&&C()},y=()=>{n&&v()};function f(){n?C():x()}function x(){n=!0,v(),c.style.display="block",l.setAttribute("aria-expanded","true"),setTimeout(()=>{document.addEventListener("click",h)},0),window.addEventListener("scroll",y,!0),window.addEventListener("resize",y)}function C(){n=!1,c.style.display="none",l.setAttribute("aria-expanded","false"),document.removeEventListener("click",h),window.removeEventListener("scroll",y,!0),window.removeEventListener("resize",y)}return{container:u,button:l,dropdown:c,buttonText:s}}function le(i,e){let t=o=>{if(o.key==="Escape"){o.preventDefault(),e();return}if(o.key==="Tab"){let a=i.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),n=Array.from(a).filter(d=>!d.hasAttribute("disabled")&&d.offsetParent!==null);if(n.length===0){o.preventDefault();return}let s=n[0],p=n[n.length-1];o.shiftKey?document.activeElement===s&&(o.preventDefault(),p.focus()):document.activeElement===p&&(o.preventDefault(),s.focus())}};return document.addEventListener("keydown",t),requestAnimationFrame(()=>{let o=i.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');o==null||o.focus()}),()=>{document.removeEventListener("keydown",t)}}var ke="redacto_consent_sdk_state";var _e=()=>typeof window!="undefined"&&typeof window.sessionStorage!="undefined",Te=i=>{if(!_e()){console.warn("SessionStorage not available - state not persisted");return}try{let e={...i,timestamp:new Date().toISOString()};sessionStorage.setItem(ke,JSON.stringify(e))}catch(e){console.error("Failed to save consent state:",e)}},de=()=>{if(!_e())return null;try{let i=sessionStorage.getItem(ke);if(!i)return null;let e=JSON.parse(i);return Date.now()-new Date(e.timestamp).getTime()>18e5?(ee(),null):e}catch(i){return console.error("Failed to get consent state:",i),null}},ee=()=>{if(_e())try{sessionStorage.removeItem(ke)}catch(i){console.error("Failed to clear consent state:",i)}},Xe=i=>{let e=de();e&&Te({...e,...i,timestamp:new Date().toISOString()})};var Ze=[{audioKey:"grievance_text_audio_url",elementId:"dpo-grievance-text"},{audioKey:"grievance_anchor_text_audio_url",elementId:"dpo-grievance-link"},{audioKey:"grievance_email_connector_text_audio_url",elementId:"dpo-grievance-email-connector"},{audioKey:"grievance_email_audio_url",elementId:"dpo-grievance-email"},{audioKey:"dp_board_text_audio_url",elementId:"dpo-dp-board-text"},{audioKey:"dp_board_anchor_text_audio_url",elementId:"dpo-dp-board-link"},{audioKey:"dpo_text_audio_url",elementId:"dpo-dpo-text"},{audioKey:"dpo_anchor_text_audio_url",elementId:"dpo-dpo-link"}];var ye=class{constructor(e){this.audioUrls=null;this.audioSequence=[];this.elementIdSequence=[];this.currentAudio=null;this.currentIndex=0;this._isPlaying=!1;this._isPaused=!1;this._isAvailable=!1;this.highlightedElementId=null;this.abortController=null;this.onStateChange=e}get isPlaying(){return this._isPlaying}get isPaused(){return this._isPaused}get isAvailable(){return this._isAvailable}async fetchAudioUrls(e){var t;this.stop(),this._isAvailable=!1,this.audioUrls=null,this.onStateChange(),(t=this.abortController)==null||t.abort(),this.abortController=new AbortController;try{let o=await Ke({accessToken:e.accessToken,baseUrl:e.baseUrl,noticeUuid:e.noticeUuid,language:e.language,signal:this.abortController.signal});this.audioUrls=o.detail,this._isAvailable=!0,this.buildSequences(e.content),this.onStateChange()}catch(o){o.name!=="AbortError"&&(this._isAvailable=!1,this.audioUrls=null,this.onStateChange())}}buildSequences(e){var s,p;if(!this.audioUrls)return;let t=this.audioUrls,o=[],a=[],n=(d,l)=>{d&&(o.push(d),a.push(l))};n(t.notice_banner_heading_audio_url,"privacy-notice-title"),n(t.notice_text_audio_url,"privacy-notice-text"),n(t.privacy_policy_prefix_text_audio_url,"privacy-policy-text"),n(t.privacy_policy_anchor_text_audio_url,"privacy-policy-link"),n(t.purpose_section_heading_audio_url,"purpose-section-heading");for(let d of e.purposes){let l=(s=t.purposes_audio)==null?void 0:s[d.uuid];l&&(n(l.name_audio_url,`purpose-name-${d.uuid}`),n(l.description_audio_url,`purpose-description-${d.uuid}`));for(let c of d.data_elements){let u=(p=t.data_elements_audio)==null?void 0:p[c.uuid];u&&n(u.name_audio_url,`data-element-${d.uuid}-${c.uuid}`)}}if(n(t.additional_text_audio_url,"additional-text"),n(t.privacy_center_anchor_text_audio_url,"privacy-center-link"),t.dpo_info_audio)for(let d of Ze){let l=t.dpo_info_audio[d.audioKey];n(l,d.elementId)}n(t.confirm_button_text_audio_url,"confirm-button-text"),n(t.decline_button_text_audio_url,"decline-button-text"),this.audioSequence=o,this.elementIdSequence=a}toggle(){this._isPlaying?this.pause():this.play()}play(){if(this.audioSequence.length!==0)if(this._isPaused&&this.currentAudio)this.currentAudio.play().then(()=>{this._isPlaying=!0,this._isPaused=!1,this.onStateChange()}).catch(()=>{});else{let e=this._isPlaying?this.currentIndex:0;this.playNextAudio(e)}}pause(){this.currentAudio&&this._isPlaying&&(this.currentAudio.pause(),this._isPlaying=!1,this._isPaused=!0,this.onStateChange())}stop(){this.currentAudio&&(this.currentAudio.pause(),this.currentAudio.currentTime=0,this.currentAudio=null),this._isPlaying=!1,this._isPaused=!1,this.currentIndex=0,this.removeHighlights(),this.highlightedElementId=null,this.onStateChange()}destroy(){var e;(e=this.abortController)==null||e.abort(),this.stop()}playNextAudio(e){if(e>=this.audioSequence.length){this.stop();return}this.currentAudio&&(this.currentAudio.pause(),this.currentAudio=null);let t=new Audio(this.audioSequence[e]);this.currentAudio=t,this.currentIndex=e,this._isPlaying=!0,this._isPaused=!1;let o=this.elementIdSequence[e];o&&this.highlightElement(o),t.onended=()=>this.playNextAudio(e+1),t.onerror=()=>{console.warn(`Failed to load audio at index ${e}`),this.playNextAudio(e+1)},t.play().catch(a=>{console.warn(`Failed to play audio at index ${e}:`,a),this._isPlaying=!1,this.onStateChange()}),this.onStateChange()}highlightElement(e){this.removeHighlights(),this.highlightedElementId=e,setTimeout(()=>{let t=document.getElementById(e);if(t){t.classList.add("redacto-tts-highlight");let o=t.getBoundingClientRect();o.top>=0&&o.left>=0&&o.bottom<=window.innerHeight&&o.right<=window.innerWidth||t.scrollIntoView({behavior:"smooth",block:"center",inline:"nearest"})}},50)}removeHighlights(){document.querySelectorAll(".redacto-tts-highlight").forEach(e=>{e.classList.remove("redacto-tts-highlight")})}};function et(i){let{settings:e,colors:t,isMobile:o,logoUrl:a,onYes:n,onNo:s,onClose:p}=i,d=(e==null?void 0:e.headingColor)||"#101828",l=t.text,c=t.font,u=r("img",{src:a,style:g.logo,alt:"Redacto Logo"}),v=r("h2",{id:"age-verification-title",style:{...g.title,fontSize:o?"16px":"18px",color:d,fontFamily:c}});v.textContent="Age Verification Required";let h=r("div",{style:g.topLeft},u,v),y=r("button",{style:{background:"none",border:"none",color:d,cursor:"pointer",padding:o?"2px":"4px",display:"flex",alignItems:"center",justifyContent:"center"},type:"button","aria-label":"Close modal",onClick:p}),f=P("svg",{width:o?"18":"20",height:o?"18":"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},P("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}));y.appendChild(f);let x=r("div",{style:{...g.topSection,color:l,fontFamily:c}},h,y),C=r("p",{style:{...g.privacyText,fontSize:o?"14px":"16px",color:l,fontFamily:c,marginBottom:"16px"}});C.textContent="To proceed with this consent form, we need to verify your age.";let T=r("p",{style:{...g.subTitle,color:l,fontFamily:c,marginBottom:"24px",textAlign:"left"}});T.textContent="Are you 18 years of age or older?";let m=r("div",{style:{...g.middleSection,color:l,fontFamily:c}},C,T),M={...g.button,fontSize:o?"14px":"16px",padding:o?"10px 20px":"9px 45px"},A=r("button",{style:{...M,...g.acceptButton,backgroundColor:t.acceptBg,color:t.acceptText,borderRadius:t.borderRadius},type:"button","aria-label":"Confirm that I am 18 years of age or older",onClick:n});A.textContent="Yes, I am 18 or older";let b=r("button",{style:{...M,...g.cancelButton,backgroundColor:t.declineBg,color:t.declineText,borderColor:t.declineBorder,borderRadius:t.borderRadius},type:"button","aria-label":"Indicate that I am under 18 years of age",onClick:s});b.textContent="No, I am under 18";let k=r("div",{style:{...g.bottomSection,color:l,fontFamily:c}},A,b);return{container:r("div",{style:g.content},x,m,k)}}var Pe=[{value:"Father",label:"Father"},{value:"Mother",label:"Mother"},{value:"Legal Guardian",label:"Legal Guardian"},{value:"Grandparent",label:"Grandparent"}];function tt(i){var Fe;let{formData:e,settings:t,colors:o,isMobile:a,logoUrl:n,isSubmitting:s,onSubmit:p,onCancel:d,onFieldChange:l}=i,c=(t==null?void 0:t.headingColor)||"#101828",u=o.text,v=o.declineBorder,h=(t==null?void 0:t.backgroundColor)||"#ffffff",y=o.borderRadius,f=o.font,x=o.acceptBg,C={width:"100%",padding:"10px 12px",border:`1px solid ${v}`,borderRadius:y,fontSize:"13px",fontFamily:f,color:u,backgroundColor:h,marginBottom:"2px",boxSizing:"border-box",outline:"none"},T={color:"#DC2626",fontSize:"11px",marginTop:"4px",marginBottom:"0px",display:"none"},m={fontSize:"13px",fontWeight:500,color:u,fontFamily:f,marginBottom:"4px",display:"block"},M={fontSize:"11px",color:"#667085",marginTop:"2px",marginBottom:"0px",lineHeight:"1.4"},A=r("img",{src:n,style:g.logo,alt:"Logo"}),b=r("h2",{id:"guardian-form-title",style:{...g.title,fontSize:"16px",fontWeight:600,color:c,fontFamily:f}});b.textContent="Guardian Verification";let k=r("div",{style:g.topLeft},A,b),L=r("div",{style:{...g.topSection,color:u,fontFamily:f}},k),V=r("p",{style:{...g.privacyText,fontSize:"13px",lineHeight:"1.5",color:u,fontFamily:f,marginBottom:"12px"}});V.textContent="Since you are under the age of consent, a legal guardian must verify their identity via DigiLocker before you can proceed.";let E=P("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"#2563EB","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},P("circle",{cx:"12",cy:"12",r:"10"}),P("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),P("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"}));E.style.cssText="flex-shrink:0;margin-top:1px";let U=r("span");U.textContent="The guardian's name will be matched against their DigiLocker identity document (e.g. Aadhaar). Please enter the name exactly as it appears on the document.";let w=r("div",{style:{display:"flex",alignItems:"flex-start",gap:"8px",padding:"10px 12px",backgroundColor:"#EFF6FF",border:"1px solid #BFDBFE",borderRadius:y,marginBottom:"16px",fontSize:"12px",lineHeight:"1.5",color:"#1E40AF"}},E,U),B=r("label",{for:"guardianName",style:m});B.innerHTML=`Guardian's Full Name <span style="color:#DC2626">*</span>`;let I=r("input",{id:"guardianName",type:"text",style:C,value:e.guardianName,placeholder:"e.g. Rajesh Kumar",autoComplete:"name","aria-describedby":"guardianName-hint",onInput:D=>l("guardianName",D.target.value)}),z=r("p",{id:"guardianName-hint",style:M});z.textContent="Enter the full name as per government ID (Aadhaar, PAN, etc.)";let N=r("div",{style:T,role:"alert"}),F=r("div",null,B,I,z,N),G=r("label",{for:"guardianContact",style:m});G.innerHTML=`Guardian's Phone Number <span style="color:#DC2626">*</span>`;let j=r("input",{id:"guardianContact",type:"tel",inputMode:"tel",style:C,value:e.guardianContact,placeholder:"e.g. 9876543210",autoComplete:"tel","aria-describedby":"guardianContact-hint",onInput:D=>l("guardianContact",D.target.value)}),O=r("p",{id:"guardianContact-hint",style:M});O.textContent="Mobile number linked to guardian's Aadhaar";let S=r("div",{style:T,role:"alert"}),_=r("div",null,G,j,O,S),R=r("label",{id:"guardianRelationship-label",style:m});R.innerHTML='Relationship <span style="color:#DC2626">*</span>';let H=(Fe=Pe.find(D=>D.value===e.guardianRelationship))==null?void 0:Fe.label,$=P("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"#667085","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},P("polyline",{points:"6 9 12 15 18 9"}));$.style.cssText="flex-shrink:0;margin-left:8px;transition:transform 0.2s";let q=r("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}});q.textContent=H||"Select relationship";let K=r("div",{role:"combobox","aria-expanded":"false","aria-haspopup":"listbox","aria-labelledby":"guardianRelationship-label",tabIndex:"0",style:{...C,color:H?u:"#9CA3AF",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"space-between",userSelect:"none",transition:"border-color 0.15s, box-shadow 0.15s"}},q,$),Q=r("div",{id:"guardianRelationship-listbox",role:"listbox","aria-labelledby":"guardianRelationship-label",style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,backgroundColor:h,border:`1px solid ${v}`,borderRadius:y,boxShadow:"0 4px 12px rgba(0,0,0,0.1), 0 1px 3px rgba(0,0,0,0.06)",zIndex:50,overflow:"hidden",padding:"4px 0",maxHeight:"220px",overflowY:"auto",display:"none"}});for(let D=0;D<Pe.length;D++){let te=Pe[D],oe=e.guardianRelationship===te.value,ge=r("div",{id:`guardianRelationship-option-${D}`,role:"option","aria-selected":String(oe),style:{padding:"9px 12px",fontSize:"13px",fontFamily:f,color:oe?x:u,backgroundColor:"transparent",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"space-between",transition:"background-color 0.1s"},onClick:()=>{l("guardianRelationship",te.value),q.textContent=te.label,K.style.color=u,ue()},onMouseenter:ne=>{ne.target.style.backgroundColor="#F3F4F6"},onMouseleave:ne=>{ne.target.style.backgroundColor="transparent"}}),He=r("span");if(He.textContent=te.label,ge.appendChild(He),oe){let ne=P("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:x,"stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},P("polyline",{points:"20 6 9 17 4 12"}));ne.style.flexShrink="0",ge.appendChild(ne)}Q.appendChild(ge)}let pe=!1,J=r("div",{style:{position:"relative"}}),Ie=D=>{J.contains(D.target)||ue()};function Me(){pe=!0,Q.style.display="block",K.setAttribute("aria-expanded","true"),$.style.transform="rotate(180deg)",K.style.borderColor=x,K.style.boxShadow=`0 0 0 1px ${x}`;let D=J.getBoundingClientRect(),te=window.innerHeight-D.bottom,oe=220;te<oe&&D.top>oe?(Q.style.top="auto",Q.style.bottom="calc(100% + 4px)",Q.style.boxShadow="0 -4px 12px rgba(0,0,0,0.1), 0 -1px 3px rgba(0,0,0,0.06)"):(Q.style.top="calc(100% + 4px)",Q.style.bottom="auto",Q.style.boxShadow="0 4px 12px rgba(0,0,0,0.1), 0 1px 3px rgba(0,0,0,0.06)"),requestAnimationFrame(()=>{Q.scrollIntoView({behavior:"smooth",block:"nearest"})}),setTimeout(()=>document.addEventListener("mousedown",Ie),0)}function ue(){pe=!1,Q.style.display="none",K.setAttribute("aria-expanded","false"),$.style.transform="rotate(0deg)",K.style.borderColor=v,K.style.boxShadow="none",document.removeEventListener("mousedown",Ie)}K.addEventListener("click",()=>{pe?ue():Me()}),K.addEventListener("keydown",D=>{D.key==="Enter"||D.key===" "||D.key==="ArrowDown"?(D.preventDefault(),pe||Me()):(D.key==="Escape"||D.key==="Tab")&&ue()});let Ae=r("div",{style:T,role:"alert"});J.appendChild(R),J.appendChild(K),J.appendChild(Q),J.appendChild(Ae);let Le=r("div",{role:"alert",style:{color:"#DC2626",fontSize:"13px",marginTop:"16px",padding:"12px",borderRadius:"6px",border:"1px solid #FCA5A5",backgroundColor:"#FEF2F2",textAlign:"center",display:"none"}}),ut=r("div",{style:{display:"flex",flexDirection:"column",gap:"14px"}},F,_,J),gt=r("div",{style:{...g.middleSection,overflow:"visible",color:u,fontFamily:f}},V,w,ut,Le),De={...g.button,fontSize:a?"14px":"16px",padding:a?"10px 20px":"9px 45px"},Ce=r("button",{style:{...De,...g.acceptButton,backgroundColor:o.acceptBg,color:o.acceptText,borderRadius:o.borderRadius},type:"button",disabled:s,"aria-label":s?"Verifying guardian identity":"Proceed to guardian verification",onClick:p});Ce.textContent=s?"Verifying...":"Verify via DigiLocker";let Be=r("button",{style:{...De,...g.cancelButton,backgroundColor:o.declineBg,color:o.declineText,borderColor:o.declineBorder,borderRadius:o.borderRadius},type:"button","aria-label":"Cancel",onClick:d});Be.textContent="Cancel";let ft=r("div",{style:{...g.bottomSection,paddingTop:"12px",color:u,fontFamily:f}},Ce,Be);return{container:r("div",{style:{...g.content,overflow:"visible"}},L,gt,ft),nameInput:I,contactInput:j,relationshipDisplay:K,nameError:N,contactError:S,relationshipError:Ae,submitBtn:Ce,generalError:Le}}function ot(i){let e={};return i.guardianName.trim()||(e.guardianName="Guardian name is required"),i.guardianContact.trim()||(e.guardianContact="Guardian contact is required"),i.guardianRelationship.trim()||(e.guardianRelationship="Relationship to guardian is required"),e}function nt(i,e){switch(i){case"GUARDIAN_UNDER_18":return"The guardian must be 18 years or older. Please provide details of a different guardian.";case"TOKEN_FAILED":return"DigiLocker verification could not be completed. Please try again.";case"DIGILOCKER_AUTH_FAILED":return"DigiLocker authorization was cancelled or failed. Please try again.";case"NO_AUTH_CODE":return"DigiLocker did not return an authorization code. Please try again.";case"SESSION_EXPIRED":return"Verification session has expired. Please try again.";default:return e||"Verification failed. Please try again."}}function it(i){let{settings:e,colors:t,isMobile:o,logoUrl:a,isInitiating:n,isPolling:s,isComplete:p,isAutoTransitioning:d,error:l,errorCode:c,canRetry:u,onContinue:v,onBack:h}=i,y=(e==null?void 0:e.headingColor)||"#101828",f=t.text,x=t.font,C=t.acceptBg,T=r("img",{src:a,style:g.logo,alt:"Logo"}),m=r("h2",{id:"verification-title",style:{...g.title,fontSize:"16px",fontWeight:600,color:y,fontFamily:x}});m.textContent="Guardian Verification";let M=r("div",{style:g.topLeft},T,m),A=r("div",{style:{...g.topSection,color:f,fontFamily:x}},M),b=r("div",{style:{...g.middleSection,color:f,fontFamily:x,textAlign:"center"}});if(p&&!l){let w=r("div",{style:{width:"64px",height:"64px",borderRadius:"50%",backgroundColor:"#D1FAE5",display:"flex",alignItems:"center",justifyContent:"center"}}),B=P("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"#059669","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},P("polyline",{points:"20 6 9 17 4 12"}));w.appendChild(B);let I=r("p",{style:{color:y,fontFamily:x,fontSize:"16px",fontWeight:600,lineHeight:"1.5",marginTop:"12px",marginBottom:"24px"}});I.textContent="Verification Completed";let z=r("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"1"}},w,I);b.appendChild(z)}else if((n||s)&&!l){let w=r("div",{style:{width:"48px",height:"48px",border:"4px solid #e5e7eb",borderTopColor:C,borderRadius:"50%",animation:"spin 1s linear infinite",margin:"24px auto"}}),B=r("div",{style:{color:"#059669",fontSize:"14px",marginTop:"16px",padding:"12px",borderRadius:"6px",border:"1px solid #A7F3D0",backgroundColor:"#D1FAE5",textAlign:"center"}});B.textContent=n?"Opening DigiLocker in a new tab...":"Please complete the verification in the DigiLocker tab. This page will update automatically when verification is complete.",b.appendChild(w),b.appendChild(B)}if(l){let w=r("div",{style:{width:"64px",height:"64px",borderRadius:"50%",backgroundColor:"#fee2e2",display:"flex",alignItems:"center",justifyContent:"center",margin:"24px auto"}}),B=P("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"#dc2626","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},P("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),P("line",{x1:"6",y1:"6",x2:"18",y2:"18"}));w.appendChild(B);let I=r("p",{style:{...g.privacyText,color:f,fontFamily:x,fontSize:"14px",lineHeight:"1.5",marginBottom:"12px"}});I.textContent="Verification failed";let z=r("div",{style:{color:"#DC2626",fontSize:"14px",marginTop:"16px",padding:"12px",borderRadius:"6px",border:"1px solid #FCA5A5",backgroundColor:"#FEF2F2",textAlign:"center"}});z.textContent=l,b.appendChild(w),b.appendChild(I),b.appendChild(z)}let k={...g.button,fontSize:o?"14px":"16px",padding:o?"10px 20px":"9px 45px"},L=r("div",{style:{...g.bottomSection,paddingTop:"12px",display:"flex",gap:"12px",justifyContent:"center",color:f,fontFamily:x}}),V={backgroundColor:t.acceptBg,color:t.acceptText,borderRadius:t.borderRadius},E={backgroundColor:t.declineBg,color:t.declineText,borderColor:t.declineBorder,borderRadius:t.borderRadius};if(!d)if(p&&!l){let w=r("button",{style:{...k,...V},type:"button","aria-label":"Continue to consent form",onClick:v});w.textContent="Continue",L.appendChild(w)}else if(l&&u){let w=r("button",{style:{...k,...g.acceptButton,...V},type:"button","aria-label":c==="GUARDIAN_UNDER_18"?"Change guardian details":"Try verification again",onClick:()=>h(c==="GUARDIAN_UNDER_18")});w.textContent=c==="GUARDIAN_UNDER_18"?"Change Guardian":"Try Again",L.appendChild(w)}else if(l){let w=r("button",{style:{...k,...g.cancelButton,...E},type:"button","aria-label":"Go back",onClick:()=>h(!1)});w.textContent="Go Back",L.appendChild(w)}else{let w=r("button",{style:{...k,...g.cancelButton,...E},type:"button","aria-label":"Cancel verification",onClick:()=>h(!1)});w.textContent="Cancel",L.appendChild(w)}return{container:r("div",{style:g.content},A,b,L)}}function rt(i,e){var a,n,s,p,d,l,c,u;let t=(e==null?void 0:e.primary_color)||"#4f87ff",o=(e==null?void 0:e.secondary_color)||"#4f87ff";return{acceptBg:((n=(a=i==null?void 0:i.button)==null?void 0:a.accept)==null?void 0:n.backgroundColor)||t,acceptText:((p=(s=i==null?void 0:i.button)==null?void 0:s.accept)==null?void 0:p.textColor)||"#ffffff",declineBg:((l=(d=i==null?void 0:i.button)==null?void 0:d.decline)==null?void 0:l.backgroundColor)||"#ffffff",declineText:((u=(c=i==null?void 0:i.button)==null?void 0:c.decline)==null?void 0:u.textColor)||"#000000",declineBorder:(i==null?void 0:i.borderColor)||"#d0d5dd",link:(i==null?void 0:i.link)||o,heading:(i==null?void 0:i.headingColor)||"#323B4B",text:(i==null?void 0:i.textColor)||"#344054",font:(i==null?void 0:i.font)||"inherit",borderRadius:(i==null?void 0:i.borderRadius)||"8px",primaryColor:t,secondaryColor:o}}var xe=class{constructor(e){this.overlayEl=null;this.modalEl=null;this.purposeRefs=null;this.alreadyConsentedPurposeRefs=null;this.langSelectorRefs=null;this.keyboardCleanup=null;this.abortController=null;this.unsubscribe=null;this.guardianFormRefs=null;this.statusPollTimeout=null;this.popupCheckInterval=null;this.verificationPopup=null;this.verificationSessionToken=null;this.visibilityChangeHandler=null;this.acceptBtn=null;this.declineBtn=null;this.middleSection=null;this.errorEl=null;this.noticeTitleEl=null;this.noticeTextEl=null;this.purposeHeadingEl=null;this.additionalTextEl=null;this.privacyPolicyLinkEl=null;this.privacyCenterLinkEl=null;this.ttsButton=null;this.options=e,this.store=new ie({isLoading:!0,isSubmitting:!1,isSubmittingAccept:!1,isSubmittingDecline:!1,content:null,selectedPurposes:{},selectedDataElements:{},initialDataElementSelections:{},collapsedPurposes:{},hasAlreadyConsented:!1,isFullyConsentedReviewMode:!1,selectedLanguage:e.language||"en",errorMessage:null,fetchError:null,needsConsentPurposes:[],alreadyConsentedPurposes:[],isMinorFlow:!1,selfDeclaredAdult:!1,showAgeVerification:!1,showGuardianForm:!1,showVerificationScreen:!1,verificationReference:null,isVerificationComplete:!1,isInitiatingVerification:!1,isPollingStatus:!1,verificationError:null,verificationErrorCode:null,canRetryVerification:!1,guardianFormData:{guardianName:"",guardianContact:"",guardianRelationship:""}}),this.mediaQuery=he("(max-width: 768px)"),this.ttsManager=new ye(()=>this.updateTTSButton())}async init(){ae(),this.unsubscribe=this.store.subscribe((e,t)=>{this.handleStateChange(e,t)}),this.mediaQuery.subscribe(()=>this.rebuildUI()),this.renderOverlayWithLoading(),await this.fetchNotice()}destroy(){var e,t,o,a;(e=this.abortController)==null||e.abort(),(t=this.keyboardCleanup)==null||t.call(this),(o=this.unsubscribe)==null||o.call(this),this.mediaQuery.destroy(),this.ttsManager.destroy(),this.stopPolling(),this.store.destroy(),(a=this.langSelectorRefs)!=null&&a.dropdown&&document.body.contains(this.langSelectorRefs.dropdown)&&document.body.removeChild(this.langSelectorRefs.dropdown),this.overlayEl&&document.body.contains(this.overlayEl)&&document.body.removeChild(this.overlayEl),this.modalEl&&document.body.contains(this.modalEl)&&document.body.removeChild(this.modalEl),this.overlayEl=null,this.modalEl=null,this.purposeRefs=null,this.langSelectorRefs=null}async fetchNotice(){var e,t,o;this.abortController=new AbortController,this.store.setState({isLoading:!0,fetchError:null});try{let a=await Oe({noticeId:this.options.noticeId,accessToken:this.options.accessToken,refreshToken:this.options.refreshToken,baseUrl:this.options.baseUrl,language:this.options.language,specific_uuid:this.options.applicationId,validate_against:this.options.validateAgainst||"all",include_fully_consented_data:this.options.includeFullyConsentedData,signal:this.abortController.signal}),n=a.detail.active_config,s=a.detail.purpose_selections,p={},d={},l={},c={},u=[],v=[],h=!1;if(s&&a.detail.reconsent_required)for(let m of n.purposes){let M=s[m.uuid];if(p[m.uuid]=!0,M&&M.selected&&!M.needs_reconsent){v.push(m),d[m.uuid]=!0;for(let A of m.data_elements){let b=`${m.uuid}-${A.uuid}`,k=(e=M.data_elements)==null?void 0:e[A.uuid],L=(k==null?void 0:k.selected)||!1;l[b]=L,c[b]=L}}else{u.push(m),d[m.uuid]=!1;for(let A of m.data_elements)l[`${m.uuid}-${A.uuid}`]=!1}}else{u=n.purposes;for(let m of n.purposes){p[m.uuid]=!0,d[m.uuid]=!1;for(let M of m.data_elements)l[`${m.uuid}-${M.uuid}`]=!1}}this.options.includeFullyConsentedData&&u.length===0&&v.length>0&&(h=!0);let y=this.options.language||"en";n.default_language&&(y=n.default_language);let f=!1,x=!1,C={},T=null;if(a.detail.is_minor){f=!0;let m=de();m!=null&&m.noticeId&&m.noticeId!==this.options.noticeId?ee():(m==null?void 0:m.flowState)==="digilocker-pending"&&m.sessionToken?(C={showVerificationScreen:!0,isPollingStatus:!0},T=m.sessionToken):(m==null?void 0:m.verificationResult)==="verified"&&m.verificationReference?(C={showVerificationScreen:!0,isVerificationComplete:!0,verificationReference:m.verificationReference},ee()):(m==null?void 0:m.verificationResult)==="failed"||(m==null?void 0:m.verificationResult)==="expired"?(C={showVerificationScreen:!0,verificationError:m.verificationResult==="expired"?"Verification session has expired. Please try again.":"Verification failed. Please try again.",canRetryVerification:!0},ee()):x=!0}this.store.setState({content:a,isLoading:!1,selectedLanguage:y,collapsedPurposes:p,selectedPurposes:d,selectedDataElements:l,initialDataElementSelections:c,needsConsentPurposes:u,alreadyConsentedPurposes:v,isFullyConsentedReviewMode:h,isMinorFlow:f,showAgeVerification:x,...C}),T&&this.startStatusPolling(T)}catch(a){if(a.name==="AbortError")return;let n=a;n.status===409?(this.store.setState({hasAlreadyConsented:!0,isLoading:!1}),this.options.onAccept()):(this.store.setState({fetchError:n,isLoading:!1}),(o=(t=this.options).onError)==null||o.call(t,n))}}handleStateChange(e,t){if(t.isLoading&&!e.isLoading&&e.content){this.rebuildUI();return}if(e.hasAlreadyConsented&&!t.hasAlreadyConsented){this.destroy();return}if(e.fetchError&&!t.fetchError){this.renderError(e.fetchError.message);return}if(e.showAgeVerification!==t.showAgeVerification||e.showGuardianForm!==t.showGuardianForm||e.showVerificationScreen!==t.showVerificationScreen){this.rebuildUI();return}if(e.showVerificationScreen&&(e.isVerificationComplete!==t.isVerificationComplete||e.verificationError!==t.verificationError||e.isPollingStatus!==t.isPollingStatus||e.isInitiatingVerification!==t.isInitiatingVerification)){this.rebuildUI();return}(e.selectedPurposes!==t.selectedPurposes||e.selectedDataElements!==t.selectedDataElements)&&this.updateCheckboxes(e),e.collapsedPurposes!==t.collapsedPurposes&&this.updateCollapseState(e),e.errorMessage!==t.errorMessage&&this.updateErrorMessage(e),(e.isSubmittingAccept!==t.isSubmittingAccept||e.isSubmittingDecline!==t.isSubmittingDecline)&&this.updateButtonStates(e)}renderOverlayWithLoading(){this.options.blockUI!==!1&&(this.overlayEl=r("div",{style:g.overlay,role:"presentation"}),document.body.appendChild(this.overlayEl));let t=this.options.settings,o={...g.modal};t!=null&&t.backgroundColor&&(o.backgroundColor=t.backgroundColor),t!=null&&t.borderRadius&&(o.borderRadius=t.borderRadius),t!=null&&t.borderColor&&(o.border=`1px solid ${t.borderColor}`),t!=null&&t.font&&(o.fontFamily=t.font),this.mediaQuery.matches&&(o.width="90%",o.maxWidth="90%"),this.modalEl=r("div",{style:o,role:"dialog","aria-modal":"true","aria-label":"Privacy consent"});let a=r("div",{style:g.loadingContainer},r("div",{style:g.loadingSpinner}),r("p",{style:{...g.privacyText,color:(t==null?void 0:t.textColor)||"#344054"}},"Loading...")),n=r("div",{style:g.content},a);this.modalEl.appendChild(n),document.body.appendChild(this.modalEl)}rebuildUI(){var I,z,N,F,G,j,O;let e=this.store.getState();if(!e.content||!this.modalEl)return;let t=e.content.detail.active_config,o=this.options.settings,a=this.mediaQuery.matches,n=rt(o,t);if(e.showAgeVerification){X(this.modalEl);let S=et({settings:o,colors:n,isMobile:a,logoUrl:t.logo_url,onYes:()=>this.handleAgeVerificationYes(),onNo:()=>this.handleAgeVerificationNo(),onClose:()=>this.handleDecline()});this.modalEl.appendChild(S.container),(I=this.keyboardCleanup)==null||I.call(this),this.keyboardCleanup=le(this.modalEl,()=>this.handleDecline());return}if(e.showGuardianForm){X(this.modalEl),this.guardianFormRefs=tt({formData:e.guardianFormData,settings:o,colors:n,isMobile:a,logoUrl:t.logo_url,isSubmitting:e.isInitiatingVerification,onSubmit:()=>this.handleGuardianFormSubmit(),onCancel:()=>this.handleDecline(),onFieldChange:(S,_)=>{let R=this.store.getState();this.store.setState({guardianFormData:{...R.guardianFormData,[S]:_}})}}),this.modalEl.appendChild(this.guardianFormRefs.container),(z=this.keyboardCleanup)==null||z.call(this),this.keyboardCleanup=le(this.modalEl,()=>this.handleDecline());return}if(e.showVerificationScreen){X(this.modalEl);let S=it({settings:o,colors:n,isMobile:a,logoUrl:t.logo_url,isInitiating:e.isInitiatingVerification,isPolling:e.isPollingStatus,isComplete:e.isVerificationComplete,error:e.verificationError,errorCode:e.verificationErrorCode,canRetry:e.canRetryVerification,onContinue:()=>this.handleVerificationContinue(),onBack:_=>{_?this.handleChangeGuardian():e.verificationError&&e.canRetryVerification?this.handleVerificationRetry():this.handleDecline()}});this.modalEl.appendChild(S.container),(N=this.keyboardCleanup)==null||N.call(this),this.keyboardCleanup=le(this.modalEl,()=>{});return}X(this.modalEl);let s=(o==null?void 0:o.headingColor)||"#101828",p=n.text,d=n.link,l=n.font,c=t.logo_url?r("img",{src:t.logo_url,style:g.logo,alt:"Logo"}):null;this.noticeTitleEl=r("span",{id:"privacy-notice-title",style:{...g.title,color:s,fontFamily:l,fontSize:a?"16px":"18px"}}),this.noticeTitleEl.textContent=this.getTranslatedText("notice_banner_heading",t.notice_banner_heading);let u=r("div",{style:g.topLeft},c,this.noticeTitleEl);(F=this.langSelectorRefs)!=null&&F.dropdown&&document.body.contains(this.langSelectorRefs.dropdown)&&document.body.removeChild(this.langSelectorRefs.dropdown);let v=Object.keys(t.supported_languages_and_translations||{}),h=[t.default_language||"English",...v.filter(S=>S!==t.default_language)];this.langSelectorRefs=Je({languages:h,selectedLanguage:e.selectedLanguage,settings:o,onSelect:S=>this.handleLanguageSelect(S)});let y=((j=(G=o==null?void 0:o.button)==null?void 0:G.language)==null?void 0:j.textColor)||"currentColor",f=P("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:y,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},P("polygon",{points:"11 5 6 9 2 9 2 15 6 15 11 19 11 5"}),P("path",{d:"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07"}));this.ttsButton=r("button",{style:{...g.topRight,display:"none",padding:"3px 9px",alignItems:"center",justifyContent:"center"},type:"button","aria-label":"Start audio playback",title:"Start Talkback",onClick:()=>this.ttsManager.toggle()}),this.ttsButton.appendChild(f),this.ttsManager.fetchAudioUrls({accessToken:this.options.accessToken,baseUrl:this.options.baseUrl,noticeUuid:t.notice_uuid,language:this.getLanguageCode(e.selectedLanguage),content:t});let x=r("div",{style:{display:"flex",alignItems:"center",gap:"8px"}},this.ttsButton,this.langSelectorRefs.container),C=r("div",{style:g.topSection},u,x);this.middleSection=r("div",{style:g.middleSection});let T={...g.privacyText,color:p,fontFamily:l,fontSize:a?"14px":"16px"},m=r("span",{id:"privacy-notice-text"});m.textContent=this.getTranslatedText("notice_text",t.notice_text);let M=this.getTranslatedText("privacy_policy_prefix_text",t.privacy_policy_prefix_text),A=this.getTranslatedText("privacy_policy_anchor_text",t.privacy_policy_anchor_text);this.privacyPolicyLinkEl=r("a",{id:"privacy-policy-link",href:t.privacy_policy_url,target:"_blank",rel:"noopener noreferrer",style:{...g.link,color:d,fontFamily:l},"aria-label":"Privacy Policy (opens in new tab)"}),this.privacyPolicyLinkEl.textContent=A;let b=r("span",{id:"privacy-policy-text"},`${M} `,this.privacyPolicyLinkEl),k=r("p",{style:T},m,r("br"),b);if(this.purposeHeadingEl=r("h2",{id:"purpose-section-heading",style:{...g.subTitle,color:s,fontFamily:l}}),this.purposeHeadingEl.textContent=this.getTranslatedText("purpose_section_heading",t.purpose_section_heading),this.middleSection.appendChild(k),this.middleSection.appendChild(this.purposeHeadingEl),e.needsConsentPurposes.length>0&&(this.purposeRefs=we(e.needsConsentPurposes,{selectedPurposes:e.selectedPurposes,collapsedPurposes:e.collapsedPurposes,selectedDataElements:e.selectedDataElements,settings:o,isMobile:a,isAlreadyConsented:!1,getTranslatedText:(S,_,R)=>this.getTranslatedText(S,_,R),onPurposeToggle:S=>this.handlePurposeCheckboxChange(S),onPurposeCollapse:S=>this.togglePurposeCollapse(S),onDataElementToggle:(S,_)=>this.handleDataElementCheckboxChange(S,_)}),this.middleSection.appendChild(this.purposeRefs.container)),e.alreadyConsentedPurposes.length>0&&(this.alreadyConsentedPurposeRefs=we(e.alreadyConsentedPurposes,{selectedPurposes:e.selectedPurposes,collapsedPurposes:e.collapsedPurposes,selectedDataElements:e.selectedDataElements,initialDataElementSelections:e.initialDataElementSelections,settings:o,isMobile:a,isAlreadyConsented:!0,getTranslatedText:(S,_,R)=>this.getTranslatedText(S,_,R),onPurposeToggle:()=>{},onPurposeCollapse:S=>this.togglePurposeCollapse(S),onDataElementToggle:()=>{}}),this.middleSection.appendChild(this.alreadyConsentedPurposeRefs.container)),t.privacy_center_url||t.dpo_info){let S=r("div",{style:{...T,fontSize:a?"13px":"14px",lineHeight:"1.4",borderTop:"1px solid rgba(152, 162, 179, 0.3)",paddingTop:"12px",marginTop:"12px"}}),_=r("p",{style:{margin:"0",opacity:"0.6"}});if(t.privacy_center_url){if(t.additional_text){let H=r("span",{id:"additional-text"});H.textContent=this.getTranslatedText("additional_text",t.additional_text),_.appendChild(H),_.appendChild(document.createTextNode(" "))}let R=this.getTranslatedText("privacy_center_anchor_text",t.privacy_center_anchor_text||"Privacy Center");this.privacyCenterLinkEl=r("a",{id:"privacy-center-link",href:t.privacy_center_url,target:"_blank",rel:"noopener noreferrer",style:{...g.link,color:d,fontFamily:l}}),this.privacyCenterLinkEl.textContent=R,_.appendChild(this.privacyCenterLinkEl),_.appendChild(document.createTextNode("."))}if(t.dpo_info){let R=t.dpo_info;if(t.privacy_center_url&&_.appendChild(r("br")),R.grievance_text){let H=r("span",{id:"dpo-grievance-text"});if(H.textContent=this.getTranslatedDpoText("grievance_text",R.grievance_text),_.appendChild(H),_.appendChild(document.createTextNode(" ")),R.grievance_url){let $=r("a",{id:"dpo-grievance-link",href:R.grievance_url,target:"_blank",rel:"noopener noreferrer",style:{...g.link,color:d,fontFamily:l}});$.textContent=this.getTranslatedDpoText("grievance_anchor_text",R.grievance_anchor_text),_.appendChild($)}if(R.grievance_email){_.appendChild(document.createTextNode(" "));let $=r("span",{id:"dpo-grievance-email-connector"});$.textContent=this.getTranslatedDpoText("grievance_email_connector_text",R.grievance_email_connector_text||"or email to"),_.appendChild($),_.appendChild(document.createTextNode(" "));let q=r("a",{id:"dpo-grievance-email",href:`mailto:${R.grievance_email}`,style:{...g.link,color:d,fontFamily:l}});q.textContent=R.grievance_email,_.appendChild(q)}}if(R.dp_board_text){_.appendChild(r("br"));let H=r("span",{id:"dpo-dp-board-text"});if(H.textContent=this.getTranslatedDpoText("dp_board_text",R.dp_board_text),_.appendChild(H),_.appendChild(document.createTextNode(" ")),R.dp_board_url){let $=r("a",{id:"dpo-dp-board-link",href:R.dp_board_url,target:"_blank",rel:"noopener noreferrer",style:{...g.link,color:d,fontFamily:l}});$.textContent=this.getTranslatedDpoText("dp_board_anchor_text",R.dp_board_anchor_text),_.appendChild($)}}if(R.dpo_text){_.appendChild(r("br"));let H=r("span",{id:"dpo-dpo-text"});if(H.textContent=this.getTranslatedDpoText("dpo_text",R.dpo_text),_.appendChild(H),_.appendChild(document.createTextNode(" ")),R.dpo_url){let $=r("a",{id:"dpo-dpo-link",href:R.dpo_url,target:"_blank",rel:"noopener noreferrer",style:{...g.link,color:d,fontFamily:l}});$.textContent=this.getTranslatedDpoText("dpo_anchor_text",R.dpo_anchor_text),_.appendChild($)}}}S.appendChild(_),this.middleSection.appendChild(S)}this.errorEl=r("div",{role:"alert",style:{backgroundColor:"#FEE2E2",color:"#DC2626",padding:"12px",borderRadius:"6px",fontSize:"14px",border:"1px solid #FCA5A5",display:"none"}});let L=e.isFullyConsentedReviewMode?this.options.reviewModeButtonText||"Continue":this.getTranslatedText("confirm_button_text",t.confirm_button_text),V={...g.button,...g.acceptButton,backgroundColor:n.acceptBg,color:n.acceptText,borderRadius:n.borderRadius,fontSize:a?"14px":"16px",padding:a?"10px 20px":"9px 45px"};this.acceptBtn=r("button",{id:"confirm-button-text",style:V,type:"button",onClick:()=>this.handleAccept()}),this.acceptBtn.textContent=L;let E=this.getTranslatedText("decline_button_text",t.decline_button_text),U={...g.button,...g.cancelButton,backgroundColor:n.declineBg,color:n.declineText,borderColor:n.declineBorder,borderRadius:n.borderRadius,fontSize:a?"14px":"16px",padding:a?"10px 20px":"9px 45px"};this.declineBtn=r("button",{id:"decline-button-text",style:U,type:"button",onClick:()=>this.handleDecline()}),e.isFullyConsentedReviewMode||(this.declineBtn.textContent=E);let w=r("div",{style:g.bottomSection});e.isFullyConsentedReviewMode?w.appendChild(this.acceptBtn):(w.appendChild(this.acceptBtn),w.appendChild(this.declineBtn));let B=r("div",{style:g.content},C,this.errorEl,this.middleSection,w);this.modalEl.appendChild(B),this.updateAcceptButtonState(e),(O=this.keyboardCleanup)==null||O.call(this),this.keyboardCleanup=le(this.modalEl,()=>this.handleDecline())}getLanguageCode(e){var o,a;let t=(o=this.store.getState().content)==null?void 0:o.detail.active_config;return!t||e==="English"||e==="en"||e==="EN"?"English":(a=t.supported_languages_and_translations)!=null&&a[e]?e:t.default_language==="en"||t.default_language==="EN"?"English":t.default_language||"English"}getTranslatedDpoText(e,t){var l;let o=this.store.getState(),a=(l=o.content)==null?void 0:l.detail.active_config;if(!a)return t;let n=o.selectedLanguage;if(n==="English"||n==="en"||n==="EN")return t;let s=a.supported_languages_and_translations;if(!s)return t;let p=s[n];if(!(p!=null&&p.dpo_info))return t;let d=p.dpo_info[e];return typeof d=="string"&&d?d:t}renderError(e){if(!this.modalEl)return;X(this.modalEl);let t=r("div",{style:{...g.content,alignItems:"center",justifyContent:"center"}},r("div",{role:"alert",style:{backgroundColor:"#FEE2E2",color:"#DC2626",padding:"16px",borderRadius:"8px",fontSize:"14px",border:"1px solid #FCA5A5",textAlign:"center",maxWidth:"400px"}},e));this.modalEl.appendChild(t)}getTranslatedText(e,t,o){var c,u,v;let a=this.store.getState(),n=(c=a.content)==null?void 0:c.detail.active_config;if(!n)return t;let s=a.selectedLanguage;if(s==="English"||s==="en"||s==="EN")return e==="privacy_policy_anchor_text"&&n.privacy_policy_anchor_text?n.privacy_policy_anchor_text:t;let p=n.supported_languages_and_translations;if(!p)return t;let d=p[s];if(!d)return t;if(o){if(e==="purposes.name"||e==="purposes.description"){let h=(u=d.purposes)==null?void 0:u[o];return h?typeof h=="string"?e==="purposes.name"?h:t:e==="purposes.name"?h.name||t:h.description||t:t}if(e.startsWith("data_elements."))return((v=d.data_elements)==null?void 0:v[o])||t}let l=d[e];return typeof l=="string"&&l?l:t}handleLanguageSelect(e){this.store.setState({selectedLanguage:e}),this.rebuildUI()}togglePurposeCollapse(e){let t=this.store.getState();this.store.setState({collapsedPurposes:{...t.collapsedPurposes,[e]:!t.collapsedPurposes[e]}})}handlePurposeCheckboxChange(e){var p;let t=this.store.getState(),o=(p=t.content)==null?void 0:p.detail.active_config;if(!o)return;let a=o.purposes.find(d=>d.uuid===e);if(!a)return;let n=!t.selectedPurposes[e],s={...t.selectedDataElements};for(let d of a.data_elements)s[`${e}-${d.uuid}`]=n;this.store.setState({selectedPurposes:{...t.selectedPurposes,[e]:n},selectedDataElements:s})}handleDataElementCheckboxChange(e,t){var c;let o=this.store.getState(),a=(c=o.content)==null?void 0:c.detail.active_config;if(!a)return;let n=a.purposes.find(u=>u.uuid===t);if(!n)return;let s=`${t}-${e}`,p={...o.selectedDataElements,[s]:!o.selectedDataElements[s]},d=n.data_elements.filter(u=>u.required),l;d.length>0?l=d.every(u=>p[`${t}-${u.uuid}`]):l=n.data_elements.some(u=>p[`${t}-${u.uuid}`]),this.store.setState({selectedDataElements:p,selectedPurposes:{...o.selectedPurposes,[t]:l}})}async handleAccept(){var o,a,n;let e=this.store.getState();if(e.isSubmitting)return;if(e.isFullyConsentedReviewMode){this.options.onAccept(),this.destroy();return}if(e.isMinorFlow&&!e.verificationReference&&!e.selfDeclaredAdult){this.store.setState({errorMessage:"Guardian verification is required before consent can be submitted."});return}let t=(o=e.content)==null?void 0:o.detail.active_config;if(t){this.abortController=new AbortController,this.store.setState({isSubmitting:!0,isSubmittingAccept:!0,errorMessage:null});try{let s=t.purposes.map(p=>{let d=p.data_elements.filter(l=>l.enabled).map(l=>({uuid:l.uuid,name:l.name,enabled:l.enabled,required:l.required,selected:e.selectedDataElements[`${p.uuid}-${l.uuid}`]||!1}));return{uuid:p.uuid,name:p.name,description:p.description,selected:e.selectedPurposes[p.uuid]||!1,data_elements:d}});await je({accessToken:this.options.accessToken,baseUrl:this.options.baseUrl,noticeUuid:e.content.detail.uuid,purposes:s,declined:!1,meta_data:this.options.applicationId?{specific_uuid:this.options.applicationId}:void 0,guardianVerificationReference:e.verificationReference||void 0,selfDeclaredAdult:e.selfDeclaredAdult||void 0,signal:this.abortController.signal}),this.options.onAccept(),this.destroy()}catch(s){if(s.name==="AbortError")return;let p=s,d=p.status===409?"You have already provided consent.":p.status&&p.status>=500?"Server error: Please try again later.":p.message||"Failed to submit consent.";this.store.setState({errorMessage:d,isSubmitting:!1,isSubmittingAccept:!1}),(n=(a=this.options).onError)==null||n.call(a,p)}}}handleDecline(){this.store.getState().isSubmitting||(this.stopPolling(),ee(),this.options.onDecline(),this.destroy())}updateCheckboxes(e){if(this.purposeRefs)for(let[t,o]of this.purposeRefs.checkboxes)t in e.selectedPurposes?o.checked=e.selectedPurposes[t]||!1:o.checked=e.selectedDataElements[t]||!1;this.updateAcceptButtonState(e)}areAllRequiredChecked(e){var o,a;let t=(o=e.content)==null?void 0:o.detail.active_config;return(a=t==null?void 0:t.purposes)!=null&&a.length?t.purposes.every(n=>{let s=n.data_elements.filter(p=>p.required&&p.enabled);return s.length===0?!0:s.every(p=>e.selectedDataElements[`${n.uuid}-${p.uuid}`])}):!1}updateAcceptButtonState(e){if(!this.acceptBtn||e.isFullyConsentedReviewMode)return;let o=!this.areAllRequiredChecked(e)||e.isSubmittingAccept||e.isSubmittingDecline;this.acceptBtn.disabled=o,this.acceptBtn.style.opacity=o?"0.5":"1",this.acceptBtn.style.cursor=o?"not-allowed":"pointer"}updateCollapseState(e){let t=o=>{var a,n;if(o)for(let[s,p]of o.dataElementContainers){let d=(a=e.content)==null?void 0:a.detail.active_config,l=d==null?void 0:d.purposes.find(h=>h.uuid===s),c=e.collapsedPurposes[s];p.style.display=!c&&((n=l==null?void 0:l.data_elements)!=null&&n.length)?"flex":"none";let u=o.chevrons.get(s);u&&(u.style.transform=c?"rotate(0deg)":"rotate(90deg)");let v=o.collapseButtons.get(s);v&&v.setAttribute("aria-expanded",String(!c))}};t(this.purposeRefs),t(this.alreadyConsentedPurposeRefs)}updateErrorMessage(e){this.errorEl&&(e.errorMessage?(this.errorEl.textContent=e.errorMessage,this.errorEl.style.display="block"):this.errorEl.style.display="none")}handleAgeVerificationYes(){this.store.setState({isMinorFlow:!1,selfDeclaredAdult:!0,showAgeVerification:!1})}handleAgeVerificationNo(){this.store.setState({showAgeVerification:!1,showGuardianForm:!0})}async handleGuardianFormSubmit(){let e=this.store.getState(),t=ot(e.guardianFormData);if(Object.keys(t).length>0){this.guardianFormRefs&&(t.guardianName&&(this.guardianFormRefs.nameError.textContent=t.guardianName,this.guardianFormRefs.nameError.style.display="block"),t.guardianContact&&(this.guardianFormRefs.contactError.textContent=t.guardianContact,this.guardianFormRefs.contactError.style.display="block"),t.guardianRelationship&&(this.guardianFormRefs.relationshipError.textContent=t.guardianRelationship,this.guardianFormRefs.relationshipError.style.display="block"));return}this.store.setState({isInitiatingVerification:!0});let o=this.options.digilockerMode||"redirect",a=o==="popup"?new URL(this.options.digilockerCallbackUrl||"/digilocker-callback",window.location.origin).href:void 0;try{let n=await Qe({accessToken:this.options.accessToken,baseUrl:this.options.baseUrl,guardianName:e.guardianFormData.guardianName,guardianContact:e.guardianFormData.guardianContact,guardianRelationship:e.guardianFormData.guardianRelationship,frontendCallbackUrl:a});if(n.already_verified&&n.verification_reference){this.store.setState({verificationReference:n.verification_reference,showGuardianForm:!1,showVerificationScreen:!0,isInitiatingVerification:!1,isVerificationComplete:!0}),setTimeout(()=>{this.store.setState({showVerificationScreen:!1,isVerificationComplete:!1})},1e3);return}if(Te({flowState:"digilocker-pending",sessionToken:n.session_token,guardianInfoUuid:n.guardian_info_uuid,selectedPurposes:e.selectedPurposes,selectedDataElements:e.selectedDataElements,timestamp:new Date().toISOString(),originalUrl:window.location.href,noticeId:this.options.noticeId,baseUrl:this.options.baseUrl}),this.store.setState({showGuardianForm:!1,showVerificationScreen:!0,isInitiatingVerification:!0,isPollingStatus:!1}),o==="popup"&&n.digilocker_redirect_url){let s=window.open(n.digilocker_redirect_url,"digilocker_verification","width=600,height=700,scrollbars=yes,resizable=yes");if(s)this.verificationPopup=s,this.startPopupMonitoring(s);else{this.store.setState({isInitiatingVerification:!1,verificationError:"Popup blocked. Please allow popups for this site.",canRetryVerification:!0});return}}else if(n.digilocker_redirect_url){let s=window.open(n.digilocker_redirect_url,"_blank");if(!s){this.store.setState({isInitiatingVerification:!1,verificationError:"Unable to open DigiLocker. Please allow popups.",canRetryVerification:!0});return}try{s.opener=null}catch{}}this.store.setState({isInitiatingVerification:!1,isPollingStatus:!0}),this.startStatusPolling(n.session_token)}catch(n){this.store.setState({isInitiatingVerification:!1});let s=n;this.guardianFormRefs&&(this.guardianFormRefs.generalError.textContent=s.message||"Failed to initiate verification.",this.guardianFormRefs.generalError.style.display="block")}}startStatusPolling(e){this.verificationSessionToken=e;let t=0,o=0,a=!1,n=40,s=3,p=3e3,d=async()=>{var l;if(!a){if(t++,t>n){this.stopPolling(),this.store.setState({verificationError:"Verification is taking longer than expected. Please try again.",verificationErrorCode:"SESSION_EXPIRED",canRetryVerification:!0,isPollingStatus:!1});return}try{let c=await be({accessToken:this.options.accessToken,baseUrl:this.options.baseUrl,sessionToken:e});if(o=0,c.status==="verified"){this.stopPolling();let u=c.verification_reference||((l=c.guardian_details)==null?void 0:l.verification_reference);if(!u){this.store.setState({verificationError:"Verification completed but no reference received. Please try again.",canRetryVerification:!0,isPollingStatus:!1});return}this.store.setState({verificationReference:u,isVerificationComplete:!0,isPollingStatus:!1}),ee();return}if(c.status==="failed"||c.status==="expired"){this.stopPolling(),this.store.setState({verificationError:nt(c.error_code,c.error),verificationErrorCode:c.error_code,canRetryVerification:c.can_retry,isPollingStatus:!1});return}a||(this.statusPollTimeout=setTimeout(d,p))}catch(c){let u=c;if(u.status===404||u.status===410){this.stopPolling(),this.store.setState({verificationError:"Verification session not found or expired.",verificationErrorCode:"SESSION_EXPIRED",canRetryVerification:!0,isPollingStatus:!1});return}if(o++,o>=s){this.stopPolling(),this.store.setState({verificationError:u.message||"Unable to check verification status.",canRetryVerification:!0,isPollingStatus:!1});return}this.statusPollTimeout=setTimeout(d,p)}}};this.visibilityChangeHandler=()=>{document.hidden?(a=!0,this.statusPollTimeout&&(clearTimeout(this.statusPollTimeout),this.statusPollTimeout=null)):(a=!1,d())},document.addEventListener("visibilitychange",this.visibilityChangeHandler),this.statusPollTimeout=setTimeout(d,p)}stopPolling(){var e;this.statusPollTimeout&&(clearTimeout(this.statusPollTimeout),this.statusPollTimeout=null),this.popupCheckInterval&&(clearInterval(this.popupCheckInterval),this.popupCheckInterval=null),this.visibilityChangeHandler&&(document.removeEventListener("visibilitychange",this.visibilityChangeHandler),this.visibilityChangeHandler=null),(e=this.verificationPopup)==null||e.close(),this.verificationPopup=null}startPopupMonitoring(e){this.popupCheckInterval=setInterval(()=>{e.closed&&this.popupCheckInterval&&(clearInterval(this.popupCheckInterval),this.popupCheckInterval=null)},500)}handleVerificationContinue(){this.store.setState({showVerificationScreen:!1,isVerificationComplete:!1})}handleVerificationRetry(){this.store.setState({showVerificationScreen:!1,showGuardianForm:!0,verificationError:null,verificationErrorCode:null,canRetryVerification:!1,isVerificationComplete:!1})}handleChangeGuardian(){this.store.setState({showVerificationScreen:!1,showGuardianForm:!0,verificationError:null,verificationErrorCode:null,canRetryVerification:!1,isVerificationComplete:!1,guardianFormData:{guardianName:"",guardianContact:"",guardianRelationship:""}})}updateTTSButton(){var e,t,o;if(this.ttsButton&&this.ttsManager.isAvailable){this.ttsButton.style.display="flex",X(this.ttsButton);let a=((o=(t=(e=this.options.settings)==null?void 0:e.button)==null?void 0:t.language)==null?void 0:o.textColor)||"currentColor";if(this.ttsManager.isPlaying){let n=P("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:a,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},P("rect",{x:"6",y:"4",width:"4",height:"16"}),P("rect",{x:"14",y:"4",width:"4",height:"16"}));this.ttsButton.appendChild(n),this.ttsButton.setAttribute("aria-label","Pause audio playback"),this.ttsButton.setAttribute("title","Pause Talkback")}else{let n=P("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:a,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},P("polygon",{points:"11 5 6 9 2 9 2 15 6 15 11 19 11 5"}),P("path",{d:"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07"}));this.ttsButton.appendChild(n),this.ttsButton.setAttribute("aria-label",this.ttsManager.isPaused?"Resume audio playback":"Start audio playback"),this.ttsButton.setAttribute("title",this.ttsManager.isPaused?"Resume Talkback":"Start Talkback")}}}updateButtonStates(e){var t;if(this.acceptBtn)if(e.isSubmittingAccept)this.acceptBtn.textContent="Submitting...",this.acceptBtn.disabled=!0,this.acceptBtn.style.opacity="0.7",this.acceptBtn.style.cursor="not-allowed";else{let o=(t=e.content)==null?void 0:t.detail.active_config;this.acceptBtn.textContent=e.isFullyConsentedReviewMode?this.options.reviewModeButtonText||"Continue":this.getTranslatedText("confirm_button_text",(o==null?void 0:o.confirm_button_text)||"Accept"),this.acceptBtn.disabled=!1,this.acceptBtn.style.opacity="1",this.acceptBtn.style.cursor="pointer"}this.declineBtn&&(this.declineBtn.disabled=e.isSubmitting,this.declineBtn.style.opacity=e.isSubmitting?"0.7":"1",this.declineBtn.style.cursor=e.isSubmitting?"not-allowed":"pointer")}};var W={optionItem:{display:"flex",justifyContent:"space-between",alignItems:"center",margin:0,padding:0,boxSizing:"border-box"},optionLeft:{display:"flex",gap:"12px",alignItems:"center",cursor:"pointer",margin:0,padding:0,boxSizing:"border-box"},optionTextContainer:{display:"flex",flexDirection:"column",margin:0,padding:0,boxSizing:"border-box"},optionTitle:{fontWeight:500,fontSize:"16px",lineHeight:"150%",letterSpacing:"0.2px",color:"#101828",margin:0,padding:0,textAlign:"left"},optionDescription:{fontWeight:400,fontSize:"12px",lineHeight:"150%",letterSpacing:"0.2px",color:"#475467",verticalAlign:"middle",margin:0,padding:0,textAlign:"left"},checkboxLarge:{height:"20px",width:"20px",padding:"4px",borderRadius:"5px",border:"2px solid #d0d5dd",margin:0,boxSizing:"border-box",appearance:"none",WebkitAppearance:"none",MozAppearance:"none",cursor:"pointer",position:"relative",backgroundColor:"transparent"},dataElementsContainer:{marginLeft:"27px",display:"flex",flexDirection:"column",margin:0,padding:0,boxSizing:"border-box",paddingLeft:"22px"},dataElementItem:{display:"flex",alignItems:"center",gap:"10px",justifyContent:"space-between",margin:0,padding:0,boxSizing:"border-box",minHeight:"24px"},dataElementText:{fontWeight:400,fontSize:"14px",lineHeight:"150%",letterSpacing:"0.2px",color:"#344054",margin:0,padding:0,textAlign:"left"},checkboxSmall:{height:"16px",width:"16px",padding:"4px",borderRadius:"5px",border:"2px solid #d0d5dd",margin:0,boxSizing:"border-box",appearance:"none",WebkitAppearance:"none",MozAppearance:"none",cursor:"pointer",position:"relative",backgroundColor:"transparent"},loadingContainer:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"2rem",minHeight:"200px",margin:0,boxSizing:"border-box"},loadingSpinner:{width:"40px",height:"40px",border:"4px solid #f3f3f3",borderTop:"4px solid #3498db",borderRadius:"50%",animation:"spin 1s linear infinite",marginBottom:"1rem",boxSizing:"border-box"}};function at(i,e){var A;let{selectedPurposes:t,collapsedPurposes:o,selectedDataElements:a,settings:n,isMobile:s,getTranslatedText:p,onPurposeToggle:d,onPurposeCollapse:l,onDataElementToggle:c}=e,u=new Map,v=new Map,h=new Map,y=new Map,f=new Map,x=new Map,C=new Map,T=(n==null?void 0:n.headingColor)||"#101828",m=(n==null?void 0:n.textColor)||"#344054",M=r("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}});for(let b of i){let k=r("div"),L=P("svg",{width:"7",height:"12",viewBox:"0 0 7 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:(n==null?void 0:n.headingColor)||"#323B4B","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",style:{transform:o[b.uuid]?"rotate(0deg)":"rotate(90deg)",transition:"transform 0.3s ease"},"aria-hidden":"true"},P("path",{d:"M1 1L6 6L1 11"}));y.set(b.uuid,L);let V=r("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",marginLeft:"5px"}},L),E=r("h2",{style:{...W.optionTitle,fontSize:s?"14px":"16px",color:T}});E.textContent=p("purposes.name",b.name,b.uuid),f.set(b.uuid,E);let U=r("h3",{style:{...W.optionDescription,fontSize:s?"11px":"12px",color:m}});U.textContent=p("purposes.description",b.description,b.uuid),x.set(b.uuid,U);let w=r("div",{style:W.optionTextContainer},E,U),B=r("div",{style:W.optionLeft,role:"button",tabIndex:"0","aria-expanded":String(!o[b.uuid]),"aria-controls":`purpose-${b.uuid}`,"aria-label":`${o[b.uuid]?"Expand":"Collapse"} ${p("purposes.name",b.name,b.uuid)} details`,onClick:()=>l(b.uuid),onKeydown:F=>{(F.key==="Enter"||F.key===" ")&&(F.preventDefault(),l(b.uuid))}},V,w);v.set(b.uuid,B);let I=r("input",{type:"checkbox",checked:t[b.uuid]||!1,"aria-label":`Select all data elements for ${p("purposes.name",b.name,b.uuid)}`,onChange:()=>d(b.uuid)});u.set(b.uuid,I);let z=r("div",{style:W.optionItem},B,I),N=r("div",{id:`purpose-${b.uuid}`,style:W.dataElementsContainer});if(b.data_elements&&b.data_elements.length>0)for(let F of b.data_elements){let G=`${b.uuid}-${F.uuid}`,j=r("span",{style:{...W.dataElementText,fontSize:s?"12px":"14px",color:m}});if(j.textContent=p("data_elements.name",F.name,F.uuid),C.set(G,j),F.required){let _=r("span",{style:{color:"red",marginLeft:"4px"},"aria-label":"required"});_.textContent="*",j.appendChild(_)}let O=r("input",{type:"checkbox",checked:a[G]||!1,"aria-label":`Select ${p("data_elements.name",F.name,F.uuid)}${F.required?" (required)":""}`,onChange:()=>c(F.uuid,b.uuid)});u.set(G,O);let S=r("div",{style:W.dataElementItem},j,O);N.appendChild(S)}h.set(b.uuid,N),!o[b.uuid]&&((A=b.data_elements)==null?void 0:A.length)>0?N.style.display="flex":N.style.display="none",k.appendChild(z),k.appendChild(N),M.appendChild(k)}return{container:M,checkboxes:u,collapseButtons:v,dataElementContainers:h,chevrons:y,titleElements:f,descriptionElements:x,dataElementLabels:C}}var ve=class{constructor(e){this.targetEl=null;this.rootEl=null;this.purposeRefs=null;this.errorEl=null;this.hasSubmitted=!1;this.unsubscribe=null;this.options=e,this.store=new ie({content:null,isLoading:!0,isSubmitting:!1,selectedLanguage:e.language||"en",collapsedPurposes:{},selectedPurposes:{},selectedDataElements:{},hasAlreadyConsented:!1,fetchError:null,errorMessage:null}),this.mediaQuery=he("(max-width: 768px)")}async init(){if(ae(),typeof this.options.target=="string"){if(this.targetEl=document.querySelector(this.options.target),!this.targetEl)throw new Error(`Target element not found: ${this.options.target}`)}else this.targetEl=this.options.target;this.unsubscribe=this.store.subscribe((e,t)=>{this.handleStateChange(e,t)}),this.mediaQuery.subscribe(()=>this.rebuildUI()),this.renderLoading(),await this.fetchNotice()}destroy(){var e;(e=this.unsubscribe)==null||e.call(this),this.mediaQuery.destroy(),this.store.destroy(),this.targetEl&&this.rootEl&&this.targetEl.removeChild(this.rootEl),this.rootEl=null,this.purposeRefs=null}updateToken(e){this.options={...this.options,accessToken:e},this.tryAutoSubmit()}async fetchNotice(){var e,t,o,a;this.store.setState({isLoading:!0,fetchError:null});try{let s=(await qe({org_uuid:this.options.org_uuid,workspace_uuid:this.options.workspace_uuid,notice_uuid:this.options.notice_uuid,baseUrl:this.options.baseUrl,language:this.options.language,specific_uuid:this.options.applicationId})).detail.active_config,p={},d={},l={};for(let c of s.purposes){p[c.uuid]=!0,d[c.uuid]=!1;for(let u of c.data_elements)l[`${c.uuid}-${u.uuid}`]=!1}this.store.setState({content:s,isLoading:!1,selectedLanguage:s.default_language||this.options.language||"en",collapsedPurposes:p,selectedPurposes:d,selectedDataElements:l})}catch(n){let s=n;s.status===409?(this.store.setState({hasAlreadyConsented:!0,isLoading:!1}),(t=(e=this.options).onAccept)==null||t.call(e)):(this.store.setState({fetchError:s,isLoading:!1}),(a=(o=this.options).onError)==null||a.call(o,s))}}handleStateChange(e,t){if(t.isLoading&&!e.isLoading&&e.content&&this.rebuildUI(),e.hasAlreadyConsented||e.fetchError){this.rootEl&&this.targetEl&&(this.targetEl.removeChild(this.rootEl),this.rootEl=null);return}(e.selectedPurposes!==t.selectedPurposes||e.selectedDataElements!==t.selectedDataElements)&&(this.updateCheckboxes(e),this.notifyValidation(e),this.tryAutoSubmit()),e.collapsedPurposes!==t.collapsedPurposes&&this.updateCollapseState(e),e.errorMessage!==t.errorMessage&&this.updateErrorMessage(e)}renderLoading(){var t;if(!this.targetEl)return;let e=((t=this.options.settings)==null?void 0:t.textColor)||"#344054";this.rootEl=r("div",{style:W.loadingContainer},r("div",{style:W.loadingSpinner}),r("p",{style:{fontSize:"16px",fontWeight:400,color:e}},"Loading...")),this.targetEl.appendChild(this.rootEl)}rebuildUI(){let e=this.store.getState();!e.content||!this.targetEl||(this.rootEl&&this.targetEl.contains(this.rootEl)&&this.targetEl.removeChild(this.rootEl),this.errorEl=r("div",{role:"alert",style:{backgroundColor:"#FEE2E2",color:"#DC2626",padding:"12px",borderRadius:"6px",fontSize:"14px",border:"1px solid #FCA5A5",display:e.errorMessage?"block":"none"}}),e.errorMessage&&(this.errorEl.textContent=e.errorMessage),this.purposeRefs=at(e.content.purposes,{selectedPurposes:e.selectedPurposes,collapsedPurposes:e.collapsedPurposes,selectedDataElements:e.selectedDataElements,settings:this.options.settings,isMobile:this.mediaQuery.matches,getTranslatedText:(t,o,a)=>this.getTranslatedText(t,o,a),onPurposeToggle:t=>this.handlePurposeCheckboxChange(t),onPurposeCollapse:t=>this.togglePurposeCollapse(t),onDataElementToggle:(t,o)=>this.handleDataElementCheckboxChange(t,o)}),this.rootEl=r("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},this.errorEl,this.purposeRefs.container),this.targetEl.appendChild(this.rootEl),this.notifyValidation(e))}getTranslatedText(e,t,o){var c,u;let a=this.store.getState(),n=a.content;if(!n)return t;let s=a.selectedLanguage;if(s==="English"||s==="en"||s==="EN")return e==="privacy_policy_anchor_text"&&n.privacy_policy_anchor_text?n.privacy_policy_anchor_text:t;let p=n.supported_languages_and_translations;if(!p)return t;let d=p[s];if(!d)return t;if(o){if(e==="purposes.name"||e==="purposes.description"){let v=(c=d.purposes)==null?void 0:c[o];return v?typeof v=="string"?e==="purposes.name"?v:t:e==="purposes.name"?v.name||t:v.description||t:t}if(e.startsWith("data_elements."))return((u=d.data_elements)==null?void 0:u[o])||t}let l=d[e];return typeof l=="string"&&l?l:t}togglePurposeCollapse(e){let t=this.store.getState();this.store.setState({collapsedPurposes:{...t.collapsedPurposes,[e]:!t.collapsedPurposes[e]}})}handlePurposeCheckboxChange(e){let t=this.store.getState(),o=t.content;if(!o)return;let a=o.purposes.find(p=>p.uuid===e);if(!a)return;let n=!t.selectedPurposes[e],s={...t.selectedDataElements};for(let p of a.data_elements)s[`${e}-${p.uuid}`]=n;this.store.setState({selectedPurposes:{...t.selectedPurposes,[e]:n},selectedDataElements:s})}handleDataElementCheckboxChange(e,t){let o=this.store.getState(),a=o.content;if(!a)return;let n=a.purposes.find(u=>u.uuid===t);if(!n)return;let s=`${t}-${e}`,p=!o.selectedDataElements[s],d={...o.selectedDataElements,[s]:p},l=n.data_elements.filter(u=>u.required),c;l.length>0?c=l.every(u=>d[`${t}-${u.uuid}`]):c=n.data_elements.some(u=>d[`${t}-${u.uuid}`]),this.store.setState({selectedDataElements:d,selectedPurposes:{...o.selectedPurposes,[t]:c}})}updateCheckboxes(e){if(this.purposeRefs)for(let[t,o]of this.purposeRefs.checkboxes)t in e.selectedPurposes?o.checked=e.selectedPurposes[t]||!1:o.checked=e.selectedDataElements[t]||!1}updateCollapseState(e){var t;if(this.purposeRefs)for(let[o,a]of this.purposeRefs.dataElementContainers){let n=this.store.getState().content,s=n==null?void 0:n.purposes.find(c=>c.uuid===o),p=e.collapsedPurposes[o];a.style.display=!p&&((t=s==null?void 0:s.data_elements)!=null&&t.length)?"flex":"none";let d=this.purposeRefs.chevrons.get(o);d&&(d.style.transform=p?"rotate(0deg)":"rotate(90deg)");let l=this.purposeRefs.collapseButtons.get(o);l&&l.setAttribute("aria-expanded",String(!p))}}updateErrorMessage(e){this.errorEl&&(e.errorMessage?(this.errorEl.textContent=e.errorMessage,this.errorEl.style.display="block"):this.errorEl.style.display="none")}areAllRequiredElementsChecked(){let e=this.store.getState(),t=e.content;return t?t.purposes.every(o=>o.data_elements.filter(n=>n.required).every(n=>e.selectedDataElements[`${o.uuid}-${n.uuid}`])):!1}notifyValidation(e){var o,a;let t=this.areAllRequiredElementsChecked();(a=(o=this.options).onValidationChange)==null||a.call(o,t)}async tryAutoSubmit(){var o,a;let e=this.store.getState(),t=this.options.accessToken;if(t&&e.content&&this.areAllRequiredElementsChecked()&&!e.isSubmitting&&!this.hasSubmitted){this.hasSubmitted=!0;try{await this.handleSubmit(t)}catch(n){this.hasSubmitted=!1,(a=(o=this.options).onError)==null||a.call(o,n)}}}async handleSubmit(e){var a,n;let t=this.store.getState(),o=t.content;if(!e||!o)throw this.store.setState({errorMessage:"Unable to submit consent. Please try again."}),new Error("Access token or content not available");try{this.store.setState({isSubmitting:!0,errorMessage:null}),await We({org_uuid:this.options.org_uuid,workspace_uuid:this.options.workspace_uuid,accessToken:e,baseUrl:this.options.baseUrl,noticeUuid:o.notice_uuid,purposes:o.purposes.map(s=>{let p=s.data_elements.some(c=>c.required&&(t.selectedDataElements[`${s.uuid}-${c.uuid}`]||!1)),d=s.data_elements.some(c=>t.selectedDataElements[`${s.uuid}-${c.uuid}`]||!1),l=t.selectedPurposes[s.uuid]||p||d;return{...s,selected:l,data_elements:s.data_elements.map(c=>({...c,selected:t.selectedDataElements[`${s.uuid}-${c.uuid}`]||!1}))}}),declined:!1,meta_data:this.options.applicationId?{specific_uuid:this.options.applicationId}:void 0}),(n=(a=this.options).onAccept)==null||n.call(a),this.hasSubmitted=!1}catch(s){let p=s,d=p.status===500?"An error occurred while submitting your consent. Please try again later.":p.message||"Failed to submit consent. Please try again.";throw this.store.setState({errorMessage:d}),this.hasSubmitted=!1,s}finally{this.store.setState({isSubmitting:!1})}}};function st(i){switch(i){case"GUARDIAN_UNDER_18":return"Guardian verification failed: The guardian must be 18 years or older.";case"SESSION_EXPIRED":return"Verification session has expired. Please restart the verification process.";case"TOKEN_FAILED":return"DigiLocker authentication failed. Please try again.";case"DIGILOCKER_AUTH_FAILED":return"DigiLocker authorization was cancelled or failed. Please try again.";case"NO_AUTH_CODE":return"Missing authorization code from DigiLocker. Please try again.";default:return"Verification failed. Please try again."}}function lt(i){var M,A,b;ae();let e=new URLSearchParams(window.location.search),t=e.get("session_token"),o=e.get("status"),a=e.get("verification_reference"),n=e.get("error_code"),s=de(),p=(s==null?void 0:s.originalUrl)||"/",d=s==null?void 0:s.baseUrl,l=s==null?void 0:s.sessionToken,c=t||l,u=i.baseUrl||d,v=!1;try{v=window.self!==window.top}catch{v=!0}let h=r("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"200px",padding:"32px",fontFamily:"system-ui, -apple-system, sans-serif"}}),y=r("p",{style:{fontSize:"16px",fontWeight:600,color:"#101828",textAlign:"center"}});y.textContent="Processing verification...";let f=r("div",{style:{width:"40px",height:"40px",border:"4px solid #f3f3f3",borderTop:"4px solid #3498db",borderRadius:"50%",animation:"spin 1s linear infinite",marginBottom:"16px"}});h.appendChild(f),h.appendChild(y),document.body.appendChild(h);let x=(k,L)=>{Xe({verificationResult:k,verificationReference:L,flowState:k==="verified"?"consent-form":"error"}),y.textContent=k==="verified"?"Verification successful! Redirecting...":"Verification failed. Redirecting...",f.style.display="none",setTimeout(()=>{window.location.href=p},1500)};if(o==="verified"&&a){if(v&&window.parent){window.parent.postMessage({type:"DIGILOCKER_VERIFICATION_STATUS",status:"verified",verificationReference:a},window.location.origin),y.textContent="Verification successful!",f.style.display="none";return}(M=i.onSuccess)==null||M.call(i,a),x("verified",a);return}if(o==="failed"||o==="expired"){let k=st(n);if(v&&window.parent){window.parent.postMessage({type:"DIGILOCKER_VERIFICATION_STATUS",status:o,errorCode:n,error:k},window.location.origin),y.textContent=k,y.style.color="#DC2626",f.style.display="none";return}(A=i.onError)==null||A.call(i,new Error(k),n||void 0),x(o);return}if(!c){y.textContent="No verification session found.",y.style.color="#DC2626",f.style.display="none",(b=i.onError)==null||b.call(i,new Error("No session token available"));return}let C=0,T=3,m=async()=>{var k,L,V,E,U;try{let w=await be({accessToken:i.accessToken,baseUrl:u,sessionToken:c});if(w.status==="verified"){let I=w.verification_reference||((k=w.guardian_details)==null?void 0:k.verification_reference);if(v&&window.parent){window.parent.postMessage({type:"DIGILOCKER_VERIFICATION_STATUS",status:"verified",verificationReference:I},window.location.origin),y.textContent="Verification successful!",f.style.display="none";return}I&&((L=i.onSuccess)==null||L.call(i,I)),x("verified",I||void 0);return}if(w.status==="failed"||w.status==="expired"){let I=kt(w.error_code,w.error);if(v&&window.parent){window.parent.postMessage({type:"DIGILOCKER_VERIFICATION_STATUS",status:w.status,errorCode:w.error_code,error:I},window.location.origin),y.textContent=I,y.style.color="#DC2626",f.style.display="none";return}(V=i.onError)==null||V.call(i,new Error(I),w.error_code||void 0),x(w.status);return}if(C++,C>T){let I="Verification is taking too long. Please return to the original page.";y.textContent=I,y.style.color="#DC2626",f.style.display="none",(E=i.onError)==null||E.call(i,new Error(I)),x("failed");return}let B=3e3*Math.pow(2,C-1);y.textContent="Still processing... Please wait.",setTimeout(m,B)}catch(w){if(C++,C>T){let I=w.message||"Failed to check verification status.";y.textContent=I,y.style.color="#DC2626",f.style.display="none",(U=i.onError)==null||U.call(i,w),x("failed");return}let B=3e3*Math.pow(2,C-1);setTimeout(m,B)}};setTimeout(m,3e3)}function kt(i,e){return st(i)||e||"Verification failed. Please try again."}var ce=null,Y=null;function dt(i){Re(),ce=new xe(i),ce.init().catch(e=>{var t;(t=i.onError)==null||t.call(i,e)})}function ct(i){Y&&(Y.destroy(),Y=null),Y=new ve(i),Y.init().catch(e=>{var t;(t=i.onError)==null||t.call(i,e)})}function Re(){ce&&(ce.destroy(),ce=null),Y&&(Y.destroy(),Y=null)}function pt(i){lt(i)}var _t={init:dt,inline:ct,destroy:Re,digilockerCallback:pt,version:"0.1.0"},Tt=_t;return vt(Pt);})();
|
|
131
|
+
`,ae=n=>{if(typeof document=="undefined"||(n instanceof Document?n.getElementById(Se):n.querySelector(`#${Se}`)))return;let t=document.createElement("style");t.id=Se,t.textContent=Tt,n instanceof Document?n.head.appendChild(t):n.appendChild(t)};var g={overlay:{position:"fixed",top:0,left:0,width:"100%",height:"100%",backgroundColor:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:999,animation:"overlayFadeIn 0.2s cubic-bezier(0.16, 1, 0.3, 1)",pointerEvents:"all",margin:0,padding:0,boxSizing:"border-box"},modal:{position:"fixed",top:"50%",left:"50%",transform:"translate(-50%, -50%)",width:"700px",borderRadius:"8px",backgroundColor:"#ffffff",boxShadow:"4px 0px 4px 0px #00000040",border:"none",display:"flex",flexDirection:"column",maxHeight:"90vh",zIndex:1e3,margin:0,padding:0,boxSizing:"border-box",textAlign:"left",fontFamily:"inherit"},content:{margin:"22px",display:"flex",flexDirection:"column",flexGrow:1,overflow:"hidden",minHeight:0,boxSizing:"border-box",textAlign:"left"},topSection:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:"10px",paddingBottom:"15px",borderBottom:"none",backgroundColor:"#ffffff",margin:0,boxSizing:"border-box",textAlign:"left"},topLeft:{display:"flex",alignItems:"center",gap:"10px",flex:"1 1 0",minWidth:0,margin:0,padding:0,boxSizing:"border-box"},logo:{height:"32px",width:"auto",maxWidth:"140px",objectFit:"contain",flexShrink:0,margin:0,padding:0,display:"block"},title:{fontSize:"18px",fontWeight:700,lineHeight:"150%",letterSpacing:"0.2px",verticalAlign:"middle",color:"#101828",flex:"1 1 auto",minWidth:0,wordBreak:"normal",overflowWrap:"anywhere",margin:0,padding:0,textAlign:"left"},topRight:{borderRadius:"8px",padding:"3px 9px",border:"1px solid #d0d5dd",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,fontWeight:400,fontSize:"12px",lineHeight:"150%",letterSpacing:"0.2px",verticalAlign:"middle",color:"#344054",gap:"5px",margin:0,boxSizing:"border-box",textAlign:"left",cursor:"pointer",backgroundColor:"#ffffff"},middleSection:{margin:"0px",display:"flex",flexDirection:"column",gap:"12px",flexGrow:1,overflowY:"auto",minHeight:0,paddingRight:"15px",boxSizing:"border-box",textAlign:"left"},privacyText:{fontSize:"16px",fontWeight:400,lineHeight:"150%",color:"#344054",margin:0,padding:0,textAlign:"left"},link:{color:"#4f87ff",textDecoration:"none",margin:0,padding:0,boxSizing:"border-box"},subTitle:{fontWeight:600,fontSize:"16px",lineHeight:"150%",letterSpacing:"0.2px",color:"#101828",margin:0,padding:0,textAlign:"left"},optionsContainer:{display:"flex",flexDirection:"column",gap:"10px",margin:0,padding:0,boxSizing:"border-box"},optionItem:{display:"flex",justifyContent:"space-between",alignItems:"center",margin:0,padding:0,boxSizing:"border-box"},optionLeft:{display:"flex",gap:"12px",alignItems:"center",cursor:"pointer",margin:0,padding:0,boxSizing:"border-box"},optionTextContainer:{display:"flex",flexDirection:"column",margin:0,padding:0,boxSizing:"border-box"},optionTitle:{fontWeight:500,fontSize:"16px",lineHeight:"150%",letterSpacing:"0.2px",color:"#101828",margin:0,padding:0,textAlign:"left"},optionDescription:{fontWeight:400,fontSize:"12px",lineHeight:"150%",letterSpacing:"0.2px",color:"#475467",verticalAlign:"middle",margin:0,padding:0,textAlign:"left"},checkboxLarge:{height:"20px",width:"20px",padding:"4px",borderRadius:"5px",border:"2px solid #d0d5dd",margin:0,boxSizing:"border-box",appearance:"none",WebkitAppearance:"none",MozAppearance:"none",cursor:"pointer",position:"relative",backgroundColor:"transparent"},dataElementsContainer:{marginLeft:"27px",display:"flex",flexDirection:"column",margin:0,padding:0,boxSizing:"border-box",paddingLeft:"22px"},dataElementItem:{display:"flex",alignItems:"center",gap:"10px",justifyContent:"space-between",margin:0,padding:0,boxSizing:"border-box",minHeight:"24px"},dataElementText:{fontWeight:400,fontSize:"14px",lineHeight:"150%",letterSpacing:"0.2px",color:"#344054",margin:0,padding:0,textAlign:"left"},checkboxSmall:{height:"16px",width:"16px",padding:"4px",borderRadius:"5px",border:"2px solid #d0d5dd",margin:0,boxSizing:"border-box",appearance:"none",WebkitAppearance:"none",MozAppearance:"none",cursor:"pointer",position:"relative",backgroundColor:"transparent"},bottomSection:{display:"flex",justifyContent:"space-between",gap:"29px",paddingTop:"15px",borderTop:"none",backgroundColor:"#ffffff",margin:0,boxSizing:"border-box"},button:{width:"100%",borderRadius:"8px",padding:"9px 45px",fontWeight:400,fontSize:"16px",lineHeight:"150%",letterSpacing:"0.2px",cursor:"pointer",margin:0,boxSizing:"border-box",textAlign:"center"},acceptButton:{backgroundColor:"#4f87ff",border:"none",color:"#ffffff"},cancelButton:{border:"1px solid #d0d5dd",backgroundColor:"#ffffff",color:"#000000"},languageSelectorContainer:{position:"relative",margin:0,padding:0,boxSizing:"border-box"},languageDropdown:{position:"absolute",top:"100%",right:0,backgroundColor:"#ffffff",border:"1px solid #d0d5dd",borderRadius:"4px",boxShadow:"0px 2px 4px rgba(0, 0, 0, 0.1)",zIndex:10,width:"max-content",maxHeight:"200px",overflowY:"auto",marginTop:"4px",padding:0,boxSizing:"border-box",textAlign:"left"},languageItem:{padding:"8px 12px",cursor:"pointer",fontSize:"12px",color:"#344054",backgroundColor:"#ffffff",borderBottom:"1px solid #e5e7eb",margin:0,boxSizing:"border-box",textAlign:"left"},selectedLanguageItem:{backgroundColor:"#f3f4f6",fontWeight:600},loadingContainer:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"2rem",minHeight:"200px",margin:0,boxSizing:"border-box"},loadingSpinner:{width:"40px",height:"40px",border:"4px solid #f3f3f3",borderTop:"4px solid #3498db",borderRadius:"50%",animation:"spin 1s linear infinite",marginBottom:"1rem",boxSizing:"border-box"}};function we(n,e){var I,B;let{selectedPurposes:t,collapsedPurposes:o,selectedDataElements:r,initialDataElementSelections:i={},settings:s,isMobile:p,isAlreadyConsented:d,getTranslatedText:l,onPurposeToggle:c,onPurposeCollapse:u,onDataElementToggle:x}=e,f=new Map,b=new Map,h=new Map,y=new Map,S=new Map,_=new Map,m=new Map,A=(s==null?void 0:s.headingColor)||"#323B4B",L=(s==null?void 0:s.textColor)||"#344054",v=(s==null?void 0:s.font)||"inherit",w=a("div",{style:g.optionsContainer});for(let E of n){let D=a("div"),k=R("svg",{width:"7",height:"12",viewBox:"0 0 7 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:A,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",style:{transform:o[E.uuid]?"rotate(0deg)":"rotate(90deg)",transition:"transform 0.3s ease"},"aria-hidden":"true"},R("path",{d:"M1 1L6 6L1 11"}));y.set(E.uuid,k);let H=a("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",marginLeft:"5px"}},k),M=a("h2",{id:`purpose-name-${E.uuid}`,style:{...g.optionTitle,fontSize:p?"14px":"16px",color:A,fontFamily:v}});M.textContent=l("purposes.name",E.name,E.uuid),S.set(E.uuid,M);let z=a("h3",{id:`purpose-description-${E.uuid}`,style:{...g.optionDescription,fontSize:p?"11px":"12px",color:L,fontFamily:v}});z.textContent=l("purposes.description",E.description,E.uuid),_.set(E.uuid,z);let G=a("div",{style:g.optionTextContainer},M,z),V=a("div",{style:g.optionLeft,role:"button",tabIndex:"0","aria-expanded":String(!o[E.uuid]),"aria-controls":`purpose-${E.uuid}`,"aria-label":`${o[E.uuid]?"Expand":"Collapse"} ${l("purposes.name",E.name,E.uuid)} details`,onClick:()=>u(E.uuid),onKeydown:C=>{(C.key==="Enter"||C.key===" ")&&(C.preventDefault(),u(E.uuid))}},H,G);b.set(E.uuid,V);let N;if(d)N=Je(20,`Already consented to ${l("purposes.name",E.name,E.uuid)}`),he(N,{marginLeft:"12px"});else{let C=a("input",{className:"redacto-checkbox-large",type:"checkbox",checked:t[E.uuid]||!1,"aria-label":`Select all data elements for ${l("purposes.name",E.name,E.uuid)}`,onChange:()=>c(E.uuid)});f.set(E.uuid,C),N=C}let j=a("div",{style:g.optionItem},V,N),O=a("div",{id:`purpose-${E.uuid}`,style:g.dataElementsContainer});if(((I=E.data_elements)==null?void 0:I.length)>0)for(let C of E.data_elements){let T=`${E.uuid}-${C.uuid}`,P=a("span",{id:`data-element-${E.uuid}-${C.uuid}`,style:{...g.dataElementText,fontSize:p?"12px":"14px",color:L,fontFamily:v}});if(P.textContent=l("data_elements.name",C.name,C.uuid),m.set(T,P),C.required){let q=a("span",{style:{color:"red",marginLeft:"4px"},"aria-label":"required"});q.textContent="*",P.appendChild(q)}let $;if(d)i[T]||!1?$=Je(16,`Consented to ${l("data_elements.name",C.name,C.uuid)}`):$=a("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:"16px",height:"16px",borderRadius:"50%",border:"2px solid #d0d5dd",backgroundColor:"transparent"},"aria-label":`Not consented to ${l("data_elements.name",C.name,C.uuid)}`});else{let q=a("input",{className:"redacto-checkbox-small",type:"checkbox",checked:r[T]||!1,"aria-label":`Select ${l("data_elements.name",C.name,C.uuid)}${C.required?" (required)":""}`,onChange:()=>x(C.uuid,E.uuid)});f.set(T,q),$=q}let U=a("div",{style:g.dataElementItem},P,$);O.appendChild(U)}h.set(E.uuid,O),O.style.display=!o[E.uuid]&&((B=E.data_elements)==null?void 0:B.length)>0?"flex":"none",D.appendChild(j),D.appendChild(O),w.appendChild(D)}return{container:w,checkboxes:f,collapseButtons:b,dataElementContainers:h,chevrons:y,titleElements:S,descriptionElements:_,dataElementLabels:m}}function Je(n,e){let t=n===20?12:10,o=n===20?"2":"1.5",r=n===20?"M4 6L5.5 7.5L8.5 4.5":"M3 5L4.5 6.5L7.5 3.5",i=R("svg",{width:String(t),height:String(t),viewBox:`0 0 ${t} ${t}`,fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},R("path",{d:r,stroke:"white","stroke-width":o,"stroke-linecap":"round","stroke-linejoin":"round"}));return a("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",width:`${n}px`,height:`${n}px`,borderRadius:"50%",backgroundColor:"#10B981"},"aria-label":e},i)}var Rt={English:"English",Assamese:"\u0985\u09B8\u09AE\u09C0\u09AF\u09BC\u09BE (Assamese)",Bengali:"\u09AC\u09BE\u0982\u09B2\u09BE (Bengali)",Bhojpuri:"\u092D\u094B\u091C\u092A\u0941\u0930\u0940 (Bhojpuri)",Bodo:"\u092C\u0921\u093C\u094B (Bodo)",Dogri:"\u0921\u094B\u0917\u0930\u0940 (Dogri)","Goan Konkani":"\u0915\u094B\u0902\u0915\u0923\u0940 (Goan Konkani)",Gujarati:"\u0A97\u0AC1\u0A9C\u0AB0\u0ABE\u0AA4\u0AC0 (Gujarati)",Hindi:"\u0939\u093F\u0928\u094D\u0926\u0940 (Hindi)",Kannada:"\u0C95\u0CA8\u0CCD\u0CA8\u0CA1 (Kannada)",Kashmiri:"\u0643\u0672\u0634\u064F\u0631 (Kashmiri)",Maithili:"\u092E\u0948\u0925\u093F\u0932\u0940 (Maithili)",Malayalam:"\u0D2E\u0D32\u0D2F\u0D3E\u0D33\u0D02 (Malayalam)",Manipuri:"\uABC3\uABE9\uABC7\uABE9\uABC2\uABE3\uABDF (Manipuri)",Marathi:"\u092E\u0930\u093E\u0920\u0940 (Marathi)",Nepali:"\u0928\u0947\u092A\u093E\u0932\u0940 (Nepali)",Odia:"\u0B13\u0B21\u0B3C\u0B3F\u0B06 (Odia)",Punjabi:"\u0A2A\u0A70\u0A1C\u0A3E\u0A2C\u0A40 (Punjabi)",Sanskrit:"\u0938\u0902\u0938\u094D\u0915\u0943\u0924\u092E\u094D (Sanskrit)",Santali:"\u1C65\u1C5F\u1C71\u1C5B\u1C5F\u1C72\u1C64 (Santali)",Sindhi:"\u0633\u0646\u068C\u064A (Sindhi)",Tamil:"\u0BA4\u0BAE\u0BBF\u0BB4\u0BCD (Tamil)",Telugu:"\u0C24\u0C46\u0C32\u0C41\u0C17\u0C41 (Telugu)",Urdu:"\u0627\u0631\u062F\u0648 (Urdu)"},ke=n=>{var e;return(e=Rt[n])!=null?e:n};function Xe(n){var m,A,L,v;let{languages:e,selectedLanguage:t,settings:o,onSelect:r,dropdownContainer:i}=n,s=!1,p=a("span");p.textContent=ke(t);let d=R("svg",{width:"8",height:"5",viewBox:"0 0 8 5",fill:"none",xmlns:"http://www.w3.org/2000/svg"},R("path",{d:"M1 1L4 4L7 1",stroke:((A=(m=o==null?void 0:o.button)==null?void 0:m.language)==null?void 0:A.textColor)||"#344054","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})),l={...g.topRight};(L=o==null?void 0:o.button)!=null&&L.language&&(l.backgroundColor=o.button.language.backgroundColor,l.color=o.button.language.textColor);let c=a("div",{style:l,role:"button",tabIndex:"0","aria-haspopup":"listbox","aria-expanded":"false","aria-label":`Language selector, current: ${ke(t)}`,onClick:()=>y(),onKeydown:w=>{w.key==="Enter"||w.key===" "?(w.preventDefault(),y()):w.key==="Escape"&&_()}},p,d),u=a("div",{style:{position:"fixed",backgroundColor:"#ffffff",border:"1px solid #d0d5dd",borderRadius:"4px",boxShadow:"0px 4px 12px rgba(0, 0, 0, 0.15)",zIndex:2147483647,minWidth:"140px",maxHeight:"200px",overflowY:"auto",padding:0,boxSizing:"border-box",textAlign:"left",display:"none"},role:"listbox","aria-label":"Select language"});for(let w of e){let I=w===t,B=I?{...g.languageItem,...g.selectedLanguageItem}:{...g.languageItem};(v=o==null?void 0:o.button)!=null&&v.language&&(I&&o.button.language.selectedBackgroundColor&&(B.backgroundColor=o.button.language.selectedBackgroundColor),I&&o.button.language.selectedTextColor&&(B.color=o.button.language.selectedTextColor));let E=a("div",{style:B,role:"option","aria-selected":String(I),onClick:()=>{r(w),_()},onMouseenter:D=>{D.target.style.backgroundColor="#f3f4f6"},onMouseleave:D=>{D.target.style.backgroundColor=I?"#f3f4f6":"#ffffff"}});E.textContent=ke(w),u.appendChild(E)}let x=a("div",{style:g.languageSelectorContainer},c);i.appendChild(u);function f(){let w=c.getBoundingClientRect();u.style.top=`${w.bottom+4}px`,u.style.right=`${window.innerWidth-w.right}px`,u.style.left="auto"}let b=w=>{var B,E;let I=(E=(B=w.composedPath)==null?void 0:B.call(w))!=null?E:[];if(!(I.includes(x)||I.includes(u))){if(I.length===0){let D=w.target;if(x.contains(D)||u.contains(D))return}_()}},h=()=>{s&&f()};function y(){s?_():S()}function S(){s=!0,f(),u.style.display="block",c.setAttribute("aria-expanded","true"),setTimeout(()=>{document.addEventListener("click",b)},0),window.addEventListener("scroll",h,!0),window.addEventListener("resize",h)}function _(){s=!1,u.style.display="none",c.setAttribute("aria-expanded","false"),document.removeEventListener("click",b),window.removeEventListener("scroll",h,!0),window.removeEventListener("resize",h)}return{container:x,button:c,dropdown:u,buttonText:p}}function le(n,e){let t=o=>{var r;if(o.key==="Escape"){o.preventDefault(),e();return}if(o.key==="Tab"){let i=n.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'),s=Array.from(i).filter(u=>!u.hasAttribute("disabled")&&u.offsetParent!==null);if(s.length===0){o.preventDefault();return}let p=s[0],d=s[s.length-1],c=(r=n.getRootNode().activeElement)!=null?r:document.activeElement;o.shiftKey?c===p&&(o.preventDefault(),d.focus()):c===d&&(o.preventDefault(),p.focus())}};return document.addEventListener("keydown",t),requestAnimationFrame(()=>{let o=n.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');o==null||o.focus()}),()=>{document.removeEventListener("keydown",t)}}var _e="redacto_consent_sdk_state";var Te=()=>typeof window!="undefined"&&typeof window.sessionStorage!="undefined",Re=n=>{if(!Te()){console.warn("SessionStorage not available - state not persisted");return}try{let e={...n,timestamp:new Date().toISOString()};sessionStorage.setItem(_e,JSON.stringify(e))}catch(e){console.error("Failed to save consent state:",e)}},de=()=>{if(!Te())return null;try{let n=sessionStorage.getItem(_e);if(!n)return null;let e=JSON.parse(n);return Date.now()-new Date(e.timestamp).getTime()>18e5?(ee(),null):e}catch(n){return console.error("Failed to get consent state:",n),null}},ee=()=>{if(Te())try{sessionStorage.removeItem(_e)}catch(n){console.error("Failed to clear consent state:",n)}},Ze=n=>{let e=de();e&&Re({...e,...n,timestamp:new Date().toISOString()})};var et=[{audioKey:"grievance_text_audio_url",elementId:"dpo-grievance-text"},{audioKey:"grievance_anchor_text_audio_url",elementId:"dpo-grievance-link"},{audioKey:"grievance_email_connector_text_audio_url",elementId:"dpo-grievance-email-connector"},{audioKey:"grievance_email_audio_url",elementId:"dpo-grievance-email"},{audioKey:"dp_board_text_audio_url",elementId:"dpo-dp-board-text"},{audioKey:"dp_board_anchor_text_audio_url",elementId:"dpo-dp-board-link"},{audioKey:"dpo_text_audio_url",elementId:"dpo-dpo-text"},{audioKey:"dpo_anchor_text_audio_url",elementId:"dpo-dpo-link"}];var ye=class{constructor(e,t){this.audioUrls=null;this.audioSequence=[];this.elementIdSequence=[];this.currentAudio=null;this.currentIndex=0;this._isPlaying=!1;this._isPaused=!1;this._isAvailable=!1;this.highlightedElementId=null;this.abortController=null;this.onStateChange=e,this.root=t}get isPlaying(){return this._isPlaying}get isPaused(){return this._isPaused}get isAvailable(){return this._isAvailable}async fetchAudioUrls(e){var t;this.stopInternal(),this._isAvailable=!1,this.audioUrls=null,this.audioSequence=[],this.elementIdSequence=[],this.onStateChange(),(t=this.abortController)==null||t.abort(),this.abortController=new AbortController;try{let o=await Qe({accessToken:e.accessToken,baseUrl:e.baseUrl,noticeUuid:e.noticeUuid,language:e.language,signal:this.abortController.signal});this.audioUrls=o.detail,this.buildSequences(e.content),this._isAvailable=this.audioSequence.length>0,this.onStateChange()}catch(o){o.name!=="AbortError"&&(this._isAvailable=!1,this.audioUrls=null,this.audioSequence=[],this.elementIdSequence=[],this.onStateChange())}}buildSequences(e){var s,p;if(!this.audioUrls)return;let t=this.audioUrls,o=[],r=[],i=(d,l)=>{d&&(o.push(d),r.push(l))};i(t.notice_banner_heading_audio_url,"privacy-notice-title"),i(t.notice_text_audio_url,"privacy-notice-text"),i(t.privacy_policy_prefix_text_audio_url,"privacy-policy-text"),i(t.privacy_policy_anchor_text_audio_url,"privacy-policy-link"),i(t.purpose_section_heading_audio_url,"purpose-section-heading");for(let d of e.purposes){let l=(s=t.purposes_audio)==null?void 0:s[d.uuid];l&&(i(l.name_audio_url,`purpose-name-${d.uuid}`),i(l.description_audio_url,`purpose-description-${d.uuid}`));for(let c of d.data_elements){let u=(p=t.data_elements_audio)==null?void 0:p[c.uuid];u&&i(u.name_audio_url,`data-element-${d.uuid}-${c.uuid}`)}}if(i(t.additional_text_audio_url,"additional-text"),i(t.privacy_center_anchor_text_audio_url,"privacy-center-link"),t.dpo_info_audio)for(let d of et){let l=t.dpo_info_audio[d.audioKey];i(l,d.elementId)}i(t.confirm_button_text_audio_url,"confirm-button-text"),i(t.decline_button_text_audio_url,"decline-button-text"),this.audioSequence=o,this.elementIdSequence=r}toggle(){this._isPlaying?this.pause():this.play()}play(){if(this.audioSequence.length!==0)if(this._isPaused&&this.currentAudio)this.currentAudio.play().then(()=>{this._isPlaying=!0,this._isPaused=!1,this.onStateChange()}).catch(()=>{});else{let e=this._isPlaying?this.currentIndex:0;this.playNextAudio(e)}}pause(){this.currentAudio&&this._isPlaying&&(this.currentAudio.pause(),this._isPlaying=!1,this._isPaused=!0,this.onStateChange())}stop(){this.stopInternal(),this.onStateChange()}stopInternal(){this.currentAudio&&(this.currentAudio.pause(),this.currentAudio.currentTime=0,this.currentAudio=null),this._isPlaying=!1,this._isPaused=!1,this.currentIndex=0,this.removeHighlights(),this.highlightedElementId=null}destroy(){var e;(e=this.abortController)==null||e.abort(),this.stop()}playNextAudio(e){if(e>=this.audioSequence.length){this.stop();return}this.currentAudio&&(this.currentAudio.pause(),this.currentAudio=null);let t=new Audio(this.audioSequence[e]);this.currentAudio=t,this.currentIndex=e,this._isPlaying=!0,this._isPaused=!1;let o=this.elementIdSequence[e];o&&this.highlightElement(o),t.onended=()=>this.playNextAudio(e+1),t.onerror=()=>{console.warn(`Failed to load audio at index ${e}`),this.playNextAudio(e+1)},t.play().catch(r=>{console.warn(`Failed to play audio at index ${e}:`,r),this._isPlaying=!1,this.onStateChange()}),this.onStateChange()}highlightElement(e){this.removeHighlights(),this.highlightedElementId=e,setTimeout(()=>{let t="getElementById"in this.root?this.root.getElementById(e):this.root.querySelector(`#${CSS.escape(e)}`);if(t){t.classList.add("redacto-tts-highlight");let o=t.getBoundingClientRect();o.top>=0&&o.left>=0&&o.bottom<=window.innerHeight&&o.right<=window.innerWidth||t.scrollIntoView({behavior:"smooth",block:"center",inline:"nearest"})}},50)}removeHighlights(){this.root.querySelectorAll(".redacto-tts-highlight").forEach(e=>{e.classList.remove("redacto-tts-highlight")})}};function tt(n){let{settings:e,colors:t,isMobile:o,logoUrl:r,onYes:i,onNo:s,onClose:p}=n,d=(e==null?void 0:e.headingColor)||"#101828",l=t.text,c=t.font,u=a("img",{src:r,style:g.logo,alt:"Redacto Logo"}),x=a("h2",{id:"age-verification-title",style:{...g.title,fontSize:o?"16px":"18px",color:d,fontFamily:c}});x.textContent="Age Verification Required";let f=a("div",{style:g.topLeft},u,x),b=a("button",{style:{background:"none",border:"none",color:d,cursor:"pointer",padding:o?"2px":"4px",display:"flex",alignItems:"center",justifyContent:"center"},type:"button","aria-label":"Close modal",onClick:p}),h=R("svg",{width:o?"18":"20",height:o?"18":"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},R("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}));b.appendChild(h);let y=a("div",{style:{...g.topSection,color:l,fontFamily:c}},f,b),S=a("p",{style:{...g.privacyText,fontSize:o?"14px":"16px",color:l,fontFamily:c,marginBottom:"16px"}});S.textContent="To proceed with this consent form, we need to verify your age.";let _=a("p",{style:{...g.subTitle,color:l,fontFamily:c,marginBottom:"24px",textAlign:"left"}});_.textContent="Are you 18 years of age or older?";let m=a("div",{style:{...g.middleSection,color:l,fontFamily:c}},S,_),A={...g.button,fontSize:o?"14px":"16px",padding:o?"10px 20px":"9px 45px"},L=a("button",{style:{...A,...g.acceptButton,backgroundColor:t.acceptBg,color:t.acceptText,borderRadius:t.borderRadius},type:"button","aria-label":"Confirm that I am 18 years of age or older",onClick:i});L.textContent="Yes, I am 18 or older";let v=a("button",{style:{...A,...g.cancelButton,backgroundColor:t.declineBg,color:t.declineText,borderColor:t.declineBorder,borderRadius:t.borderRadius},type:"button","aria-label":"Indicate that I am under 18 years of age",onClick:s});v.textContent="No, I am under 18";let w=a("div",{style:{...g.bottomSection,color:l,fontFamily:c}},L,v);return{container:a("div",{style:g.content},y,m,w)}}var Pe=[{value:"Father",label:"Father"},{value:"Mother",label:"Mother"},{value:"Legal Guardian",label:"Legal Guardian"},{value:"Grandparent",label:"Grandparent"}];function ot(n){var He;let{formData:e,settings:t,colors:o,isMobile:r,logoUrl:i,isSubmitting:s,onSubmit:p,onCancel:d,onFieldChange:l}=n,c=(t==null?void 0:t.headingColor)||"#101828",u=o.text,x=o.declineBorder,f=(t==null?void 0:t.backgroundColor)||"#ffffff",b=o.borderRadius,h=o.font,y=o.acceptBg,S={width:"100%",padding:"10px 12px",border:`1px solid ${x}`,borderRadius:b,fontSize:"13px",fontFamily:h,color:u,backgroundColor:f,marginBottom:"2px",boxSizing:"border-box",outline:"none"},_={color:"#DC2626",fontSize:"11px",marginTop:"4px",marginBottom:"0px",display:"none"},m={fontSize:"13px",fontWeight:500,color:u,fontFamily:h,marginBottom:"4px",display:"block"},A={fontSize:"11px",color:"#667085",marginTop:"2px",marginBottom:"0px",lineHeight:"1.4"},L=a("img",{src:i,style:g.logo,alt:"Logo"}),v=a("h2",{id:"guardian-form-title",style:{...g.title,fontSize:"16px",fontWeight:600,color:c,fontFamily:h}});v.textContent="Guardian Verification";let w=a("div",{style:g.topLeft},L,v),I=a("div",{style:{...g.topSection,color:u,fontFamily:h}},w),B=a("p",{style:{...g.privacyText,fontSize:"13px",lineHeight:"1.5",color:u,fontFamily:h,marginBottom:"12px"}});B.textContent="Since you are under the age of consent, a legal guardian must verify their identity via DigiLocker before you can proceed.";let E=R("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"#2563EB","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},R("circle",{cx:"12",cy:"12",r:"10"}),R("line",{x1:"12",y1:"16",x2:"12",y2:"12"}),R("line",{x1:"12",y1:"8",x2:"12.01",y2:"8"}));E.style.cssText="flex-shrink:0;margin-top:1px";let D=a("span");D.textContent="The guardian's name will be matched against their DigiLocker identity document (e.g. Aadhaar). Please enter the name exactly as it appears on the document.";let k=a("div",{style:{display:"flex",alignItems:"flex-start",gap:"8px",padding:"10px 12px",backgroundColor:"#EFF6FF",border:"1px solid #BFDBFE",borderRadius:b,marginBottom:"16px",fontSize:"12px",lineHeight:"1.5",color:"#1E40AF"}},E,D),H=a("label",{for:"guardianName",style:m});H.innerHTML=`Guardian's Full Name <span style="color:#DC2626">*</span>`;let M=a("input",{id:"guardianName",type:"text",style:S,value:e.guardianName,placeholder:"e.g. Rajesh Kumar",autoComplete:"name","aria-describedby":"guardianName-hint",onInput:F=>l("guardianName",F.target.value)}),z=a("p",{id:"guardianName-hint",style:A});z.textContent="Enter the full name as per government ID (Aadhaar, PAN, etc.)";let G=a("div",{style:_,role:"alert"}),V=a("div",null,H,M,z,G),N=a("label",{for:"guardianContact",style:m});N.innerHTML=`Guardian's Phone Number <span style="color:#DC2626">*</span>`;let j=a("input",{id:"guardianContact",type:"tel",inputMode:"tel",style:S,value:e.guardianContact,placeholder:"e.g. 9876543210",autoComplete:"tel","aria-describedby":"guardianContact-hint",onInput:F=>l("guardianContact",F.target.value)}),O=a("p",{id:"guardianContact-hint",style:A});O.textContent="Mobile number linked to guardian's Aadhaar";let C=a("div",{style:_,role:"alert"}),T=a("div",null,N,j,O,C),P=a("label",{id:"guardianRelationship-label",style:m});P.innerHTML='Relationship <span style="color:#DC2626">*</span>';let $=(He=Pe.find(F=>F.value===e.guardianRelationship))==null?void 0:He.label,U=R("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"#667085","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},R("polyline",{points:"6 9 12 15 18 9"}));U.style.cssText="flex-shrink:0;margin-left:8px;transition:transform 0.2s";let q=a("span",{style:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}});q.textContent=$||"Select relationship";let K=a("div",{role:"combobox","aria-expanded":"false","aria-haspopup":"listbox","aria-labelledby":"guardianRelationship-label",tabIndex:"0",style:{...S,color:$?u:"#9CA3AF",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"space-between",userSelect:"none",transition:"border-color 0.15s, box-shadow 0.15s"}},q,U),Q=a("div",{id:"guardianRelationship-listbox",role:"listbox","aria-labelledby":"guardianRelationship-label",style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,backgroundColor:f,border:`1px solid ${x}`,borderRadius:b,boxShadow:"0 4px 12px rgba(0,0,0,0.1), 0 1px 3px rgba(0,0,0,0.06)",zIndex:50,overflow:"hidden",padding:"4px 0",maxHeight:"220px",overflowY:"auto",display:"none"}});for(let F=0;F<Pe.length;F++){let te=Pe[F],oe=e.guardianRelationship===te.value,ge=a("div",{id:`guardianRelationship-option-${F}`,role:"option","aria-selected":String(oe),style:{padding:"9px 12px",fontSize:"13px",fontFamily:h,color:oe?y:u,backgroundColor:"transparent",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"space-between",transition:"background-color 0.1s"},onClick:()=>{l("guardianRelationship",te.value),q.textContent=te.label,K.style.color=u,ue()},onMouseenter:ne=>{ne.target.style.backgroundColor="#F3F4F6"},onMouseleave:ne=>{ne.target.style.backgroundColor="transparent"}}),Ve=a("span");if(Ve.textContent=te.label,ge.appendChild(Ve),oe){let ne=R("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:y,"stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round"},R("polyline",{points:"20 6 9 17 4 12"}));ne.style.flexShrink="0",ge.appendChild(ne)}Q.appendChild(ge)}let pe=!1,J=a("div",{style:{position:"relative"}}),Me=F=>{J.contains(F.target)||ue()};function Ae(){pe=!0,Q.style.display="block",K.setAttribute("aria-expanded","true"),U.style.transform="rotate(180deg)",K.style.borderColor=y,K.style.boxShadow=`0 0 0 1px ${y}`;let F=J.getBoundingClientRect(),te=window.innerHeight-F.bottom,oe=220;te<oe&&F.top>oe?(Q.style.top="auto",Q.style.bottom="calc(100% + 4px)",Q.style.boxShadow="0 -4px 12px rgba(0,0,0,0.1), 0 -1px 3px rgba(0,0,0,0.06)"):(Q.style.top="calc(100% + 4px)",Q.style.bottom="auto",Q.style.boxShadow="0 4px 12px rgba(0,0,0,0.1), 0 1px 3px rgba(0,0,0,0.06)"),requestAnimationFrame(()=>{Q.scrollIntoView({behavior:"smooth",block:"nearest"})}),setTimeout(()=>document.addEventListener("mousedown",Me),0)}function ue(){pe=!1,Q.style.display="none",K.setAttribute("aria-expanded","false"),U.style.transform="rotate(0deg)",K.style.borderColor=x,K.style.boxShadow="none",document.removeEventListener("mousedown",Me)}K.addEventListener("click",()=>{pe?ue():Ae()}),K.addEventListener("keydown",F=>{F.key==="Enter"||F.key===" "||F.key==="ArrowDown"?(F.preventDefault(),pe||Ae()):(F.key==="Escape"||F.key==="Tab")&&ue()});let Le=a("div",{style:_,role:"alert"});J.appendChild(P),J.appendChild(K),J.appendChild(Q),J.appendChild(Le);let De=a("div",{role:"alert",style:{color:"#DC2626",fontSize:"13px",marginTop:"16px",padding:"12px",borderRadius:"6px",border:"1px solid #FCA5A5",backgroundColor:"#FEF2F2",textAlign:"center",display:"none"}}),gt=a("div",{style:{display:"flex",flexDirection:"column",gap:"14px"}},V,T,J),ht=a("div",{style:{...g.middleSection,overflow:"visible",color:u,fontFamily:h}},B,k,gt,De),Be={...g.button,fontSize:r?"14px":"16px",padding:r?"10px 20px":"9px 45px"},Ce=a("button",{style:{...Be,...g.acceptButton,backgroundColor:o.acceptBg,color:o.acceptText,borderRadius:o.borderRadius},type:"button",disabled:s,"aria-label":s?"Verifying guardian identity":"Proceed to guardian verification",onClick:p});Ce.textContent=s?"Verifying...":"Verify via DigiLocker";let Fe=a("button",{style:{...Be,...g.cancelButton,backgroundColor:o.declineBg,color:o.declineText,borderColor:o.declineBorder,borderRadius:o.borderRadius},type:"button","aria-label":"Cancel",onClick:d});Fe.textContent="Cancel";let ft=a("div",{style:{...g.bottomSection,paddingTop:"12px",color:u,fontFamily:h}},Ce,Fe);return{container:a("div",{style:{...g.content,overflow:"visible"}},I,ht,ft),nameInput:M,contactInput:j,relationshipDisplay:K,nameError:G,contactError:C,relationshipError:Le,submitBtn:Ce,generalError:De}}function nt(n){let e={};return n.guardianName.trim()||(e.guardianName="Guardian name is required"),n.guardianContact.trim()||(e.guardianContact="Guardian contact is required"),n.guardianRelationship.trim()||(e.guardianRelationship="Relationship to guardian is required"),e}function it(n,e){switch(n){case"GUARDIAN_UNDER_18":return"The guardian must be 18 years or older. Please provide details of a different guardian.";case"TOKEN_FAILED":return"DigiLocker verification could not be completed. Please try again.";case"DIGILOCKER_AUTH_FAILED":return"DigiLocker authorization was cancelled or failed. Please try again.";case"NO_AUTH_CODE":return"DigiLocker did not return an authorization code. Please try again.";case"SESSION_EXPIRED":return"Verification session has expired. Please try again.";default:return e||"Verification failed. Please try again."}}function rt(n){let{settings:e,colors:t,isMobile:o,logoUrl:r,isInitiating:i,isPolling:s,isComplete:p,isAutoTransitioning:d,error:l,errorCode:c,canRetry:u,onContinue:x,onBack:f}=n,b=(e==null?void 0:e.headingColor)||"#101828",h=t.text,y=t.font,S=t.acceptBg,_=a("img",{src:r,style:g.logo,alt:"Logo"}),m=a("h2",{id:"verification-title",style:{...g.title,fontSize:"16px",fontWeight:600,color:b,fontFamily:y}});m.textContent="Guardian Verification";let A=a("div",{style:g.topLeft},_,m),L=a("div",{style:{...g.topSection,color:h,fontFamily:y}},A),v=a("div",{style:{...g.middleSection,color:h,fontFamily:y,textAlign:"center"}});if(p&&!l){let k=a("div",{style:{width:"64px",height:"64px",borderRadius:"50%",backgroundColor:"#D1FAE5",display:"flex",alignItems:"center",justifyContent:"center"}}),H=R("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"#059669","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},R("polyline",{points:"20 6 9 17 4 12"}));k.appendChild(H);let M=a("p",{style:{color:b,fontFamily:y,fontSize:"16px",fontWeight:600,lineHeight:"1.5",marginTop:"12px",marginBottom:"24px"}});M.textContent="Verification Completed";let z=a("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",flex:"1"}},k,M);v.appendChild(z)}else if((i||s)&&!l){let k=a("div",{style:{width:"48px",height:"48px",border:"4px solid #e5e7eb",borderTopColor:S,borderRadius:"50%",animation:"spin 1s linear infinite",margin:"24px auto"}}),H=a("div",{style:{color:"#059669",fontSize:"14px",marginTop:"16px",padding:"12px",borderRadius:"6px",border:"1px solid #A7F3D0",backgroundColor:"#D1FAE5",textAlign:"center"}});H.textContent=i?"Opening DigiLocker in a new tab...":"Please complete the verification in the DigiLocker tab. This page will update automatically when verification is complete.",v.appendChild(k),v.appendChild(H)}if(l){let k=a("div",{style:{width:"64px",height:"64px",borderRadius:"50%",backgroundColor:"#fee2e2",display:"flex",alignItems:"center",justifyContent:"center",margin:"24px auto"}}),H=R("svg",{width:"32",height:"32",viewBox:"0 0 24 24",fill:"none",stroke:"#dc2626","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},R("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),R("line",{x1:"6",y1:"6",x2:"18",y2:"18"}));k.appendChild(H);let M=a("p",{style:{...g.privacyText,color:h,fontFamily:y,fontSize:"14px",lineHeight:"1.5",marginBottom:"12px"}});M.textContent="Verification failed";let z=a("div",{style:{color:"#DC2626",fontSize:"14px",marginTop:"16px",padding:"12px",borderRadius:"6px",border:"1px solid #FCA5A5",backgroundColor:"#FEF2F2",textAlign:"center"}});z.textContent=l,v.appendChild(k),v.appendChild(M),v.appendChild(z)}let w={...g.button,fontSize:o?"14px":"16px",padding:o?"10px 20px":"9px 45px"},I=a("div",{style:{...g.bottomSection,paddingTop:"12px",display:"flex",gap:"12px",justifyContent:"center",color:h,fontFamily:y}}),B={backgroundColor:t.acceptBg,color:t.acceptText,borderRadius:t.borderRadius},E={backgroundColor:t.declineBg,color:t.declineText,borderColor:t.declineBorder,borderRadius:t.borderRadius};if(!d)if(p&&!l){let k=a("button",{style:{...w,...B},type:"button","aria-label":"Continue to consent form",onClick:x});k.textContent="Continue",I.appendChild(k)}else if(l&&u){let k=a("button",{style:{...w,...g.acceptButton,...B},type:"button","aria-label":c==="GUARDIAN_UNDER_18"?"Change guardian details":"Try verification again",onClick:()=>f(c==="GUARDIAN_UNDER_18")});k.textContent=c==="GUARDIAN_UNDER_18"?"Change Guardian":"Try Again",I.appendChild(k)}else if(l){let k=a("button",{style:{...w,...g.cancelButton,...E},type:"button","aria-label":"Go back",onClick:()=>f(!1)});k.textContent="Go Back",I.appendChild(k)}else{let k=a("button",{style:{...w,...g.cancelButton,...E},type:"button","aria-label":"Cancel verification",onClick:()=>f(!1)});k.textContent="Cancel",I.appendChild(k)}return{container:a("div",{style:g.content},L,v,I)}}function at(n,e){var r,i,s,p,d,l,c,u;let t=(e==null?void 0:e.primary_color)||"#4f87ff",o=(e==null?void 0:e.secondary_color)||"#4f87ff";return{acceptBg:((i=(r=n==null?void 0:n.button)==null?void 0:r.accept)==null?void 0:i.backgroundColor)||t,acceptText:((p=(s=n==null?void 0:n.button)==null?void 0:s.accept)==null?void 0:p.textColor)||"#ffffff",declineBg:((l=(d=n==null?void 0:n.button)==null?void 0:d.decline)==null?void 0:l.backgroundColor)||"#ffffff",declineText:((u=(c=n==null?void 0:n.button)==null?void 0:c.decline)==null?void 0:u.textColor)||"#000000",declineBorder:(n==null?void 0:n.borderColor)||"#d0d5dd",link:(n==null?void 0:n.link)||o,heading:(n==null?void 0:n.headingColor)||"#323B4B",text:(n==null?void 0:n.textColor)||"#344054",font:(n==null?void 0:n.font)||"inherit",borderRadius:(n==null?void 0:n.borderRadius)||"8px",primaryColor:t,secondaryColor:o}}var xe=class{constructor(e){this.hostEl=null;this.shadowRoot=null;this.previousBodyOverflow=null;this.previousHtmlOverflow=null;this.overlayEl=null;this.modalEl=null;this.purposeRefs=null;this.alreadyConsentedPurposeRefs=null;this.langSelectorRefs=null;this.keyboardCleanup=null;this.abortController=null;this.unsubscribe=null;this.ttsManager=null;this.guardianFormRefs=null;this.statusPollTimeout=null;this.popupCheckInterval=null;this.verificationPopup=null;this.verificationSessionToken=null;this.visibilityChangeHandler=null;this.acceptBtn=null;this.declineBtn=null;this.middleSection=null;this.errorEl=null;this.noticeTitleEl=null;this.noticeTextEl=null;this.purposeHeadingEl=null;this.additionalTextEl=null;this.privacyPolicyLinkEl=null;this.privacyCenterLinkEl=null;this.ttsButton=null;this.options=e,this.store=new ie({isLoading:!0,isSubmitting:!1,isSubmittingAccept:!1,isSubmittingDecline:!1,content:null,selectedPurposes:{},selectedDataElements:{},initialDataElementSelections:{},collapsedPurposes:{},hasAlreadyConsented:!1,isFullyConsentedReviewMode:!1,selectedLanguage:e.language||"en",errorMessage:null,fetchError:null,needsConsentPurposes:[],alreadyConsentedPurposes:[],isMinorFlow:!1,selfDeclaredAdult:!1,showAgeVerification:!1,showGuardianForm:!1,showVerificationScreen:!1,verificationReference:null,isVerificationComplete:!1,isInitiatingVerification:!1,isPollingStatus:!1,verificationError:null,verificationErrorCode:null,canRetryVerification:!1,guardianFormData:{guardianName:"",guardianContact:"",guardianRelationship:""}}),this.mediaQuery=fe("(max-width: 768px)")}async init(){this.unsubscribe=this.store.subscribe((e,t)=>{this.handleStateChange(e,t)}),this.mediaQuery.subscribe(()=>this.rebuildUI()),this.renderOverlayWithLoading(),await this.fetchNotice()}destroy(){var e,t,o,r;(e=this.abortController)==null||e.abort(),(t=this.keyboardCleanup)==null||t.call(this),(o=this.unsubscribe)==null||o.call(this),this.mediaQuery.destroy(),(r=this.ttsManager)==null||r.destroy(),this.stopPolling(),this.store.destroy(),this.hostEl&&this.hostEl.parentNode&&this.hostEl.parentNode.removeChild(this.hostEl),this.previousBodyOverflow!==null&&(document.body.style.overflow=this.previousBodyOverflow,this.previousBodyOverflow=null),this.previousHtmlOverflow!==null&&(document.documentElement.style.overflow=this.previousHtmlOverflow,this.previousHtmlOverflow=null),this.hostEl=null,this.shadowRoot=null,this.overlayEl=null,this.modalEl=null,this.purposeRefs=null,this.langSelectorRefs=null}async fetchNotice(){var e,t,o;this.abortController=new AbortController,this.store.setState({isLoading:!0,fetchError:null});try{let r=await qe({noticeId:this.options.noticeId,accessToken:this.options.accessToken,refreshToken:this.options.refreshToken,baseUrl:this.options.baseUrl,language:this.options.language,specific_uuid:this.options.applicationId,validate_against:this.options.validateAgainst||"all",include_fully_consented_data:this.options.includeFullyConsentedData,signal:this.abortController.signal}),i=r.detail.active_config,s=r.detail.purpose_selections,p={},d={},l={},c={},u=[],x=[],f=!1;if(s&&r.detail.reconsent_required)for(let m of i.purposes){let A=s[m.uuid];if(p[m.uuid]=!0,A&&A.selected&&!A.needs_reconsent){x.push(m),d[m.uuid]=!0;for(let L of m.data_elements){let v=`${m.uuid}-${L.uuid}`,w=(e=A.data_elements)==null?void 0:e[L.uuid],I=(w==null?void 0:w.selected)||!1;l[v]=I,c[v]=I}}else{u.push(m),d[m.uuid]=!1;for(let L of m.data_elements)l[`${m.uuid}-${L.uuid}`]=!1}}else{u=i.purposes;for(let m of i.purposes){p[m.uuid]=!0,d[m.uuid]=!1;for(let A of m.data_elements)l[`${m.uuid}-${A.uuid}`]=!1}}this.options.includeFullyConsentedData&&u.length===0&&x.length>0&&(f=!0);let b=this.options.language||"en";i.default_language&&(b=i.default_language);let h=!1,y=!1,S={},_=null;if(r.detail.is_minor){h=!0;let m=de();m!=null&&m.noticeId&&m.noticeId!==this.options.noticeId?ee():(m==null?void 0:m.flowState)==="digilocker-pending"&&m.sessionToken?(S={showVerificationScreen:!0,isPollingStatus:!0},_=m.sessionToken):(m==null?void 0:m.verificationResult)==="verified"&&m.verificationReference?(S={showVerificationScreen:!0,isVerificationComplete:!0,verificationReference:m.verificationReference},ee()):(m==null?void 0:m.verificationResult)==="failed"||(m==null?void 0:m.verificationResult)==="expired"?(S={showVerificationScreen:!0,verificationError:m.verificationResult==="expired"?"Verification session has expired. Please try again.":"Verification failed. Please try again.",canRetryVerification:!0},ee()):y=!0}this.store.setState({content:r,isLoading:!1,selectedLanguage:b,collapsedPurposes:p,selectedPurposes:d,selectedDataElements:l,initialDataElementSelections:c,needsConsentPurposes:u,alreadyConsentedPurposes:x,isFullyConsentedReviewMode:f,isMinorFlow:h,showAgeVerification:y,...S}),_&&this.startStatusPolling(_)}catch(r){if(r.name==="AbortError")return;let i=r;i.status===409?(this.store.setState({hasAlreadyConsented:!0,isLoading:!1}),this.options.onAccept()):(this.store.setState({fetchError:i,isLoading:!1}),(o=(t=this.options).onError)==null||o.call(t,i))}}handleStateChange(e,t){if(t.isLoading&&!e.isLoading&&e.content){this.rebuildUI();return}if(e.hasAlreadyConsented&&!t.hasAlreadyConsented){this.destroy();return}if(e.fetchError&&!t.fetchError){this.renderError(e.fetchError.message);return}if(e.showAgeVerification!==t.showAgeVerification||e.showGuardianForm!==t.showGuardianForm||e.showVerificationScreen!==t.showVerificationScreen){this.rebuildUI();return}if(e.showVerificationScreen&&(e.isVerificationComplete!==t.isVerificationComplete||e.verificationError!==t.verificationError||e.isPollingStatus!==t.isPollingStatus||e.isInitiatingVerification!==t.isInitiatingVerification)){this.rebuildUI();return}(e.selectedPurposes!==t.selectedPurposes||e.selectedDataElements!==t.selectedDataElements)&&this.updateCheckboxes(e),e.collapsedPurposes!==t.collapsedPurposes&&this.updateCollapseState(e),e.errorMessage!==t.errorMessage&&this.updateErrorMessage(e),(e.isSubmittingAccept!==t.isSubmittingAccept||e.isSubmittingDecline!==t.isSubmittingDecline)&&this.updateButtonStates(e)}renderOverlayWithLoading(){this.hostEl=document.createElement("div"),this.hostEl.setAttribute("data-redacto-consent",""),this.hostEl.style.position="fixed",this.hostEl.style.top="0",this.hostEl.style.left="0",this.hostEl.style.width="0",this.hostEl.style.height="0",this.hostEl.style.zIndex="2147483646",document.body.appendChild(this.hostEl),this.shadowRoot=this.hostEl.attachShadow({mode:"open"}),this.previousBodyOverflow=document.body.style.overflow,this.previousHtmlOverflow=document.documentElement.style.overflow,document.body.style.overflow="hidden",document.documentElement.style.overflow="hidden",ae(this.shadowRoot),this.ttsManager=new ye(()=>this.updateTTSButton(),this.shadowRoot),this.options.blockUI!==!1&&(this.overlayEl=a("div",{style:g.overlay,role:"presentation"}),this.shadowRoot.appendChild(this.overlayEl));let t=this.options.settings,o={...g.modal};t!=null&&t.backgroundColor&&(o.backgroundColor=t.backgroundColor),t!=null&&t.borderRadius&&(o.borderRadius=t.borderRadius),t!=null&&t.borderColor&&(o.border=`1px solid ${t.borderColor}`),t!=null&&t.font&&(o.fontFamily=t.font),this.mediaQuery.matches&&(o.width="90%",o.maxWidth="90%"),this.modalEl=a("div",{style:o,role:"dialog","aria-modal":"true","aria-label":"Privacy consent"});let r=a("div",{style:g.loadingContainer},a("div",{style:g.loadingSpinner}),a("p",{style:{...g.privacyText,color:(t==null?void 0:t.textColor)||"#344054"}},"Loading...")),i=a("div",{style:g.content},r);this.modalEl.appendChild(i),this.shadowRoot.appendChild(this.modalEl)}rebuildUI(){var H,M,z,G,V,N,j,O;let e=this.store.getState();if(!e.content||!this.modalEl)return;let t=e.content.detail.active_config,o=this.options.settings,r=this.mediaQuery.matches,i=at(o,t);if(e.showAgeVerification){X(this.modalEl);let C=tt({settings:o,colors:i,isMobile:r,logoUrl:t.logo_url,onYes:()=>this.handleAgeVerificationYes(),onNo:()=>this.handleAgeVerificationNo(),onClose:()=>this.handleDecline()});this.modalEl.appendChild(C.container),(H=this.keyboardCleanup)==null||H.call(this),this.keyboardCleanup=le(this.modalEl,()=>this.handleDecline());return}if(e.showGuardianForm){X(this.modalEl),this.guardianFormRefs=ot({formData:e.guardianFormData,settings:o,colors:i,isMobile:r,logoUrl:t.logo_url,isSubmitting:e.isInitiatingVerification,onSubmit:()=>this.handleGuardianFormSubmit(),onCancel:()=>this.handleDecline(),onFieldChange:(C,T)=>{let P=this.store.getState();this.store.setState({guardianFormData:{...P.guardianFormData,[C]:T}})}}),this.modalEl.appendChild(this.guardianFormRefs.container),(M=this.keyboardCleanup)==null||M.call(this),this.keyboardCleanup=le(this.modalEl,()=>this.handleDecline());return}if(e.showVerificationScreen){X(this.modalEl);let C=rt({settings:o,colors:i,isMobile:r,logoUrl:t.logo_url,isInitiating:e.isInitiatingVerification,isPolling:e.isPollingStatus,isComplete:e.isVerificationComplete,error:e.verificationError,errorCode:e.verificationErrorCode,canRetry:e.canRetryVerification,onContinue:()=>this.handleVerificationContinue(),onBack:T=>{T?this.handleChangeGuardian():e.verificationError&&e.canRetryVerification?this.handleVerificationRetry():this.handleDecline()}});this.modalEl.appendChild(C.container),(z=this.keyboardCleanup)==null||z.call(this),this.keyboardCleanup=le(this.modalEl,()=>{});return}X(this.modalEl);let s=(o==null?void 0:o.headingColor)||"#101828",p=i.text,d=i.link,l=i.font,c=t.logo_url?a("img",{src:t.logo_url,style:{...g.logo,maxWidth:r?"96px":"140px",maxHeight:r?"28px":"32px"},alt:"Logo"}):null;this.noticeTitleEl=a("span",{id:"privacy-notice-title",style:{...g.title,color:s,fontFamily:l,fontSize:r?"16px":"18px"}}),this.noticeTitleEl.textContent=this.getTranslatedText("notice_banner_heading",t.notice_banner_heading),(G=this.langSelectorRefs)!=null&&G.dropdown&&this.shadowRoot&&this.langSelectorRefs.dropdown.parentNode===this.shadowRoot&&this.shadowRoot.removeChild(this.langSelectorRefs.dropdown);let u=Object.keys(t.supported_languages_and_translations||{}),x=[t.default_language||"English",...u.filter(C=>C!==t.default_language)];this.langSelectorRefs=Xe({languages:x,selectedLanguage:e.selectedLanguage,settings:o,onSelect:C=>this.handleLanguageSelect(C),dropdownContainer:this.shadowRoot});let f=((N=(V=o==null?void 0:o.button)==null?void 0:V.language)==null?void 0:N.textColor)||"currentColor",b=R("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:f,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},R("polygon",{points:"11 5 6 9 2 9 2 15 6 15 11 19 11 5"}),R("path",{d:"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07"}));this.ttsButton=a("button",{style:{...g.topRight,display:"none",padding:"3px 9px",alignItems:"center",justifyContent:"center"},type:"button","aria-label":"Start audio playback",title:"Start Talkback",onClick:()=>{var C;return(C=this.ttsManager)==null?void 0:C.toggle()}}),this.ttsButton.appendChild(b),(j=this.ttsManager)==null||j.fetchAudioUrls({accessToken:this.options.accessToken,baseUrl:this.options.baseUrl,noticeUuid:t.notice_uuid,language:this.getLanguageCode(e.selectedLanguage),content:t});let h=a("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexShrink:0}},this.ttsButton,this.langSelectorRefs.container),y;if(r){let C=a("div",{style:{display:"flex",alignItems:"center",gap:"10px",width:"100%"}},...c?[c]:[],a("div",{style:{marginLeft:"auto",display:"flex",alignItems:"center"}},h));y=a("div",{style:{...g.topSection,flexDirection:"column",alignItems:"stretch",flexWrap:"nowrap"}},C,this.noticeTitleEl)}else{let C=a("div",{style:g.topLeft},c,this.noticeTitleEl);y=a("div",{style:g.topSection},C,h)}this.middleSection=a("div",{style:g.middleSection});let S={...g.privacyText,color:p,fontFamily:l,fontSize:r?"14px":"16px"},_=a("span",{id:"privacy-notice-text"});_.textContent=this.getTranslatedText("notice_text",t.notice_text);let m=this.getTranslatedText("privacy_policy_prefix_text",t.privacy_policy_prefix_text),A=this.getTranslatedText("privacy_policy_anchor_text",t.privacy_policy_anchor_text);this.privacyPolicyLinkEl=a("a",{id:"privacy-policy-link",href:t.privacy_policy_url,target:"_blank",rel:"noopener noreferrer",style:{...g.link,color:d,fontFamily:l},"aria-label":"Privacy Policy (opens in new tab)"}),this.privacyPolicyLinkEl.textContent=A;let L=a("span",{id:"privacy-policy-text"},`${m} `,this.privacyPolicyLinkEl),v=a("p",{style:S},_,a("br"),L);if(this.purposeHeadingEl=a("h2",{id:"purpose-section-heading",style:{...g.subTitle,color:s,fontFamily:l}}),this.purposeHeadingEl.textContent=this.getTranslatedText("purpose_section_heading",t.purpose_section_heading),this.middleSection.appendChild(v),this.middleSection.appendChild(this.purposeHeadingEl),e.needsConsentPurposes.length>0&&(this.purposeRefs=we(e.needsConsentPurposes,{selectedPurposes:e.selectedPurposes,collapsedPurposes:e.collapsedPurposes,selectedDataElements:e.selectedDataElements,settings:o,isMobile:r,isAlreadyConsented:!1,getTranslatedText:(C,T,P)=>this.getTranslatedText(C,T,P),onPurposeToggle:C=>this.handlePurposeCheckboxChange(C),onPurposeCollapse:C=>this.togglePurposeCollapse(C),onDataElementToggle:(C,T)=>this.handleDataElementCheckboxChange(C,T)}),this.middleSection.appendChild(this.purposeRefs.container)),e.alreadyConsentedPurposes.length>0&&(this.alreadyConsentedPurposeRefs=we(e.alreadyConsentedPurposes,{selectedPurposes:e.selectedPurposes,collapsedPurposes:e.collapsedPurposes,selectedDataElements:e.selectedDataElements,initialDataElementSelections:e.initialDataElementSelections,settings:o,isMobile:r,isAlreadyConsented:!0,getTranslatedText:(C,T,P)=>this.getTranslatedText(C,T,P),onPurposeToggle:()=>{},onPurposeCollapse:C=>this.togglePurposeCollapse(C),onDataElementToggle:()=>{}}),this.middleSection.appendChild(this.alreadyConsentedPurposeRefs.container)),t.privacy_center_url||t.dpo_info){let C=a("div",{style:{...S,fontSize:r?"13px":"14px",lineHeight:"1.4",borderTop:"1px solid rgba(152, 162, 179, 0.3)",paddingTop:"12px",marginTop:"12px"}}),T=a("p",{style:{margin:"0",opacity:"0.6"}});if(t.privacy_center_url){if(t.additional_text){let $=a("span",{id:"additional-text"});$.textContent=this.getTranslatedText("additional_text",t.additional_text),T.appendChild($),T.appendChild(document.createTextNode(" "))}let P=this.getTranslatedText("privacy_center_anchor_text",t.privacy_center_anchor_text||"Privacy Center");this.privacyCenterLinkEl=a("a",{id:"privacy-center-link",href:t.privacy_center_url,target:"_blank",rel:"noopener noreferrer",style:{...g.link,color:d,fontFamily:l}}),this.privacyCenterLinkEl.textContent=P,T.appendChild(this.privacyCenterLinkEl),T.appendChild(document.createTextNode("."))}if(t.dpo_info){let P=t.dpo_info;if(t.privacy_center_url&&T.appendChild(a("br")),P.grievance_text){let $=a("span",{id:"dpo-grievance-text"});if($.textContent=this.getTranslatedDpoText("grievance_text",P.grievance_text),T.appendChild($),T.appendChild(document.createTextNode(" ")),P.grievance_url){let U=a("a",{id:"dpo-grievance-link",href:P.grievance_url,target:"_blank",rel:"noopener noreferrer",style:{...g.link,color:d,fontFamily:l}});U.textContent=this.getTranslatedDpoText("grievance_anchor_text",P.grievance_anchor_text),T.appendChild(U)}if(P.grievance_email){T.appendChild(document.createTextNode(" "));let U=a("span",{id:"dpo-grievance-email-connector"});U.textContent=this.getTranslatedDpoText("grievance_email_connector_text",P.grievance_email_connector_text||"or email to"),T.appendChild(U),T.appendChild(document.createTextNode(" "));let q=a("a",{id:"dpo-grievance-email",href:`mailto:${P.grievance_email}`,style:{...g.link,color:d,fontFamily:l}});q.textContent=P.grievance_email,T.appendChild(q)}}if(P.dp_board_text){T.appendChild(a("br"));let $=a("span",{id:"dpo-dp-board-text"});if($.textContent=this.getTranslatedDpoText("dp_board_text",P.dp_board_text),T.appendChild($),T.appendChild(document.createTextNode(" ")),P.dp_board_url){let U=a("a",{id:"dpo-dp-board-link",href:P.dp_board_url,target:"_blank",rel:"noopener noreferrer",style:{...g.link,color:d,fontFamily:l}});U.textContent=this.getTranslatedDpoText("dp_board_anchor_text",P.dp_board_anchor_text),T.appendChild(U)}}if(P.dpo_text){T.appendChild(a("br"));let $=a("span",{id:"dpo-dpo-text"});if($.textContent=this.getTranslatedDpoText("dpo_text",P.dpo_text),T.appendChild($),T.appendChild(document.createTextNode(" ")),P.dpo_url){let U=a("a",{id:"dpo-dpo-link",href:P.dpo_url,target:"_blank",rel:"noopener noreferrer",style:{...g.link,color:d,fontFamily:l}});U.textContent=this.getTranslatedDpoText("dpo_anchor_text",P.dpo_anchor_text),T.appendChild(U)}}}C.appendChild(T),this.middleSection.appendChild(C)}this.errorEl=a("div",{role:"alert",style:{backgroundColor:"#FEE2E2",color:"#DC2626",padding:"12px",borderRadius:"6px",fontSize:"14px",border:"1px solid #FCA5A5",display:"none"}});let w=e.isFullyConsentedReviewMode?this.options.reviewModeButtonText||"Continue":this.getTranslatedText("confirm_button_text",t.confirm_button_text),I={...g.button,...g.acceptButton,backgroundColor:i.acceptBg,color:i.acceptText,borderRadius:i.borderRadius,fontSize:r?"14px":"16px",padding:r?"10px 20px":"9px 45px"};this.acceptBtn=a("button",{id:"confirm-button-text",style:I,type:"button",onClick:()=>this.handleAccept()}),this.acceptBtn.textContent=w;let B=this.getTranslatedText("decline_button_text",t.decline_button_text),E={...g.button,...g.cancelButton,backgroundColor:i.declineBg,color:i.declineText,borderColor:i.declineBorder,borderRadius:i.borderRadius,fontSize:r?"14px":"16px",padding:r?"10px 20px":"9px 45px"};this.declineBtn=a("button",{id:"decline-button-text",style:E,type:"button",onClick:()=>this.handleDecline()}),e.isFullyConsentedReviewMode||(this.declineBtn.textContent=B);let D=a("div",{style:g.bottomSection});e.isFullyConsentedReviewMode?D.appendChild(this.acceptBtn):(D.appendChild(this.acceptBtn),D.appendChild(this.declineBtn));let k=a("div",{style:g.content},y,this.errorEl,this.middleSection,D);this.modalEl.appendChild(k),this.updateAcceptButtonState(e),(O=this.keyboardCleanup)==null||O.call(this),this.keyboardCleanup=le(this.modalEl,()=>this.handleDecline())}getLanguageCode(e){var o,r;let t=(o=this.store.getState().content)==null?void 0:o.detail.active_config;return!t||e==="English"||e==="en"||e==="EN"?"English":(r=t.supported_languages_and_translations)!=null&&r[e]?e:t.default_language==="en"||t.default_language==="EN"?"English":t.default_language||"English"}getTranslatedDpoText(e,t){var l;let o=this.store.getState(),r=(l=o.content)==null?void 0:l.detail.active_config;if(!r)return t;let i=o.selectedLanguage;if(i==="English"||i==="en"||i==="EN")return t;let s=r.supported_languages_and_translations;if(!s)return t;let p=s[i];if(!(p!=null&&p.dpo_info))return t;let d=p.dpo_info[e];return typeof d=="string"&&d?d:t}renderError(e){if(!this.modalEl)return;X(this.modalEl);let t=a("div",{style:{...g.content,alignItems:"center",justifyContent:"center"}},a("div",{role:"alert",style:{backgroundColor:"#FEE2E2",color:"#DC2626",padding:"16px",borderRadius:"8px",fontSize:"14px",border:"1px solid #FCA5A5",textAlign:"center",maxWidth:"400px"}},e));this.modalEl.appendChild(t)}getTranslatedText(e,t,o){var c,u,x;let r=this.store.getState(),i=(c=r.content)==null?void 0:c.detail.active_config;if(!i)return t;let s=r.selectedLanguage;if(s==="English"||s==="en"||s==="EN")return e==="privacy_policy_anchor_text"&&i.privacy_policy_anchor_text?i.privacy_policy_anchor_text:t;let p=i.supported_languages_and_translations;if(!p)return t;let d=p[s];if(!d)return t;if(o){if(e==="purposes.name"||e==="purposes.description"){let f=(u=d.purposes)==null?void 0:u[o];return f?typeof f=="string"?e==="purposes.name"?f:t:e==="purposes.name"?f.name||t:f.description||t:t}if(e.startsWith("data_elements."))return((x=d.data_elements)==null?void 0:x[o])||t}let l=d[e];return typeof l=="string"&&l?l:t}handleLanguageSelect(e){this.store.setState({selectedLanguage:e}),this.rebuildUI()}togglePurposeCollapse(e){let t=this.store.getState();this.store.setState({collapsedPurposes:{...t.collapsedPurposes,[e]:!t.collapsedPurposes[e]}})}handlePurposeCheckboxChange(e){var p;let t=this.store.getState(),o=(p=t.content)==null?void 0:p.detail.active_config;if(!o)return;let r=o.purposes.find(d=>d.uuid===e);if(!r)return;let i=!t.selectedPurposes[e],s={...t.selectedDataElements};for(let d of r.data_elements)s[`${e}-${d.uuid}`]=i;this.store.setState({selectedPurposes:{...t.selectedPurposes,[e]:i},selectedDataElements:s})}handleDataElementCheckboxChange(e,t){var c;let o=this.store.getState(),r=(c=o.content)==null?void 0:c.detail.active_config;if(!r)return;let i=r.purposes.find(u=>u.uuid===t);if(!i)return;let s=`${t}-${e}`,p={...o.selectedDataElements,[s]:!o.selectedDataElements[s]},d=i.data_elements.filter(u=>u.required),l;d.length>0?l=d.every(u=>p[`${t}-${u.uuid}`]):l=i.data_elements.some(u=>p[`${t}-${u.uuid}`]),this.store.setState({selectedDataElements:p,selectedPurposes:{...o.selectedPurposes,[t]:l}})}async handleAccept(){var o,r,i;let e=this.store.getState();if(e.isSubmitting)return;if(e.isFullyConsentedReviewMode){this.options.onAccept(),this.destroy();return}if(e.isMinorFlow&&!e.verificationReference&&!e.selfDeclaredAdult){this.store.setState({errorMessage:"Guardian verification is required before consent can be submitted."});return}let t=(o=e.content)==null?void 0:o.detail.active_config;if(t){this.abortController=new AbortController,this.store.setState({isSubmitting:!0,isSubmittingAccept:!0,errorMessage:null});try{let s=t.purposes.map(p=>{let d=p.data_elements.filter(l=>l.enabled).map(l=>({uuid:l.uuid,name:l.name,enabled:l.enabled,required:l.required,selected:e.selectedDataElements[`${p.uuid}-${l.uuid}`]||!1}));return{uuid:p.uuid,name:p.name,description:p.description,selected:e.selectedPurposes[p.uuid]||!1,data_elements:d}});await We({accessToken:this.options.accessToken,baseUrl:this.options.baseUrl,noticeUuid:e.content.detail.uuid,purposes:s,declined:!1,meta_data:this.options.applicationId?{specific_uuid:this.options.applicationId}:void 0,guardianVerificationReference:e.verificationReference||void 0,selfDeclaredAdult:e.selfDeclaredAdult||void 0,signal:this.abortController.signal}),this.options.onAccept(),this.destroy()}catch(s){if(s.name==="AbortError")return;let p=s,d=p.status===409?"You have already provided consent.":p.status&&p.status>=500?"Server error: Please try again later.":p.message||"Failed to submit consent.";this.store.setState({errorMessage:d,isSubmitting:!1,isSubmittingAccept:!1}),(i=(r=this.options).onError)==null||i.call(r,p)}}}handleDecline(){this.store.getState().isSubmitting||(this.stopPolling(),ee(),this.options.onDecline(),this.destroy())}updateCheckboxes(e){if(this.purposeRefs)for(let[t,o]of this.purposeRefs.checkboxes)t in e.selectedPurposes?o.checked=e.selectedPurposes[t]||!1:o.checked=e.selectedDataElements[t]||!1;this.updateAcceptButtonState(e)}areAllRequiredChecked(e){var o,r;let t=(o=e.content)==null?void 0:o.detail.active_config;return(r=t==null?void 0:t.purposes)!=null&&r.length?t.purposes.every(i=>{let s=i.data_elements.filter(p=>p.required&&p.enabled);return s.length===0?!0:s.every(p=>e.selectedDataElements[`${i.uuid}-${p.uuid}`])}):!1}updateAcceptButtonState(e){if(!this.acceptBtn||e.isFullyConsentedReviewMode)return;let o=!this.areAllRequiredChecked(e)||e.isSubmittingAccept||e.isSubmittingDecline;this.acceptBtn.disabled=o,this.acceptBtn.style.opacity=o?"0.5":"1",this.acceptBtn.style.cursor=o?"not-allowed":"pointer"}updateCollapseState(e){let t=o=>{var r,i;if(o)for(let[s,p]of o.dataElementContainers){let d=(r=e.content)==null?void 0:r.detail.active_config,l=d==null?void 0:d.purposes.find(f=>f.uuid===s),c=e.collapsedPurposes[s];p.style.display=!c&&((i=l==null?void 0:l.data_elements)!=null&&i.length)?"flex":"none";let u=o.chevrons.get(s);u&&(u.style.transform=c?"rotate(0deg)":"rotate(90deg)");let x=o.collapseButtons.get(s);x&&x.setAttribute("aria-expanded",String(!c))}};t(this.purposeRefs),t(this.alreadyConsentedPurposeRefs)}updateErrorMessage(e){this.errorEl&&(e.errorMessage?(this.errorEl.textContent=e.errorMessage,this.errorEl.style.display="block"):this.errorEl.style.display="none")}handleAgeVerificationYes(){this.store.setState({isMinorFlow:!1,selfDeclaredAdult:!0,showAgeVerification:!1})}handleAgeVerificationNo(){this.store.setState({showAgeVerification:!1,showGuardianForm:!0})}async handleGuardianFormSubmit(){let e=this.store.getState(),t=nt(e.guardianFormData);if(Object.keys(t).length>0){this.guardianFormRefs&&(t.guardianName&&(this.guardianFormRefs.nameError.textContent=t.guardianName,this.guardianFormRefs.nameError.style.display="block"),t.guardianContact&&(this.guardianFormRefs.contactError.textContent=t.guardianContact,this.guardianFormRefs.contactError.style.display="block"),t.guardianRelationship&&(this.guardianFormRefs.relationshipError.textContent=t.guardianRelationship,this.guardianFormRefs.relationshipError.style.display="block"));return}this.store.setState({isInitiatingVerification:!0});let o=this.options.digilockerMode||"redirect",r=o==="popup"?new URL(this.options.digilockerCallbackUrl||"/digilocker-callback",window.location.origin).href:void 0;try{let i=await Ye({accessToken:this.options.accessToken,baseUrl:this.options.baseUrl,guardianName:e.guardianFormData.guardianName,guardianContact:e.guardianFormData.guardianContact,guardianRelationship:e.guardianFormData.guardianRelationship,frontendCallbackUrl:r});if(i.already_verified&&i.verification_reference){this.store.setState({verificationReference:i.verification_reference,showGuardianForm:!1,showVerificationScreen:!0,isInitiatingVerification:!1,isVerificationComplete:!0}),setTimeout(()=>{this.store.setState({showVerificationScreen:!1,isVerificationComplete:!1})},1e3);return}if(Re({flowState:"digilocker-pending",sessionToken:i.session_token,guardianInfoUuid:i.guardian_info_uuid,selectedPurposes:e.selectedPurposes,selectedDataElements:e.selectedDataElements,timestamp:new Date().toISOString(),originalUrl:window.location.href,noticeId:this.options.noticeId,baseUrl:this.options.baseUrl}),this.store.setState({showGuardianForm:!1,showVerificationScreen:!0,isInitiatingVerification:!0,isPollingStatus:!1}),o==="popup"&&i.digilocker_redirect_url){let s=window.open(i.digilocker_redirect_url,"digilocker_verification","width=600,height=700,scrollbars=yes,resizable=yes");if(s)this.verificationPopup=s,this.startPopupMonitoring(s);else{this.store.setState({isInitiatingVerification:!1,verificationError:"Popup blocked. Please allow popups for this site.",canRetryVerification:!0});return}}else if(i.digilocker_redirect_url){let s=window.open(i.digilocker_redirect_url,"_blank");if(!s){this.store.setState({isInitiatingVerification:!1,verificationError:"Unable to open DigiLocker. Please allow popups.",canRetryVerification:!0});return}try{s.opener=null}catch{}}this.store.setState({isInitiatingVerification:!1,isPollingStatus:!0}),this.startStatusPolling(i.session_token)}catch(i){this.store.setState({isInitiatingVerification:!1});let s=i;this.guardianFormRefs&&(this.guardianFormRefs.generalError.textContent=s.message||"Failed to initiate verification.",this.guardianFormRefs.generalError.style.display="block")}}startStatusPolling(e){this.verificationSessionToken=e;let t=0,o=0,r=!1,i=40,s=3,p=3e3,d=async()=>{var l;if(!r){if(t++,t>i){this.stopPolling(),this.store.setState({verificationError:"Verification is taking longer than expected. Please try again.",verificationErrorCode:"SESSION_EXPIRED",canRetryVerification:!0,isPollingStatus:!1});return}try{let c=await be({accessToken:this.options.accessToken,baseUrl:this.options.baseUrl,sessionToken:e});if(o=0,c.status==="verified"){this.stopPolling();let u=c.verification_reference||((l=c.guardian_details)==null?void 0:l.verification_reference);if(!u){this.store.setState({verificationError:"Verification completed but no reference received. Please try again.",canRetryVerification:!0,isPollingStatus:!1});return}this.store.setState({verificationReference:u,isVerificationComplete:!0,isPollingStatus:!1}),ee();return}if(c.status==="failed"||c.status==="expired"){this.stopPolling(),this.store.setState({verificationError:it(c.error_code,c.error),verificationErrorCode:c.error_code,canRetryVerification:c.can_retry,isPollingStatus:!1});return}r||(this.statusPollTimeout=setTimeout(d,p))}catch(c){let u=c;if(u.status===404||u.status===410){this.stopPolling(),this.store.setState({verificationError:"Verification session not found or expired.",verificationErrorCode:"SESSION_EXPIRED",canRetryVerification:!0,isPollingStatus:!1});return}if(o++,o>=s){this.stopPolling(),this.store.setState({verificationError:u.message||"Unable to check verification status.",canRetryVerification:!0,isPollingStatus:!1});return}this.statusPollTimeout=setTimeout(d,p)}}};this.visibilityChangeHandler=()=>{document.hidden?(r=!0,this.statusPollTimeout&&(clearTimeout(this.statusPollTimeout),this.statusPollTimeout=null)):(r=!1,d())},document.addEventListener("visibilitychange",this.visibilityChangeHandler),this.statusPollTimeout=setTimeout(d,p)}stopPolling(){var e;this.statusPollTimeout&&(clearTimeout(this.statusPollTimeout),this.statusPollTimeout=null),this.popupCheckInterval&&(clearInterval(this.popupCheckInterval),this.popupCheckInterval=null),this.visibilityChangeHandler&&(document.removeEventListener("visibilitychange",this.visibilityChangeHandler),this.visibilityChangeHandler=null),(e=this.verificationPopup)==null||e.close(),this.verificationPopup=null}startPopupMonitoring(e){this.popupCheckInterval=setInterval(()=>{e.closed&&this.popupCheckInterval&&(clearInterval(this.popupCheckInterval),this.popupCheckInterval=null)},500)}handleVerificationContinue(){this.store.setState({showVerificationScreen:!1,isVerificationComplete:!1})}handleVerificationRetry(){this.store.setState({showVerificationScreen:!1,showGuardianForm:!0,verificationError:null,verificationErrorCode:null,canRetryVerification:!1,isVerificationComplete:!1})}handleChangeGuardian(){this.store.setState({showVerificationScreen:!1,showGuardianForm:!0,verificationError:null,verificationErrorCode:null,canRetryVerification:!1,isVerificationComplete:!1,guardianFormData:{guardianName:"",guardianContact:"",guardianRelationship:""}})}updateTTSButton(){var t,o,r;if(!this.ttsButton||!this.ttsManager)return;if(!this.ttsManager.isAvailable){this.ttsButton.style.display="none";return}this.ttsButton.style.display="flex",X(this.ttsButton);let e=((r=(o=(t=this.options.settings)==null?void 0:t.button)==null?void 0:o.language)==null?void 0:r.textColor)||"currentColor";if(this.ttsManager.isPlaying){let i=R("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:e,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},R("rect",{x:"6",y:"4",width:"4",height:"16"}),R("rect",{x:"14",y:"4",width:"4",height:"16"}));this.ttsButton.appendChild(i),this.ttsButton.setAttribute("aria-label","Pause audio playback"),this.ttsButton.setAttribute("title","Pause Talkback")}else{let i=R("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:e,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},R("polygon",{points:"11 5 6 9 2 9 2 15 6 15 11 19 11 5"}),R("path",{d:"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07"}));this.ttsButton.appendChild(i),this.ttsButton.setAttribute("aria-label",this.ttsManager.isPaused?"Resume audio playback":"Start audio playback"),this.ttsButton.setAttribute("title",this.ttsManager.isPaused?"Resume Talkback":"Start Talkback")}}updateButtonStates(e){var t;if(this.acceptBtn)if(e.isSubmittingAccept)this.acceptBtn.textContent="Submitting...",this.acceptBtn.disabled=!0,this.acceptBtn.style.opacity="0.7",this.acceptBtn.style.cursor="not-allowed";else{let o=(t=e.content)==null?void 0:t.detail.active_config;this.acceptBtn.textContent=e.isFullyConsentedReviewMode?this.options.reviewModeButtonText||"Continue":this.getTranslatedText("confirm_button_text",(o==null?void 0:o.confirm_button_text)||"Accept"),this.acceptBtn.disabled=!1,this.acceptBtn.style.opacity="1",this.acceptBtn.style.cursor="pointer"}this.declineBtn&&(this.declineBtn.disabled=e.isSubmitting,this.declineBtn.style.opacity=e.isSubmitting?"0.7":"1",this.declineBtn.style.cursor=e.isSubmitting?"not-allowed":"pointer")}};var W={optionItem:{display:"flex",justifyContent:"space-between",alignItems:"center",margin:0,padding:0,boxSizing:"border-box"},optionLeft:{display:"flex",gap:"12px",alignItems:"center",cursor:"pointer",margin:0,padding:0,boxSizing:"border-box"},optionTextContainer:{display:"flex",flexDirection:"column",margin:0,padding:0,boxSizing:"border-box"},optionTitle:{fontWeight:500,fontSize:"16px",lineHeight:"150%",letterSpacing:"0.2px",color:"#101828",margin:0,padding:0,textAlign:"left"},optionDescription:{fontWeight:400,fontSize:"12px",lineHeight:"150%",letterSpacing:"0.2px",color:"#475467",verticalAlign:"middle",margin:0,padding:0,textAlign:"left"},checkboxLarge:{height:"20px",width:"20px",padding:"4px",borderRadius:"5px",border:"2px solid #d0d5dd",margin:0,boxSizing:"border-box",appearance:"none",WebkitAppearance:"none",MozAppearance:"none",cursor:"pointer",position:"relative",backgroundColor:"transparent"},dataElementsContainer:{marginLeft:"27px",display:"flex",flexDirection:"column",margin:0,padding:0,boxSizing:"border-box",paddingLeft:"22px"},dataElementItem:{display:"flex",alignItems:"center",gap:"10px",justifyContent:"space-between",margin:0,padding:0,boxSizing:"border-box",minHeight:"24px"},dataElementText:{fontWeight:400,fontSize:"14px",lineHeight:"150%",letterSpacing:"0.2px",color:"#344054",margin:0,padding:0,textAlign:"left"},checkboxSmall:{height:"16px",width:"16px",padding:"4px",borderRadius:"5px",border:"2px solid #d0d5dd",margin:0,boxSizing:"border-box",appearance:"none",WebkitAppearance:"none",MozAppearance:"none",cursor:"pointer",position:"relative",backgroundColor:"transparent"},loadingContainer:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",padding:"2rem",minHeight:"200px",margin:0,boxSizing:"border-box"},loadingSpinner:{width:"40px",height:"40px",border:"4px solid #f3f3f3",borderTop:"4px solid #3498db",borderRadius:"50%",animation:"spin 1s linear infinite",marginBottom:"1rem",boxSizing:"border-box"}};function st(n,e){var L;let{selectedPurposes:t,collapsedPurposes:o,selectedDataElements:r,settings:i,isMobile:s,getTranslatedText:p,onPurposeToggle:d,onPurposeCollapse:l,onDataElementToggle:c}=e,u=new Map,x=new Map,f=new Map,b=new Map,h=new Map,y=new Map,S=new Map,_=(i==null?void 0:i.headingColor)||"#101828",m=(i==null?void 0:i.textColor)||"#344054",A=a("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}});for(let v of n){let w=a("div"),I=R("svg",{width:"7",height:"12",viewBox:"0 0 7 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",stroke:(i==null?void 0:i.headingColor)||"#323B4B","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",style:{transform:o[v.uuid]?"rotate(0deg)":"rotate(90deg)",transition:"transform 0.3s ease"},"aria-hidden":"true"},R("path",{d:"M1 1L6 6L1 11"}));b.set(v.uuid,I);let B=a("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",marginLeft:"5px"}},I),E=a("h2",{style:{...W.optionTitle,fontSize:s?"14px":"16px",color:_}});E.textContent=p("purposes.name",v.name,v.uuid),h.set(v.uuid,E);let D=a("h3",{style:{...W.optionDescription,fontSize:s?"11px":"12px",color:m}});D.textContent=p("purposes.description",v.description,v.uuid),y.set(v.uuid,D);let k=a("div",{style:W.optionTextContainer},E,D),H=a("div",{style:W.optionLeft,role:"button",tabIndex:"0","aria-expanded":String(!o[v.uuid]),"aria-controls":`purpose-${v.uuid}`,"aria-label":`${o[v.uuid]?"Expand":"Collapse"} ${p("purposes.name",v.name,v.uuid)} details`,onClick:()=>l(v.uuid),onKeydown:V=>{(V.key==="Enter"||V.key===" ")&&(V.preventDefault(),l(v.uuid))}},B,k);x.set(v.uuid,H);let M=a("input",{type:"checkbox",checked:t[v.uuid]||!1,"aria-label":`Select all data elements for ${p("purposes.name",v.name,v.uuid)}`,onChange:()=>d(v.uuid)});u.set(v.uuid,M);let z=a("div",{style:W.optionItem},H,M),G=a("div",{id:`purpose-${v.uuid}`,style:W.dataElementsContainer});if(v.data_elements&&v.data_elements.length>0)for(let V of v.data_elements){let N=`${v.uuid}-${V.uuid}`,j=a("span",{style:{...W.dataElementText,fontSize:s?"12px":"14px",color:m}});if(j.textContent=p("data_elements.name",V.name,V.uuid),S.set(N,j),V.required){let T=a("span",{style:{color:"red",marginLeft:"4px"},"aria-label":"required"});T.textContent="*",j.appendChild(T)}let O=a("input",{type:"checkbox",checked:r[N]||!1,"aria-label":`Select ${p("data_elements.name",V.name,V.uuid)}${V.required?" (required)":""}`,onChange:()=>c(V.uuid,v.uuid)});u.set(N,O);let C=a("div",{style:W.dataElementItem},j,O);G.appendChild(C)}f.set(v.uuid,G),!o[v.uuid]&&((L=v.data_elements)==null?void 0:L.length)>0?G.style.display="flex":G.style.display="none",w.appendChild(z),w.appendChild(G),A.appendChild(w)}return{container:A,checkboxes:u,collapseButtons:x,dataElementContainers:f,chevrons:b,titleElements:h,descriptionElements:y,dataElementLabels:S}}var ve=class{constructor(e){this.targetEl=null;this.hostEl=null;this.shadowRoot=null;this.rootEl=null;this.purposeRefs=null;this.errorEl=null;this.hasSubmitted=!1;this.unsubscribe=null;this.options=e,this.store=new ie({content:null,isLoading:!0,isSubmitting:!1,selectedLanguage:e.language||"en",collapsedPurposes:{},selectedPurposes:{},selectedDataElements:{},hasAlreadyConsented:!1,fetchError:null,errorMessage:null}),this.mediaQuery=fe("(max-width: 768px)")}async init(){if(typeof this.options.target=="string"){if(this.targetEl=document.querySelector(this.options.target),!this.targetEl)throw new Error(`Target element not found: ${this.options.target}`)}else this.targetEl=this.options.target;this.hostEl=document.createElement("div"),this.hostEl.setAttribute("data-redacto-consent-inline",""),this.hostEl.style.display="block",this.targetEl.appendChild(this.hostEl),this.shadowRoot=this.hostEl.attachShadow({mode:"open"}),ae(this.shadowRoot),this.unsubscribe=this.store.subscribe((e,t)=>{this.handleStateChange(e,t)}),this.mediaQuery.subscribe(()=>this.rebuildUI()),this.renderLoading(),await this.fetchNotice()}destroy(){var e;(e=this.unsubscribe)==null||e.call(this),this.mediaQuery.destroy(),this.store.destroy(),this.hostEl&&this.hostEl.parentNode&&this.hostEl.parentNode.removeChild(this.hostEl),this.hostEl=null,this.shadowRoot=null,this.rootEl=null,this.purposeRefs=null}updateToken(e){this.options={...this.options,accessToken:e},this.tryAutoSubmit()}async fetchNotice(){var e,t,o,r;this.store.setState({isLoading:!0,fetchError:null});try{let s=(await je({org_uuid:this.options.org_uuid,workspace_uuid:this.options.workspace_uuid,notice_uuid:this.options.notice_uuid,baseUrl:this.options.baseUrl,language:this.options.language,specific_uuid:this.options.applicationId})).detail.active_config,p={},d={},l={};for(let c of s.purposes){p[c.uuid]=!0,d[c.uuid]=!1;for(let u of c.data_elements)l[`${c.uuid}-${u.uuid}`]=!1}this.store.setState({content:s,isLoading:!1,selectedLanguage:s.default_language||this.options.language||"en",collapsedPurposes:p,selectedPurposes:d,selectedDataElements:l})}catch(i){let s=i;s.status===409?(this.store.setState({hasAlreadyConsented:!0,isLoading:!1}),(t=(e=this.options).onAccept)==null||t.call(e)):(this.store.setState({fetchError:s,isLoading:!1}),(r=(o=this.options).onError)==null||r.call(o,s))}}handleStateChange(e,t){if(t.isLoading&&!e.isLoading&&e.content&&this.rebuildUI(),e.hasAlreadyConsented||e.fetchError){this.rootEl&&this.shadowRoot&&this.rootEl.parentNode===this.shadowRoot&&(this.shadowRoot.removeChild(this.rootEl),this.rootEl=null);return}(e.selectedPurposes!==t.selectedPurposes||e.selectedDataElements!==t.selectedDataElements)&&(this.updateCheckboxes(e),this.notifyValidation(e),this.tryAutoSubmit()),e.collapsedPurposes!==t.collapsedPurposes&&this.updateCollapseState(e),e.errorMessage!==t.errorMessage&&this.updateErrorMessage(e)}renderLoading(){var t;if(!this.shadowRoot)return;let e=((t=this.options.settings)==null?void 0:t.textColor)||"#344054";this.rootEl=a("div",{style:W.loadingContainer},a("div",{style:W.loadingSpinner}),a("p",{style:{fontSize:"16px",fontWeight:400,color:e}},"Loading...")),this.shadowRoot.appendChild(this.rootEl)}rebuildUI(){let e=this.store.getState();!e.content||!this.shadowRoot||(this.rootEl&&this.rootEl.parentNode===this.shadowRoot&&this.shadowRoot.removeChild(this.rootEl),this.errorEl=a("div",{role:"alert",style:{backgroundColor:"#FEE2E2",color:"#DC2626",padding:"12px",borderRadius:"6px",fontSize:"14px",border:"1px solid #FCA5A5",display:e.errorMessage?"block":"none"}}),e.errorMessage&&(this.errorEl.textContent=e.errorMessage),this.purposeRefs=st(e.content.purposes,{selectedPurposes:e.selectedPurposes,collapsedPurposes:e.collapsedPurposes,selectedDataElements:e.selectedDataElements,settings:this.options.settings,isMobile:this.mediaQuery.matches,getTranslatedText:(t,o,r)=>this.getTranslatedText(t,o,r),onPurposeToggle:t=>this.handlePurposeCheckboxChange(t),onPurposeCollapse:t=>this.togglePurposeCollapse(t),onDataElementToggle:(t,o)=>this.handleDataElementCheckboxChange(t,o)}),this.rootEl=a("div",{style:{display:"flex",flexDirection:"column",gap:"16px"}},this.errorEl,this.purposeRefs.container),this.shadowRoot.appendChild(this.rootEl),this.notifyValidation(e))}getTranslatedText(e,t,o){var c,u;let r=this.store.getState(),i=r.content;if(!i)return t;let s=r.selectedLanguage;if(s==="English"||s==="en"||s==="EN")return e==="privacy_policy_anchor_text"&&i.privacy_policy_anchor_text?i.privacy_policy_anchor_text:t;let p=i.supported_languages_and_translations;if(!p)return t;let d=p[s];if(!d)return t;if(o){if(e==="purposes.name"||e==="purposes.description"){let x=(c=d.purposes)==null?void 0:c[o];return x?typeof x=="string"?e==="purposes.name"?x:t:e==="purposes.name"?x.name||t:x.description||t:t}if(e.startsWith("data_elements."))return((u=d.data_elements)==null?void 0:u[o])||t}let l=d[e];return typeof l=="string"&&l?l:t}togglePurposeCollapse(e){let t=this.store.getState();this.store.setState({collapsedPurposes:{...t.collapsedPurposes,[e]:!t.collapsedPurposes[e]}})}handlePurposeCheckboxChange(e){let t=this.store.getState(),o=t.content;if(!o)return;let r=o.purposes.find(p=>p.uuid===e);if(!r)return;let i=!t.selectedPurposes[e],s={...t.selectedDataElements};for(let p of r.data_elements)s[`${e}-${p.uuid}`]=i;this.store.setState({selectedPurposes:{...t.selectedPurposes,[e]:i},selectedDataElements:s})}handleDataElementCheckboxChange(e,t){let o=this.store.getState(),r=o.content;if(!r)return;let i=r.purposes.find(u=>u.uuid===t);if(!i)return;let s=`${t}-${e}`,p=!o.selectedDataElements[s],d={...o.selectedDataElements,[s]:p},l=i.data_elements.filter(u=>u.required),c;l.length>0?c=l.every(u=>d[`${t}-${u.uuid}`]):c=i.data_elements.some(u=>d[`${t}-${u.uuid}`]),this.store.setState({selectedDataElements:d,selectedPurposes:{...o.selectedPurposes,[t]:c}})}updateCheckboxes(e){if(this.purposeRefs)for(let[t,o]of this.purposeRefs.checkboxes)t in e.selectedPurposes?o.checked=e.selectedPurposes[t]||!1:o.checked=e.selectedDataElements[t]||!1}updateCollapseState(e){var t;if(this.purposeRefs)for(let[o,r]of this.purposeRefs.dataElementContainers){let i=this.store.getState().content,s=i==null?void 0:i.purposes.find(c=>c.uuid===o),p=e.collapsedPurposes[o];r.style.display=!p&&((t=s==null?void 0:s.data_elements)!=null&&t.length)?"flex":"none";let d=this.purposeRefs.chevrons.get(o);d&&(d.style.transform=p?"rotate(0deg)":"rotate(90deg)");let l=this.purposeRefs.collapseButtons.get(o);l&&l.setAttribute("aria-expanded",String(!p))}}updateErrorMessage(e){this.errorEl&&(e.errorMessage?(this.errorEl.textContent=e.errorMessage,this.errorEl.style.display="block"):this.errorEl.style.display="none")}areAllRequiredElementsChecked(){let e=this.store.getState(),t=e.content;return t?t.purposes.every(o=>o.data_elements.filter(i=>i.required).every(i=>e.selectedDataElements[`${o.uuid}-${i.uuid}`])):!1}notifyValidation(e){var o,r;let t=this.areAllRequiredElementsChecked();(r=(o=this.options).onValidationChange)==null||r.call(o,t)}async tryAutoSubmit(){var o,r;let e=this.store.getState(),t=this.options.accessToken;if(t&&e.content&&this.areAllRequiredElementsChecked()&&!e.isSubmitting&&!this.hasSubmitted){this.hasSubmitted=!0;try{await this.handleSubmit(t)}catch(i){this.hasSubmitted=!1,(r=(o=this.options).onError)==null||r.call(o,i)}}}async handleSubmit(e){var r,i;let t=this.store.getState(),o=t.content;if(!e||!o)throw this.store.setState({errorMessage:"Unable to submit consent. Please try again."}),new Error("Access token or content not available");try{this.store.setState({isSubmitting:!0,errorMessage:null}),await Ke({org_uuid:this.options.org_uuid,workspace_uuid:this.options.workspace_uuid,accessToken:e,baseUrl:this.options.baseUrl,noticeUuid:o.notice_uuid,purposes:o.purposes.map(s=>{let p=s.data_elements.some(c=>c.required&&(t.selectedDataElements[`${s.uuid}-${c.uuid}`]||!1)),d=s.data_elements.some(c=>t.selectedDataElements[`${s.uuid}-${c.uuid}`]||!1),l=t.selectedPurposes[s.uuid]||p||d;return{...s,selected:l,data_elements:s.data_elements.map(c=>({...c,selected:t.selectedDataElements[`${s.uuid}-${c.uuid}`]||!1}))}}),declined:!1,meta_data:this.options.applicationId?{specific_uuid:this.options.applicationId}:void 0}),(i=(r=this.options).onAccept)==null||i.call(r),this.hasSubmitted=!1}catch(s){let p=s,d=p.status===500?"An error occurred while submitting your consent. Please try again later.":p.message||"Failed to submit consent. Please try again.";throw this.store.setState({errorMessage:d}),this.hasSubmitted=!1,s}finally{this.store.setState({isSubmitting:!1})}}};function lt(n){switch(n){case"GUARDIAN_UNDER_18":return"Guardian verification failed: The guardian must be 18 years or older.";case"SESSION_EXPIRED":return"Verification session has expired. Please restart the verification process.";case"TOKEN_FAILED":return"DigiLocker authentication failed. Please try again.";case"DIGILOCKER_AUTH_FAILED":return"DigiLocker authorization was cancelled or failed. Please try again.";case"NO_AUTH_CODE":return"Missing authorization code from DigiLocker. Please try again.";default:return"Verification failed. Please try again."}}function dt(n){var A,L,v;ae(document);let e=new URLSearchParams(window.location.search),t=e.get("session_token"),o=e.get("status"),r=e.get("verification_reference"),i=e.get("error_code"),s=de(),p=(s==null?void 0:s.originalUrl)||"/",d=s==null?void 0:s.baseUrl,l=s==null?void 0:s.sessionToken,c=t||l,u=n.baseUrl||d,x=!1;try{x=window.self!==window.top}catch{x=!0}let f=a("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",minHeight:"200px",padding:"32px",fontFamily:"system-ui, -apple-system, sans-serif"}}),b=a("p",{style:{fontSize:"16px",fontWeight:600,color:"#101828",textAlign:"center"}});b.textContent="Processing verification...";let h=a("div",{style:{width:"40px",height:"40px",border:"4px solid #f3f3f3",borderTop:"4px solid #3498db",borderRadius:"50%",animation:"spin 1s linear infinite",marginBottom:"16px"}});f.appendChild(h),f.appendChild(b),document.body.appendChild(f);let y=(w,I)=>{Ze({verificationResult:w,verificationReference:I,flowState:w==="verified"?"consent-form":"error"}),b.textContent=w==="verified"?"Verification successful! Redirecting...":"Verification failed. Redirecting...",h.style.display="none",setTimeout(()=>{window.location.href=p},1500)};if(o==="verified"&&r){if(x&&window.parent){window.parent.postMessage({type:"DIGILOCKER_VERIFICATION_STATUS",status:"verified",verificationReference:r},window.location.origin),b.textContent="Verification successful!",h.style.display="none";return}(A=n.onSuccess)==null||A.call(n,r),y("verified",r);return}if(o==="failed"||o==="expired"){let w=lt(i);if(x&&window.parent){window.parent.postMessage({type:"DIGILOCKER_VERIFICATION_STATUS",status:o,errorCode:i,error:w},window.location.origin),b.textContent=w,b.style.color="#DC2626",h.style.display="none";return}(L=n.onError)==null||L.call(n,new Error(w),i||void 0),y(o);return}if(!c){b.textContent="No verification session found.",b.style.color="#DC2626",h.style.display="none",(v=n.onError)==null||v.call(n,new Error("No session token available"));return}let S=0,_=3,m=async()=>{var w,I,B,E,D;try{let k=await be({accessToken:n.accessToken,baseUrl:u,sessionToken:c});if(k.status==="verified"){let M=k.verification_reference||((w=k.guardian_details)==null?void 0:w.verification_reference);if(x&&window.parent){window.parent.postMessage({type:"DIGILOCKER_VERIFICATION_STATUS",status:"verified",verificationReference:M},window.location.origin),b.textContent="Verification successful!",h.style.display="none";return}M&&((I=n.onSuccess)==null||I.call(n,M)),y("verified",M||void 0);return}if(k.status==="failed"||k.status==="expired"){let M=Pt(k.error_code,k.error);if(x&&window.parent){window.parent.postMessage({type:"DIGILOCKER_VERIFICATION_STATUS",status:k.status,errorCode:k.error_code,error:M},window.location.origin),b.textContent=M,b.style.color="#DC2626",h.style.display="none";return}(B=n.onError)==null||B.call(n,new Error(M),k.error_code||void 0),y(k.status);return}if(S++,S>_){let M="Verification is taking too long. Please return to the original page.";b.textContent=M,b.style.color="#DC2626",h.style.display="none",(E=n.onError)==null||E.call(n,new Error(M)),y("failed");return}let H=3e3*Math.pow(2,S-1);b.textContent="Still processing... Please wait.",setTimeout(m,H)}catch(k){if(S++,S>_){let M=k.message||"Failed to check verification status.";b.textContent=M,b.style.color="#DC2626",h.style.display="none",(D=n.onError)==null||D.call(n,k),y("failed");return}let H=3e3*Math.pow(2,S-1);setTimeout(m,H)}};setTimeout(m,3e3)}function Pt(n,e){return lt(n)||e||"Verification failed. Please try again."}var ce=null,Y=null;function ct(n){Ie(),ce=new xe(n),ce.init().catch(e=>{var t;(t=n.onError)==null||t.call(n,e)})}function pt(n){Y&&(Y.destroy(),Y=null),Y=new ve(n),Y.init().catch(e=>{var t;(t=n.onError)==null||t.call(n,e)})}function Ie(){ce&&(ce.destroy(),ce=null),Y&&(Y.destroy(),Y=null)}function ut(n){dt(n)}var It={init:ct,inline:pt,destroy:Ie,digilockerCallback:ut,version:"0.1.0"},Mt=It;return Ct(At);})();
|
|
132
132
|
if (typeof RedactoConsent !== 'undefined' && RedactoConsent.default) { Object.assign(RedactoConsent, RedactoConsent.default); }
|
|
133
133
|
//# sourceMappingURL=redacto.global.js.map
|