@financial-times/cmp-client 6.11.1 → 6.11.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 +1 -1
- package/dist/index.js +1 -1
- package/dist/scripts/cmp-static.js +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1102,7 +1102,7 @@ function setupFTConsentCookieAuditStorage() {
|
|
|
1102
1102
|
localStorage.setItem("__lastFtc", ftConsentCookieValue);
|
|
1103
1103
|
});
|
|
1104
1104
|
}
|
|
1105
|
-
const version = "6.11.
|
|
1105
|
+
const version = "6.11.2";
|
|
1106
1106
|
async function initSourcepointCmp(options) {
|
|
1107
1107
|
const {
|
|
1108
1108
|
useFTSession = true,
|
package/dist/index.js
CHANGED
|
@@ -1100,7 +1100,7 @@ function setupFTConsentCookieAuditStorage() {
|
|
|
1100
1100
|
localStorage.setItem("__lastFtc", ftConsentCookieValue);
|
|
1101
1101
|
});
|
|
1102
1102
|
}
|
|
1103
|
-
const version = "6.11.
|
|
1103
|
+
const version = "6.11.2";
|
|
1104
1104
|
async function initSourcepointCmp(options) {
|
|
1105
1105
|
const {
|
|
1106
1106
|
useFTSession = true,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
(function(){"use strict";const V=(t,{credentials:e="omit"}={})=>fetch(`https://session-next.ft.com${t}`,{credentials:e,useCorsProxy:!0}).then(n=>n.ok?n.json():n.text().then(o=>{throw new Error(`Next session responded with "${o}" (${n.status})`)})).catch(n=>{document.body.dispatchEvent(new CustomEvent("oErrors.log",{bubbles:!0,detail:{error:n,info:{component:"next-session-client"}}}))});let I={};const h=(t,e)=>{if(typeof t=="object"){I=t;return}if(typeof t=="string"&&typeof e=="string"){I[t]=e;return}if(typeof t=="string"&&typeof e>"u")return I[t]||null;if(typeof t>"u"&&typeof e>"u")return I;throw new Error("Invalid arguments")};h.clear=()=>{I={}};const y={},x=()=>{const[,t]=/FTSession_s=([^;]+)/.exec(document.cookie)||[];return t},H=()=>{const t=h("uuid");if(t)return Promise.resolve({uuid:t});const e=x();return e?(y.uuid||(y.uuid=V(`/sessions/s/${e}`).then(({uuid:n}={})=>(delete y.uuid,n&&h("uuid",n),{uuid:n}))),y.uuid):Promise.resolve({uuid:void 0})},S="sourcepoint-cmp",j="FTPINK",G="FTConsent",B="sourcepointCmp/VngD.XycZut.595cp9fWdp5XYP9vlFvk",q=".ft.com",W="https://consent.ft.com",k={permutiveAds:{purposes:[2,4,8,9],iabVendors:[361],customVendors:[],specialFeatures:[]},demographicAds:{purposes:[7,9,10],iabVendors:[],customVendors:[],specialFeatures:[]},behaviouralAds:{purposes:[2,4,8,9],iabVendors:[],customVendors:[],specialFeatures:[]},programmaticAds:{purposes:[2,4,8,9],iabVendors:[],customVendors:[],specialFeatures:[]},personalisedMarketing:{purposes:[2,7,8,9,10],iabVendors:[],customVendors:[],specialFeatures:[]},cookies:{purposes:[1,2,3,4,7,8,9,10],iabVendors:[],customVendors:[],specialFeatures:[]}},b=Object.keys(k),r={joinHref:!0,gdpr:{}},T={...r,accountId:1906,baseEndpoint:"https://consent-manager.ft.com",propertyHref:"https://local.ft.com",_clientOptions:{privacyManagerId:827767,manageCookiesLinkOverride:"ft.com/preferences/manage-cookies",rootDomain:"ft.com",includeUsNat:!0}},v={...r,accountId:1906,baseEndpoint:"https://consent-manager.ft.com",propertyId:31642,_clientOptions:{privacyManagerId:827767,usnatPrivacyManagerId:1143274,ccpaPrivacyManagerId:944882,manageCookiesLinkOverride:"ft.com/preferences/manage-cookies",rootDomain:"ft.com",includeUsNat:!0}},$={...r,accountId:1906,baseEndpoint:"https://consent-manager.pwmnet.com",propertyId:33414,_clientOptions:{rootDomain:"pwmnet.com",includeUsNat:!0}},K={...r,accountId:1906,baseEndpoint:"https://consent-manager.fdiintelligence.com",propertyId:34061,_clientOptions:{rootDomain:"fdiintelligence.com",includeUsNat:!0}},J={...r,accountId:1906,baseEndpoint:"https://consent-manager.thebanker.com",propertyId:34060,_clientOptions:{rootDomain:"thebanker.com",includeUsNat:!0}},X={...r,accountId:1906,baseEndpoint:"https://consent-manager.bankingriskandregulation.com",propertyId:34059,_clientOptions:{rootDomain:"bankingriskandregulation.com",includeUsNat:!0}},Y={...r,accountId:1906,baseEndpoint:"https://consent-manager.sustainableviews.com",propertyId:34058,_clientOptions:{rootDomain:"sustainableviews.com",includeUsNat:!0}},z={...r,accountId:1906,baseEndpoint:"https://consent-manager.ftadviser.com",propertyId:33416,_clientOptions:{rootDomain:"ftadviser.com",includeUsNat:!0}},Z={...r,accountId:1906,baseEndpoint:"https://consent-manager.investorschronicle.co.uk",propertyId:33415,_clientOptions:{rootDomain:"investorschronicle.co.uk",includeUsNat:!0}},Q={...r,accountId:1906,baseEndpoint:"https://cdn.privacy-mgmt.com",propertyId:33947,_clientOptions:{rootDomain:"ignitesasia.com"}},tt={...r,accountId:1906,baseEndpoint:"https://cdn.privacy-mgmt.com",propertyId:33946,_clientOptions:{rootDomain:"igniteseurope.com"}},et={...r,accountId:1906,baseEndpoint:"https://consent-manager.mandatewire.com",propertyId:35490,_clientOptions:{rootDomain:"mandatewire.com",includeUsNat:!0}},nt={...r,accountId:1906,baseEndpoint:"https://consent-manager.ftlocations.com",propertyId:37407,_clientOptions:{rootDomain:"ftlocations.com",cookieDomain:".ftlocations.com",consentProxyHost:"https://consent.ftlocations.com",includeUsNat:!0}},ot={...r,accountId:1906,baseEndpoint:"https://consent-manager.financialadviserserviceawards.com",propertyId:38297,_clientOptions:{rootDomain:"financialadviserserviceawards.com",includeUsNat:!0}},st={...r,accountId:1906,baseEndpoint:"https://consent-manager.celebrationofinvestment.co.uk",propertyId:38296,_clientOptions:{rootDomain:"celebrationofinvestment.co.uk",includeUsNat:!0}},at={...r,accountId:1906,baseEndpoint:"https://consent-manager.globalprivatebankingawards.com",propertyId:38295,_clientOptions:{rootDomain:"globalprivatebankingawards.com",includeUsNat:!0}},ct={...r,accountId:1906,baseEndpoint:"https://consent-manager.thenextweb.com",propertyId:37672,_clientOptions:{rootDomain:"thenextweb.com"}},it={...r,accountId:1906,baseEndpoint:"https://consent-manager.invisso.org",propertyId:38851,_clientOptions:{rootDomain:"invisso.org"}},rt={...r,accountId:1906,baseEndpoint:"https://consent-manager.abseast.com",propertyId:38888,_clientOptions:{rootDomain:"abseast.com"}},pt={...r,accountId:1906,baseEndpoint:"https://consent-manager.absasia.org",propertyId:38887,_clientOptions:{rootDomain:"absasia.org"}},ut={...r,accountId:1906,baseEndpoint:"https://consent-manager.globalcoveredbonds.com",propertyId:38886,_clientOptions:{rootDomain:"globalcoveredbonds.com"}},dt={...r,accountId:1906,baseEndpoint:"https://consent-manager.globalborrowers.com",propertyId:38885,_clientOptions:{rootDomain:"globalborrowers.com"}},lt={...r,accountId:1906,baseEndpoint:"https://consent-manager.globalabs.org",propertyId:38884,_clientOptions:{rootDomain:"globalabs.org"}},ft={...r,accountId:1906,baseEndpoint:"https://consent-manager.creditrisk-transfer.com",propertyId:38883,_clientOptions:{rootDomain:"creditrisk-transfer.com"}},mt={...r,accountId:1906,baseEndpoint:"https://consent-manager.significantrisktransfer.com",propertyId:38882,_clientOptions:{rootDomain:"significantrisktransfer.com"}},gt={...r,accountId:1906,baseEndpoint:"https://consent-manager.theceeforum.com",propertyId:38882,_clientOptions:{rootDomain:"theceeforum.com"}},_t={...r,accountId:1906,baseEndpoint:"https://consent-manager.fdimarkets.com",propertyId:40508,_clientOptions:{rootDomain:"fdimarkets.com",cookieDomain:".fdimarkets.com",consentProxyHost:"https://consent.fdimarkets.com",includeUsNat:!0}},It={...r,accountId:1906,baseEndpoint:"https://consent-manager.fdibenchmark.com",propertyId:40509,_clientOptions:{rootDomain:"fdibenchmark.com",cookieDomain:".fdibenchmark.com",consentProxyHost:"https://consent.fdibenchmark.com",includeUsNat:!0}},yt={...r,accountId:1906,baseEndpoint:"https://consent-manager.ft.com",propertyId:41863,_clientOptions:{rootDomain:"ft.com"}},bt={...r,accountId:1906,baseEndpoint:"https://consent-manager.ft.com",propertyId:41922,_clientOptions:{rootDomain:"ft.com"}},vt=Object.freeze(Object.defineProperty({__proto__:null,FT_DOTCOM_PROD:v,FT_DOTCOM_TEST:T,INVISSO:it,INV_ABSASIA:pt,INV_ABSEAST:rt,INV_CEE_FORUM:gt,INV_CREDITRISK_TRANSFER:ft,INV_GLOBAL_ABS:lt,INV_GLOBAL_BONDS_SUMMIT:yt,INV_GLOBAL_BORROWERS:dt,INV_GLOBAL_COVERED_BONDS:ut,LONGITUDE_FTDOTCOM:bt,MM_IGNITES_ASIA:Q,MM_IGNITES_EUROPE:tt,SIGRISK_TRANSFER:mt,SP_BANKING_RR:X,SP_CELEBRATION_OF_INVESTMENT:st,SP_FDI_BENCHMARK:It,SP_FDI_INTELLIGENCE:K,SP_FDI_MARKETS:_t,SP_FTA_SERVICE_AWARDS:ot,SP_FT_ADVISER:z,SP_FT_LOCATIONS:nt,SP_GLOBAL_PRIVATE_BANKING_AWARDS:at,SP_INVESTORS_CHRONICLE:Z,SP_MANDATE_WIRE:et,SP_PWMNET:$,SP_SUSTAINABLE_VIEWS:Y,SP_THE_BANKER:J,TNW:ct},Symbol.toStringTag,{value:"Module"}));function A(t,e){const n=document.createElement("script");return n.dataset.cmpScript=t,n.innerHTML=e,n}function wt(t){const e=document.createElement("script");return e.src=t,e}const ht={cmpFrames:"https://consent-manager.ft.com/unified/wrapperMessagingWithoutDetection.js"},D={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()}();',gppStub:`window.__gpp_addFrame=function(e){if(!window.frames[e])if(document.body){var t=document.createElement("iframe");t.style.cssText="display:none",t.name=e,document.body.appendChild(t)}else window.setTimeout(window.__gpp_addFrame,10,e)},window.__gpp_stub=function(){var e=arguments;if(__gpp.queue=__gpp.queue||[],__gpp.events=__gpp.events||[],!e.length||1==e.length&&"queue"==e[0])return __gpp.queue;if(1==e.length&&"events"==e[0])return __gpp.events;var t=e[0],p=e.length>1?e[1]:null,s=e.length>2?e[2]:null;if("ping"===t)p({gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:usca","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}},!0);else if("addEventListener"===t){"lastId"in __gpp||(__gpp.lastId=0),__gpp.lastId++;var n=__gpp.lastId;__gpp.events.push({id:n,callback:p,parameter:s}),p({eventName:"listenerRegistered",listenerId:n,data:!0,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:usca","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}}},!0)}else if("removeEventListener"===t){for(var a=!1,i=0;i<__gpp.events.length;i++)if(__gpp.events[i].id==s){__gpp.events.splice(i,1),a=!0;break}p({eventName:"listenerRemoved",listenerId:s,data:a,pingData:{gppVersion:"1.1",cmpStatus:"stub",cmpDisplayStatus:"hidden",signalStatus:"not ready",supportedAPIs:["2:tcfeuv2","5:tcfcav1","6:uspv1","7:usnat","8:usca","9:usvav1","10:uscov1","11:usutv1","12:usctv1"],cmpId:0,sectionList:[],applicableSections:[],gppString:"",parsedSections:{}}},!0)}else"hasSection"===t?p(!1,!0):"getSection"===t||"getField"===t?p(null,!0):__gpp.queue.push([].slice.apply(e))},window.__gpp_msghandler=function(e){var t="string"==typeof e.data;try{var p=t?JSON.parse(e.data):e.data}catch(e){p=null}if("object"==typeof p&&null!==p&&"__gppCall"in p){var s=p.__gppCall;window.__gpp(s.command,(function(p,n){var a={__gppReturn:{returnValue:p,success:n,callId:s.callId}};e.source.postMessage(t?JSON.stringify(a):a,"*")}),"parameter"in s?s.parameter:null,"version"in s?s.version:"1.1")}},"__gpp"in window&&"function"==typeof window.__gpp||(window.__gpp=window.__gpp_stub,window.addEventListener("message",window.__gpp_msghandler,!1),window.__gpp_addFrame("__gppLocator"));
|
|
2
|
-
`};function St(t){const e=document.createDocumentFragment();return e.appendChild(A("tcf",D.tcfStub)),t.includeUsNat&&e.appendChild(A("gpp",D.gppStub)),e.appendChild(wt(ht.cmpFrames)),e}function Ct(t,e){const{userId:n,includeUsNat:o}=e;return n&&(t.authId=n),o&&(t.usnat=t.usnat||{}),t}function Ot(t,e){const{_clientOptions:n,...o}=t,s=Ct(o,e);window._sp_={config:s},window._sp_queue??(window._sp_queue=[]),document.head.appendChild(St(e))}function Et(t,e,n,{formOfWordsId:o,cookieDomain:s}){const c=Object.keys(t).reduce((u,i)=>(u[i]={onsite:{status:t[i],lbi:!1,source:S,fow:o}},i==="cookies"&&(u.cookies.userAccept={status:t[i],lbi:!1,source:S,fow:o}),u),{});return e?{setConsentCookie:!0,formOfWordsId:o,consentSource:S,cookieDomain:s,skipDuplicateUpdates:!n,data:c}:{data:c,cookieDomain:s}}const _={CALIFORNIA:"usca",US_NATIONAL:"usnat"},P={[_.CALIFORNIA]:{excludedCategories:{}},[_.US_NATIONAL]:{excludedCategories:{personalisedMarketing:!0}}};function Nt(t){const{applicableSections:e,supportedAPIs:n}=t,o=e[0];if(o===-1||typeof o>"u")return;const s=n.find(c=>c.startsWith(`${o}:`));return s==null?void 0:s.split(":")[1]}function kt(t){const{SaleOptOut:e,SharingOptOut:n,Gpc:o}=t,{excludedCategories:s}=P[_.CALIFORNIA],a=e!==1&&n!==1&&!o,c={};for(const u of b){if(u in s){c[u]=!0;continue}c[u]=a}return c}function Tt(t){const{SaleOptOut:e,SharingOptOut:n,TargetedAdvertisingOptOut:o}=t,{excludedCategories:s}=P[_.US_NATIONAL],a=JSON.parse(localStorage.getItem("ft_sp_marketing_optout")||"{}"),c=e!==1&&n!==1&&o!==1,u={};for(const i of b){if(i in s){u[i]=!0;continue}u[i]=c}if(a.usnat)for(const i of b)u[i]=!1;return u}const At={[_.CALIFORNIA]:kt,[_.US_NATIONAL]:Tt};async function L(){return new Promise((t,e)=>{try{window.__gpp?window.__gpp("ping",t):e(new Error("GPP API is not available on page"))}catch(n){e(n)}})}async function Dt(){const t=await L(),{parsedSections:e}=t,n=Nt(t);if(!n||!e[n])throw new Error("GPP parser was called without an applicable section");const o=e[n],s=At[n];if(!s||typeof s!="function")throw new Error(`No parser found for applicable GPP section: ${n}`);return s(o)}function Pt(t,{purpose:e,vendor:n,specialFeatureOptins:o={}}){const s=k[t],a=(e==null?void 0:e.consents)||{},c=(e==null?void 0:e.legitimateInterests)||{},u=(n==null?void 0:n.consents)||{},i=(n==null?void 0:n.legitimateInterests)||{},p=s.purposes.every(l=>a[l]||c[l]),f=s.iabVendors.every(l=>u[l]||i[l]),d=s.specialFeatures.every(l=>o[l]===!0),g=s.purposes.every(l=>a[l]===!0);return t==="cookies"?g&&f&&d:p&&f&&d}async function M(){return new Promise((t,e)=>{try{window.__tcfapi?window.__tcfapi("addEventListener",2,t):e(new Error("TCF API is not available on page"))}catch(n){e(n)}})}async function Lt(){const t=await M(),e={};for(const n of b)e[n]=Pt(n,t);return e}async function Mt(t){const n={gdpr:Lt,usnat:Dt}[t];if(!n)throw new Error("Unable to update user consent. Unsupported consent legislation.");return n()}function Ft(){const e=Object.fromEntries(document.cookie.split("; ").map(o=>o.split("=")))[G];if(!e)return{};const n=decodeURIComponent(e);return Object.fromEntries(n.split(",").map(o=>{const[s,a]=o.split(":");return[s,a==="on"]}))}function Rt(t,e){return Object.keys(t).some(o=>{const s=`${o.toLowerCase()}Onsite`;return t[o]!==e[s]})}function Ut({userId:t,useConsentStore:e}){return!!t&&e===!0}function Vt(t,e){return t?`${e.consentProxyHost}/__consent/consent-record/${j}/${e.userId}?updateFtConsentCookie=true`:`${e.consentProxyHost}/__consent/consent-record-cookie?cookieDomain=${e.cookieDomain}`}const F={gdpr:!1,usnat:!1},C=Object.assign({},F);function R(t){C[t]=!0}function xt(t){return C[t]}function Ht(){Object.assign(C,F)}async function jt(t){return xt(t)?t==="gdpr"?(await M()).eventStatus==="useractioncomplete":t==="usnat"?(await L()).cmpDisplayStatus==="hidden":!1:!1}function Gt(){window.__tcfapi&&window.__tcfapi("addEventListener",2,t=>{t.eventStatus==="cmpuishown"&&R("gdpr")}),window.__gpp&&window.__gpp("addEventListener",({pingData:t})=>{t.cmpDisplayStatus==="visible"&&R("usnat")})}async function Bt(t,e){try{const n=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),credentials:"include"});n.ok||console.error("Unable to save consent preferences",n.status)}catch(n){console.error("An error occurred while saving consent",n)}finally{document.dispatchEvent(new CustomEvent("onCmpConsentSaveCompleted",{bubbles:!0}))}}const qt=()=>{document.dispatchEvent(new CustomEvent("onCmpConsentReady",{bubbles:!0}))};function Wt(t){return async function(n,o,s,a){if(qt(),t.disableFTCookies||!t.includeUsNat&&n==="usnat"||!a.applies||!s)return;let c;try{c=await Mt(n)}catch(g){console.error(g)}if(!c||!Rt(c,Ft()))return;window.dataLayer=(window==null?void 0:window.dataLayer)||[],window.dataLayer.push({event:"consentUpdate",consentUpdateBehaviouralAds:c.behaviouralAds,consentUpdateCookies:c.cookies});const i=await jt(n),p=Ut(t),f=Vt(p,t),d=Et(c,p,i,t);await Bt(f,d),i&&Ht(),document.dispatchEvent(new CustomEvent("oCookieMessage.act",{bubbles:!0}))}}const O="cookie-message",$t="manage-cookies";let E=Object.freeze({activeComponent:O,messageId:0,privacyManagerId:0});function Kt(t){return typeof t=="object"&&t!==null&&t.constructor===Object&&Object.prototype.toString.call(t)==="[object Object]"}const Jt=()=>({...E}),N=t=>{if(!Kt(t)){console.error("Invalid state changes");return}E={...E,...t}},Xt=["adsDisableInternalCMP","pwm.cmp"];function Yt(t,e){const n=zt(t.flags);window._sp_queue=window._sp_queue??[],window._sp_queue.push(()=>{var o,s;for(const[a,c]of Object.entries(Qt))(s=(o=window._sp_).addEventListener)==null||s.call(o,a,c({...t,flags:n}))}),te({...t,flags:n},e),ee()}function zt(t){const e={};return typeof t=="object"&&Xt.forEach(n=>{Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}),e}function Zt(t){if(!t)return;const e=document.body,n=new CustomEvent("oTracking.event",{bubbles:!0,cancelable:!0,detail:t.detail});e.dispatchEvent(n)}function w({trackingProps:t,action:e,triggerAction:n}){let o;const s=Jt(),{product:a,app:c,flags:u}=t;s.activeComponent===O?o=s.messageId:o=s.privacyManagerId;const i={detail:{component:{id:o,name:s.activeComponent,type:"overlay",subtype:"cmp"},category:"component",action:e,...n&&{trigger_action:n},...a&&{product:a},...c&&{app:c},custom:[{cookie_toggle_flag:u}],url:window.document.location.href||null}};Zt(i)}const Qt={onMessageChoiceSelect:t=>(e,n,o)=>{const a={11:"accept_all",12:"manage_cookies",13:"reject_all"}[o];a&&w({trackingProps:t,action:"click",triggerAction:a})},onMessageReady:t=>()=>{w({trackingProps:t,action:"view"})},onMessageReceiveData:()=>(t,e)=>{const{messageId:n}=e;n&&N({messageId:n})},onError:t=>(e,n)=>{w({trackingProps:t,action:"error",triggerAction:n})},onPMCancel:()=>()=>{N({activeComponent:O})}};function te(t,e){window.addEventListener("message",function(n){if(n.origin!==e)return;const o={1:"save_and_close",11:"accept_all",13:"reject_all"},{data:{fromPM:s,actionType:a,messageId:c="0"}={}}=n;s&&(+c&&N({activeComponent:$t,privacyManagerId:+c}),!(!a||!o[a])&&w({trackingProps:t,action:"click",triggerAction:o[a]}))},!1)}function ee(){document.addEventListener("onCmpConsentSaveCompleted",()=>{const t=document.cookie.match(/FTConsent=([^;]+)/);if(!t)return;const e=t[1];localStorage.setItem("__lastFtc",e)})}const ne="6.11.1";async function oe(t){const{useFTSession:e=!0,consentProxyHost:n=W,cookieDomain:o=q,formOfWordsId:s=B,useConsentStore:a=!0,trackingContext:c={},disableFTCookies:u=!1,includeUsNat:i=!1}=t||{};let{propertyConfig:p=v,userId:f}=t||{};if(typeof window>"u"){console.error("The CMP client can only be initialised in a browser context");return}if(window.FT_CMP_CLIENT_VERSION=ne,!f&&e)try{const d=await H();f=d==null?void 0:d.uuid}catch(d){console.error(d)}p=se(p),Ot(p,{userId:f,includeUsNat:i}),Gt(),window._sp_queue.push(()=>{var d,g;(g=(d=window._sp_)==null?void 0:d.addEventListener)==null||g.call(d,"onConsentReady",Wt({userId:f,consentProxyHost:n,cookieDomain:o,formOfWordsId:s,useConsentStore:a,disableFTCookies:u,includeUsNat:i}))}),Yt(c,p.baseEndpoint)}function se(t){if(!(t!=null&&t.accountId))throw new Error("Please pass a valid property config");return t.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 t.events),t}function U(t,e,n,o,s,a){const{text:c,onClick:u}=o[e],i=document.querySelectorAll(`a[href*="${a}"]`);for(const p of i)(n||t)&&(s.has(p)&&p.removeEventListener("click",s.get(p)),p.innerText=c,p.addEventListener("click",u),s.set(p,u))}function ae({_clientOptions:t}=v){const{privacyManagerId:e,ccpaPrivacyManagerId:n,usnatPrivacyManagerId:o,manageCookiesLinkOverride:s}=t??v._clientOptions,a={usnat:{text:"Do Not Sell My Personal Information",onClick:i=>{var p;i.preventDefault(),(p=window._sp_.usnat)==null||p.loadPrivacyManagerModal(o)}},ccpa:{text:"Do Not Sell My Personal Information",onClick:i=>{var p;i.preventDefault(),(p=window._sp_.ccpa)==null||p.loadPrivacyManagerModal(n)}},gdpr:{text:"Manage Cookies",onClick:i=>{var p;i.preventDefault(),(p=window._sp_.gdpr)==null||p.loadPrivacyManagerModal(e)}}},c=new Map,u=function(i,p,f,d){U(!1,i,d.applies,a,c,s),d.applies&&window._sp_queue.push(()=>{var g,l;(l=(g=window._sp_).removeEventListener)==null||l.call(g,"onConsentReady",u)})};U(!0,"gdpr",!1,a,c,s),window._sp_queue??(window._sp_queue=[]),window._sp_queue.push(()=>{var i,p;(p=(i=window._sp_).addEventListener)==null||p.call(i,"onConsentReady",u)})}function ce(t){return t._clientOptions??{}}const ie={"ft.com":ce};function re(t){return new Promise((e,n)=>{const{rootDomain:o}=t._clientOptions||{};if(!o)return e({});const s=ie[o];if(!s||typeof s!="function")return e({...t._clientOptions});const a=()=>{try{e(s(t))}catch(c){n(c)}};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",a):a()})}function pe(t,e){if(!e||Number.isFinite(parseFloat(e))||!t.endsWith(e))return!1;const n=t.indexOf(e),o=t[n-1];return o==="."||o===void 0}function ue(t){if(!t)throw new Error("Invalid hostname provided");let n=Object.values(vt).find(o=>{var a;if(o.propertyHref)return!1;const s=(a=o._clientOptions)==null?void 0:a.rootDomain;return s&&pe(t,s)});return n??(n=T),n}const de=new URL(window.location.href).hostname,m=ue(de);(async()=>{var t,e;try{const n=await re(m);oe({propertyConfig:m,...n}),(t=m==null?void 0:m._clientOptions)!=null&&t.privacyManagerId&&((e=m==null?void 0:m._clientOptions)!=null&&e.manageCookiesLinkOverride)&&ae(m)}catch(n){console.error("Error: CMP package configure + initialise Sourcepoint failed.",n)}})()})();
|
|
2
|
+
`};function St(t){const e=document.createDocumentFragment();return e.appendChild(A("tcf",D.tcfStub)),t.includeUsNat&&e.appendChild(A("gpp",D.gppStub)),e.appendChild(wt(ht.cmpFrames)),e}function Ct(t,e){const{userId:n,includeUsNat:o}=e;return n&&(t.authId=n),o&&(t.usnat=t.usnat||{}),t}function Ot(t,e){const{_clientOptions:n,...o}=t,s=Ct(o,e);window._sp_={config:s},window._sp_queue??(window._sp_queue=[]),document.head.appendChild(St(e))}function Et(t,e,n,{formOfWordsId:o,cookieDomain:s}){const c=Object.keys(t).reduce((u,i)=>(u[i]={onsite:{status:t[i],lbi:!1,source:S,fow:o}},i==="cookies"&&(u.cookies.userAccept={status:t[i],lbi:!1,source:S,fow:o}),u),{});return e?{setConsentCookie:!0,formOfWordsId:o,consentSource:S,cookieDomain:s,skipDuplicateUpdates:!n,data:c}:{data:c,cookieDomain:s}}const _={CALIFORNIA:"usca",US_NATIONAL:"usnat"},P={[_.CALIFORNIA]:{excludedCategories:{}},[_.US_NATIONAL]:{excludedCategories:{personalisedMarketing:!0}}};function Nt(t){const{applicableSections:e,supportedAPIs:n}=t,o=e[0];if(o===-1||typeof o>"u")return;const s=n.find(c=>c.startsWith(`${o}:`));return s==null?void 0:s.split(":")[1]}function kt(t){const{SaleOptOut:e,SharingOptOut:n,Gpc:o}=t,{excludedCategories:s}=P[_.CALIFORNIA],a=e!==1&&n!==1&&!o,c={};for(const u of b){if(u in s){c[u]=!0;continue}c[u]=a}return c}function Tt(t){const{SaleOptOut:e,SharingOptOut:n,TargetedAdvertisingOptOut:o}=t,{excludedCategories:s}=P[_.US_NATIONAL],a=JSON.parse(localStorage.getItem("ft_sp_marketing_optout")||"{}"),c=e!==1&&n!==1&&o!==1,u={};for(const i of b){if(i in s){u[i]=!0;continue}u[i]=c}if(a.usnat)for(const i of b)u[i]=!1;return u}const At={[_.CALIFORNIA]:kt,[_.US_NATIONAL]:Tt};async function L(){return new Promise((t,e)=>{try{window.__gpp?window.__gpp("ping",t):e(new Error("GPP API is not available on page"))}catch(n){e(n)}})}async function Dt(){const t=await L(),{parsedSections:e}=t,n=Nt(t);if(!n||!e[n])throw new Error("GPP parser was called without an applicable section");const o=e[n],s=At[n];if(!s||typeof s!="function")throw new Error(`No parser found for applicable GPP section: ${n}`);return s(o)}function Pt(t,{purpose:e,vendor:n,specialFeatureOptins:o={}}){const s=k[t],a=(e==null?void 0:e.consents)||{},c=(e==null?void 0:e.legitimateInterests)||{},u=(n==null?void 0:n.consents)||{},i=(n==null?void 0:n.legitimateInterests)||{},p=s.purposes.every(l=>a[l]||c[l]),f=s.iabVendors.every(l=>u[l]||i[l]),d=s.specialFeatures.every(l=>o[l]===!0),g=s.purposes.every(l=>a[l]===!0);return t==="cookies"?g&&f&&d:p&&f&&d}async function M(){return new Promise((t,e)=>{try{window.__tcfapi?window.__tcfapi("addEventListener",2,t):e(new Error("TCF API is not available on page"))}catch(n){e(n)}})}async function Lt(){const t=await M(),e={};for(const n of b)e[n]=Pt(n,t);return e}async function Mt(t){const n={gdpr:Lt,usnat:Dt}[t];if(!n)throw new Error("Unable to update user consent. Unsupported consent legislation.");return n()}function Ft(){const e=Object.fromEntries(document.cookie.split("; ").map(o=>o.split("=")))[G];if(!e)return{};const n=decodeURIComponent(e);return Object.fromEntries(n.split(",").map(o=>{const[s,a]=o.split(":");return[s,a==="on"]}))}function Rt(t,e){return Object.keys(t).some(o=>{const s=`${o.toLowerCase()}Onsite`;return t[o]!==e[s]})}function Ut({userId:t,useConsentStore:e}){return!!t&&e===!0}function Vt(t,e){return t?`${e.consentProxyHost}/__consent/consent-record/${j}/${e.userId}?updateFtConsentCookie=true`:`${e.consentProxyHost}/__consent/consent-record-cookie?cookieDomain=${e.cookieDomain}`}const F={gdpr:!1,usnat:!1},C=Object.assign({},F);function R(t){C[t]=!0}function xt(t){return C[t]}function Ht(){Object.assign(C,F)}async function jt(t){return xt(t)?t==="gdpr"?(await M()).eventStatus==="useractioncomplete":t==="usnat"?(await L()).cmpDisplayStatus==="hidden":!1:!1}function Gt(){window.__tcfapi&&window.__tcfapi("addEventListener",2,t=>{t.eventStatus==="cmpuishown"&&R("gdpr")}),window.__gpp&&window.__gpp("addEventListener",({pingData:t})=>{t.cmpDisplayStatus==="visible"&&R("usnat")})}async function Bt(t,e){try{const n=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),credentials:"include"});n.ok||console.error("Unable to save consent preferences",n.status)}catch(n){console.error("An error occurred while saving consent",n)}finally{document.dispatchEvent(new CustomEvent("onCmpConsentSaveCompleted",{bubbles:!0}))}}const qt=()=>{document.dispatchEvent(new CustomEvent("onCmpConsentReady",{bubbles:!0}))};function Wt(t){return async function(n,o,s,a){if(qt(),t.disableFTCookies||!t.includeUsNat&&n==="usnat"||!a.applies||!s)return;let c;try{c=await Mt(n)}catch(g){console.error(g)}if(!c||!Rt(c,Ft()))return;window.dataLayer=(window==null?void 0:window.dataLayer)||[],window.dataLayer.push({event:"consentUpdate",consentUpdateBehaviouralAds:c.behaviouralAds,consentUpdateCookies:c.cookies});const i=await jt(n),p=Ut(t),f=Vt(p,t),d=Et(c,p,i,t);await Bt(f,d),i&&Ht(),document.dispatchEvent(new CustomEvent("oCookieMessage.act",{bubbles:!0}))}}const O="cookie-message",$t="manage-cookies";let E=Object.freeze({activeComponent:O,messageId:0,privacyManagerId:0});function Kt(t){return typeof t=="object"&&t!==null&&t.constructor===Object&&Object.prototype.toString.call(t)==="[object Object]"}const Jt=()=>({...E}),N=t=>{if(!Kt(t)){console.error("Invalid state changes");return}E={...E,...t}},Xt=["adsDisableInternalCMP","pwm.cmp"];function Yt(t,e){const n=zt(t.flags);window._sp_queue=window._sp_queue??[],window._sp_queue.push(()=>{var o,s;for(const[a,c]of Object.entries(Qt))(s=(o=window._sp_).addEventListener)==null||s.call(o,a,c({...t,flags:n}))}),te({...t,flags:n},e),ee()}function zt(t){const e={};return typeof t=="object"&&Xt.forEach(n=>{Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}),e}function Zt(t){if(!t)return;const e=document.body,n=new CustomEvent("oTracking.event",{bubbles:!0,cancelable:!0,detail:t.detail});e.dispatchEvent(n)}function w({trackingProps:t,action:e,triggerAction:n}){let o;const s=Jt(),{product:a,app:c,flags:u}=t;s.activeComponent===O?o=s.messageId:o=s.privacyManagerId;const i={detail:{component:{id:o,name:s.activeComponent,type:"overlay",subtype:"cmp"},category:"component",action:e,...n&&{trigger_action:n},...a&&{product:a},...c&&{app:c},custom:[{cookie_toggle_flag:u}],url:window.document.location.href||null}};Zt(i)}const Qt={onMessageChoiceSelect:t=>(e,n,o)=>{const a={11:"accept_all",12:"manage_cookies",13:"reject_all"}[o];a&&w({trackingProps:t,action:"click",triggerAction:a})},onMessageReady:t=>()=>{w({trackingProps:t,action:"view"})},onMessageReceiveData:()=>(t,e)=>{const{messageId:n}=e;n&&N({messageId:n})},onError:t=>(e,n)=>{w({trackingProps:t,action:"error",triggerAction:n})},onPMCancel:()=>()=>{N({activeComponent:O})}};function te(t,e){window.addEventListener("message",function(n){if(n.origin!==e)return;const o={1:"save_and_close",11:"accept_all",13:"reject_all"},{data:{fromPM:s,actionType:a,messageId:c="0"}={}}=n;s&&(+c&&N({activeComponent:$t,privacyManagerId:+c}),!(!a||!o[a])&&w({trackingProps:t,action:"click",triggerAction:o[a]}))},!1)}function ee(){document.addEventListener("onCmpConsentSaveCompleted",()=>{const t=document.cookie.match(/FTConsent=([^;]+)/);if(!t)return;const e=t[1];localStorage.setItem("__lastFtc",e)})}const ne="6.11.2";async function oe(t){const{useFTSession:e=!0,consentProxyHost:n=W,cookieDomain:o=q,formOfWordsId:s=B,useConsentStore:a=!0,trackingContext:c={},disableFTCookies:u=!1,includeUsNat:i=!1}=t||{};let{propertyConfig:p=v,userId:f}=t||{};if(typeof window>"u"){console.error("The CMP client can only be initialised in a browser context");return}if(window.FT_CMP_CLIENT_VERSION=ne,!f&&e)try{const d=await H();f=d==null?void 0:d.uuid}catch(d){console.error(d)}p=se(p),Ot(p,{userId:f,includeUsNat:i}),Gt(),window._sp_queue.push(()=>{var d,g;(g=(d=window._sp_)==null?void 0:d.addEventListener)==null||g.call(d,"onConsentReady",Wt({userId:f,consentProxyHost:n,cookieDomain:o,formOfWordsId:s,useConsentStore:a,disableFTCookies:u,includeUsNat:i}))}),Yt(c,p.baseEndpoint)}function se(t){if(!(t!=null&&t.accountId))throw new Error("Please pass a valid property config");return t.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 t.events),t}function U(t,e,n,o,s,a){const{text:c,onClick:u}=o[e],i=document.querySelectorAll(`a[href*="${a}"]`);for(const p of i)(n||t)&&(s.has(p)&&p.removeEventListener("click",s.get(p)),p.innerText=c,p.addEventListener("click",u),s.set(p,u))}function ae({_clientOptions:t}=v){const{privacyManagerId:e,ccpaPrivacyManagerId:n,usnatPrivacyManagerId:o,manageCookiesLinkOverride:s}=t??v._clientOptions,a={usnat:{text:"Do Not Sell My Personal Information",onClick:i=>{var p;i.preventDefault(),(p=window._sp_.usnat)==null||p.loadPrivacyManagerModal(o)}},ccpa:{text:"Do Not Sell My Personal Information",onClick:i=>{var p;i.preventDefault(),(p=window._sp_.ccpa)==null||p.loadPrivacyManagerModal(n)}},gdpr:{text:"Manage Cookies",onClick:i=>{var p;i.preventDefault(),(p=window._sp_.gdpr)==null||p.loadPrivacyManagerModal(e)}}},c=new Map,u=function(i,p,f,d){U(!1,i,d.applies,a,c,s),d.applies&&window._sp_queue.push(()=>{var g,l;(l=(g=window._sp_).removeEventListener)==null||l.call(g,"onConsentReady",u)})};U(!0,"gdpr",!1,a,c,s),window._sp_queue??(window._sp_queue=[]),window._sp_queue.push(()=>{var i,p;(p=(i=window._sp_).addEventListener)==null||p.call(i,"onConsentReady",u)})}function ce(t){return t._clientOptions??{}}const ie={"ft.com":ce};function re(t){return new Promise((e,n)=>{const{rootDomain:o}=t._clientOptions||{};if(!o)return e({});const s=ie[o];if(!s||typeof s!="function")return e({...t._clientOptions});const a=()=>{try{e(s(t))}catch(c){n(c)}};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",a):a()})}function pe(t,e){if(!e||Number.isFinite(parseFloat(e))||!t.endsWith(e))return!1;const n=t.indexOf(e),o=t[n-1];return o==="."||o===void 0}function ue(t){if(!t)throw new Error("Invalid hostname provided");let n=Object.values(vt).find(o=>{var a;if(o.propertyHref)return!1;const s=(a=o._clientOptions)==null?void 0:a.rootDomain;return s&&pe(t,s)});return n??(n=T),n}const de=new URL(window.location.href).hostname,m=ue(de);(async()=>{var t,e;try{const n=await re(m);oe({propertyConfig:m,...n}),(t=m==null?void 0:m._clientOptions)!=null&&t.privacyManagerId&&((e=m==null?void 0:m._clientOptions)!=null&&e.manageCookiesLinkOverride)&&ae(m)}catch(n){console.error("Error: CMP package configure + initialise Sourcepoint failed.",n)}})()})();
|