UNPKG

@schibsted/sourcepoint

Version:

Package containing scripts used by Schibsteds' sites to integrate with Sourcepoint CMP

40 lines (36 loc) 1.64 kB
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(); }