UNPKG

@altack/ngx-onetrust

Version:

OneTrust loader & wrapper for Angular

496 lines (486 loc) 24.2 kB
import * as i0 from '@angular/core'; import { InjectionToken, Injectable, Inject, NgModule } from '@angular/core'; import { ReplaySubject, BehaviorSubject, Observable, Subject, fromEventPattern } from 'rxjs'; import { filter, map, debounceTime, take, takeUntil, switchMap, distinctUntilChanged, startWith } from 'rxjs/operators'; var CookiesGroups; (function (CookiesGroups) { CookiesGroups["StrictlyNecessaryCookies"] = "StrictlyNecessaryCookies"; CookiesGroups["PerformanceCookies"] = "PerformanceCookies"; CookiesGroups["FunctionalCookies"] = "FunctionalCookies"; CookiesGroups["TargetingCookies"] = "TargetingCookies"; CookiesGroups["SocialMediaCookies"] = "SocialMediaCookies"; })(CookiesGroups || (CookiesGroups = {})); const ONE_TRUST_CONFIGURATION = new InjectionToken('OneTrust Configuration'); /* * What is this file? * A hash of countries with their official locales (e.g official languages spoken per country) * * */ // tslint:disable-next-line:variable-name const _countries = { af: { name: 'Afghanistan', locales: ['ps-AF', 'fa-AF'] }, al: { name: 'Albania', locales: ['sq-AL'] }, dz: { name: 'Algeria', locales: ['ar-DZ'] }, as: { name: 'American Samoa', locales: ['en-AS'] }, ad: { name: 'Andorra', locales: ['ca-AD'] }, ao: { name: 'Angola', locales: ['pt-AO'] }, ai: { name: 'Anguilla', locales: ['en-AI'] }, aq: { name: 'Antarctica', locales: ['en-US'] }, ag: { name: 'Antigua and Barbuda', locales: ['en-AG'] }, ar: { name: 'Argentina', locales: ['es-AR'] }, am: { name: 'Armenia', locales: ['hy-AM'] }, aw: { name: 'Aruba', locales: ['nl-AW'] }, au: { name: 'Australia', locales: ['en-AU'] }, at: { name: 'Austria', locales: ['de-AT'] }, az: { name: 'Azerbaijan', locales: ['az-AZ'] }, bs: { name: 'Bahamas', locales: ['en-BS'] }, bh: { name: 'Bahrain', locales: ['ar-BH'] }, bd: { name: 'Bangladesh', locales: ['bn-BD'] }, bb: { name: 'Barbados', locales: ['en-BB'] }, by: { name: 'Belarus', locales: ['be-BY'] }, be: { name: 'Belgium', locales: ['nl-BE', 'en-BE', 'fr-BE', 'de-BE'] }, bz: { name: 'Belize', locales: ['en-BZ'] }, bj: { name: 'Benin', locales: ['fr-BJ'] }, bm: { name: 'Bermuda', locales: ['en-BM'] }, bt: { name: 'Bhutan', locales: ['dz-BT'] }, bo: { name: 'Bolivia', locales: ['es-BO'] }, bq: { name: 'Bonaire', locales: ['nl-BQ'] }, ba: { name: 'Bosnia and Herzegovina', locales: ['bs-BA'] }, bw: { name: 'Botswana', locales: ['en-BW'] }, bv: { name: 'Bouvet Island', locales: ['no-BV'] }, br: { name: 'Brazil', locales: ['pt-BR'] }, io: { name: 'British Indian Ocean Territory', locales: ['en-IO'] }, bn: { name: 'Brunei Darussalam', locales: ['ms-BN'] }, bg: { name: 'Bulgaria', locales: ['bg-BG'] }, bf: { name: 'Burkina Faso', locales: ['fr-BF'] }, bi: { name: 'Burundi', locales: ['fr-BI'] }, cv: { name: 'Cabo Verde', locales: ['pt-CV'] }, kh: { name: 'Cambodia', locales: ['km-KH'] }, cm: { name: 'Cameroon', locales: ['fr-CM'] }, ca: { name: 'Canada', locales: ['en-CA', 'fr-CA'] }, ky: { name: 'Cayman Islands', locales: ['en-KY'] }, cf: { name: 'Central African Republic', locales: ['fr-CF', 'sg-CF'] }, td: { name: 'Chad', locales: ['fr-TD'] }, cl: { name: 'Chile', locales: ['es-CL'] }, cn: { name: 'China', locales: ['zh-CN', 'ii-CN', 'bo-CN'] }, cx: { name: 'Christmas Island', locales: ['en-CX'] }, cc: { name: 'Cocos Islands', locales: ['en-CC'] }, co: { name: 'Colombia', locales: ['es-CO'] }, km: { name: 'Comoros', locales: ['fr-KM'] }, cd: { name: 'Democratic Republic of the Congo', locales: ['fr-CD'] }, cg: { name: 'Congo', locales: ['fr-CG'] }, ck: { name: 'Cook Islands', locales: ['en-CK'] }, cr: { name: 'Costa Rica', locales: ['es-CR'] }, hr: { name: 'Croatia', locales: ['hr-HR'] }, cu: { name: 'Cuba', locales: ['es-CU'] }, cw: { name: 'Curaçao', locales: ['nl-CW'] }, cy: { name: 'Cyprus', locales: ['el-CY'] }, cz: { name: 'Czechia', locales: ['cs-CZ'] }, ci: { name: 'Côte d\'Ivoire', locales: ['fr-CI'] }, dk: { name: 'Denmark', locales: ['da-DK'] }, dj: { name: 'Djibouti', locales: ['fr-DJ', 'so-DJ'] }, dm: { name: 'Dominica', locales: ['en-DM'] }, do: { name: 'Dominican Republic', locales: ['es-DO'] }, ec: { name: 'Ecuador', locales: ['es-EC'] }, eg: { name: 'Egypt', locales: ['ar-EG'] }, sv: { name: 'El Salvador', locales: ['es-SV'] }, gq: { name: 'Equatorial Guinea', locales: ['fr-GQ', 'es-GQ'] }, er: { name: 'Eritrea', locales: ['ti-ER'] }, ee: { name: 'Estonia', locales: ['et-EE'] }, sz: { name: 'Eswatini', locales: ['en-SZ'] }, et: { name: 'Ethiopia', locales: ['am-ET', 'om-ET', 'so-ET', 'ti-ET'] }, fk: { name: 'Falkland Islands', locales: ['en-FK'] }, fo: { name: 'Faroe Islands', locales: ['fo-FO'] }, fj: { name: 'Fiji', locales: ['en-FJ'] }, fi: { name: 'Finland', locales: ['fi-FI', 'sv-FI'] }, fr: { name: 'France', locales: ['fr-FR'] }, gf: { name: 'French Guiana', locales: ['fr-GF'] }, pf: { name: 'French Polynesia', locales: ['fr-PF'] }, tf: { name: 'French Southern Territories', locales: ['fr-TF'] }, ga: { name: 'Gabon', locales: ['fr-GA'] }, gm: { name: 'Gambia', locales: ['en-GM'] }, ge: { name: 'Georgia', locales: ['ka-GE'] }, de: { name: 'Germany', locales: ['de-DE'] }, gh: { name: 'Ghana', locales: ['ak-GH', 'ee-GH'] }, gi: { name: 'Gibraltar', locales: ['en-GI'] }, gr: { name: 'Greece', locales: ['el-GR'] }, gl: { name: 'Greenland', locales: ['kl-GL'] }, gd: { name: 'Grenada', locales: ['en-GD'] }, gp: { name: 'Guadeloupe', locales: ['fr-GP'] }, gu: { name: 'Guam', locales: ['en-GU'] }, gt: { name: 'Guatemala', locales: ['es-GT'] }, gg: { name: 'Guernsey', locales: ['en-GG'] }, gn: { name: 'Guinea', locales: ['fr-GN'] }, gw: { name: 'Guinea-Bissau', locales: ['pt-GW'] }, gy: { name: 'Guyana', locales: ['en-GY'] }, ht: { name: 'Haiti', locales: ['fr-HT'] }, hm: { name: 'Heard Island and McDonald Islands', locales: ['en-HM'] }, va: { name: 'Holy See', locales: ['it-VA'] }, hn: { name: 'Honduras', locales: ['es-HN'] }, hk: { name: 'Hong Kong', locales: ['en-HK'] }, hu: { name: 'Hungary', locales: ['hu-HU'] }, is: { name: 'Iceland', locales: ['is-IS'] }, in: { name: 'India', locales: ['as-IN', 'bn-IN', 'en-IN', 'gu-IN', 'hi-IN', 'kn-IN', 'ml-IN', 'mr-IN', 'ne-IN', 'or-IN', 'ta-IN', 'te-IN', 'bo-IN', 'ur-IN'] }, id: { name: 'Indonesia', locales: ['id-ID'] }, ir: { name: 'Iran', locales: ['fa-IR'] }, iq: { name: 'Iraq', locales: ['ar-IQ'] }, ie: { name: 'Ireland', locales: ['en-IE', 'ga-IE'] }, im: { name: 'Isle of Man', locales: ['en-IM'] }, il: { name: 'Israel', locales: ['en-IL', 'he-IL'] }, it: { name: 'Italy', locales: ['it-IT'] }, jm: { name: 'Jamaica', locales: ['en-JM'] }, jp: { name: 'Japan', locales: ['ja-JP'] }, je: { name: 'Jersey', locales: ['en-JE'] }, jo: { name: 'Jordan', locales: ['ar-JO'] }, kz: { name: 'Kazakhstan', locales: ['kk-KZ'] }, ke: { name: 'Kenya', locales: ['ki-KE', 'om-KE', 'so-KE', 'sw-KE'] }, ki: { name: 'Kiribati', locales: ['en-KI'] }, kp: { name: 'North Korea', locales: ['ko-KP'] }, kr: { name: 'South Korea', locales: ['ko-KR'] }, kw: { name: 'Kuwait', locales: ['ar-KW'] }, kg: { name: 'Kyrgyzstan', locales: ['ky-KG'] }, la: { name: 'Lao People\'s Democratic Republic', locales: ['lo-LA'] }, lv: { name: 'Latvia', locales: ['lv-LV'] }, lb: { name: 'Lebanon', locales: ['ar-LB'] }, ls: { name: 'Lesotho', locales: ['en-LS'] }, lr: { name: 'Liberia', locales: ['en-LR'] }, ly: { name: 'Libya', locales: ['ar-LY'] }, li: { name: 'Liechtenstein', locales: ['de-LI'] }, lt: { name: 'Lithuania', locales: ['lt-LT'] }, lu: { name: 'Luxembourg', locales: ['fr-LU', 'de-LU'] }, mg: { name: 'Madagascar', locales: ['fr-MG', 'mg-MG'] }, mw: { name: 'Malawi', locales: ['en-MW'] }, my: { name: 'Malaysia', locales: ['ms-MY'] }, mv: { name: 'Maldives', locales: ['dv-MV'] }, ml: { name: 'Mali', locales: ['bm-ML', 'fr-ML'] }, mt: { name: 'Malta', locales: ['en-MT', 'mt-MT'] }, mh: { name: 'Marshall Islands', locales: ['en-MH'] }, mq: { name: 'Martinique', locales: ['fr-MQ'] }, mr: { name: 'Mauritania', locales: ['ar-MR'] }, mu: { name: 'Mauritius', locales: ['en-MU'] }, yt: { name: 'Mayotte', locales: ['fr-YT'] }, mx: { name: 'Mexico', locales: ['es-MX'] }, fm: { name: 'Micronesia', locales: ['en-FM'] }, md: { name: 'Moldova', locales: ['ro-MD', 'ru-MD'] }, mc: { name: 'Monaco', locales: ['fr-MC'] }, mn: { name: 'Mongolia', locales: ['mn-MN'] }, me: { name: 'Montenegro', locales: ['sr-ME'] }, ms: { name: 'Montserrat', locales: ['en-MS'] }, ma: { name: 'Morocco', locales: ['ar-MA'] }, mz: { name: 'Mozambique', locales: ['pt-MZ'] }, mm: { name: 'Myanmar', locales: ['my-MM'] }, na: { name: 'Namibia', locales: ['af-NA', 'en-NA'] }, nr: { name: 'Nauru', locales: ['en-NR'] }, np: { name: 'Nepal', locales: ['ne-NP'] }, nl: { name: 'Netherlands', locales: ['nl-NL'] }, nc: { name: 'New Caledonia', locales: ['fr-NC'] }, nz: { name: 'New Zealand', locales: ['en-NZ'] }, ni: { name: 'Nicaragua', locales: ['es-NI'] }, ne: { name: 'Niger', locales: ['fr-NE'] }, ng: { name: 'Nigeria', locales: ['ig-NG', 'yo-NG'] }, nu: { name: 'Niue', locales: ['en-NU'] }, nf: { name: 'Norfolk Island', locales: ['en-NF'] }, mk: { name: 'North Macedonia', locales: ['mk-MK'] }, mp: { name: 'Northern Mariana Islands', locales: ['en-MP'] }, no: { name: 'Norway', locales: ['nb-NO', 'nn-NO'] }, om: { name: 'Oman', locales: ['ar-OM'] }, pk: { name: 'Pakistan', locales: ['en-PK', 'ur-PK'] }, pw: { name: 'Palau', locales: ['en-PW'] }, ps: { name: 'Palestine', locales: ['ar-PS'] }, pa: { name: 'Panama', locales: ['es-PA'] }, pg: { name: 'Papua New Guinea', locales: ['en-PG'] }, py: { name: 'Paraguay', locales: ['es-PY'] }, pe: { name: 'Peru', locales: ['es-PE'] }, ph: { name: 'Philippines', locales: ['en-PH'] }, pn: { name: 'Pitcairn', locales: ['en-PN'] }, pl: { name: 'Poland', locales: ['pl-PL'] }, pt: { name: 'Portugal', locales: ['pt-PT'] }, pr: { name: 'Puerto Rico', locales: ['es-PR'] }, qa: { name: 'Qatar', locales: ['ar-QA'] }, ro: { name: 'Romania', locales: ['ro-RO'] }, ru: { name: 'Russia', locales: ['ru-RU'] }, rw: { name: 'Rwanda', locales: ['fr-RW', 'rw-RW'] }, re: { name: 'Réunion', locales: ['fr-RE'] }, bl: { name: 'Saint Barthélemy', locales: ['fr-BL'] }, sh: { name: 'Saint Helena', locales: ['en-SH'] }, kn: { name: 'Saint Kitts and Nevis', locales: ['en-KN'] }, lc: { name: 'Saint Lucia', locales: ['en-LC'] }, mf: { name: 'Saint Martin', locales: ['fr-MF'] }, pm: { name: 'Saint Pierre and Miquelon', locales: ['fr-PM'] }, vc: { name: 'Saint Vincent and the Grenadines', locales: ['en-VC'] }, ws: { name: 'Samoa', locales: ['sm-WS'] }, sm: { name: 'San Marino', locales: ['it-SM'] }, st: { name: 'Sao Tome and Principe', locales: ['pt-ST'] }, sa: { name: 'Saudi Arabia', locales: ['ar-SA'] }, sn: { name: 'Senegal', locales: ['fr-SN', 'ff-SN'] }, rs: { name: 'Serbia', locales: ['sr-RS'] }, sc: { name: 'Seychelles', locales: ['fr-SC'] }, sl: { name: 'Sierra Leone', locales: ['en-SL'] }, sg: { name: 'Singapore', locales: ['en-SG'] }, sx: { name: 'Sint Maarten', locales: ['nl-SX'] }, sk: { name: 'Slovakia', locales: ['sk-SK'] }, si: { name: 'Slovenia', locales: ['sl-SI'] }, sb: { name: 'Solomon Islands', locales: ['en-SB'] }, so: { name: 'Somalia', locales: ['so-SO'] }, za: { name: 'South Africa', locales: ['af-ZA', 'en-ZA', 'zu-ZA'] }, gs: { name: 'South Georgia and the South Sandwich Islands', locales: ['en-GS'] }, ss: { name: 'South Sudan', locales: ['en-SS'] }, es: { name: 'Spain', locales: ['eu-ES', 'ca-ES', 'gl-ES', 'es-ES'] }, lk: { name: 'Sri Lanka', locales: ['si-LK', 'ta-LK'] }, sd: { name: 'Sudan', locales: ['ar-SD'] }, sr: { name: 'Suriname', locales: ['nl-SR'] }, sj: { name: 'Svalbard and Jan Mayen', locales: ['no-SJ'] }, se: { name: 'Sweden', locales: ['sv-SE'] }, ch: { name: 'Switzerland', locales: ['de-CH', 'fr-CH', 'it-CH', 'rm-CH'] }, sy: { name: 'Syrian Arab Republic', locales: ['ar-SY'] }, tw: { name: 'Taiwan', locales: ['zh-TW', 'en-TW'] }, tj: { name: 'Tajikistan', locales: ['tg-TJ'] }, tz: { name: 'Tanzania', locales: ['sw-TZ'] }, th: { name: 'Thailand', locales: ['th-TH'] }, tl: { name: 'Timor-Leste', locales: ['pt-TL'] }, tg: { name: 'Togo', locales: ['ee-TG', 'fr-TG'] }, tk: { name: 'Tokelau', locales: ['en-TK'] }, to: { name: 'Tonga', locales: ['to-TO'] }, tt: { name: 'Trinidad and Tobago', locales: ['en-TT'] }, tn: { name: 'Tunisia', locales: ['ar-TN'] }, tr: { name: 'Turkey', locales: ['tr-TR'] }, tm: { name: 'Turkmenistan', locales: ['tk-TM'] }, tc: { name: 'Turks and Caicos Islands', locales: ['en-TC'] }, tv: { name: 'Tuvalu', locales: ['en-TV'] }, ug: { name: 'Uganda', locales: ['lg-UG'] }, ua: { name: 'Ukraine', locales: ['ru-UA', 'uk-UA'] }, ae: { name: 'United Arab Emirates', locales: ['ar-AE'] }, gb: { name: 'United Kingdom', locales: ['kw-GB', 'en-GB', 'gv-GB', 'cy-GB'] }, um: { name: 'United States Minor Outlying Islands', locales: ['en-UM'] }, us: { name: 'United States', locales: ['en-US', 'es-US'] }, uy: { name: 'Uruguay', locales: ['es-UY'] }, uz: { name: 'Uzbekistan', locales: ['uz-UZ'] }, vu: { name: 'Vanuatu', locales: ['bi-VU'] }, ve: { name: 'Venezuela', locales: ['es-VE'] }, vn: { name: 'Viet Nam', locales: ['vi-VN'] }, vg: { name: 'Virgin Islands (British)', locales: ['en-VG'] }, vi: { name: 'Virgin Islands (U.S.)', locales: ['en-VI'] }, wf: { name: 'Wallis and Futuna', locales: ['fr-WF'] }, eh: { name: 'Western Sahara', locales: ['es-EH'] }, ye: { name: 'Yemen', locales: ['ar-YE'] }, zm: { name: 'Zambia', locales: ['en-ZM'] }, zw: { name: 'Zimbabwe', locales: ['en-ZW', 'nd-ZW', 'sn-ZW'] }, ax: { name: 'Aland Islands', locales: ['sv-AX'] } }; const countries = new Map(Object.keys(_countries).map((k) => [k, _countries[k]])); const OneTrust$ = new ReplaySubject(1); const appliedLocale$ = new BehaviorSubject(''); const MutationObserver$ = (target, config = { childList: true }) => { return new Observable((observer) => { const mutationObserver = new MutationObserver((mutations, instance) => { mutations.forEach((mutation) => { observer.next(mutation); }); }); mutationObserver.observe(target, config); return () => { mutationObserver.disconnect(); }; }); }; const OneTrustReady$ = () => { return MutationObserver$(document.body).pipe(filter((record) => record.addedNodes.length === 1), map((record) => record.addedNodes.item(0)), filter((element) => { return (element && typeof element.getAttribute === 'function' && element.getAttribute('id') === 'onetrust-consent-sdk'); }), debounceTime(300), // tslint:disable-next-line:no-string-literal map(() => window['OneTrust'])); }; const getDefaultLocalization = (country) => { if (countries.has(country.toLowerCase())) { const countriesLocales = countries.get(country.toLowerCase()); if (countriesLocales.locales && countriesLocales.locales.length > 0) { // apply default locale for the current country return countriesLocales.locales[0]; } } return ''; }; const initializeOneTrust = (src, domainScript, documentBasedLang = true, countryCode = '') => { const head = window.document.getElementsByTagName('head')[0]; const oneTrustScript = window.document.createElement('script'); oneTrustScript.id = 'one-trust-script'; oneTrustScript.src = src; if (documentBasedLang) { oneTrustScript.setAttribute('data-document-language', 'true'); } oneTrustScript.setAttribute('type', 'text/javascript'); oneTrustScript.setAttribute('charset', 'UTF-8'); oneTrustScript.setAttribute('data-domain-script', domainScript); head.insertBefore(oneTrustScript, head.firstChild); const oneTrustFuncScript = window.document.createElement('script'); oneTrustFuncScript.type = 'text/javascript'; oneTrustFuncScript.innerHTML = `function OptanonWrapper() { }`; head.appendChild(oneTrustFuncScript); if (countryCode) { const geoLocationScript = window.document.createElement('script'); geoLocationScript.type = 'text/javascript'; geoLocationScript.innerHTML = `var OneTrust = {geolocationResponse: {countryCode: '${countryCode}'}}`; head.appendChild(geoLocationScript); } }; function loadOneTrust(domainScript, defaultCountry, documentBasedLanguage, src = 'https://cdn.cookielaw.org/scripttemplates/otSDKStub.js') { // Get ready to receive the OneTrust object once loaded OneTrustReady$() .pipe(take(1)) .subscribe((oneTrust) => { OneTrust$.next(oneTrust); }); // Initialize if (defaultCountry) { appliedLocale$.next(defaultCountry); initializeOneTrust(src, domainScript, documentBasedLanguage, defaultCountry); } else { // tslint:disable-next-line:variable-name let __geoLocationData; // tslint:disable-next-line:no-string-literal window['jsonFeed'] = (location) => { __geoLocationData = location; }; const html = window.document.getElementsByTagName('html')[0]; const head = window.document.getElementsByTagName('head')[0]; const localizationScript = window.document.createElement('script'); localizationScript.src = 'https://geolocation.onetrust.com/cookieconsentpub/v1/geo/location'; localizationScript.setAttribute('type', 'text/javascript'); localizationScript.onload = () => { if (__geoLocationData) { const locale = getDefaultLocalization(__geoLocationData.country); if (locale) { html.setAttribute('lang', locale); appliedLocale$.next(locale); initializeOneTrust(src, domainScript, true); } else { console.warn(`Not valid geolocation`, __geoLocationData); initializeOneTrust(src, domainScript, false); } } else { initializeOneTrust(src, domainScript, false); console.warn(`Not able to determine geolocation using 'https://geolocation.onetrust.com/cookieconsentpub/v1/geo/location'`); } }; head.insertBefore(localizationScript, head.firstChild); } } class OneTrustService { constructor(config) { this.config = config; this.scriptsLoaded = false; this.cancelPrev$ = new Subject(); } loadOneTrust(domainScript) { if (this.scriptsLoaded) { console.warn('OneTrust already loaded!'); return; } // tslint:disable-next-line:max-line-length loadOneTrust(domainScript || this.config.domainScript || '', this.config.defaultCountry || '', this.config.documentBasedLanguage || true); this.scriptsLoaded = true; } translateBanner(langAlpha2, force) { this.cancelPrev$.next(); OneTrust$.pipe(takeUntil(this.cancelPrev$)).subscribe((oneTrust) => { langAlpha2 = langAlpha2.toLowerCase(); if (force || langAlpha2.length > 2) { if (appliedLocale$.getValue() !== langAlpha2) { appliedLocale$.next(langAlpha2); oneTrust.changeLanguage(langAlpha2); return; } } // builds a valid xx-YY in order to try to translate the banner using the resulting locale (e.g en-US) const geolocation = oneTrust.getGeolocationData(); if (geolocation && geolocation.country) { const targetLocale = `${langAlpha2}-${geolocation.country}`; if (appliedLocale$.getValue() !== targetLocale) { appliedLocale$.next(targetLocale); oneTrust.changeLanguage(targetLocale); } } }); } oneTrustInstance$() { return OneTrust$; } consentChanged$() { return OneTrust$.pipe(switchMap((oneTrust) => this.fromConsentChanged(oneTrust)), map((groups) => this.cookiesPermissionMap(groups)), distinctUntilChanged((prev, next) => { return this.areMapsEquals(prev, next); })); } oneTrustActiveGroups() { // tslint:disable:no-string-literal return window['OnetrustActiveGroups'].split(',').filter(Boolean); } fromConsentChanged(oneTrustInstance) { return fromEventPattern((handler) => oneTrustInstance.OnConsentChanged(handler)).pipe(map((event) => event.detail), startWith(this.oneTrustActiveGroups())); } cookiesPermissionMap(foundCookies) { const cookiesGroups = new Map(); // maps found cookies to real cookies groups Object.keys(this.config.cookiesGroups).forEach((key) => { // casting is possible because the way the CookiesGroups enum was declared (e.g StrictlyNecessaryCookies = 'StrictlyNecessaryCookies') const cookieValue = this.config.cookiesGroups[key]; if (foundCookies.includes(cookieValue)) { cookiesGroups.set(key, true); } }); return cookiesGroups; } areMapsEquals(prev, next) { // different sizes means something changed if (prev.size !== next.size) { return false; } // check if keys from next are the same as keys from prev return [...next.keys()].every((key) => prev.has(key)); } } OneTrustService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: OneTrustService, deps: [{ token: ONE_TRUST_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Injectable }); OneTrustService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: OneTrustService }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: OneTrustService, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: undefined, decorators: [{ type: Inject, args: [ONE_TRUST_CONFIGURATION] }] }]; } }); class OneTrustModule { static forRoot(oneTrustConfig) { return { ngModule: OneTrustModule, providers: [ OneTrustService, { provide: ONE_TRUST_CONFIGURATION, useValue: oneTrustConfig } ] }; } } OneTrustModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: OneTrustModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); OneTrustModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.4", ngImport: i0, type: OneTrustModule }); OneTrustModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: OneTrustModule }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: OneTrustModule, decorators: [{ type: NgModule }] }); /* * Public API Surface of ngx-onetrust */ /** * Generated bundle index. Do not edit. */ export { CookiesGroups, ONE_TRUST_CONFIGURATION, OneTrustModule, OneTrustService }; //# sourceMappingURL=altack-ngx-onetrust.mjs.map