@schibsted/sourcepoint
Version:
Package containing scripts used by Schibsteds' sites to integrate with Sourcepoint CMP
40 lines (36 loc) • 1.64 kB
JavaScript
import { setupPsiConfig, setupPsiConfigAsync } from './psi.js';
import { setupSccApi } from './scc.js';
import { setupTcfApi } from './tcf.js';
import { version } from './version.js';
import { loadMessagingScript, loadExternalToolsScript, loadTcfApi, dispatchCmpInitEvent } from './utils/index.js';
import { checkIfShouldDisableOnWebview } from './utils/mobile.js';
export function psi(window, document, navigator, config) {
loadExternalToolsScript(document, config);
setupPsiConfig(window, document, navigator, {...config, jsSdkVersion: version}, 'psi');
loadMessagingScript(config, document);
dispatchCmpInitEvent();
}
export function scc(window, document, navigator, config) {
loadExternalToolsScript(document, config);
setupPsiConfig(window, document, navigator, config, 'scc');
setupSccApi(window, config);
loadMessagingScript(config, document);
dispatchCmpInitEvent();
}
export async function tcf(window, document, navigator, config) {
// workaround for webviews. do not init sourcepoint if native consent is not passed
if (checkIfShouldDisableOnWebview(window, navigator, config)) {
console.warn('CMP: Native consent is not passed. Sourcepoint will not be initialized.');
return;
};
loadTcfApi(document);
loadExternalToolsScript(document, config);
if (config.enableUserCentric) {
await setupPsiConfigAsync(window, document, navigator, config, 'tcf');
} else {
setupPsiConfig(window, document, navigator, config, 'tcf');
}
setupTcfApi(window, config);
loadMessagingScript(config, document);
dispatchCmpInitEvent();
}