const setAdTestCookie = (): void => { const queryParams = getUrlVars(); if (queryParams.adtest === 'clear') { removeCookie('adtest'); } else if (queryParams.adtest) { addCookie('adtest', encodeURIComponent(queryParams.adtest), 10); } };
export const sendValidationEmail = (): any => { const defaultReturnEndpoint = '/email-prefs'; const endpoint = '/user/send-validation-email'; const returnUrl = getUrlVars().returnUrl ? decodeURIComponent(getUrlVars().returnUrl) : (profileRoot || '') + defaultReturnEndpoint; const request = ajax({ url: (idApiRoot || '') + endpoint, type: 'jsonp', crossOrigin: true, data: { method: 'post', returnUrl, }, }); return request; };
const getYoutubeIdFromUrl = (url: string): string => { const youtubeIdKey = 'v'; const splitUrl = url.split('?'); if (splitUrl.length === 1) { return ''; } const queryParams = getUrlVars(splitUrl[1]); return queryParams[youtubeIdKey] || ''; };
constructor(store: CmpStore) { this.isLoaded = false; this.cmpReady = false; this.store = store; this.commandQueue = []; this.eventListeners = {}; this.processCommand.receiveMessage = this.receiveMessage; this.cmpConfig = defaultConfig; if (getUrlVars().cmpdebug) { this.cmpConfig.logging = 'debug'; log.info('Set logging level to DEBUG'); } if (isInEU()) { this.cmpConfig.gdprApplies = true; } }
import { insertTagRichLink, upgradeRichLinks, } from 'common/modules/article/rich-links'; import { upgradeMembershipEvents } from 'common/modules/article/membership-events'; import { geoMostPopular } from 'common/modules/onward/geo-most-popular'; import { handleCompletion as handleQuizCompletion } from 'common/modules/atoms/quiz'; import { init as initLiveblogCommon } from 'bootstraps/enhanced/article-liveblog-common'; import { initTrails } from 'bootstraps/enhanced/trail'; import { initCampaign } from 'journalism/modules/render-campaign'; import ophan from 'ophan/ng'; const modules = { initCmpParam() { const allvars = getUrlVars(); if (allvars.CMP) { $('.element-pass-cmp').each(el => { el.src = `${el.src}?CMP=${allvars.CMP}`; }); } }, initRightHandComponent() { const mainColumn = qwery('.js-content-main-column'); // only render when we have >1000px or more (enough space for ad + most popular) if ( !config.hasTone('Match reports') && mainColumn[0] && mainColumn[0].offsetHeight > 1150 &&
externalDemand: config.page.hbImpl, /* lazyLoadEnabled: boolean. Set to true when adverts are lazy-loaded */ lazyLoadEnabled: false, /* lazyLoadObserve: boolean. Use IntersectionObserver in supporting browsers */ lazyLoadObserve: 'IntersectionObserver' in window, /* creativeIDs: array<string>. List of loaded creative IDs */ creativeIDs: [], /* advertIds: map<string -> int>. Keeps track of slot IDs and their position in the array of adverts */ advertIds: {}, /* advertsToLoad: array<Advert>. Lists adverts waiting to be loaded */ advertsToLoad: [], /* advertsToRefresh: array<Advert>. Lists adverts refreshed when a breakpoint has been crossed */ advertsToRefresh: [], /* adverts: array<Advert>. Keeps track of adverts and their state */ adverts: [], /* shouldLazyLoad: () -> boolean. Determines whether ads should be lazy loaded */ shouldLazyLoad() { // We do not want lazy loading on pageskins because it messes up the roadblock // Also, if the special dll parameter is passed with a value of 1, we don't lazy load return !config.page.hasPageSkin && getUrlVars().dll !== '1'; }, };
const testCookie = (): void => { const queryParams = getUrlVars(); if (queryParams.test) { addSessionCookie('GU_TEST', encodeURIComponent(queryParams.test)); } };
const getWhitelistedQueryParams = (): {} => { const whiteList: Array<string> = ['0p19G']; return pick(getUrlVars(), whiteList); };