@financial-times/cmp-client 3.4.0-beta.1 → 3.4.0-beta.2

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/index.cjs CHANGED
@@ -617,7 +617,7 @@ function setupPmTracking(trackingProps, cmpBaseEndpoint) {
617
617
  false
618
618
  );
619
619
  }
620
- const version = "3.4.0-beta.1";
620
+ const version = "3.4.0-beta.2";
621
621
  async function initSourcepointCmp({
622
622
  propertyConfig = FT_DOTCOM_PROD,
623
623
  userId,
package/dist/index.js CHANGED
@@ -615,7 +615,7 @@ function setupPmTracking(trackingProps, cmpBaseEndpoint) {
615
615
  false
616
616
  );
617
617
  }
618
- const version = "3.4.0-beta.1";
618
+ const version = "3.4.0-beta.2";
619
619
  async function initSourcepointCmp({
620
620
  propertyConfig = FT_DOTCOM_PROD,
621
621
  userId,
@@ -1 +1 @@
1
- (function(){"use strict";const S=(e,{credentials:n="omit"}={})=>fetch(`https://session-next.ft.com${e}`,{credentials:n,useCorsProxy:!0}).then(t=>t.ok?t.json():t.text().then(o=>{throw new Error(`Next session responded with "${o}" (${t.status})`)})).catch(t=>{document.body.dispatchEvent(new CustomEvent("oErrors.log",{bubbles:!0,detail:{error:t,info:{component:"next-session-client"}}}))});let d={};const m=(e,n)=>{if(typeof e=="object"){d=e;return}if(typeof e=="string"&&typeof n=="string"){d[e]=n;return}if(typeof e=="string"&&typeof n>"u")return d[e]||null;if(typeof e>"u"&&typeof n>"u")return d;throw new Error("Invalid arguments")};m.clear=()=>{d={}};const l={},T=()=>{const[,e]=/FTSession_s=([^;]+)/.exec(document.cookie)||[];return e},k=()=>{const e=m("uuid");if(e)return Promise.resolve({uuid:e});const n=T();return n?(l.uuid||(l.uuid=S(`/sessions/s/${n}`).then(({uuid:t}={})=>(delete l.uuid,t&&m("uuid",t),{uuid:t}))),l.uuid):Promise.resolve({uuid:void 0})},h="sourcepoint-cmp",P="FTPINK",N="FTConsent",M="sourcepointCmp/VngD.XycZut.595cp9fWdp5XYP9vlFvk",L=".ft.com",A="https://consent.ft.com",v={permutiveAds:{purposes:[2,4,8,9],iabVendors:[361],customVendors:[],specialFeatures:[]},demographicAds:{purposes:[3,4,7,9,10],iabVendors:[],customVendors:[],specialFeatures:[]},behaviouralAds:{purposes:[2,4,8,9],iabVendors:[],customVendors:[],specialFeatures:[]},programmaticAds:{purposes:[2],iabVendors:[],customVendors:[],specialFeatures:[]},personalisedMarketing:{purposes:[1,4,8,9,10],iabVendors:[],customVendors:[],specialFeatures:[]}},C=Object.keys(v),u={joinHref:!0,gdpr:{},ccpa:{}},I={...u,accountId:1906,baseEndpoint:"https://consent-manager.ft.com",propertyHref:"https://local.ft.com",_clientOptions:{privacyManagerId:827767,manageCookiesLinkOverride:"ft.com/preferences/manage-cookies"}},_={...u,accountId:1906,baseEndpoint:"https://consent-manager.ft.com",propertyId:31642,_clientOptions:{privacyManagerId:827767,manageCookiesLinkOverride:"ft.com/preferences/manage-cookies",rootDomain:"ft.com"}},D={...u,accountId:1906,baseEndpoint:"https://consent-manager.pwmnet.com",propertyId:33414,_clientOptions:{rootDomain:"pwmnet.com"}},R={...u,accountId:1906,baseEndpoint:"https://consent-manager.fdiintelligence.com",propertyId:34061,_clientOptions:{rootDomain:"fdiintelligence.com"}},F={...u,accountId:1906,baseEndpoint:"https://consent-manager.thebanker.com",propertyId:34060,_clientOptions:{rootDomain:"thebanker.com"}},V={...u,accountId:1906,baseEndpoint:"https://consent-manager.bankingriskandregulation.com",propertyId:34059,_clientOptions:{rootDomain:"bankingriskandregulation.com"}},j={...u,accountId:1906,baseEndpoint:"https://consent-manager.sustainableviews.com",propertyId:34058,_clientOptions:{rootDomain:"sustainableviews.com"}},H={...u,accountId:1906,baseEndpoint:"https://consent-manager.ftadviser.com",propertyId:33416,_clientOptions:{rootDomain:"ftadviser.com"}},U={...u,accountId:1906,baseEndpoint:"https://consent-manager.investorschronicle.co.uk",propertyId:33415,_clientOptions:{rootDomain:"investorschronicle.co.uk"}},x={...u,accountId:1906,baseEndpoint:"https://cdn.privacy-mgmt.com",propertyId:33947,_clientOptions:{rootDomain:"ignitesasia.com"}},$={...u,accountId:1906,baseEndpoint:"https://cdn.privacy-mgmt.com",propertyId:33946,_clientOptions:{rootDomain:"igniteseurope.com"}},q=Object.freeze(Object.defineProperty({__proto__:null,FT_DOTCOM_PROD:_,FT_DOTCOM_TEST:I,MM_IGNITES_ASIA:x,MM_IGNITES_EUROPE:$,SP_BANKING_RR:V,SP_FDI_INTELLIGENCE:R,SP_FT_ADVISER:H,SP_INVESTORS_CHRONICLE:U,SP_PWMNET:D,SP_SUSTAINABLE_VIEWS:j,SP_THE_BANKER:F},Symbol.toStringTag,{value:"Module"}));function E(e,n){const t=document.createElement("script");return t.dataset.cmpScript=e,t.innerHTML=n,t}function G(e){const n=document.createElement("script");return n.src=e,n}const W={cmpFrames:"https://consent-manager.ft.com/unified/wrapperMessagingWithoutDetection.js"},w={tcfStub:'"use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){var t=function(){var t,e,o=[],n=window,r=n;for(;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(t){}if(r===n.top)break;r=r.parent}t||(!function t(){var e=n.document,o=!!n.frames.__tcfapiLocator;if(!o)if(e.body){var r=e.createElement("iframe");r.style.cssText="display:none",r.name="__tcfapiLocator",r.title = "__tcfapiLocator",e.body.appendChild(r)}else setTimeout(t,5);return!o}(),n.__tcfapi=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!n.length)return o;"setGdprApplies"===n[0]?n.length>3&&2===parseInt(n[1],10)&&"boolean"==typeof n[3]&&(e=n[3],"function"==typeof n[2]&&n[2]("set",!0)):"ping"===n[0]?"function"==typeof n[2]&&n[2]({gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"}):o.push(n)},n.addEventListener("message",(function(t){var e="string"==typeof t.data,o={};if(e)try{o=JSON.parse(t.data)}catch(t){}else o=t.data;var n="object"===_typeof(o)&&null!==o?o.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(o,r){var a={__tcfapiReturn:{returnValue:o,success:r,callId:n.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")}),n.parameter)}),!1))};"undefined"!=typeof module?module.exports=t:t()}();',uspStub:'"use strict";(function () { var e = false; var c = window; var t = document; function r() { if (!c.frames["__uspapiLocator"]) { if (t.body) { var a = t.body; var e = t.createElement("iframe"); e.style.cssText = "display:none"; e.name = "__uspapiLocator"; e.title = "__uspapiLocator";a.appendChild(e) } else { setTimeout(r, 5) } } } r(); function p() { var a = arguments; __uspapi.a = __uspapi.a || []; if (!a.length) { return __uspapi.a } else if (a[0] === "ping") { a[2]({ gdprAppliesGlobally: e, cmpLoaded: false }, true) } else { __uspapi.a.push([].slice.apply(a)) } } function l(t) { var r = typeof t.data === "string"; try { var a = r ? JSON.parse(t.data) : t.data; if (a.__cmpCall) { var n = a.__cmpCall; c.__uspapi(n.command, n.parameter, function (a, e) { var c = { __cmpReturn: { returnValue: a, success: e, callId: n.callId } }; t.source.postMessage(r ? JSON.stringify(c) : c, "*") }) } } catch (a) { } } if (typeof __uspapi !== "function") { c.__uspapi = p; __uspapi.msgHandler = l; c.addEventListener("message", l, false) } })();'};function K(){const e=document.createDocumentFragment();return e.appendChild(E("tcf",w.tcfStub)),e.appendChild(E("usp",w.uspStub)),e.appendChild(G(W.cmpFrames)),e}function B(e){const{_clientOptions:n,...t}=e;window._sp_={config:t},window._sp_queue??(window._sp_queue=[]),document.head.appendChild(K())}function J(e,n,{formOfWordsId:t,cookieDomain:o}){const r=Object.keys(e).reduce((a,i)=>(a[i]={onsite:{status:e[i],lbi:!1,source:h,fow:t}},a),{});return n?{setConsentCookie:!0,formOfWordsId:t,consentSource:h,cookieDomain:o,data:r}:{data:r,cookieDomain:o}}function X(e,{purpose:n,vendor:t,specialFeatureOptins:o}){const s=v[e],r=s.purposes.every(c=>(n==null?void 0:n.consents[c])||(n==null?void 0:n.legitimateInterests[c])),a=s.iabVendors.every(c=>(t==null?void 0:t.consents[c])||(t==null?void 0:t.legitimateInterests[c])),i=s.specialFeatures.every(c=>(o==null?void 0:o[c])===!0);return r&&a&&i}function Y(e){const n=(e==null?void 0:e[2])==="N",t={};for(const o of C)t[o]=n;return t}async function z(){const e=await new Promise((t,o)=>{var s;try{(s=window.__tcfapi)==null||s.call(window,"addEventListener",2,t)}catch(r){o(r)}}),n={};for(const t of C)n[t]=X(t,e);return n}async function Z(e,n){return e==="ccpa"?Y(n):await z()}function Q(){const n=Object.fromEntries(document.cookie.split("; ").map(o=>o.split("=")))[N];if(!n)return{};const t=decodeURIComponent(n);return Object.fromEntries(t.split(",").map(o=>{const[s,r]=o.split(":");return[s,r==="on"]}))}function ee(e,n){return Object.keys(e).some(o=>{const s=`${o.toLowerCase()}Onsite`;return e[o]!==n[s]})}function te({userId:e,useConsentStore:n}){return!!e&&n===!0}function ne(e,n){return e?`${n.consentProxyHost}/__consent/consent-record/${P}/${n.userId}`:`${n.consentProxyHost}/__consent/consent-record-cookie?cookieDomain=${n.cookieDomain}`}async function oe(e,n){try{const t=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n),credentials:"include"});t.ok||console.error("Unable to save consent preferences",t.status)}catch(t){console.error("An error occurred while saving consent",t)}}function se(e){return async function(t,o,s,r){const a=r.applies?t:"gdpr";if(a!==t||!s)return;const i=await Z(a,s);if(!ee(i,Q()))return;const p=te(e),ve=ne(p,e),Ce=J(i,p,e);await oe(ve,Ce),document.dispatchEvent(new CustomEvent("oCookieMessage.act",{bubbles:!0}))}}const g="cookie-message",re="manage-cookies";let y=Object.freeze({activeComponent:g,messageId:0,privacyManagerId:0});function ce(e){return typeof e=="object"&&e!==null&&e.constructor===Object&&Object.prototype.toString.call(e)==="[object Object]"}const ae=()=>({...y}),b=e=>{if(!ce(e)){console.error("Invalid state changes");return}y={...y,...e}},ie=["adsDisableInternalCMP","pwm.cmp","messageSlotBottom"];function ue(e,n){const t=pe(e.flags);window._sp_queue=window._sp_queue??[],window._sp_queue.push(()=>{var o,s;for(const[r,a]of Object.entries(le))(s=(o=window._sp_).addEventListener)==null||s.call(o,r,a({...e,flags:t}))}),fe({...e,flags:t},n)}function pe(e){const n={};return typeof e=="object"&&ie.forEach(t=>{Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t])}),n}function de(e){if(!e)return;const n=document.body,t=new CustomEvent("oTracking.event",{bubbles:!0,cancelable:!0,detail:e.detail});n.dispatchEvent(t)}function f({trackingProps:e,action:n,triggerAction:t}){let o;const s=ae(),{product:r,app:a,flags:i}=e;s.activeComponent===g?o=s.messageId:o=s.privacyManagerId;const c={detail:{component:{id:o,name:s.activeComponent,type:"overlay",subtype:"cmp"},category:"component",action:n,...t&&{trigger_action:t},...r&&{product:r},...a&&{app:a},custom:[{cookie_toggle_flag:i}],url:window.document.location.href||null}};de(c)}const le={onMessageChoiceSelect:e=>(n,t,o)=>{const r={11:"accept_all",12:"manage_cookies",13:"reject_all"}[o];r&&f({trackingProps:e,action:"click",triggerAction:r})},onMessageReady:e=>()=>{f({trackingProps:e,action:"view"})},onMessageReceiveData:()=>(e,n)=>{const{messageId:t}=n;t&&b({messageId:t})},onError:e=>(n,t)=>{f({trackingProps:e,action:"error",triggerAction:t})},onPMCancel:()=>()=>{b({activeComponent:g})}};function fe(e,n){window.addEventListener("message",function(t){if(t.origin!==n)return;const o={1:"save_and_close",11:"accept_all",13:"reject_all"},{data:{fromPM:s,actionType:r,messageId:a="0"}={}}=t;s&&(+a&&b({activeComponent:re,privacyManagerId:+a}),!(!r||!o[r])&&f({trackingProps:e,action:"click",triggerAction:o[r]}))},!1)}const me="3.4.0-beta.1";async function _e({propertyConfig:e=_,userId:n,useFTSession:t=!0,consentProxyHost:o=A,cookieDomain:s=L,formOfWordsId:r=M,useConsentStore:a=!0,trackingContext:i={}}={}){if(typeof window>"u"){console.error("The CMP client can only be initialised in a browser context");return}if(window.FT_CMP_CLIENT_VERSION=me,!n&&t)try{const c=await k();n=c==null?void 0:c.uuid}catch(c){console.error(c)}if(!(e!=null&&e.accountId))throw new Error("Please pass a valid property config");n&&(e.authId=n),e.events&&(console.warn("[cmp-client] Passing an events map in the config is not supported and will be ignored. Please use window._sp_.addEventListener() to listen for events"),delete e.events),B(e),window._sp_queue.push(()=>{var c,p;(p=(c=window._sp_)==null?void 0:c.addEventListener)==null||p.call(c,"onConsentReady",se({userId:n,consentProxyHost:o,cookieDomain:s,formOfWordsId:r,useConsentStore:a}))}),ue(i,e.baseEndpoint)}function ge(e=_){const{privacyManagerId:n,manageCookiesLinkOverride:t,manageCookiesSelector:o}=e._clientOptions||{},s=document.querySelector(o??"#site-footer");s&&t?s.addEventListener("click",r=>{var i,c,p;const a=r.target.closest("a");(i=a==null?void 0:a.getAttribute("href"))!=null&&i.endsWith(t)&&(r.preventDefault(),(p=(c=window._sp_)==null?void 0:c.gdpr)==null||p.loadPrivacyManagerModal(n))}):console.warn("No footer found for",o)}function ye(e,n){if(!n||Number.isFinite(parseFloat(n))||!e.endsWith(n))return!1;const t=e.indexOf(n),o=e[t-1];return o==="."||o===void 0}function be(e){if(!e)throw new Error("Invalid hostname provided");let t=Object.values(q).find(o=>{var r;const s=(r=o._clientOptions)==null?void 0:r.rootDomain;return s&&ye(e,s)});return t??(t=I),t}const he=new URL(window.location.href).hostname,O=be(he);_e({propertyConfig:O}),ge(O)})();
1
+ (function(){"use strict";const S=(e,{credentials:n="omit"}={})=>fetch(`https://session-next.ft.com${e}`,{credentials:n,useCorsProxy:!0}).then(t=>t.ok?t.json():t.text().then(o=>{throw new Error(`Next session responded with "${o}" (${t.status})`)})).catch(t=>{document.body.dispatchEvent(new CustomEvent("oErrors.log",{bubbles:!0,detail:{error:t,info:{component:"next-session-client"}}}))});let d={};const m=(e,n)=>{if(typeof e=="object"){d=e;return}if(typeof e=="string"&&typeof n=="string"){d[e]=n;return}if(typeof e=="string"&&typeof n>"u")return d[e]||null;if(typeof e>"u"&&typeof n>"u")return d;throw new Error("Invalid arguments")};m.clear=()=>{d={}};const l={},T=()=>{const[,e]=/FTSession_s=([^;]+)/.exec(document.cookie)||[];return e},k=()=>{const e=m("uuid");if(e)return Promise.resolve({uuid:e});const n=T();return n?(l.uuid||(l.uuid=S(`/sessions/s/${n}`).then(({uuid:t}={})=>(delete l.uuid,t&&m("uuid",t),{uuid:t}))),l.uuid):Promise.resolve({uuid:void 0})},h="sourcepoint-cmp",P="FTPINK",N="FTConsent",M="sourcepointCmp/VngD.XycZut.595cp9fWdp5XYP9vlFvk",L=".ft.com",A="https://consent.ft.com",v={permutiveAds:{purposes:[2,4,8,9],iabVendors:[361],customVendors:[],specialFeatures:[]},demographicAds:{purposes:[3,4,7,9,10],iabVendors:[],customVendors:[],specialFeatures:[]},behaviouralAds:{purposes:[2,4,8,9],iabVendors:[],customVendors:[],specialFeatures:[]},programmaticAds:{purposes:[2],iabVendors:[],customVendors:[],specialFeatures:[]},personalisedMarketing:{purposes:[1,4,8,9,10],iabVendors:[],customVendors:[],specialFeatures:[]}},C=Object.keys(v),u={joinHref:!0,gdpr:{},ccpa:{}},I={...u,accountId:1906,baseEndpoint:"https://consent-manager.ft.com",propertyHref:"https://local.ft.com",_clientOptions:{privacyManagerId:827767,manageCookiesLinkOverride:"ft.com/preferences/manage-cookies"}},_={...u,accountId:1906,baseEndpoint:"https://consent-manager.ft.com",propertyId:31642,_clientOptions:{privacyManagerId:827767,manageCookiesLinkOverride:"ft.com/preferences/manage-cookies",rootDomain:"ft.com"}},D={...u,accountId:1906,baseEndpoint:"https://consent-manager.pwmnet.com",propertyId:33414,_clientOptions:{rootDomain:"pwmnet.com"}},R={...u,accountId:1906,baseEndpoint:"https://consent-manager.fdiintelligence.com",propertyId:34061,_clientOptions:{rootDomain:"fdiintelligence.com"}},F={...u,accountId:1906,baseEndpoint:"https://consent-manager.thebanker.com",propertyId:34060,_clientOptions:{rootDomain:"thebanker.com"}},V={...u,accountId:1906,baseEndpoint:"https://consent-manager.bankingriskandregulation.com",propertyId:34059,_clientOptions:{rootDomain:"bankingriskandregulation.com"}},j={...u,accountId:1906,baseEndpoint:"https://consent-manager.sustainableviews.com",propertyId:34058,_clientOptions:{rootDomain:"sustainableviews.com"}},H={...u,accountId:1906,baseEndpoint:"https://consent-manager.ftadviser.com",propertyId:33416,_clientOptions:{rootDomain:"ftadviser.com"}},U={...u,accountId:1906,baseEndpoint:"https://consent-manager.investorschronicle.co.uk",propertyId:33415,_clientOptions:{rootDomain:"investorschronicle.co.uk"}},x={...u,accountId:1906,baseEndpoint:"https://cdn.privacy-mgmt.com",propertyId:33947,_clientOptions:{rootDomain:"ignitesasia.com"}},$={...u,accountId:1906,baseEndpoint:"https://cdn.privacy-mgmt.com",propertyId:33946,_clientOptions:{rootDomain:"igniteseurope.com"}},q=Object.freeze(Object.defineProperty({__proto__:null,FT_DOTCOM_PROD:_,FT_DOTCOM_TEST:I,MM_IGNITES_ASIA:x,MM_IGNITES_EUROPE:$,SP_BANKING_RR:V,SP_FDI_INTELLIGENCE:R,SP_FT_ADVISER:H,SP_INVESTORS_CHRONICLE:U,SP_PWMNET:D,SP_SUSTAINABLE_VIEWS:j,SP_THE_BANKER:F},Symbol.toStringTag,{value:"Module"}));function E(e,n){const t=document.createElement("script");return t.dataset.cmpScript=e,t.innerHTML=n,t}function G(e){const n=document.createElement("script");return n.src=e,n}const W={cmpFrames:"https://consent-manager.ft.com/unified/wrapperMessagingWithoutDetection.js"},w={tcfStub:'"use strict";function _typeof(t){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}!function(){var t=function(){var t,e,o=[],n=window,r=n;for(;r;){try{if(r.frames.__tcfapiLocator){t=r;break}}catch(t){}if(r===n.top)break;r=r.parent}t||(!function t(){var e=n.document,o=!!n.frames.__tcfapiLocator;if(!o)if(e.body){var r=e.createElement("iframe");r.style.cssText="display:none",r.name="__tcfapiLocator",r.title = "__tcfapiLocator",e.body.appendChild(r)}else setTimeout(t,5);return!o}(),n.__tcfapi=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(!n.length)return o;"setGdprApplies"===n[0]?n.length>3&&2===parseInt(n[1],10)&&"boolean"==typeof n[3]&&(e=n[3],"function"==typeof n[2]&&n[2]("set",!0)):"ping"===n[0]?"function"==typeof n[2]&&n[2]({gdprApplies:e,cmpLoaded:!1,cmpStatus:"stub"}):o.push(n)},n.addEventListener("message",(function(t){var e="string"==typeof t.data,o={};if(e)try{o=JSON.parse(t.data)}catch(t){}else o=t.data;var n="object"===_typeof(o)&&null!==o?o.__tcfapiCall:null;n&&window.__tcfapi(n.command,n.version,(function(o,r){var a={__tcfapiReturn:{returnValue:o,success:r,callId:n.callId}};t&&t.source&&t.source.postMessage&&t.source.postMessage(e?JSON.stringify(a):a,"*")}),n.parameter)}),!1))};"undefined"!=typeof module?module.exports=t:t()}();',uspStub:'"use strict";(function () { var e = false; var c = window; var t = document; function r() { if (!c.frames["__uspapiLocator"]) { if (t.body) { var a = t.body; var e = t.createElement("iframe"); e.style.cssText = "display:none"; e.name = "__uspapiLocator"; e.title = "__uspapiLocator";a.appendChild(e) } else { setTimeout(r, 5) } } } r(); function p() { var a = arguments; __uspapi.a = __uspapi.a || []; if (!a.length) { return __uspapi.a } else if (a[0] === "ping") { a[2]({ gdprAppliesGlobally: e, cmpLoaded: false }, true) } else { __uspapi.a.push([].slice.apply(a)) } } function l(t) { var r = typeof t.data === "string"; try { var a = r ? JSON.parse(t.data) : t.data; if (a.__cmpCall) { var n = a.__cmpCall; c.__uspapi(n.command, n.parameter, function (a, e) { var c = { __cmpReturn: { returnValue: a, success: e, callId: n.callId } }; t.source.postMessage(r ? JSON.stringify(c) : c, "*") }) } } catch (a) { } } if (typeof __uspapi !== "function") { c.__uspapi = p; __uspapi.msgHandler = l; c.addEventListener("message", l, false) } })();'};function K(){const e=document.createDocumentFragment();return e.appendChild(E("tcf",w.tcfStub)),e.appendChild(E("usp",w.uspStub)),e.appendChild(G(W.cmpFrames)),e}function B(e){const{_clientOptions:n,...t}=e;window._sp_={config:t},window._sp_queue??(window._sp_queue=[]),document.head.appendChild(K())}function J(e,n,{formOfWordsId:t,cookieDomain:o}){const r=Object.keys(e).reduce((a,i)=>(a[i]={onsite:{status:e[i],lbi:!1,source:h,fow:t}},a),{});return n?{setConsentCookie:!0,formOfWordsId:t,consentSource:h,cookieDomain:o,data:r}:{data:r,cookieDomain:o}}function X(e,{purpose:n,vendor:t,specialFeatureOptins:o}){const s=v[e],r=s.purposes.every(c=>(n==null?void 0:n.consents[c])||(n==null?void 0:n.legitimateInterests[c])),a=s.iabVendors.every(c=>(t==null?void 0:t.consents[c])||(t==null?void 0:t.legitimateInterests[c])),i=s.specialFeatures.every(c=>(o==null?void 0:o[c])===!0);return r&&a&&i}function Y(e){const n=(e==null?void 0:e[2])==="N",t={};for(const o of C)t[o]=n;return t}async function z(){const e=await new Promise((t,o)=>{var s;try{(s=window.__tcfapi)==null||s.call(window,"addEventListener",2,t)}catch(r){o(r)}}),n={};for(const t of C)n[t]=X(t,e);return n}async function Z(e,n){return e==="ccpa"?Y(n):await z()}function Q(){const n=Object.fromEntries(document.cookie.split("; ").map(o=>o.split("=")))[N];if(!n)return{};const t=decodeURIComponent(n);return Object.fromEntries(t.split(",").map(o=>{const[s,r]=o.split(":");return[s,r==="on"]}))}function ee(e,n){return Object.keys(e).some(o=>{const s=`${o.toLowerCase()}Onsite`;return e[o]!==n[s]})}function te({userId:e,useConsentStore:n}){return!!e&&n===!0}function ne(e,n){return e?`${n.consentProxyHost}/__consent/consent-record/${P}/${n.userId}`:`${n.consentProxyHost}/__consent/consent-record-cookie?cookieDomain=${n.cookieDomain}`}async function oe(e,n){try{const t=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n),credentials:"include"});t.ok||console.error("Unable to save consent preferences",t.status)}catch(t){console.error("An error occurred while saving consent",t)}}function se(e){return async function(t,o,s,r){const a=r.applies?t:"gdpr";if(a!==t||!s)return;const i=await Z(a,s);if(!ee(i,Q()))return;const p=te(e),ve=ne(p,e),Ce=J(i,p,e);await oe(ve,Ce),document.dispatchEvent(new CustomEvent("oCookieMessage.act",{bubbles:!0}))}}const g="cookie-message",re="manage-cookies";let y=Object.freeze({activeComponent:g,messageId:0,privacyManagerId:0});function ce(e){return typeof e=="object"&&e!==null&&e.constructor===Object&&Object.prototype.toString.call(e)==="[object Object]"}const ae=()=>({...y}),b=e=>{if(!ce(e)){console.error("Invalid state changes");return}y={...y,...e}},ie=["adsDisableInternalCMP","pwm.cmp","messageSlotBottom"];function ue(e,n){const t=pe(e.flags);window._sp_queue=window._sp_queue??[],window._sp_queue.push(()=>{var o,s;for(const[r,a]of Object.entries(le))(s=(o=window._sp_).addEventListener)==null||s.call(o,r,a({...e,flags:t}))}),fe({...e,flags:t},n)}function pe(e){const n={};return typeof e=="object"&&ie.forEach(t=>{Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t])}),n}function de(e){if(!e)return;const n=document.body,t=new CustomEvent("oTracking.event",{bubbles:!0,cancelable:!0,detail:e.detail});n.dispatchEvent(t)}function f({trackingProps:e,action:n,triggerAction:t}){let o;const s=ae(),{product:r,app:a,flags:i}=e;s.activeComponent===g?o=s.messageId:o=s.privacyManagerId;const c={detail:{component:{id:o,name:s.activeComponent,type:"overlay",subtype:"cmp"},category:"component",action:n,...t&&{trigger_action:t},...r&&{product:r},...a&&{app:a},custom:[{cookie_toggle_flag:i}],url:window.document.location.href||null}};de(c)}const le={onMessageChoiceSelect:e=>(n,t,o)=>{const r={11:"accept_all",12:"manage_cookies",13:"reject_all"}[o];r&&f({trackingProps:e,action:"click",triggerAction:r})},onMessageReady:e=>()=>{f({trackingProps:e,action:"view"})},onMessageReceiveData:()=>(e,n)=>{const{messageId:t}=n;t&&b({messageId:t})},onError:e=>(n,t)=>{f({trackingProps:e,action:"error",triggerAction:t})},onPMCancel:()=>()=>{b({activeComponent:g})}};function fe(e,n){window.addEventListener("message",function(t){if(t.origin!==n)return;const o={1:"save_and_close",11:"accept_all",13:"reject_all"},{data:{fromPM:s,actionType:r,messageId:a="0"}={}}=t;s&&(+a&&b({activeComponent:re,privacyManagerId:+a}),!(!r||!o[r])&&f({trackingProps:e,action:"click",triggerAction:o[r]}))},!1)}const me="3.4.0-beta.2";async function _e({propertyConfig:e=_,userId:n,useFTSession:t=!0,consentProxyHost:o=A,cookieDomain:s=L,formOfWordsId:r=M,useConsentStore:a=!0,trackingContext:i={}}={}){if(typeof window>"u"){console.error("The CMP client can only be initialised in a browser context");return}if(window.FT_CMP_CLIENT_VERSION=me,!n&&t)try{const c=await k();n=c==null?void 0:c.uuid}catch(c){console.error(c)}if(!(e!=null&&e.accountId))throw new Error("Please pass a valid property config");n&&(e.authId=n),e.events&&(console.warn("[cmp-client] Passing an events map in the config is not supported and will be ignored. Please use window._sp_.addEventListener() to listen for events"),delete e.events),B(e),window._sp_queue.push(()=>{var c,p;(p=(c=window._sp_)==null?void 0:c.addEventListener)==null||p.call(c,"onConsentReady",se({userId:n,consentProxyHost:o,cookieDomain:s,formOfWordsId:r,useConsentStore:a}))}),ue(i,e.baseEndpoint)}function ge(e=_){const{privacyManagerId:n,manageCookiesLinkOverride:t,manageCookiesSelector:o}=e._clientOptions||{},s=document.querySelector(o??"#site-footer");s&&t?s.addEventListener("click",r=>{var i,c,p;const a=r.target.closest("a");(i=a==null?void 0:a.getAttribute("href"))!=null&&i.endsWith(t)&&(r.preventDefault(),(p=(c=window._sp_)==null?void 0:c.gdpr)==null||p.loadPrivacyManagerModal(n))}):console.warn("No footer found for",o)}function ye(e,n){if(!n||Number.isFinite(parseFloat(n))||!e.endsWith(n))return!1;const t=e.indexOf(n),o=e[t-1];return o==="."||o===void 0}function be(e){if(!e)throw new Error("Invalid hostname provided");let t=Object.values(q).find(o=>{var r;const s=(r=o._clientOptions)==null?void 0:r.rootDomain;return s&&ye(e,s)});return t??(t=I),t}const he=new URL(window.location.href).hostname,O=be(he);_e({propertyConfig:O}),ge(O)})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@financial-times/cmp-client",
3
- "version": "3.4.0-beta.1",
3
+ "version": "3.4.0-beta.2",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "files": [