@elliemae/pui-logrocket 1.1.17 → 1.1.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/build/docs/404.html +2 -2
  2. package/build/docs/api/functions/buildLogRocketQueryParams/index.html +2 -2
  3. package/build/docs/api/functions/hasUserConsentedToSessionRecording/index.html +2 -2
  4. package/build/docs/api/functions/initLogRocket/index.html +6 -4
  5. package/build/docs/api/index.html +2 -2
  6. package/build/docs/api/type-aliases/LROptions/index.html +2 -2
  7. package/build/docs/api/variables/LogRocket/index.html +2 -2
  8. package/build/docs/assets/js/04ee7372.2605ea40.js +1 -0
  9. package/build/docs/assets/js/7fcbe1af.1f6d7351.js +1 -0
  10. package/build/docs/assets/js/e376fc56.863a656c.js +1 -0
  11. package/build/docs/assets/js/{main.aec3bbc3.js → main.fc3f2988.js} +2 -2
  12. package/build/docs/assets/js/runtime~main.b4cf5ceb.js +1 -0
  13. package/build/docs/compliance/index.html +138 -5
  14. package/build/docs/index.html +2 -2
  15. package/build/docs/usage-guide/index.html +24 -3
  16. package/dist/cjs/logrocket.js +11 -2
  17. package/dist/esm/logrocket.js +11 -2
  18. package/dist/public/index.html +1 -1
  19. package/dist/public/js/{emuiLogrocket.f167e4f3fdd07d549011.js → emuiLogrocket.0b45a7a2356fd045ea91.js} +17 -17
  20. package/dist/public/js/emuiLogrocket.0b45a7a2356fd045ea91.js.br +0 -0
  21. package/dist/public/js/emuiLogrocket.0b45a7a2356fd045ea91.js.gz +0 -0
  22. package/dist/public/js/emuiLogrocket.0b45a7a2356fd045ea91.js.map +1 -0
  23. package/dist/types/lib/logrocket.d.ts +4 -2
  24. package/dist/types/tsconfig.tsbuildinfo +1 -1
  25. package/dist/umd/index.js +16 -16
  26. package/dist/umd/index.js.br +0 -0
  27. package/dist/umd/index.js.gz +0 -0
  28. package/dist/umd/index.js.map +1 -1
  29. package/package.json +2 -2
  30. package/build/docs/assets/js/04ee7372.ff5b8d05.js +0 -1
  31. package/build/docs/assets/js/7fcbe1af.57ab9f7e.js +0 -1
  32. package/build/docs/assets/js/e376fc56.9f577545.js +0 -1
  33. package/build/docs/assets/js/runtime~main.471e2b2b.js +0 -1
  34. package/dist/public/js/emuiLogrocket.f167e4f3fdd07d549011.js.br +0 -0
  35. package/dist/public/js/emuiLogrocket.f167e4f3fdd07d549011.js.gz +0 -0
  36. package/dist/public/js/emuiLogrocket.f167e4f3fdd07d549011.js.map +0 -1
  37. /package/build/docs/assets/js/{main.aec3bbc3.js.LICENSE.txt → main.fc3f2988.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ (()=>{"use strict";var e,a,r,t,o,c={},f={};function d(e){var a=f[e];if(void 0!==a)return a.exports;var r=f[e]={id:e,loaded:!1,exports:{}};return c[e].call(r.exports,r,r.exports,d),r.loaded=!0,r.exports}d.m=c,d.c=f,e=[],d.O=(a,r,t,o)=>{if(!r){var c=1/0;for(i=0;i<e.length;i++){for(var[r,t,o]=e[i],f=!0,n=0;n<r.length;n++)(!1&o||c>=o)&&Object.keys(d.O).every(e=>d.O[e](r[n]))?r.splice(n--,1):(f=!1,o<c&&(c=o));if(f){e.splice(i--,1);var b=t();void 0!==b&&(a=b)}}return a}o=o||0;for(var i=e.length;i>0&&e[i-1][2]>o;i--)e[i]=e[i-1];e[i]=[r,t,o]},d.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return d.d(a,{a:a}),a},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,t){if(1&t&&(e=this(e)),8&t)return e;if("object"==typeof e&&e){if(4&t&&e.__esModule)return e;if(16&t&&"function"==typeof e.then)return e}var o=Object.create(null);d.r(o);var c={};a=a||[null,r({}),r([]),r(r)];for(var f=2&t&&e;("object"==typeof f||"function"==typeof f)&&!~a.indexOf(f);f=r(f))Object.getOwnPropertyNames(f).forEach(a=>c[a]=()=>e[a]);return c.default=()=>e,d.d(o,c),o},d.d=(e,a)=>{for(var r in a)d.o(a,r)&&!d.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce((a,r)=>(d.f[r](e,a),a),[])),d.u=e=>"assets/js/"+({295:"51c4ceb1",594:"5e8c322a",2076:"common",3361:"c377a04b",3365:"ed616b60",3480:"e376fc56",4319:"211c08f1",4804:"7fcbe1af",5742:"aba21aa0",5754:"acaa8c75",5760:"552a934f",5908:"04ee7372",7098:"a7bd4aaa",8401:"17896441",9048:"a94703ab",9647:"5e95c892"}[e]||e)+"."+{33:"26b2760e",295:"e88fb182",407:"1609258d",459:"0ef6028a",594:"86d2fc4a",638:"a490f71f",654:"d3bf8f92",967:"54c4bee1",1519:"382051d0",1653:"0f512a56",1784:"d8d3eb6f",1945:"f17ce4cb",1991:"7f866f21",2045:"1bebedee",2076:"783bea07",2776:"108cd80f",3038:"002397e7",3070:"7cbc892b",3361:"e8bab181",3365:"5ce87321",3480:"863a656c",3899:"9ba4046a",4319:"531a7dab",4362:"e67b3c91",4804:"1f6d7351",4860:"aa45023e",4931:"0293910b",5122:"7fe63ad9",5621:"853372b8",5742:"c2c2f2c9",5754:"be91209b",5760:"61bd8d58",5820:"c04e4b12",5908:"2605ea40",6409:"6f06126b",6959:"110f49dd",7039:"0493dc3c",7098:"6aa43433",7299:"909bd2d8",7666:"f71add4d",7685:"feb9b2b8",7807:"9aa70b38",7860:"d45cb0c2",7868:"0076697f",7968:"92fc7d89",7997:"2ae474c8",8130:"4423e15c",8182:"16116f9a",8257:"8e164d61",8401:"6f8fb109",8587:"8653f695",8796:"163faa83",8907:"6cf12a5a",9048:"53aa43ca",9176:"d6ec3115",9647:"add994c9",9839:"6a9eb650"}[e]+".js",d.miniCssF=e=>{},d.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),t={},o="@elliemae/pui-logrocket:",d.l=(e,a,r,c)=>{if(t[e])t[e].push(a);else{var f,n;if(void 0!==r)for(var b=document.getElementsByTagName("script"),i=0;i<b.length;i++){var l=b[i];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==o+r){f=l;break}}f||(n=!0,(f=document.createElement("script")).charset="utf-8",d.nc&&f.setAttribute("nonce",d.nc),f.setAttribute("data-webpack",o+r),f.src=e),t[e]=[a];var u=(a,r)=>{f.onerror=f.onload=null,clearTimeout(s);var o=t[e];if(delete t[e],f.parentNode&&f.parentNode.removeChild(f),o&&o.forEach(e=>e(r)),a)return a(r)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=u.bind(null,f.onerror),f.onload=u.bind(null,f.onload),n&&document.head.appendChild(f)}},d.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.p="/logrocket/",d.gca=function(e){return e={17896441:"8401","51c4ceb1":"295","5e8c322a":"594",common:"2076",c377a04b:"3361",ed616b60:"3365",e376fc56:"3480","211c08f1":"4319","7fcbe1af":"4804",aba21aa0:"5742",acaa8c75:"5754","552a934f":"5760","04ee7372":"5908",a7bd4aaa:"7098",a94703ab:"9048","5e95c892":"9647"}[e]||e,d.p+d.u(e)},(()=>{var e={5354:0,1869:0};d.f.j=(a,r)=>{var t=d.o(e,a)?e[a]:void 0;if(0!==t)if(t)r.push(t[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var o=new Promise((r,o)=>t=e[a]=[r,o]);r.push(t[2]=o);var c=d.p+d.u(a),f=new Error;d.l(c,r=>{if(d.o(e,a)&&(0!==(t=e[a])&&(e[a]=void 0),t)){var o=r&&("load"===r.type?"missing":r.type),c=r&&r.target&&r.target.src;f.message="Loading chunk "+a+" failed.\n("+o+": "+c+")",f.name="ChunkLoadError",f.type=o,f.request=c,t[1](f)}},"chunk-"+a,a)}},d.O.j=a=>0===e[a];var a=(a,r)=>{var t,o,[c,f,n]=r,b=0;if(c.some(a=>0!==e[a])){for(t in f)d.o(f,t)&&(d.m[t]=f[t]);if(n)var i=n(d)}for(a&&a(r);b<c.length;b++)o=c[b],d.o(e,o)&&e[o]&&e[o][0](),e[o]=0;return d.O(i)},r=globalThis.webpackChunk_elliemae_pui_logrocket=globalThis.webpackChunk_elliemae_pui_logrocket||[];r.forEach(a.bind(null,0)),r.push=a.bind(null,r.push.bind(r))})()})();
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="generator" content="Docusaurus v3.9.2">
6
6
  <title data-rh="true">Compliance Requirements | LogRocket</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/logrocket/compliance"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Compliance Requirements | LogRocket"><meta data-rh="true" name="description" content="Due to wiretapping &amp; privacy laws in certain jurisdictions, it is essential to ensure that our session recording practices comply with local regulations. Below are the key compliance requirements we need to adhere to when using LogRocket for recording user sessions and activities,"><meta data-rh="true" property="og:description" content="Due to wiretapping &amp; privacy laws in certain jurisdictions, it is essential to ensure that our session recording practices comply with local regulations. Below are the key compliance requirements we need to adhere to when using LogRocket for recording user sessions and activities,"><link data-rh="true" rel="icon" href="/logrocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/logrocket/compliance"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/compliance" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/compliance" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Compliance Requirements","item":"https://pui.ice.com/logrocket/compliance"}]}</script><link rel="stylesheet" href="/logrocket/assets/css/styles.48d5ef50.css">
7
- <script src="/logrocket/assets/js/runtime~main.471e2b2b.js" defer="defer"></script>
8
- <script src="/logrocket/assets/js/main.aec3bbc3.js" defer="defer"></script>
7
+ <script src="/logrocket/assets/js/runtime~main.b4cf5ceb.js" defer="defer"></script>
8
+ <script src="/logrocket/assets/js/main.fc3f2988.js" defer="defer"></script>
9
9
  </head>
10
10
  <body class="navigation-with-keyboard">
11
11
  <svg style="display: none;"><defs>
@@ -76,13 +76,146 @@
76
76
  <div class="language-javascript codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-javascript codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// In shell microapp - set before GTM loads</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">hasOneTrust</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">true</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre></div></div>
77
77
  </li>
78
78
  <li class="">
79
- <p><strong>Configure OneTrust in Google Tag Manager</strong>: Add OneTrust SDK as a custom HTML tag in GTM</p>
79
+ <p><strong>Set <code>appEnv</code> Data Layer variable</strong>: Push the application environment to the Data Layer before GTM loads</p>
80
+ <div class="language-javascript codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-javascript codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// In shell microapp - set before GTM loads</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">dataLayer</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">dataLayer</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">||</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">[</span><span class="token punctuation" style="color:#393A34">]</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token dom variable" style="color:#36acaa">window</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">dataLayer</span><span class="token punctuation" style="color:#393A34">.</span><span class="token method function property-access" style="color:#d73a49">push</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> </span><span class="token literal-property property" style="color:#36acaa">appEnv</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;production&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">// or &#x27;development&#x27;, &#x27;staging&#x27;, &#x27;qa&#x27;, etc.</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><br></span></code></pre></div></div>
81
+ <p>This variable is used in GTM to load envvironment specific OneTrust SDK.</p>
82
+ <p><strong>Note</strong>: React boilerplate based shell microapp to set the window.gtmDataLayer variable in <a href="https://git.elliemae.io/platform-ui/pui-react-boilerplate/blob/feature/logrocket/app/global.js#L34" target="_blank" rel="noopener noreferrer" class="">global.js </a>file.</p>
80
83
  </li>
81
84
  <li class="">
82
- <p><strong>Shell microapp only</strong>: OneTrust integration is required only in the shell microapp, not in child microapps</p>
85
+ <p><strong>Configure OneTrust in Google Tag Manager</strong>: Add OneTrust SDK as a custom HTML tag in GTM with the following steps:</p>
86
+ <p>a. <strong>Setup Variables</strong></p>
87
+ <ol>
88
+ <li class=""><strong>Create a JavaScript Variable for OneTrust flag</strong>:</li>
89
+ </ol>
90
+ <ul>
91
+ <li class="">Go to your GTM workspace</li>
92
+ <li class="">Click &quot;Variables&quot; → &quot;User-Defined Variables&quot; → &quot;New&quot;</li>
93
+ <li class="">Name it &quot;js-hasOneTrust&quot;</li>
94
+ <li class="">Variable Type: Select &quot;JavaScript Variable&quot;</li>
95
+ <li class="">Global Variable Name: <code>hasOneTrust</code></li>
96
+ <li class="">Format Value: Check &quot;Convert undefined to false&quot;</li>
97
+ <li class="">Click &quot;Save&quot;</li>
98
+ </ul>
99
+ <ol start="2">
100
+ <li class=""><strong>Create a Data Layer Variable for application environment</strong>:</li>
101
+ </ol>
102
+ <ul>
103
+ <li class="">Go to your GTM workspace</li>
104
+ <li class="">Click &quot;Variables&quot; → &quot;User-Defined Variables&quot; → &quot;New&quot;</li>
105
+ <li class="">Name it &quot;dlv-appEnv&quot;</li>
106
+ <li class="">Variable Type: Select &quot;Data Layer Variable&quot;</li>
107
+ <li class="">Data Layer Variable Name: <code>appEnv</code></li>
108
+ <li class="">Data Layer Version: Select &quot;Version 2&quot;</li>
109
+ <li class="">Default Value: <code>localhost</code></li>
110
+ <li class="">Click &quot;Save&quot;</li>
111
+ </ul>
112
+ <ol start="3">
113
+ <li class=""><strong>Create a Data Layer Variable for OneTrust consent groups</strong>:</li>
114
+ </ol>
115
+ <ul>
116
+ <li class="">Go to your GTM workspace</li>
117
+ <li class="">Click &quot;Variables&quot; → &quot;User-Defined Variables&quot; → &quot;New&quot;</li>
118
+ <li class="">Name it &quot;dlv-OnetrustActiveGroups&quot;</li>
119
+ <li class="">Variable Type: Select &quot;Data Layer Variable&quot;</li>
120
+ <li class="">Data Layer Variable Name: <code>OnetrustActiveGroups</code></li>
121
+ <li class="">Data Layer Version: Select &quot;Version 2&quot;</li>
122
+ <li class="">Click &quot;Save&quot;</li>
123
+ </ul>
124
+ <p>b. <strong>Set up triggers</strong>:</p>
125
+ <ol>
126
+ <li class="">
127
+ <p><strong>Custom-EnableOneTrust-d1</strong> trigger:</p>
128
+ <ul>
129
+ <li class="">Click &quot;Triggers&quot; → &quot;New&quot;</li>
130
+ <li class="">Name it &quot;Custom-EnableOneTrust-d1&quot;</li>
131
+ <li class="">Trigger Type: Select &quot;Initialization&quot;</li>
132
+ <li class="">This trigger fires on: &quot;Some Initialization Events&quot;</li>
133
+ <li class="">Fire this trigger when: <code>js-hasOneTrust</code> equals <code>true</code> and <code>dlv-appEnv</code> matches RegEx <code>^(d1|localhost)$</code></li>
134
+ <li class="">Click &quot;Save&quot;</li>
135
+ </ul>
136
+ </li>
137
+ <li class="">
138
+ <p><strong>Custom-EnableOneTrust-q1</strong> trigger:</p>
139
+ <ul>
140
+ <li class="">Click &quot;Triggers&quot; → &quot;New&quot;</li>
141
+ <li class="">Name it &quot;Custom-EnableOneTrust-q1&quot;</li>
142
+ <li class="">Trigger Type: Select &quot;Initialization&quot;</li>
143
+ <li class="">This trigger fires on: &quot;Some Initialization Events&quot;</li>
144
+ <li class="">Fire this trigger when: <code>js-hasOneTrust</code> equals <code>true</code> and <code>dlv-appEnv</code> equals <code>q1</code></li>
145
+ <li class="">Click &quot;Save&quot;
146
+ <strong>Note: Similary create triggers for other environments like <code>i1,pl1,s1,uat1 &amp; pr</code> etc.</strong></li>
147
+ </ul>
83
148
  </li>
84
149
  <li class="">
85
- <p><strong>Callback mechanism</strong>: When <code>window.hasOneTrust</code> is true, LogRocket initialization is deferred until OneTrust SDK calls <code>window.onetrustCallback</code></p>
150
+ <p><strong>Custom-EnableGA</strong> trigger:</p>
151
+ <ul>
152
+ <li class="">Click &quot;Triggers&quot; → &quot;New&quot;</li>
153
+ <li class="">Name it &quot;Custom-EnableGA&quot;</li>
154
+ <li class="">Trigger Type: Select &quot;Initialization&quot;</li>
155
+ <li class="">This trigger fires on: &quot;Some Initialization Events&quot;</li>
156
+ <li class="">Fire this trigger when: <code>js-hasOneTrust</code> equals <code>false</code></li>
157
+ <li class="">Click &quot;Save&quot;</li>
158
+ </ul>
159
+ </li>
160
+ <li class="">
161
+ <p><strong>(C0002) Activate Performance</strong> trigger:</p>
162
+ <ul>
163
+ <li class="">Click &quot;Triggers&quot; → &quot;New&quot;</li>
164
+ <li class="">Name it &quot;(C0002) Activate Performance&quot;</li>
165
+ <li class="">Trigger Type: Select &quot;Custom Event&quot;</li>
166
+ <li class="">Event name: <code>OneTrustGroupsUpdated</code></li>
167
+ <li class="">Use regex matching: Check this option</li>
168
+ <li class="">This trigger fires on: &quot;Some Custom Events&quot;</li>
169
+ <li class="">Fire this trigger when: <code>dlv-OnetrustActiveGroups</code> matches RegEx <code>,C0002,</code></li>
170
+ <li class="">Click &quot;Save&quot;</li>
171
+ </ul>
172
+ </li>
173
+ </ol>
174
+ <p>c. <strong>Create tags</strong>:</p>
175
+ <ol>
176
+ <li class=""><strong>OneTrust-Load-d1</strong> tag:<!-- -->
177
+ <ul>
178
+ <li class="">Go to your GTM workspace</li>
179
+ <li class="">Click &quot;Tags&quot; → &quot;New&quot;</li>
180
+ <li class="">Name it &quot;OneTrust-Load-d1&quot;</li>
181
+ <li class="">Tag Type: Select &quot;Custom HTML&quot;</li>
182
+ <li class=""><strong>Borrower-facing applications (e.g., ECC)</strong>: Paste the OneTrust SDK script with consent control enabled (see <code>docs/onetrust-borrower-facing.html</code> for reference template)</li>
183
+ <li class=""><strong>Non-borrower-facing applications (e.g., EncompassWeb, TPO)</strong>: Paste the OneTrust SDK script with transparency-only mode (see <code>docs/onetrust-non-borrower-facing.html</code> for reference template)</li>
184
+ <li class="">Advanced Settings → Enable &quot;Support document.write&quot;</li>
185
+ <li class="">Firing Triggers: Select &quot;Custom-EnableOneTrust-d1&quot;</li>
186
+ </ul>
187
+ </li>
188
+ <li class=""><strong>OneTrust-Load-q1</strong> tag:<!-- -->
189
+ <ul>
190
+ <li class="">Go to your GTM workspace</li>
191
+ <li class="">Click &quot;Tags&quot; → &quot;New&quot;</li>
192
+ <li class="">Name it &quot;OneTrust-Load-q1&quot;</li>
193
+ <li class="">Tag Type: Select &quot;Custom HTML&quot;</li>
194
+ <li class=""><strong>Borrower-facing applications (e.g., ECC)</strong>: Paste the OneTrust SDK script with consent control enabled (see <code>docs/onetrust-borrower-facing.html</code> for reference template)</li>
195
+ <li class=""><strong>Non-borrower-facing applications (e.g., EncompassWeb, TPO)</strong>: Paste the OneTrust SDK script with transparency-only mode (see <code>docs/onetrust-non-borrower-facing.html</code> for reference template)</li>
196
+ <li class="">Advanced Settings → Enable &quot;Support document.write&quot;</li>
197
+ <li class="">Firing Triggers: Select &quot;Custom-EnableOneTrust-q1&quot;</li>
198
+ </ul>
199
+ </li>
200
+ <li class=""><strong>GA4-Config-Load</strong> tag:<!-- -->
201
+ <ul>
202
+ <li class="">if this tag exists, edit it to change the trigger to <strong>(C0002) Activate Performance</strong> &amp; <strong>Custom-EnableGA</strong> triggers created above.</li>
203
+ <li class="">save the tag.</li>
204
+ </ul>
205
+ </li>
206
+ </ol>
207
+ <p>d. <strong>Test the integration</strong>:</p>
208
+ <ul>
209
+ <li class="">Check whether OneTrust banner appears as expected</li>
210
+ <li class="">Verify that LogRocket initializes and session recording starts only after user consents</li>
211
+ </ul>
212
+ <p>g. <strong>Publish the changes</strong>:</p>
213
+ <ul>
214
+ <li class="">Submit the workspace</li>
215
+ <li class="">Add version name/description</li>
216
+ <li class="">Publish to select environments</li>
217
+ </ul>
218
+ <p><strong>Important</strong>: The OneTrust script must be added via GTM, not directly in the HTML, to ensure proper consent management and integration with other GTM tags.</p>
86
219
  </li>
87
220
  </ol>
88
221
  <h3 class="anchor anchorTargetStickyNavbar_UXZL" id="data-sanitization-in-session-recordings">Data Sanitization in Session Recordings<a href="#data-sanitization-in-session-recordings" class="hash-link" aria-label="Direct link to Data Sanitization in Session Recordings" title="Direct link to Data Sanitization in Session Recordings" translate="no">​</a></h3>
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="generator" content="Docusaurus v3.9.2">
6
6
  <title data-rh="true">Getting Started | LogRocket</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/logrocket/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Getting Started | LogRocket"><meta data-rh="true" name="description" content="UI Platform LogRocket library standardizes the way we integrate LogRocket into our applications."><meta data-rh="true" property="og:description" content="UI Platform LogRocket library standardizes the way we integrate LogRocket into our applications."><link data-rh="true" rel="icon" href="/logrocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/logrocket/"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/logrocket/</span> </p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),o=window.location.pathname,s="/"===o.substr(-1)?o:o+"/";e.innerHTML=s}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Getting Started","item":"https://pui.ice.com/logrocket/"}]}</script><link rel="stylesheet" href="/logrocket/assets/css/styles.48d5ef50.css">
7
- <script src="/logrocket/assets/js/runtime~main.471e2b2b.js" defer="defer"></script>
8
- <script src="/logrocket/assets/js/main.aec3bbc3.js" defer="defer"></script>
7
+ <script src="/logrocket/assets/js/runtime~main.b4cf5ceb.js" defer="defer"></script>
8
+ <script src="/logrocket/assets/js/main.fc3f2988.js" defer="defer"></script>
9
9
  </head>
10
10
  <body class="navigation-with-keyboard">
11
11
  <svg style="display: none;"><defs>
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="generator" content="Docusaurus v3.9.2">
6
6
  <title data-rh="true">Usage Guide | LogRocket</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/logrocket/usage-guide"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Usage Guide | LogRocket"><meta data-rh="true" name="description" content="UI Platform LogRocket library standardizes the way we integrate LogRocket into our applications."><meta data-rh="true" property="og:description" content="UI Platform LogRocket library standardizes the way we integrate LogRocket into our applications."><link data-rh="true" rel="icon" href="/logrocket/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/logrocket/usage-guide"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/usage-guide" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/logrocket/usage-guide" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Usage Guide","item":"https://pui.ice.com/logrocket/usage-guide"}]}</script><link rel="stylesheet" href="/logrocket/assets/css/styles.48d5ef50.css">
7
- <script src="/logrocket/assets/js/runtime~main.471e2b2b.js" defer="defer"></script>
8
- <script src="/logrocket/assets/js/main.aec3bbc3.js" defer="defer"></script>
7
+ <script src="/logrocket/assets/js/runtime~main.b4cf5ceb.js" defer="defer"></script>
8
+ <script src="/logrocket/assets/js/main.fc3f2988.js" defer="defer"></script>
9
9
  </head>
10
10
  <body class="navigation-with-keyboard">
11
11
  <svg style="display: none;"><defs>
@@ -66,6 +66,27 @@
66
66
  </li>
67
67
  </ol>
68
68
  <p>OneTrust should be integrated only in the root microapplication. Child microapplications (e.g., iframes) do not need to integrate with OneTrust directly, as they will inherit the consent status from the root microapplication via URL query parameters (see &quot;Sharing LogRocket information with child micro applications&quot; section below).</p>
69
+ <h3 class="anchor anchorTargetStickyNavbar_UXZL" id="onetrust-event-based-integration">OneTrust Event-Based Integration<a href="#onetrust-event-based-integration" class="hash-link" aria-label="Direct link to OneTrust Event-Based Integration" title="Direct link to OneTrust Event-Based Integration" translate="no">​</a></h3>
70
+ <p>The library uses OneTrust&#x27;s event system to determine when to initialize LogRocket based on the user&#x27;s consent banner state:</p>
71
+ <p><strong>First-time visitors</strong> (no <code>OptanonAlertBoxClosed</code> cookie):</p>
72
+ <ul>
73
+ <li class="">The library listens for the <code>OTConsentApplied</code> event</li>
74
+ <li class="">This event fires when the user first interacts with the consent banner (Accept/Decline)</li>
75
+ <li class="">LogRocket initializes immediately after the user makes their choice</li>
76
+ </ul>
77
+ <p><strong>Returning visitors</strong> (has <code>OptanonAlertBoxClosed</code> cookie):</p>
78
+ <ul>
79
+ <li class="">The library listens for the <code>OneTrustGroupsUpdated</code> event</li>
80
+ <li class="">This event fires when OneTrust SDK loads and updates the consent groups</li>
81
+ <li class="">LogRocket initializes once the consent groups are available</li>
82
+ </ul>
83
+ <p>This event-based approach ensures that:</p>
84
+ <ul>
85
+ <li class="">LogRocket only initializes when consent status is available</li>
86
+ <li class="">First-time users see immediate feedback when they consent</li>
87
+ <li class="">Returning users get automatic initialization without re-showing the banner</li>
88
+ <li class="">The integration is more reliable than the legacy callback approach</li>
89
+ </ul>
69
90
  <p>The library automatically applies privacy-focused defaults including:</p>
70
91
  <ul>
71
92
  <li class="">Input sanitization using &#x27;lipsum&#x27; method for all form inputs</li>
@@ -99,6 +120,6 @@
99
120
  </ol>
100
121
  <p>This means if a microapp is running in an iframe and OneTrust is not available, it will check its own URL first, then fall back to checking the iframe element&#x27;s src attribute for the <code>analyticsConsent</code> parameter.</p>
101
122
  <p><strong>Example for legacy iframe-based microapps:</strong></p>
102
- <div class="language-javascript codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-javascript codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// The iframe&#x27;s src URL will be checked automatically</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// No additional code needed in the child microapp</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">iframe src</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">&quot;https://legacy-app.com/app?analyticsConsent=true&amp;lrAppId=my-app&quot;</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token operator" style="color:#393A34">/</span><span class="token plain">iframe</span><span class="token operator" style="color:#393A34">&gt;</span><br></span></code></pre></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_x8Bu"><a href="https://git.elliemae.io/platform-ui/pui-logrocket.git/docs/usage-guide.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_xpf_" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_QUoF"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/logrocket/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Getting Started</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/logrocket/compliance"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Compliance Requirements</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_YLGy thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#initialization" class="table-of-contents__link toc-highlight">Initialization</a><ul><li><a href="#preventing-duplicate-initialization" class="table-of-contents__link toc-highlight">Preventing Duplicate Initialization</a></li><li><a href="#window-variables" class="table-of-contents__link toc-highlight">Window Variables</a></li></ul></li><li><a href="#testing-logrocket-integration-from-localhost" class="table-of-contents__link toc-highlight">Testing LogRocket Integration from Localhost</a><ul><li><a href="#option-1-environment-variable" class="table-of-contents__link toc-highlight">Option 1: Environment Variable</a></li><li><a href="#option-2-configuration-flag" class="table-of-contents__link toc-highlight">Option 2: Configuration Flag</a></li></ul></li><li><a href="#controlling-session-recording-based-on-user-consent" class="table-of-contents__link toc-highlight">Controlling Session Recording Based on User Consent</a><ul><li><a href="#two-level-consent-control" class="table-of-contents__link toc-highlight">Two-Level Consent Control</a></li><li><a href="#overriding-session-recording-consent-check" class="table-of-contents__link toc-highlight">Overriding Session Recording Consent Check</a></li></ul></li><li><a href="#sharing-information-with-child-micro-applications" class="table-of-contents__link toc-highlight">Sharing information with child micro applications</a><ul><li><a href="#support-for-legacy-angularjs-microapps-in-iframes" class="table-of-contents__link toc-highlight">Support for Legacy AngularJS Microapps in Iframes</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/logrocket/">Getting Started</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://icemortgagetechnology.slack.com/archives/C01M49EGP6Z" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_kEbG"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://git.elliemae.io/platform-ui/pui-logrocket.git" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_kEbG"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2025 ICE.</div></div></div></footer></div>
123
+ <div class="language-javascript codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-javascript codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// The iframe&#x27;s src URL will be checked automatically</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// No additional code needed in the child microapp</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">iframe src</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">&quot;https://legacy-app.com/app?analyticsConsent=true&amp;lrAppId=my-app&quot;</span><span class="token operator" style="color:#393A34">&gt;</span><span class="token operator" style="color:#393A34">&lt;</span><span class="token operator" style="color:#393A34">/</span><span class="token plain">iframe</span><span class="token operator" style="color:#393A34">&gt;</span><br></span></code></pre></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_x8Bu"><a href="https://git.elliemae.io/platform-ui/pui-logrocket.git/docs/usage-guide.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_xpf_" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_QUoF"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/logrocket/"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Getting Started</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/logrocket/compliance"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Compliance Requirements</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_YLGy thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#initialization" class="table-of-contents__link toc-highlight">Initialization</a><ul><li><a href="#preventing-duplicate-initialization" class="table-of-contents__link toc-highlight">Preventing Duplicate Initialization</a></li><li><a href="#window-variables" class="table-of-contents__link toc-highlight">Window Variables</a></li></ul></li><li><a href="#testing-logrocket-integration-from-localhost" class="table-of-contents__link toc-highlight">Testing LogRocket Integration from Localhost</a><ul><li><a href="#option-1-environment-variable" class="table-of-contents__link toc-highlight">Option 1: Environment Variable</a></li><li><a href="#option-2-configuration-flag" class="table-of-contents__link toc-highlight">Option 2: Configuration Flag</a></li></ul></li><li><a href="#controlling-session-recording-based-on-user-consent" class="table-of-contents__link toc-highlight">Controlling Session Recording Based on User Consent</a><ul><li><a href="#two-level-consent-control" class="table-of-contents__link toc-highlight">Two-Level Consent Control</a></li><li><a href="#onetrust-event-based-integration" class="table-of-contents__link toc-highlight">OneTrust Event-Based Integration</a></li><li><a href="#overriding-session-recording-consent-check" class="table-of-contents__link toc-highlight">Overriding Session Recording Consent Check</a></li></ul></li><li><a href="#sharing-information-with-child-micro-applications" class="table-of-contents__link toc-highlight">Sharing information with child micro applications</a><ul><li><a href="#support-for-legacy-angularjs-microapps-in-iframes" class="table-of-contents__link toc-highlight">Support for Legacy AngularJS Microapps in Iframes</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/logrocket/">Getting Started</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://icemortgagetechnology.slack.com/archives/C01M49EGP6Z" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_kEbG"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://git.elliemae.io/platform-ui/pui-logrocket.git" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_kEbG"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2025 ICE.</div></div></div></footer></div>
103
124
  </body>
104
125
  </html>
@@ -37,7 +37,7 @@ module.exports = __toCommonJS(logrocket_exports);
37
37
  var LogRocket = __toESM(require("logrocket"));
38
38
  var import_logrocket_react = __toESM(require("logrocket-react"));
39
39
  var import_utils = require("./utils.js");
40
- const setupLogRocketReact = import_logrocket_react.default.default;
40
+ const setupLogRocketReact = import_logrocket_react.default.default || import_logrocket_react.default;
41
41
  const LogRocketLib = LogRocket.default || LogRocket;
42
42
  const logger = window.emui?.logger ?? console;
43
43
  let lrAppId = null;
@@ -196,13 +196,22 @@ const init = (options) => {
196
196
  `LogRocket initialized ${finalLogRocketOptions.dom?.isEnabled ? "with" : "without"} session recording`
197
197
  );
198
198
  };
199
+ const hasSeenBanner = () => {
200
+ const m = document.cookie.match(/(^|;\s*)OptanonAlertBoxClosed=([^;]+)/);
201
+ return m ? !!decodeURIComponent(m[2]) : false;
202
+ };
199
203
  const initLogRocket = (options) => {
200
204
  if (window.emui.isLogRocketInitialized) return;
201
205
  window.emui.isLogRocketInitialized = true;
202
206
  if (window.hasOneTrust) {
203
- window.onetrustCallback = () => {
207
+ const handler = () => {
204
208
  init(options);
205
209
  };
210
+ if (!hasSeenBanner()) {
211
+ window.addEventListener("OTConsentApplied", handler, { once: true });
212
+ } else {
213
+ window.addEventListener("OneTrustGroupsUpdated", handler, { once: true });
214
+ }
206
215
  } else {
207
216
  init(options);
208
217
  }
@@ -1,7 +1,7 @@
1
1
  import * as LogRocket from "logrocket";
2
2
  import logRocketReact from "logrocket-react";
3
3
  import { deepMerge } from "./utils.js";
4
- const setupLogRocketReact = logRocketReact.default;
4
+ const setupLogRocketReact = logRocketReact.default || logRocketReact;
5
5
  const LogRocketLib = LogRocket.default || LogRocket;
6
6
  const logger = window.emui?.logger ?? console;
7
7
  let lrAppId = null;
@@ -160,13 +160,22 @@ const init = (options) => {
160
160
  `LogRocket initialized ${finalLogRocketOptions.dom?.isEnabled ? "with" : "without"} session recording`
161
161
  );
162
162
  };
163
+ const hasSeenBanner = () => {
164
+ const m = document.cookie.match(/(^|;\s*)OptanonAlertBoxClosed=([^;]+)/);
165
+ return m ? !!decodeURIComponent(m[2]) : false;
166
+ };
163
167
  const initLogRocket = (options) => {
164
168
  if (window.emui.isLogRocketInitialized) return;
165
169
  window.emui.isLogRocketInitialized = true;
166
170
  if (window.hasOneTrust) {
167
- window.onetrustCallback = () => {
171
+ const handler = () => {
168
172
  init(options);
169
173
  };
174
+ if (!hasSeenBanner()) {
175
+ window.addEventListener("OTConsentApplied", handler, { once: true });
176
+ } else {
177
+ window.addEventListener("OneTrustGroupsUpdated", handler, { once: true });
178
+ }
170
179
  } else {
171
180
  init(options);
172
181
  }
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>LogRocket Test</title><script defer="defer" src="js/emuiLogrocket.f167e4f3fdd07d549011.js"></script></head><body><h1>LogRocket Test</h1><button id="testButton">Click me</button></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>LogRocket Test</title><script defer="defer" src="js/emuiLogrocket.0b45a7a2356fd045ea91.js"></script></head><body><h1>LogRocket Test</h1><button id="testButton">Click me</button></body></html>