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