@truconsent/consent-banner-react
Version:
React consent-banner components (in-page & modal)
3 lines (2 loc) • 31.7 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("react-dom"),require("lucide-react")):"function"==typeof define&&define.amd?define(["exports","react","react-dom","lucide-react"],t):t((e||self).consentBannerReact={},e.react,e.reactDom,e.lucideReact)}(this,function(e,t,a,l){function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=/*#__PURE__*/n(t),r=/*#__PURE__*/n(a);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var l in a)({}).hasOwnProperty.call(a,l)&&(e[l]=a[l])}return e},s.apply(null,arguments)}function o(e){/*#__PURE__*/return c.default.createElement("svg",{className:"chevron "+(e.open?"open":""),width:"16",height:"16",viewBox:"0 0 24 24"},/*#__PURE__*/c.default.createElement("path",{d:"M6 9l6 6 6-6",fill:"none",stroke:"#333",strokeWidth:"2"}))}function m(e){var a=e.banner,l=e.purpose,n=e.onChangePurpose,r="accepted"===l.consented,s=t.useState(!1),m=s[0],i=s[1],u=t.useState(!1),d=u[0],f=u[1],p=t.useState(!1),E=p[0],N=p[1];/*#__PURE__*/return c.default.createElement("div",{className:"mcm-card"},/*#__PURE__*/c.default.createElement("div",{className:"mcm-card-header"},/*#__PURE__*/c.default.createElement("div",null,/*#__PURE__*/c.default.createElement("h2",null,l.name),/*#__PURE__*/c.default.createElement("p",{className:"mcm-purpose-desc"},l.description)),/*#__PURE__*/c.default.createElement("div",{className:"mcm-card-actions"},l.is_mandatory&&/*#__PURE__*/c.default.createElement("span",{className:"badge mandatory"},"Mandatory"),/*#__PURE__*/c.default.createElement("span",{className:"badge expiry"},"Expiry: ",l.expiry_label||l.expiry_period.slice(0,6)),/*#__PURE__*/c.default.createElement("label",{className:"switch"},/*#__PURE__*/c.default.createElement("input",{type:"checkbox",checked:r,onChange:function(e){n(l.id,e.target.checked?"accepted":"declined")}}),/*#__PURE__*/c.default.createElement("span",{className:"track"}),/*#__PURE__*/c.default.createElement("span",{className:"thumb"})),/*#__PURE__*/c.default.createElement("span",{className:"toggle-label"},r?"Accepted":"Accept"))),/*#__PURE__*/c.default.createElement("div",{className:"accordion"},/*#__PURE__*/c.default.createElement("button",{className:"accordion-btn",onClick:function(){return i(function(e){return!e})}},"Data Elements ",/*#__PURE__*/c.default.createElement(o,{open:m})),m&&/*#__PURE__*/c.default.createElement("div",{className:"panel"},a.data_elements.map(function(e){/*#__PURE__*/return c.default.createElement("span",{key:e.id,className:"pill"},e.name)})),/*#__PURE__*/c.default.createElement("button",{className:"accordion-btn",onClick:function(){return f(function(e){return!e})}},"Legal Entities ",/*#__PURE__*/c.default.createElement(o,{open:d})),d&&/*#__PURE__*/c.default.createElement("div",{className:"panel"},a.legal_entities.map(function(e){/*#__PURE__*/return c.default.createElement("span",{key:e.id,className:"pill"},e.name)})),/*#__PURE__*/c.default.createElement("button",{className:"accordion-btn",onClick:function(){return N(function(e){return!e})}},"Tools ",/*#__PURE__*/c.default.createElement(o,{open:E})),E&&/*#__PURE__*/c.default.createElement("div",{className:"panel"},a.tools.map(function(e){/*#__PURE__*/return c.default.createElement("span",{key:e.id,className:"pill"},e.name)}))))}function i(e){var a=e.bannerId,l=e.userId,n=e.apiBaseUrl,o=void 0===n?"https://7nd6pu6evh.execute-api.ap-south-1.amazonaws.com/dev/banners":n,i=e.logoUrl,u=e.companyName,d=void 0===u?"Mars Company":u,f=e.onClose,p=t.useState(null),E=p[0],N=p[1],v=t.useState(!0),h=v[0],b=v[1],y=t.useState(!1),g=y[0],C=y[1],k=t.useState(""),S=k[0],w=k[1],_=t.useState(!0),x=_[0],P=_[1];t.useEffect(function(){if(!a)return w("Missing bannerId"),void b(!1);b(!0),fetch(o+"/"+a).then(function(e){if(!e.ok)throw new Error("Failed to load banner");return e.json()}).then(function(e){N(e)}).catch(function(e){return w(e.message)}).finally(function(){return b(!1)})},[a,o]);var T=function(e,t){N(function(a){return s({},a,{purposes:a.purposes.map(function(a){return a.id===e?s({},a,{consented:t}):a})})})},D=function(e){try{return E?(C(!0),w(""),console.log("banner",E.purposes),Promise.resolve(function(t,a){try{var n=function(t,a){try{var n=Promise.resolve(fetch(o+"/"+E.collection_point+"/consent",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userId:l,purposes:E.purposes,action:e})})).then(function(t){if(!t.ok)throw new Error("Submission failed");var a;a=e,P(!1),f&&f(a)})}catch(e){return a()}return n&&n.then?n.then(void 0,a):n}(0,function(){w("Something went wrong. Please try again.")})}catch(e){return a(!0,e)}return n&&n.then?n.then(a.bind(null,!1),a.bind(null,!0)):a(!1,n)}(0,function(e,t){if(C(!1),e)throw t;return t}))):Promise.resolve()}catch(e){return Promise.reject(e)}};return x?r.default.createPortal(/*#__PURE__*/c.default.createElement("div",{className:"mcm-overlay"},h?/*#__PURE__*/c.default.createElement("div",{className:"mcm-spinner"}):/*#__PURE__*/c.default.createElement("div",{className:"mcm-container",role:"dialog","aria-modal":"true"},/*#__PURE__*/c.default.createElement("header",{className:"mcm-header"},i&&/*#__PURE__*/c.default.createElement("img",{src:i,alt:d+" Logo",className:"mcm-logo"}),/*#__PURE__*/c.default.createElement("div",{className:"mcm-header-text"},/*#__PURE__*/c.default.createElement("h1",null,"Consents by ",d),/*#__PURE__*/c.default.createElement("p",null,"You have the right to decline any non‐mandatory consents."))),/*#__PURE__*/c.default.createElement("div",{className:"mcm-separator"}),S&&/*#__PURE__*/c.default.createElement("div",{className:"mcm-error",role:"alert"},S),/*#__PURE__*/c.default.createElement("div",{className:"mcm-body"},E&&E.purposes.map(function(e){/*#__PURE__*/return c.default.createElement(m,{key:e.id,banner:E,purpose:e,onChangePurpose:T})})),/*#__PURE__*/c.default.createElement("div",{className:"mcm-separator"}),/*#__PURE__*/c.default.createElement("footer",{className:"mcm-footer"},/*#__PURE__*/c.default.createElement("button",{className:"mcm-btn reject",disabled:g,onClick:function(){return D("declined")}},g?"Processing…":"Reject All"),/*#__PURE__*/c.default.createElement("button",{className:"mcm-btn consent",disabled:g,onClick:function(){return D("approved")}},g?"Processing…":"I Consent")))),document.body):null}e.RightCenter=function(e){var a=e.userId,n="https://7nd6pu6evh.execute-api.ap-south-1.amazonaws.com/dev/banners",r=t.useState("Consent"),o=r[0],m=r[1],i=t.useState(null),u=i[0],d=i[1],f=t.useState([]),p=f[0],E=f[1],N=t.useState(!1),v=N[0],h=N[1],b=t.useState({nominee_name:"",relationship:"",nominee_email:"",nominee_mobile:"",purpose_of_appointment:""}),y=b[0],g=b[1],C=p[0]||null,k=t.useState([]),S=k[0],w=k[1],_=t.useState(!1)[1],x=t.useState({subject:"",category:"",description:""}),P=x[0],T=x[1];t.useEffect(function(){fetch(n+"/dpo_information").then(function(e){return e.json()}).then(d).catch(console.error),fetch(n+"/user_nominees/user/"+a).then(function(e){return e.json()}).then(E).catch(console.error),fetch(n+"/grievance_tickets/user/"+a).then(function(e){return e.json()}).then(w).catch(console.error)},[a]);var D=t.useState([]),j=D[0],M=D[1],O=t.useState(!1),q=O[0],A=O[1],I=t.useState(null),R=I[0],U=I[1],Y=t.useState(!1),B=Y[0],L=Y[1],W=t.useState(!1),F=W[0],G=W[1],J=t.useState(!1),z=J[0],H=J[1];return t.useEffect(function(){fetch(n+"/user/"+a).then(function(e){return e.json()}).then(function(e){var t=e.flatMap(function(e){return e.purposes.map(function(t){return{id:t.id,title:t.name,name:t.name,description:t.description,expiry:t.expiry_period,collectionPoint:e.title,collectionId:e.collection_point,type:t.is_mandatory?"Mandatory":"Optional",dataElements:e.data_elements.map(function(e){return{label:e.name,description:e.description}}),shownToPrincipal:"yes",consented:t.consented}})});console.log("items",t),M(t)}).catch(console.error)},[a]),/*#__PURE__*/c.default.createElement("div",{className:"rc-container"},/*#__PURE__*/c.default.createElement("nav",{className:"rc-tabs"},["Consent","Rights","Transparency","Dpo","Nominee","Grievance"].map(function(e){/*#__PURE__*/return c.default.createElement("button",{key:e,onClick:function(){return m(e)},disabled:0==j.length,className:"rc-tab "+(o===e?"rc-tab-active":"")},e)})),/*#__PURE__*/c.default.createElement("div",{className:"rc-principal-id"},/*#__PURE__*/c.default.createElement(l.User,{className:"rc-principal-icon"}),/*#__PURE__*/c.default.createElement("span",{className:"rc-principal-text"},"Data Principal ID: ",a||"f93ba6f4-815a-44b9-9a3f-aab5c7667f8c")),"Consent"===o&&/*#__PURE__*/c.default.createElement("div",{className:"rc-content"},/*#__PURE__*/c.default.createElement("div",{className:"rc-section-header"},/*#__PURE__*/c.default.createElement("h2",{className:"rc-section-title"},"Manage your Consents here!"),q&&/*#__PURE__*/c.default.createElement("button",{className:"rc-btn-primary",onClick:function(){fetch(n+"/"+j[0].collectionId+"/consent",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userId:a,purposes:j,action:"approved"})}).then(function(){A(!1),alert("All changes saved.")}).catch(console.error)}},"Save Changes")),j.length>0?/*#__PURE__*/c.default.createElement("div",{className:"rc-consent-list"},j.map(function(e){/*#__PURE__*/return c.default.createElement("div",{key:e.id,className:"rc-consent-item"},/*#__PURE__*/c.default.createElement("div",{className:"rc-consent-header"},/*#__PURE__*/c.default.createElement("div",{className:"rc-consent-title-row"},/*#__PURE__*/c.default.createElement("h3",{className:"rc-consent-title"},e.title),/*#__PURE__*/c.default.createElement("div",{className:"rc-consent-header-right"},/*#__PURE__*/c.default.createElement(l.Info,{className:"rc-info-icon",onClick:function(){return U(e)}}),/*#__PURE__*/c.default.createElement("span",{className:"rc-badge "+("Mandatory"===e.type?"rc-badge-mandatory":"rc-badge-optional")},e.type)))),/*#__PURE__*/c.default.createElement("p",{className:"rc-consent-description"},e.description),/*#__PURE__*/c.default.createElement("div",{className:"rc-consent-details"},/*#__PURE__*/c.default.createElement("div",{className:"rc-detail-item"},/*#__PURE__*/c.default.createElement("span",{className:"rc-detail-label"},"Expiry:"),/*#__PURE__*/c.default.createElement("span",{className:"rc-detail-value"},e.expiry)),/*#__PURE__*/c.default.createElement("div",{className:"rc-detail-item"},/*#__PURE__*/c.default.createElement("span",{className:"rc-detail-label"},"Collection Point:"),/*#__PURE__*/c.default.createElement("span",{className:"rc-detail-value"},e.collectionPoint))),/*#__PURE__*/c.default.createElement("div",{className:"rc-consent-status"},/*#__PURE__*/c.default.createElement("div",{className:"rc-status-item"},/*#__PURE__*/c.default.createElement("span",{className:"rc-status-label"},"Shown to Principal:"),/*#__PURE__*/c.default.createElement("span",{className:"rc-status-pill "+(e.shownToPrincipal?"rc-status-yes":"rc-status-no")},e.shownToPrincipal?"Yes":"No")),/*#__PURE__*/c.default.createElement("div",{className:"rc-status-item"},/*#__PURE__*/c.default.createElement("span",{className:"rc-status-label"},"Consented:"),/*#__PURE__*/c.default.createElement("span",{className:"rc-status-pill "+("accepted"===e.consented?"rc-status-yes":"rc-status-no")},"accepted"===e.consented?"Yes":"No"))),/*#__PURE__*/c.default.createElement("div",{className:"rc-consent-toggle"},/*#__PURE__*/c.default.createElement("label",{className:"rc-switch"},/*#__PURE__*/c.default.createElement("input",{type:"checkbox",checked:"accepted"===e.consented,onChange:function(){return t=e.id,M(function(e){return e.map(function(e){return e.id===t?s({},e,{consented:"accepted"===e.consented?"declined":"accepted"}):e})}),void A(!0);var t}}),/*#__PURE__*/c.default.createElement("span",{className:"rc-slider"}))))})):/*#__PURE__*/c.default.createElement("div",{className:"rc-empty-state"},/*#__PURE__*/c.default.createElement(l.Info,{className:"rc-empty-state-icon"}),"You currently have no consent records to display."),R&&/*#__PURE__*/c.default.createElement("div",{className:"rc-modal-overlay"},/*#__PURE__*/c.default.createElement("div",{className:"rc-modal"},/*#__PURE__*/c.default.createElement("header",{className:"rc-modal-header"},/*#__PURE__*/c.default.createElement("h2",{className:"rc-modal-title"},R.title),/*#__PURE__*/c.default.createElement("button",{className:"rc-modal-close",onClick:function(){return U(null)}},/*#__PURE__*/c.default.createElement(l.X,null))),/*#__PURE__*/c.default.createElement("p",{className:"rc-modal-subtitle"},"Detailed information about this purpose and how your data is used"),/*#__PURE__*/c.default.createElement("div",{className:"rc-modal-content"},/*#__PURE__*/c.default.createElement("section",{className:"rc-modal-section"},/*#__PURE__*/c.default.createElement("h3",{className:"rc-modal-section-title"},"Purpose Details"),/*#__PURE__*/c.default.createElement("div",{className:"rc-modal-field"},/*#__PURE__*/c.default.createElement("strong",{className:"rc-modal-field-label"},"Description:"),/*#__PURE__*/c.default.createElement("span",{className:"rc-modal-field-value"},R.description)),/*#__PURE__*/c.default.createElement("div",{className:"rc-modal-field"},/*#__PURE__*/c.default.createElement("strong",{className:"rc-modal-field-label"},"Expiry Period:"),/*#__PURE__*/c.default.createElement("span",{className:"rc-modal-field-value"},R.expiry)),/*#__PURE__*/c.default.createElement("div",{className:"rc-modal-field"},/*#__PURE__*/c.default.createElement("strong",{className:"rc-modal-field-label"},"Collection Point:"),/*#__PURE__*/c.default.createElement("span",{className:"rc-modal-field-value"},R.collectionPoint)),/*#__PURE__*/c.default.createElement("div",{className:"rc-modal-field"},/*#__PURE__*/c.default.createElement("strong",{className:"rc-modal-field-label"},"Type:"),/*#__PURE__*/c.default.createElement("span",{className:"rc-badge "+("Mandatory"===R.type?"rc-badge-mandatory":"rc-badge-optional")},R.type))),/*#__PURE__*/c.default.createElement("section",{className:"rc-modal-section"},/*#__PURE__*/c.default.createElement("h3",{className:"rc-modal-section-title"},"Data Elements"),/*#__PURE__*/c.default.createElement("div",{className:"rc-elements-grid"},Array.from(R.dataElements.reduce(function(e,t){return e.set(t.label,t),e},new Map).values()).map(function(e){/*#__PURE__*/return c.default.createElement("div",{key:e.label,className:"rc-element-card"},/*#__PURE__*/c.default.createElement("strong",{className:"rc-element-title"},e.label),/*#__PURE__*/c.default.createElement("p",{className:"rc-element-description"},e.description))}))),/*#__PURE__*/c.default.createElement("section",{className:"rc-modal-section"},/*#__PURE__*/c.default.createElement("h3",{className:"rc-modal-section-title"},"Current Status"),/*#__PURE__*/c.default.createElement("div",{className:"rc-modal-status-item"},/*#__PURE__*/c.default.createElement("span",{className:"rc-modal-status-label"},"Shown to Data Principal:"),/*#__PURE__*/c.default.createElement("span",{className:"rc-status-pill "+(R.shownToPrincipal?"rc-status-yes":"rc-status-no")},R.shownToPrincipal?"Yes":"No")),/*#__PURE__*/c.default.createElement("div",{className:"rc-modal-status-item"},/*#__PURE__*/c.default.createElement("span",{className:"rc-modal-status-label"},"Consent Given:"),/*#__PURE__*/c.default.createElement("span",{className:"rc-status-pill "+(R.consented?"rc-status-yes":"rc-status-no")},"accepted"===R.consented?"Yes":"No"))))))),"Rights"===o&&/*#__PURE__*/c.default.createElement("div",{className:"rc-content"},/*#__PURE__*/c.default.createElement("h2",{className:"rc-section-title"},"Your Data Rights"),/*#__PURE__*/c.default.createElement("p",{className:"rc-section-subtitle"},"You can access, correct, delete, or export your data."),/*#__PURE__*/c.default.createElement("div",{className:"rc-rights-actions"},/*#__PURE__*/c.default.createElement("button",{className:"rc-btn-danger",onClick:function(){return L(!0)}},"Request Data Deletion")),B&&/*#__PURE__*/c.default.createElement("div",{className:"rc-modal-overlay"},/*#__PURE__*/c.default.createElement("div",{className:"rc-modal rc-modal-small"},F?/*#__PURE__*/c.default.createElement("div",{className:"rc-modal-success"},/*#__PURE__*/c.default.createElement(l.CheckCircle2,{className:"rc-success-icon"}),/*#__PURE__*/c.default.createElement("h3",{className:"rc-modal-title"},"Request Submitted"),/*#__PURE__*/c.default.createElement("p",{className:"rc-modal-subtitle"},"Your data deletion request has been submitted successfully!")):/*#__PURE__*/c.default.createElement("div",{className:"rc-modal-content"},/*#__PURE__*/c.default.createElement("div",{className:"rc-warning-icon"},"⚠️"),/*#__PURE__*/c.default.createElement("h3",{className:"rc-modal-title"},"Confirm Data Deletion"),/*#__PURE__*/c.default.createElement("p",{className:"rc-modal-subtitle"},"Are you sure you want to request data deletion? This action cannot be undone."),/*#__PURE__*/c.default.createElement("div",{className:"rc-modal-actions"},/*#__PURE__*/c.default.createElement("button",{className:"rc-btn-danger",onClick:function(){G(!0),setTimeout(function(){L(!1)},1500)}},"Confirm Deletion"),/*#__PURE__*/c.default.createElement("button",{className:"rc-btn-secondary",onClick:function(){return L(!1)}},"Cancel")))))),"Transparency"===o&&/*#__PURE__*/c.default.createElement("div",{className:"rc-content"},/*#__PURE__*/c.default.createElement("h2",{className:"rc-section-title"},"Transparency"),/*#__PURE__*/c.default.createElement("p",{className:"rc-section-subtitle"},"Learn how we collect, use, and protect your data"),/*#__PURE__*/c.default.createElement("p",{className:"rc-transparency-text"},"We collect your data to provide better services and comply with regulations. Your data is stored securely and used only for the purposes you've consented to.")),"Dpo"===o&&/*#__PURE__*/c.default.createElement("div",{className:"rc-content"},/*#__PURE__*/c.default.createElement("div",{className:"rc-dpo-header"},/*#__PURE__*/c.default.createElement(l.User,{className:"rc-dpo-icon"}),/*#__PURE__*/c.default.createElement("h2",{className:"rc-section-title"},"Data Protection Officer (DPO) Contact")),/*#__PURE__*/c.default.createElement("p",{className:"rc-section-subtitle"},"Contact our DPO for data protection matters and privacy concerns"),/*#__PURE__*/c.default.createElement("div",{className:"rc-dpo-content"},/*#__PURE__*/c.default.createElement("div",{className:"rc-dpo-left"},/*#__PURE__*/c.default.createElement("div",{className:"rc-dpo-item"},/*#__PURE__*/c.default.createElement(l.User,{className:"rc-dpo-item-icon"}),/*#__PURE__*/c.default.createElement("div",null,/*#__PURE__*/c.default.createElement("span",{className:"rc-dpo-label"},"Name"),/*#__PURE__*/c.default.createElement("span",{className:"rc-dpo-value"},null==u?void 0:u.full_name))),/*#__PURE__*/c.default.createElement("div",{className:"rc-dpo-item"},/*#__PURE__*/c.default.createElement(l.Mail,{className:"rc-dpo-item-icon"}),/*#__PURE__*/c.default.createElement("div",null,/*#__PURE__*/c.default.createElement("span",{className:"rc-dpo-label"},"Email"),/*#__PURE__*/c.default.createElement("span",{className:"rc-dpo-value"},null==u?void 0:u.email))),/*#__PURE__*/c.default.createElement("div",{className:"rc-dpo-item"},/*#__PURE__*/c.default.createElement(l.Clock,{className:"rc-dpo-item-icon"}),/*#__PURE__*/c.default.createElement("div",null,/*#__PURE__*/c.default.createElement("span",{className:"rc-dpo-label"},"Appointment Date"),/*#__PURE__*/c.default.createElement("span",{className:"rc-dpo-value"},null==u?void 0:u.appointment_date)))),/*#__PURE__*/c.default.createElement("div",{className:"rc-dpo-right"},/*#__PURE__*/c.default.createElement("div",{className:"rc-dpo-info-item"},/*#__PURE__*/c.default.createElement("span",{className:"rc-dpo-label"},"Qualifications"),/*#__PURE__*/c.default.createElement("span",{className:"rc-dpo-value"},null==u?void 0:u.qualifications)),/*#__PURE__*/c.default.createElement("div",{className:"rc-dpo-info-item"},/*#__PURE__*/c.default.createElement("span",{className:"rc-dpo-label"},"Responsibilities"),/*#__PURE__*/c.default.createElement("span",{className:"rc-dpo-value"},null==u?void 0:u.responsibilities)),/*#__PURE__*/c.default.createElement("div",{className:"rc-dpo-info-item"},/*#__PURE__*/c.default.createElement(l.Clock,{className:"rc-dpo-time-icon"}),/*#__PURE__*/c.default.createElement("div",null,/*#__PURE__*/c.default.createElement("span",{className:"rc-dpo-label"},"Working Hours"),/*#__PURE__*/c.default.createElement("span",{className:"rc-dpo-value"},"Monday - Friday, 9:00 AM - 5:00 PM"))),/*#__PURE__*/c.default.createElement("div",{className:"rc-response-box"},/*#__PURE__*/c.default.createElement("h4",{className:"rc-response-title"},"Response Time"),/*#__PURE__*/c.default.createElement("p",{className:"rc-response-text"},"We aim to respond to all privacy inquiries within 30 days as per regulatory requirements."))))),"Nominee"===o&&/*#__PURE__*/c.default.createElement("div",{className:"rc-section-container"},/*#__PURE__*/c.default.createElement("h2",{className:"rc-section-title"},"Appoint Nominee"),/*#__PURE__*/c.default.createElement("p",{className:"rc-section-subtitle"},"Appoint someone to manage your data rights on your behalf"),/*#__PURE__*/c.default.createElement("div",{className:"rc-nominee-warning"},/*#__PURE__*/c.default.createElement("div",{className:"rc-warning-icon"},"⚠️"),/*#__PURE__*/c.default.createElement("p",null,"Your nominee will be able to exercise all data rights on your behalf.")),C&&!v?/*#__PURE__*/c.default.createElement("div",{className:"rc-nominee-details-grid"},/*#__PURE__*/c.default.createElement("div",{className:"rc-nominee-item"},/*#__PURE__*/c.default.createElement(l.User,{className:"rc-nominee-icon"}),/*#__PURE__*/c.default.createElement("div",null,/*#__PURE__*/c.default.createElement("span",{className:"rc-nominee-label"},"Name"),/*#__PURE__*/c.default.createElement("span",{className:"rc-nominee-value"},C.nominee_name))),/*#__PURE__*/c.default.createElement("div",{className:"rc-nominee-item"},/*#__PURE__*/c.default.createElement(l.User,{className:"rc-nominee-icon"}),/*#__PURE__*/c.default.createElement("div",null,/*#__PURE__*/c.default.createElement("span",{className:"rc-nominee-label"},"Relationship"),/*#__PURE__*/c.default.createElement("span",{className:"rc-nominee-value"},C.relationship))),/*#__PURE__*/c.default.createElement("div",{className:"rc-nominee-item"},/*#__PURE__*/c.default.createElement(l.Mail,{className:"rc-nominee-icon"}),/*#__PURE__*/c.default.createElement("div",null,/*#__PURE__*/c.default.createElement("span",{className:"rc-nominee-label"},"Email"),/*#__PURE__*/c.default.createElement("span",{className:"rc-nominee-value"},C.nominee_email))),/*#__PURE__*/c.default.createElement("div",{className:"rc-nominee-item"},/*#__PURE__*/c.default.createElement(l.Clock,{className:"rc-nominee-icon"}),/*#__PURE__*/c.default.createElement("div",null,/*#__PURE__*/c.default.createElement("span",{className:"rc-nominee-label"},"Mobile"),/*#__PURE__*/c.default.createElement("span",{className:"rc-nominee-value"},C.nominee_mobile))),C.purpose_of_appointment&&/*#__PURE__*/c.default.createElement("div",{className:"rc-nominee-item rc-nominee-fullwidth"},/*#__PURE__*/c.default.createElement(l.Info,{className:"rc-nominee-icon"}),/*#__PURE__*/c.default.createElement("div",null,/*#__PURE__*/c.default.createElement("span",{className:"rc-nominee-label"},"Purpose of Appointment"),/*#__PURE__*/c.default.createElement("span",{className:"rc-nominee-value"},C.purpose_of_appointment))),/*#__PURE__*/c.default.createElement("div",{className:"rc-nominee-actions-fullwidth"},/*#__PURE__*/c.default.createElement("button",{className:"rc-btn-primary",onClick:function(){h(!0)}},"Edit"),/*#__PURE__*/c.default.createElement("button",{className:"rc-btn-danger",onClick:function(){C&&fetch("/user_nominees/"+C.id,{method:"DELETE"}).then(function(){return E([])}).catch(console.error)}},"Delete"))):/*#__PURE__*/c.default.createElement("form",{className:"rc-nominee-form",onSubmit:function(e){e.preventDefault();var t=s({user_id:a},y);fetch(C&&v?"/user_nominees/"+C.id:"/user_nominees",{method:C&&v?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then(function(e){return e.json()}).then(function(e){E([e]),h(!1)}).catch(console.error)}},/*#__PURE__*/c.default.createElement("div",{className:"rc-form-row"},/*#__PURE__*/c.default.createElement("div",{className:"rc-form-group"},/*#__PURE__*/c.default.createElement("label",{className:"rc-form-label"},"Name *"),/*#__PURE__*/c.default.createElement("input",{type:"text",className:"rc-form-input",placeholder:"Full name of nominee",value:y.nominee_name,onChange:function(e){return g(s({},y,{nominee_name:e.target.value}))},required:!0})),/*#__PURE__*/c.default.createElement("div",{className:"rc-form-group"},/*#__PURE__*/c.default.createElement("label",{className:"rc-form-label"},"Relationship *"),/*#__PURE__*/c.default.createElement("select",{className:"rc-form-select",value:y.relationship,onChange:function(e){return g(s({},y,{relationship:e.target.value}))},required:!0},/*#__PURE__*/c.default.createElement("option",{value:""},"Select relationship"),/*#__PURE__*/c.default.createElement("option",null,"Spouse"),/*#__PURE__*/c.default.createElement("option",null,"Parent"),/*#__PURE__*/c.default.createElement("option",null,"Child"),/*#__PURE__*/c.default.createElement("option",null,"Sibling"),/*#__PURE__*/c.default.createElement("option",null,"Other")))),/*#__PURE__*/c.default.createElement("div",{className:"rc-form-row"},/*#__PURE__*/c.default.createElement("div",{className:"rc-form-group"},/*#__PURE__*/c.default.createElement("label",{className:"rc-form-label"},"Email *"),/*#__PURE__*/c.default.createElement("input",{type:"email",className:"rc-form-input",placeholder:"nominee@example.com",value:y.nominee_email,onChange:function(e){return g(s({},y,{nominee_email:e.target.value}))},required:!0})),/*#__PURE__*/c.default.createElement("div",{className:"rc-form-group"},/*#__PURE__*/c.default.createElement("label",{className:"rc-form-label"},"Mobile Number *"),/*#__PURE__*/c.default.createElement("input",{type:"tel",className:"rc-form-input",placeholder:"+1234567890",value:y.nominee_mobile,onChange:function(e){return g(s({},y,{nominee_mobile:e.target.value}))},required:!0}))),/*#__PURE__*/c.default.createElement("div",{className:"rc-form-group"},/*#__PURE__*/c.default.createElement("label",{className:"rc-form-label"},"Purpose of Appointment"),/*#__PURE__*/c.default.createElement("textarea",{className:"rc-form-textarea",placeholder:"Explain why you are appointing this nominee",rows:"4",value:y.purpose_of_appointment,onChange:function(e){return g(s({},y,{purpose_of_appointment:e.target.value}))}})),/*#__PURE__*/c.default.createElement("div",{className:"rc-form-actions"},/*#__PURE__*/c.default.createElement("button",{type:"submit",className:"rc-btn-primary"},v?"Update Nominee":"Send Verification Code"),v&&/*#__PURE__*/c.default.createElement("button",{type:"button",className:"rc-btn-secondary",onClick:function(){return h(!1)}},"Cancel")))),"Grievance"===o&&/*#__PURE__*/c.default.createElement("div",{className:"rc-content"},/*#__PURE__*/c.default.createElement("div",{className:"rc-section-header"},/*#__PURE__*/c.default.createElement("div",null,/*#__PURE__*/c.default.createElement("h2",{className:"rc-section-title"},"Grievance Tickets"),/*#__PURE__*/c.default.createElement("p",{className:"rc-section-subtitle"},"Submit privacy concerns or view your existing tickets")),/*#__PURE__*/c.default.createElement("button",{className:"rc-btn-primary",onClick:function(){return H(!z)}},"Create New Ticket")),z&&/*#__PURE__*/c.default.createElement("form",{className:"rc-grievance-form",onSubmit:function(e){e.preventDefault(),fetch(n+"/grievance_tickets",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_user_id:a,subject:P.subject,category:P.category,description:P.description})}).then(function(e){return e.json()}).then(function(e){w(function(t){return[e].concat(t)}),_(!1),T({subject:"",category:"",description:""})}).catch(console.error)}},/*#__PURE__*/c.default.createElement("div",{className:"rc-form-group"},/*#__PURE__*/c.default.createElement("label",{className:"rc-form-label"},"Subject *"),/*#__PURE__*/c.default.createElement("input",{name:"subject",type:"text",className:"rc-form-input",placeholder:"Brief description of your concern",value:P.subject,onChange:function(e){return T(s({},P,{subject:e.target.value}))},required:!0})),/*#__PURE__*/c.default.createElement("div",{className:"rc-form-group"},/*#__PURE__*/c.default.createElement("label",{className:"rc-form-label"},"Category *"),/*#__PURE__*/c.default.createElement("select",{name:"category",className:"rc-form-select",value:P.category,onChange:function(e){return T(s({},P,{category:e.target.value}))},required:!0},/*#__PURE__*/c.default.createElement("option",{value:""},"Select category"),/*#__PURE__*/c.default.createElement("option",{value:"Privacy Concern"},"Privacy Concern"),/*#__PURE__*/c.default.createElement("option",{value:"Data Access"},"Data Access"),/*#__PURE__*/c.default.createElement("option",{value:"Other"},"Other"))),/*#__PURE__*/c.default.createElement("div",{className:"rc-form-group"},/*#__PURE__*/c.default.createElement("label",{className:"rc-form-label"},"Description *"),/*#__PURE__*/c.default.createElement("textarea",{name:"description",className:"rc-form-textarea",placeholder:"Detailed description of your concern or request",rows:"4",value:P.description,onChange:function(e){return T(s({},P,{description:e.target.value}))},required:!0})),/*#__PURE__*/c.default.createElement("div",{className:"rc-form-actions"},/*#__PURE__*/c.default.createElement("button",{type:"submit",className:"rc-btn-primary"},"Submit Ticket"),/*#__PURE__*/c.default.createElement("button",{type:"button",className:"rc-btn-secondary",onClick:function(){return H(!1)}},"Cancel"))),/*#__PURE__*/c.default.createElement("div",{className:"rc-tickets-section"},/*#__PURE__*/c.default.createElement("h3",{className:"rc-tickets-title"},"Your Tickets"),0===S.length?/*#__PURE__*/c.default.createElement("div",{className:"rc-empty-state"},/*#__PURE__*/c.default.createElement("p",null,"No tickets found. Create your first grievance ticket above.")):/*#__PURE__*/c.default.createElement("div",{className:"rc-ticket-list"},S.map(function(e,t){/*#__PURE__*/return c.default.createElement("div",{key:t,className:"rc-ticket-item"},/*#__PURE__*/c.default.createElement("div",{className:"rc-ticket-header"},/*#__PURE__*/c.default.createElement("h4",{className:"rc-ticket-subject"},e.subject),/*#__PURE__*/c.default.createElement("span",{className:"rc-ticket-status"},"Open")),/*#__PURE__*/c.default.createElement("p",{className:"rc-ticket-description"},e.description))})))))},e.TruConsent=function(e){var a=e.bannerId,l=e.apiBaseUrl,n=e.logoUrl,r=e.companyName,s=t.useState(!1),o=s[0],m=s[1];/*#__PURE__*/return c.default.createElement(Fragment,null,/*#__PURE__*/c.default.createElement("div",{style:{position:"fixed",bottom:0,width:"100%",background:"#fff",boxShadow:"0 -2px 8px rgba(0,0,0,0.1)",padding:"10px",textAlign:"center"}},/*#__PURE__*/c.default.createElement("span",null,"We value your privacy."),/*#__PURE__*/c.default.createElement("button",{onClick:function(){return m(!0)},style:{marginLeft:"12px",padding:"6px 12px"}},"Manage Consents")),o&&/*#__PURE__*/c.default.createElement(i,{bannerId:a,apiBaseUrl:l,logoUrl:n,companyName:r}))},e.TruConsentModal=i,e.default=i});
//# sourceMappingURL=index.umd.js.map