all files / src/gdpr/ index.js

0% Statements 0/12
0% Branches 0/4
0% Functions 0/1
0% Lines 0/12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67                                                                                                                                     
import ConsentManagementPlatform from "./ConsentManagementPlatform";
import CookieManager from "../shared/CookieManager";
import LanguageManager from "../shared/LangManager";
import Tracker from "./Tracker";
import ConsentManagementProvider from "./ConsentManagementProvider";
import OptInManager from "./OptInManager";
import ContentManager from "../shared/ContentManager";
 
export function createInstance(geoManager, options) {
    const {
        zIndex,
        onAcceptTracking,
        onRejectTracking,
        onConsentsReady,
        preventScrollOn,
        enabledVendorPurposes,
        enabledVendors,
        enabledProviders,
        isCurse,
        ...depOptions
    } = options;
 
    const cookieManager = new CookieManager(depOptions.sessionCookies);
    const langManager = new LanguageManager(depOptions.language);
    const tracker = new Tracker(langManager.lang, geoManager.country, depOptions.beaconCookieName, depOptions.track);
    const consentManagementProvider = new ConsentManagementProvider({
        language: langManager.lang,
        oneTrustEnabled: options.oneTrustEnabled
    });
 
    const optInManager = new OptInManager(
        window.location.hostname,
        depOptions.cookieName,
        depOptions.cookieExpiration,
        depOptions.cookieRejectExpiration,
        depOptions.queryParamName,
    );
    const contentManager = new ContentManager(langManager.lang);
 
    optInManager.setForcedStatusFromQueryParams(window.location.search);
 
    if (optInManager.checkCookieVersion() || consentManagementProvider.isWithdrawingConsent()) {
        consentManagementProvider.setVendorConsentCookie(null);
        consentManagementProvider.setProviderConsentCookie(null);
    }
 
    return new ConsentManagementPlatform(
        tracker,
        cookieManager,
        optInManager,
        geoManager,
        contentManager,
        consentManagementProvider,
        {
            preventScrollOn,
            zIndex,
            enabledVendors,
            enabledProviders,
            onAcceptTracking,
            onRejectTracking,
            onConsentsReady,
            isCurse,
        },
        window.location,
    )
}