@elliemae/pui-logrocket 1.0.3 → 1.1.10
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.
- package/build/docs/404.html +16 -0
- package/build/docs/api/functions/buildLogRocketQueryParams/index.html +27 -0
- package/build/docs/api/functions/hasUserConsentedToSessionRecording/index.html +30 -0
- package/build/docs/api/functions/initLogRocket/index.html +36 -0
- package/build/docs/api/index.html +22 -0
- package/build/docs/api/type-aliases/LROptions/index.html +31 -0
- package/build/docs/api/variables/LogRocket/index.html +17 -0
- package/build/docs/assets/css/styles.48d5ef50.css +1 -0
- package/build/docs/assets/images/cookie-banner-44da75a3249d0545c24f9b735d2fa068.png +0 -0
- package/build/docs/assets/images/cookie-choices-2714be2ea99c6797644dd14b05ba1093.png +0 -0
- package/build/docs/assets/js/04ee7372.1f4e4f19.js +1 -0
- package/build/docs/assets/js/1519.382051d0.js +1 -0
- package/build/docs/assets/js/1653.0f512a56.js +1 -0
- package/build/docs/assets/js/1784.d8d3eb6f.js +1 -0
- package/build/docs/assets/js/17896441.6f8fb109.js +1 -0
- package/build/docs/assets/js/1945.f17ce4cb.js +1 -0
- package/build/docs/assets/js/1991.7f866f21.js +1 -0
- package/build/docs/assets/js/2045.1bebedee.js +1 -0
- package/build/docs/assets/js/211c08f1.d133fc82.js +1 -0
- package/build/docs/assets/js/2776.108cd80f.js +1 -0
- package/build/docs/assets/js/3038.002397e7.js +1 -0
- package/build/docs/assets/js/3070.7cbc892b.js +1 -0
- package/build/docs/assets/js/33.26b2760e.js +1 -0
- package/build/docs/assets/js/3899.9ba4046a.js +1 -0
- package/build/docs/assets/js/407.1609258d.js +1 -0
- package/build/docs/assets/js/4362.e67b3c91.js +1 -0
- package/build/docs/assets/js/459.0ef6028a.js +1 -0
- package/build/docs/assets/js/4860.aa45023e.js +1 -0
- package/build/docs/assets/js/4931.0293910b.js +1 -0
- package/build/docs/assets/js/5122.7fe63ad9.js +1 -0
- package/build/docs/assets/js/51c4ceb1.e88fb182.js +1 -0
- package/build/docs/assets/js/552a934f.61bd8d58.js +1 -0
- package/build/docs/assets/js/5621.853372b8.js +2 -0
- package/build/docs/assets/js/5621.853372b8.js.LICENSE.txt +1 -0
- package/build/docs/assets/js/5820.c04e4b12.js +1 -0
- package/build/docs/assets/js/5e8c322a.86d2fc4a.js +1 -0
- package/build/docs/assets/js/5e95c892.add994c9.js +1 -0
- package/build/docs/assets/js/638.a490f71f.js +2 -0
- package/build/docs/assets/js/638.a490f71f.js.LICENSE.txt +9 -0
- package/build/docs/assets/js/6409.6f06126b.js +1 -0
- package/build/docs/assets/js/654.d3bf8f92.js +1 -0
- package/build/docs/assets/js/6959.110f49dd.js +1 -0
- package/build/docs/assets/js/7039.0493dc3c.js +1 -0
- package/build/docs/assets/js/7299.909bd2d8.js +1 -0
- package/build/docs/assets/js/7666.f71add4d.js +1 -0
- package/build/docs/assets/js/7685.feb9b2b8.js +1 -0
- package/build/docs/assets/js/7807.9aa70b38.js +1 -0
- package/build/docs/assets/js/7860.d45cb0c2.js +1 -0
- package/build/docs/assets/js/7868.0076697f.js +1 -0
- package/build/docs/assets/js/7968.92fc7d89.js +1 -0
- package/build/docs/assets/js/7997.2ae474c8.js +1 -0
- package/build/docs/assets/js/7fcbe1af.57ab9f7e.js +1 -0
- package/build/docs/assets/js/8130.4423e15c.js +1 -0
- package/build/docs/assets/js/8182.16116f9a.js +1 -0
- package/build/docs/assets/js/8257.8e164d61.js +1 -0
- package/build/docs/assets/js/8587.8653f695.js +1 -0
- package/build/docs/assets/js/8796.163faa83.js +1 -0
- package/build/docs/assets/js/8907.6cf12a5a.js +1 -0
- package/build/docs/assets/js/9176.d6ec3115.js +1 -0
- package/build/docs/assets/js/967.54c4bee1.js +1 -0
- package/build/docs/assets/js/9839.6a9eb650.js +1 -0
- package/build/docs/assets/js/a7bd4aaa.6aa43433.js +1 -0
- package/build/docs/assets/js/a94703ab.53aa43ca.js +1 -0
- package/build/docs/assets/js/aba21aa0.c2c2f2c9.js +1 -0
- package/build/docs/assets/js/acaa8c75.be91209b.js +1 -0
- package/build/docs/assets/js/c377a04b.e8bab181.js +1 -0
- package/build/docs/assets/js/common.783bea07.js +1 -0
- package/build/docs/assets/js/e376fc56.8ffdd859.js +1 -0
- package/build/docs/assets/js/ed616b60.5ce87321.js +1 -0
- package/build/docs/assets/js/main.2ad67b76.js +2 -0
- package/build/docs/assets/js/main.2ad67b76.js.LICENSE.txt +51 -0
- package/build/docs/assets/js/runtime~main.6269ea83.js +1 -0
- package/build/docs/compliance/index.html +165 -0
- package/build/docs/img/favicon.ico +0 -0
- package/build/docs/img/logo.jpeg +0 -0
- package/build/docs/img/logo.svg +22 -0
- package/build/docs/img/readme.md +1 -0
- package/build/docs/index.html +51 -0
- package/build/docs/readme.md +1 -0
- package/build/docs/sitemap.xml +1 -0
- package/build/docs/usage-guide/index.html +81 -0
- package/dist/cjs/index.html +5 -2
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/logrocket.js +116 -17
- package/dist/cjs/package.json +4 -1
- package/dist/cjs/utils.js +39 -0
- package/dist/esm/index.html +5 -2
- package/dist/esm/index.js +8 -1
- package/dist/esm/logrocket.js +115 -16
- package/dist/esm/package.json +4 -1
- package/dist/esm/utils.js +19 -0
- package/dist/public/index.html +1 -1
- package/dist/public/js/emuiLogrocket.4599eff24f56589d959a.js +45 -0
- package/dist/public/js/emuiLogrocket.4599eff24f56589d959a.js.br +0 -0
- package/dist/public/js/emuiLogrocket.4599eff24f56589d959a.js.gz +0 -0
- package/dist/public/js/emuiLogrocket.4599eff24f56589d959a.js.map +1 -0
- package/dist/public/microapp1-same-domain.html +17 -0
- package/dist/public/microapp1-same-domain.js +3 -0
- package/dist/public/microapp1-same-domain.js.br +0 -0
- package/dist/public/microapp1-same-domain.js.gz +0 -0
- package/dist/public/microapp1-same-domain.js.map +1 -0
- package/dist/public/microapp2-1-cross-domain.html +17 -0
- package/dist/public/microapp2-1-cross-domain.js +3 -0
- package/dist/public/microapp2-1-cross-domain.js.br +0 -0
- package/dist/public/microapp2-1-cross-domain.js.gz +0 -0
- package/dist/public/microapp2-1-cross-domain.js.map +1 -0
- package/dist/public/microapp2-cross-domain.html +28 -0
- package/dist/public/microapp2-cross-domain.js +3 -0
- package/dist/public/microapp2-cross-domain.js.br +0 -0
- package/dist/public/microapp2-cross-domain.js.gz +0 -0
- package/dist/public/microapp2-cross-domain.js.map +1 -0
- package/dist/public/test.html +144 -0
- package/dist/public/test.js +12 -0
- package/dist/public/test.js.br +0 -0
- package/dist/public/test.js.gz +0 -0
- package/dist/public/test.js.map +1 -0
- package/dist/public/utils.js +3 -0
- package/dist/public/utils.js.br +0 -0
- package/dist/public/utils.js.gz +0 -0
- package/dist/public/utils.js.map +1 -0
- package/dist/types/lib/index.d.ts +1 -1
- package/dist/types/lib/logrocket.d.ts +52 -12
- package/dist/types/lib/tests/logrocket-dom-isenabled.test.d.ts +1 -0
- package/dist/types/lib/tests/logrocket.test.d.ts +1 -0
- package/dist/types/lib/typings/window.d.ts +73 -0
- package/dist/types/lib/utils.d.ts +8 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/umd/index.html +1 -1
- package/dist/umd/index.js +20 -20
- package/dist/umd/index.js.br +0 -0
- package/dist/umd/index.js.gz +0 -0
- package/dist/umd/index.js.map +1 -1
- package/dist/umd/microapp1-same-domain.html +17 -0
- package/dist/umd/microapp1-same-domain.js +3 -0
- package/dist/umd/microapp1-same-domain.js.br +0 -0
- package/dist/umd/microapp1-same-domain.js.gz +0 -0
- package/dist/umd/microapp1-same-domain.js.map +1 -0
- package/dist/umd/microapp2-1-cross-domain.html +17 -0
- package/dist/umd/microapp2-1-cross-domain.js +3 -0
- package/dist/umd/microapp2-1-cross-domain.js.br +0 -0
- package/dist/umd/microapp2-1-cross-domain.js.gz +0 -0
- package/dist/umd/microapp2-1-cross-domain.js.map +1 -0
- package/dist/umd/microapp2-cross-domain.html +28 -0
- package/dist/umd/microapp2-cross-domain.js +3 -0
- package/dist/umd/microapp2-cross-domain.js.br +0 -0
- package/dist/umd/microapp2-cross-domain.js.gz +0 -0
- package/dist/umd/microapp2-cross-domain.js.map +1 -0
- package/dist/umd/test.html +144 -0
- package/dist/umd/test.js +12 -0
- package/dist/umd/test.js.br +0 -0
- package/dist/umd/test.js.gz +0 -0
- package/dist/umd/test.js.map +1 -0
- package/dist/umd/utils.js +3 -0
- package/dist/umd/utils.js.br +0 -0
- package/dist/umd/utils.js.gz +0 -0
- package/dist/umd/utils.js.map +1 -0
- package/package.json +22 -25
- package/dist/public/js/emuiLogrocket.6856581ccca61dc0bae2.js +0 -45
- package/dist/public/js/emuiLogrocket.6856581ccca61dc0bae2.js.br +0 -0
- package/dist/public/js/emuiLogrocket.6856581ccca61dc0bae2.js.gz +0 -0
- package/dist/public/js/emuiLogrocket.6856581ccca61dc0bae2.js.map +0 -1
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-usage-guide" data-has-hydrated="false">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="generator" content="Docusaurus v3.9.2">
|
|
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.6269ea83.js" defer="defer"></script>
|
|
8
|
+
<script src="/logrocket/assets/js/main.2ad67b76.js" defer="defer"></script>
|
|
9
|
+
</head>
|
|
10
|
+
<body class="navigation-with-keyboard">
|
|
11
|
+
<svg style="display: none;"><defs>
|
|
12
|
+
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
|
|
13
|
+
</defs></svg>
|
|
14
|
+
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent_eGlE" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/logrocket/"><div class="navbar__logo"><img src="/logrocket/img/logo.svg" alt="LogRocket" class="themedComponent_Q3jx themedComponent--light_BjHx"><img src="/logrocket/img/logo.svg" alt="LogRocket" class="themedComponent_Q3jx themedComponent--dark_mxj9"></div><b class="navbar__title text--truncate">LogRocket</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/logrocket/">Getting Started</a><a class="navbar__item navbar__link" href="/logrocket/api">API</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://git.elliemae.io/platform-ui/pui-logrocket.git" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">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><div class="toggle_S6Pl colorModeToggle_L96j"><button class="clean-btn toggleButton_Wf77 toggleButtonDisabled_JaY9" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_tqpk lightToggleIcon_X2ll"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_tqpk darkToggleIcon_kYIm"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_tqpk systemToggleIcon_mG1q"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_dSE1"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_vmWZ"><div class="docsWrapper_es0q"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_cO8Y" type="button"></button><div class="docRoot_cyW0"><aside class="theme-doc-sidebar-container docSidebarContainer_yHv_"><div class="sidebarViewport_iaL1"><div class="sidebar_Xoux"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_Qdup"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/logrocket/"><span title="Getting Started" class="linkLabel_Knm1">Getting Started</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/logrocket/usage-guide"><span title="Usage Guide" class="linkLabel_Knm1">Usage Guide</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/logrocket/compliance"><span title="Compliance Requirements" class="linkLabel_Knm1">Compliance Requirements</span></a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_BCi1 menu__link menu__link--sublist" href="/logrocket/api/"><span title="LogRocket API" class="categoryLinkLabel_I_MP">LogRocket API</span></a><button aria-label="Expand sidebar category 'LogRocket API'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li></ul></nav></div></div></aside><main class="docMainContainer_qgvB"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_Rp9M"><div class="docItemContainer_reKL"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_L00V" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/logrocket/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_BtgF"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Usage Guide</span></li></ul></nav><div class="tocCollapsible_tUTH theme-doc-toc-mobile tocMobile_Bfsw"><button type="button" class="clean-btn tocCollapsibleButton_YuJU">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Usage Guide</h1></header>
|
|
15
|
+
<p>UI Platform LogRocket library standardizes the way we integrate LogRocket into our applications.</p>
|
|
16
|
+
<h2 class="anchor anchorTargetStickyNavbar_UXZL" id="initialization">Initialization<a href="#initialization" class="hash-link" aria-label="Direct link to Initialization" title="Direct link to Initialization" translate="no"></a></h2>
|
|
17
|
+
<p>To initialize LogRocket using the UI Platform LogRocket library, you can use the <code>initLogRocket</code> function. This function accepts a configuration object where you can specify your LogRocket application ID and other optional settings.</p>
|
|
18
|
+
<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 keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:#393A34">{</span><span class="token imports"> initLogRocket </span><span class="token imports punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'@elliemae/pui-logrocket'</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" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token function" style="color:#d73a49">initLogRocket</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token literal-property property" style="color:#36acaa">appId</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'logrocket-app-id'</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><br></span></code></pre></div></div>
|
|
19
|
+
<p>Replace <code>logrocket-app-id</code> with your actual LogRocket app ID. You can use window variables to configure LogRocket based on your environment (dev, stage, prod etc.,). See the "Window Variables" section below for more details.</p>
|
|
20
|
+
<h3 class="anchor anchorTargetStickyNavbar_UXZL" id="window-variables">Window Variables<a href="#window-variables" class="hash-link" aria-label="Direct link to Window Variables" title="Direct link to Window Variables" translate="no"></a></h3>
|
|
21
|
+
<p>The UI Platform LogRocket library can be configured using global window variables below, which can be set before making the <code>initLogRocket</code> call.</p>
|
|
22
|
+
<ul>
|
|
23
|
+
<li class=""><strong><code>window.emui.logRocketConfig</code></strong>: The main LogRocket configuration object.</li>
|
|
24
|
+
</ul>
|
|
25
|
+
<p>This object has following properties:</p>
|
|
26
|
+
<ul>
|
|
27
|
+
<li class=""><code>appId</code> (string): LogRocket application ID allocated to the product.</li>
|
|
28
|
+
<li class=""><code>enable</code> (boolean): Flag to enable or disable LogRocket in the microapp. Defaults to <code>true</code>. If set to <code>false</code>, LogRocket will not be initialized even if <code>initLogRocket</code> is called. This can be useful for disabling LogRocket in certain environments (e.g., development or staging).</li>
|
|
29
|
+
<li class=""><code>childDomains</code> (array of strings): List of domains of child micro applications (e.g., iframes)</li>
|
|
30
|
+
<li class=""><code>parentDomain</code> (string): Parent domain of the hosting application. library automatically detects parent domain for cross-origin iframes, but in some cases (e.g., local development), you may need to set this manually.</li>
|
|
31
|
+
<li class=""><code>rootHostname</code> (string): Use this option to control whether sessions that traverse different subdomains on your product application are kept intact or broken up into sessions specific to each microapp subdomain. Set this to the highest-level hostname sessions should be shared across (e.g., .ice.com). A leading period is required. Defaults to .ice.com</li>
|
|
32
|
+
</ul>
|
|
33
|
+
<h2 class="anchor anchorTargetStickyNavbar_UXZL" id="testing-logrocket-integration-from-localhost">Testing LogRocket Integration from Localhost<a href="#testing-logrocket-integration-from-localhost" class="hash-link" aria-label="Direct link to Testing LogRocket Integration from Localhost" title="Direct link to Testing LogRocket Integration from Localhost" translate="no"></a></h2>
|
|
34
|
+
<p>When developing locally, you may want to test LogRocket integration. To do this, you can set the environment variable <code>LOGROCKET_ENABLE_ON_LOCALHOST</code> to <code>true</code>.</p>
|
|
35
|
+
<p>If you are using a <code>.env</code> file, add the following line:</p>
|
|
36
|
+
<div class="language-txt codeBlockContainer_hfT5 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_7tLg"><pre tabindex="0" class="prism-code language-txt codeBlock_jGqy thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_reRH"><span class="token-line" style="color:#393A34"><span class="token plain">LOGROCKET_ENABLE_ON_LOCALHOST=true</span><br></span></code></pre></div></div>
|
|
37
|
+
<h2 class="anchor anchorTargetStickyNavbar_UXZL" id="controlling-session-recording-based-on-user-consent">Controlling Session Recording Based on User Consent<a href="#controlling-session-recording-based-on-user-consent" class="hash-link" aria-label="Direct link to Controlling Session Recording Based on User Consent" title="Direct link to Controlling Session Recording Based on User Consent" translate="no"></a></h2>
|
|
38
|
+
<p>OneTrust consent management platform is the tool used to manage user consent in ICE. When the root microapplication integrates with OneTrust, the UI Platform LogRocket library leverages OneTrust to control LogRocket initialization and session recording based on user consent.</p>
|
|
39
|
+
<h3 class="anchor anchorTargetStickyNavbar_UXZL" id="two-level-consent-control">Two-Level Consent Control<a href="#two-level-consent-control" class="hash-link" aria-label="Direct link to Two-Level Consent Control" title="Direct link to Two-Level Consent Control" translate="no"></a></h3>
|
|
40
|
+
<p>The library implements a two-level consent control system:</p>
|
|
41
|
+
<ol>
|
|
42
|
+
<li class="">
|
|
43
|
+
<p><strong>LogRocket Initialization (C0002 - Performance Cookies)</strong>: Controls whether LogRocket is initialized at all</p>
|
|
44
|
+
<ul>
|
|
45
|
+
<li class="">If C0002 is not granted, LogRocket will not initialize</li>
|
|
46
|
+
<li class="">When OneTrust is not loaded, LogRocket initializes by default</li>
|
|
47
|
+
</ul>
|
|
48
|
+
</li>
|
|
49
|
+
<li class="">
|
|
50
|
+
<p><strong>Session Recording (C0004 - Analytics Cookies)</strong>: Controls whether DOM recording is enabled</p>
|
|
51
|
+
<ul>
|
|
52
|
+
<li class="">If C0004 is not granted, LogRocket still captures technical data but disables visual session recording</li>
|
|
53
|
+
<li class="">Technical data includes: network requests, console logs, JavaScript errors, performance metrics, and custom events</li>
|
|
54
|
+
</ul>
|
|
55
|
+
</li>
|
|
56
|
+
</ol>
|
|
57
|
+
<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 "Sharing LogRocket information with child micro applications" section below).</p>
|
|
58
|
+
<p>The library automatically applies privacy-focused defaults including:</p>
|
|
59
|
+
<ul>
|
|
60
|
+
<li class="">Input sanitization using 'lipsum' method for all form inputs</li>
|
|
61
|
+
<li class="">Text sanitization to protect sensitive text content (<code>textSanitizer: true</code>)</li>
|
|
62
|
+
<li class="">Hidden ARIA attributes to prevent accessibility-related PII exposure</li>
|
|
63
|
+
<li class="">Network request/response body sanitization</li>
|
|
64
|
+
</ul>
|
|
65
|
+
<p>You can read more about the compliance features and data sanitization measures in the <a class="" href="/logrocket/compliance">Compliance Guide</a>.</p>
|
|
66
|
+
<h3 class="anchor anchorTargetStickyNavbar_UXZL" id="overriding-session-recording-consent-check">Overriding Session Recording Consent Check<a href="#overriding-session-recording-consent-check" class="hash-link" aria-label="Direct link to Overriding Session Recording Consent Check" title="Direct link to Overriding Session Recording Consent Check" translate="no"></a></h3>
|
|
67
|
+
<p>During local development, you may want to enable session recording regardless of the user's consent status from OneTrust. You can do this by setting the <code>window.emui.dangerouslyOverrideSessionRecordingConsent</code> property to <code>true</code> before calling the <code>initLogRocket</code> function.</p>
|
|
68
|
+
<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">// root microapplication</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">emui</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">emui</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">emui</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">dangerouslyOverrideSessionRecordingConsent</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><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:#393A34">{</span><span class="token imports"> initLogRocket </span><span class="token imports punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'@elliemae/pui-logrocket'</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 function" style="color:#d73a49">initLogRocket</span><span class="token punctuation" style="color:#393A34">(</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> </span><span class="token literal-property property" style="color:#36acaa">appId</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'logrocket-app-id'</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><br></span></code></pre></div></div>
|
|
69
|
+
<p>This will force session recording to be enabled, even if the user has not consented to analytics tracking in OneTrust. <strong>Use this option with caution, as it may have compliance implications. This option should only be used for local development and testing purposes.</strong> A warning will be logged when this override is active.</p>
|
|
70
|
+
<h2 class="anchor anchorTargetStickyNavbar_UXZL" id="sharing-information-with-child-micro-applications">Sharing information with child micro applications<a href="#sharing-information-with-child-micro-applications" class="hash-link" aria-label="Direct link to Sharing information with child micro applications" title="Direct link to Sharing information with child micro applications" translate="no"></a></h2>
|
|
71
|
+
<p>LogRocket integration happens at each micro application level. To ensure that parent micro applications has control over LogRocket configuration in child micro applications (e.g., iframes), this library provides a utility function <code>buildLogRocketQueryParams</code> to share LogRocket & user consent related configuration information via URL query parameters.</p>
|
|
72
|
+
<p>This also allows interoperable child micro applications to work with different parent micro application (Encompass, TPO etc.,) without requiring any hardcoded LogRocket configuration in the child micro applications.</p>
|
|
73
|
+
<p><code>buildLogRocketQueryParams</code> function generates URL query parameters that contain following information to share with child micro applications as part of the iframe URL:</p>
|
|
74
|
+
<ul>
|
|
75
|
+
<li class=""><strong><code>analyticsConsent</code></strong>: Set to <code>'true'</code> if user has consented to analytics cookies, <code>'false'</code> otherwise</li>
|
|
76
|
+
<li class=""><strong><code>lrEnabled</code></strong>: Set to <code>'true'</code> if LogRocket is enabled in the app, <code>'false'</code> otherwise</li>
|
|
77
|
+
<li class=""><strong><code>lrAppId</code></strong>: The LogRocket application ID being used in the app</li>
|
|
78
|
+
</ul>
|
|
79
|
+
<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">// parent microapplication</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:#393A34">{</span><span class="token imports"> buildLogRocketQueryParams </span><span class="token imports punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">'@elliemae/pui-logrocket'</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" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> urlParams </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">buildLogRocketQueryParams</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 comment" style="color:#999988;font-style:italic">// urlParams: "analyticsConsent=true&lrEnabled=true&lrAppId=your-app-id"</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> childUrl </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token template-string template-punctuation string" style="color:#e3116c">`</span><span class="token template-string string" style="color:#e3116c">https://child-app.example.com?</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">${</span><span class="token template-string interpolation">urlParams</span><span class="token template-string interpolation interpolation-punctuation punctuation" style="color:#393A34">}</span><span class="token template-string template-punctuation string" style="color:#e3116c">`</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 comment" style="color:#999988;font-style:italic">// launch guest application with childUrl using SSF V2 / App SDK GuestMicroapp</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="#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></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></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>
|
|
80
|
+
</body>
|
|
81
|
+
</html>
|
package/dist/cjs/index.html
CHANGED
|
@@ -4,7 +4,10 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
-
<title>
|
|
7
|
+
<title>LogRocket Test</title>
|
|
8
8
|
</head>
|
|
9
|
-
<body
|
|
9
|
+
<body>
|
|
10
|
+
<h1>LogRocket Test</h1>
|
|
11
|
+
<button id="testButton">Click me</button>
|
|
12
|
+
</body>
|
|
10
13
|
</html>
|
package/dist/cjs/index.js
CHANGED
|
@@ -19,6 +19,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
19
19
|
var index_exports = {};
|
|
20
20
|
__export(index_exports, {
|
|
21
21
|
LogRocket: () => import_logrocket.LogRocket,
|
|
22
|
+
buildLogRocketQueryParams: () => import_logrocket.buildLogRocketQueryParams,
|
|
23
|
+
hasUserConsentedToSessionRecording: () => import_logrocket.hasUserConsentedToSessionRecording,
|
|
22
24
|
initLogRocket: () => import_logrocket.initLogRocket
|
|
23
25
|
});
|
|
24
26
|
module.exports = __toCommonJS(index_exports);
|
package/dist/cjs/logrocket.js
CHANGED
|
@@ -28,14 +28,32 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
var logrocket_exports = {};
|
|
30
30
|
__export(logrocket_exports, {
|
|
31
|
-
LogRocket: () =>
|
|
31
|
+
LogRocket: () => LogRocket,
|
|
32
|
+
buildLogRocketQueryParams: () => buildLogRocketQueryParams,
|
|
33
|
+
hasUserConsentedToSessionRecording: () => hasUserConsentedToSessionRecording,
|
|
32
34
|
initLogRocket: () => initLogRocket
|
|
33
35
|
});
|
|
34
36
|
module.exports = __toCommonJS(logrocket_exports);
|
|
35
|
-
var
|
|
37
|
+
var LogRocket = __toESM(require("logrocket"));
|
|
36
38
|
var import_logrocket_react = __toESM(require("logrocket-react"));
|
|
39
|
+
var import_utils = require("./utils.js");
|
|
37
40
|
const setupLogRocketReact = import_logrocket_react.default.default;
|
|
38
|
-
const
|
|
41
|
+
const LogRocketLib = LogRocket.default || LogRocket;
|
|
42
|
+
const logger = window.emui?.logger ?? console;
|
|
43
|
+
let lrAppId = null;
|
|
44
|
+
const getParentDomain = () => {
|
|
45
|
+
try {
|
|
46
|
+
return window.parent.location.origin;
|
|
47
|
+
} catch {
|
|
48
|
+
try {
|
|
49
|
+
const url = new URL(document.referrer);
|
|
50
|
+
return url.origin;
|
|
51
|
+
} catch {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
const getDefaultOptions = () => ({
|
|
39
57
|
browser: {
|
|
40
58
|
urlSanitizer: (url) => {
|
|
41
59
|
let sanitizedUrl = url;
|
|
@@ -44,7 +62,18 @@ const defaultOptions = {
|
|
|
44
62
|
}
|
|
45
63
|
},
|
|
46
64
|
dom: {
|
|
47
|
-
|
|
65
|
+
hiddenAttributes: [
|
|
66
|
+
"aria-label",
|
|
67
|
+
"aria-labelledby",
|
|
68
|
+
"aria-describedby",
|
|
69
|
+
"aria-details",
|
|
70
|
+
"aria-errormessage",
|
|
71
|
+
"aria-valuetext",
|
|
72
|
+
"aria-placeholder"
|
|
73
|
+
],
|
|
74
|
+
inputSanitizer: "lipsum",
|
|
75
|
+
isEnabled: false,
|
|
76
|
+
textSanitizer: true
|
|
48
77
|
},
|
|
49
78
|
mergeIframes: true,
|
|
50
79
|
network: {
|
|
@@ -72,27 +101,97 @@ const defaultOptions = {
|
|
|
72
101
|
// app sdk based applications use this env variable to specify the app code version
|
|
73
102
|
rootHostname: window.emui?.logRocketConfig?.rootHostname ?? ".ice.com",
|
|
74
103
|
childDomains: window.emui?.logRocketConfig?.childDomains ?? null,
|
|
75
|
-
parentDomain: window.emui?.logRocketConfig?.parentDomain ?? null
|
|
104
|
+
parentDomain: getParentDomain() ?? window.emui?.logRocketConfig?.parentDomain ?? null
|
|
105
|
+
});
|
|
106
|
+
const hasUserConsentedForLogRocketInit = () => {
|
|
107
|
+
if (window.OnetrustActiveGroups) {
|
|
108
|
+
return window.OnetrustActiveGroups.includes("C0002");
|
|
109
|
+
}
|
|
110
|
+
return true;
|
|
76
111
|
};
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
112
|
+
const isLogRocketDisabled = () => {
|
|
113
|
+
if (!hasUserConsentedForLogRocketInit()) {
|
|
114
|
+
return true;
|
|
115
|
+
}
|
|
116
|
+
if (window.location.hostname === "localhost" && process?.env?.LOGROCKET_ENABLE_ON_LOCALHOST !== "true") {
|
|
117
|
+
return true;
|
|
118
|
+
}
|
|
119
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
120
|
+
if (window.emui?.logRocketConfig?.enable === false || urlParams.get("lrEnabled") === "false") {
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
return false;
|
|
124
|
+
};
|
|
125
|
+
const hasUserConsentedToSessionRecording = () => {
|
|
126
|
+
if (typeof window.emui?.dangerouslyOverrideSessionRecordingConsent === "boolean") {
|
|
127
|
+
logger.warn(
|
|
128
|
+
"Using dangerouslyOverrideSessionRecordingConsent - this should only be used for testing purposes"
|
|
129
|
+
);
|
|
130
|
+
return window.emui.dangerouslyOverrideSessionRecordingConsent;
|
|
131
|
+
}
|
|
132
|
+
if (window.OnetrustActiveGroups) {
|
|
133
|
+
return window.OnetrustActiveGroups.includes("C0004");
|
|
134
|
+
}
|
|
135
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
136
|
+
if (urlParams.get("analyticsConsent") === "true") {
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
return false;
|
|
140
|
+
};
|
|
141
|
+
const buildLogRocketQueryParams = () => {
|
|
142
|
+
const urlParams = new URLSearchParams();
|
|
143
|
+
urlParams.append(
|
|
144
|
+
"analyticsConsent",
|
|
145
|
+
hasUserConsentedToSessionRecording() === true ? "true" : "false"
|
|
146
|
+
);
|
|
147
|
+
urlParams.append("lrEnabled", isLogRocketDisabled() ? "false" : "true");
|
|
148
|
+
urlParams.append("lrAppId", lrAppId ?? "");
|
|
149
|
+
return urlParams.toString();
|
|
150
|
+
};
|
|
151
|
+
const getLRAppId = (appId) => {
|
|
152
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
153
|
+
const lrAppIdFromUrl = urlParams.get("lrAppId");
|
|
154
|
+
const lrAppIdFromWindow = window.emui?.logRocketConfig?.appId;
|
|
155
|
+
return lrAppIdFromUrl || appId || lrAppIdFromWindow || null;
|
|
156
|
+
};
|
|
157
|
+
const init = (options) => {
|
|
158
|
+
const { appId, isReact = true, ...rest } = options ?? {};
|
|
159
|
+
lrAppId = getLRAppId(appId);
|
|
160
|
+
if (!lrAppId) {
|
|
84
161
|
throw new Error(
|
|
85
162
|
"LogRocket appId is required to initialize LogRocket. Either pass it as parameter or set window.emui.logRocketConfig.appId"
|
|
86
163
|
);
|
|
87
164
|
}
|
|
88
|
-
if (
|
|
89
|
-
|
|
165
|
+
if (isLogRocketDisabled()) {
|
|
166
|
+
logger.info("LogRocket is disabled in this environment");
|
|
90
167
|
return;
|
|
91
168
|
}
|
|
92
|
-
|
|
169
|
+
const defaultOptions = getDefaultOptions();
|
|
170
|
+
const consent = hasUserConsentedToSessionRecording();
|
|
171
|
+
if (defaultOptions.dom) {
|
|
172
|
+
defaultOptions.dom.isEnabled = consent;
|
|
173
|
+
}
|
|
174
|
+
const finalLogRocketOptions = (0, import_utils.deepMerge)(
|
|
175
|
+
defaultOptions,
|
|
176
|
+
rest
|
|
177
|
+
);
|
|
178
|
+
LogRocketLib.init(lrAppId, finalLogRocketOptions);
|
|
93
179
|
if (isReact) {
|
|
94
|
-
setupLogRocketReact(
|
|
180
|
+
setupLogRocketReact(LogRocketLib);
|
|
181
|
+
}
|
|
182
|
+
logger.info(
|
|
183
|
+
`LogRocket initialized ${finalLogRocketOptions.dom?.isEnabled ? "with" : "without"} session recording`
|
|
184
|
+
);
|
|
185
|
+
};
|
|
186
|
+
const initLogRocket = (options) => {
|
|
187
|
+
if (LogRocketLib.sessionURL) return;
|
|
188
|
+
if (window.hasOneTrust) {
|
|
189
|
+
window.onetrustCallback = () => {
|
|
190
|
+
init(options);
|
|
191
|
+
};
|
|
192
|
+
} else {
|
|
193
|
+
init(options);
|
|
95
194
|
}
|
|
96
195
|
};
|
|
97
196
|
window.emui = window.emui || {};
|
|
98
|
-
window.emui.logRocket =
|
|
197
|
+
window.emui.logRocket = LogRocketLib;
|
package/dist/cjs/package.json
CHANGED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var utils_exports = {};
|
|
20
|
+
__export(utils_exports, {
|
|
21
|
+
deepMerge: () => deepMerge
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(utils_exports);
|
|
24
|
+
const isObject = (item) => item !== null && typeof item === "object" && !Array.isArray(item);
|
|
25
|
+
const deepMerge = (target, source) => {
|
|
26
|
+
const output = { ...target };
|
|
27
|
+
if (isObject(target) && isObject(source)) {
|
|
28
|
+
Object.keys(source).forEach((key) => {
|
|
29
|
+
const sourceValue = source[key];
|
|
30
|
+
const targetValue = output[key];
|
|
31
|
+
if (isObject(sourceValue) && isObject(targetValue)) {
|
|
32
|
+
output[key] = deepMerge(targetValue, sourceValue);
|
|
33
|
+
} else {
|
|
34
|
+
output[key] = sourceValue;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return output;
|
|
39
|
+
};
|
package/dist/esm/index.html
CHANGED
|
@@ -4,7 +4,10 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
|
-
<title>
|
|
7
|
+
<title>LogRocket Test</title>
|
|
8
8
|
</head>
|
|
9
|
-
<body
|
|
9
|
+
<body>
|
|
10
|
+
<h1>LogRocket Test</h1>
|
|
11
|
+
<button id="testButton">Click me</button>
|
|
12
|
+
</body>
|
|
10
13
|
</html>
|
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
initLogRocket,
|
|
3
|
+
hasUserConsentedToSessionRecording,
|
|
4
|
+
buildLogRocketQueryParams,
|
|
5
|
+
LogRocket
|
|
6
|
+
} from "./logrocket.js";
|
|
2
7
|
export {
|
|
3
8
|
LogRocket,
|
|
9
|
+
buildLogRocketQueryParams,
|
|
10
|
+
hasUserConsentedToSessionRecording,
|
|
4
11
|
initLogRocket
|
|
5
12
|
};
|
package/dist/esm/logrocket.js
CHANGED
|
@@ -1,7 +1,23 @@
|
|
|
1
|
-
import LogRocket from "logrocket";
|
|
1
|
+
import * as LogRocket from "logrocket";
|
|
2
2
|
import logRocketReact from "logrocket-react";
|
|
3
|
+
import { deepMerge } from "./utils.js";
|
|
3
4
|
const setupLogRocketReact = logRocketReact.default;
|
|
4
|
-
const
|
|
5
|
+
const LogRocketLib = LogRocket.default || LogRocket;
|
|
6
|
+
const logger = window.emui?.logger ?? console;
|
|
7
|
+
let lrAppId = null;
|
|
8
|
+
const getParentDomain = () => {
|
|
9
|
+
try {
|
|
10
|
+
return window.parent.location.origin;
|
|
11
|
+
} catch {
|
|
12
|
+
try {
|
|
13
|
+
const url = new URL(document.referrer);
|
|
14
|
+
return url.origin;
|
|
15
|
+
} catch {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
const getDefaultOptions = () => ({
|
|
5
21
|
browser: {
|
|
6
22
|
urlSanitizer: (url) => {
|
|
7
23
|
let sanitizedUrl = url;
|
|
@@ -10,7 +26,18 @@ const defaultOptions = {
|
|
|
10
26
|
}
|
|
11
27
|
},
|
|
12
28
|
dom: {
|
|
13
|
-
|
|
29
|
+
hiddenAttributes: [
|
|
30
|
+
"aria-label",
|
|
31
|
+
"aria-labelledby",
|
|
32
|
+
"aria-describedby",
|
|
33
|
+
"aria-details",
|
|
34
|
+
"aria-errormessage",
|
|
35
|
+
"aria-valuetext",
|
|
36
|
+
"aria-placeholder"
|
|
37
|
+
],
|
|
38
|
+
inputSanitizer: "lipsum",
|
|
39
|
+
isEnabled: false,
|
|
40
|
+
textSanitizer: true
|
|
14
41
|
},
|
|
15
42
|
mergeIframes: true,
|
|
16
43
|
network: {
|
|
@@ -38,31 +65,103 @@ const defaultOptions = {
|
|
|
38
65
|
// app sdk based applications use this env variable to specify the app code version
|
|
39
66
|
rootHostname: window.emui?.logRocketConfig?.rootHostname ?? ".ice.com",
|
|
40
67
|
childDomains: window.emui?.logRocketConfig?.childDomains ?? null,
|
|
41
|
-
parentDomain: window.emui?.logRocketConfig?.parentDomain ?? null
|
|
68
|
+
parentDomain: getParentDomain() ?? window.emui?.logRocketConfig?.parentDomain ?? null
|
|
69
|
+
});
|
|
70
|
+
const hasUserConsentedForLogRocketInit = () => {
|
|
71
|
+
if (window.OnetrustActiveGroups) {
|
|
72
|
+
return window.OnetrustActiveGroups.includes("C0002");
|
|
73
|
+
}
|
|
74
|
+
return true;
|
|
42
75
|
};
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
76
|
+
const isLogRocketDisabled = () => {
|
|
77
|
+
if (!hasUserConsentedForLogRocketInit()) {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
if (window.location.hostname === "localhost" && process?.env?.LOGROCKET_ENABLE_ON_LOCALHOST !== "true") {
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
84
|
+
if (window.emui?.logRocketConfig?.enable === false || urlParams.get("lrEnabled") === "false") {
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
return false;
|
|
88
|
+
};
|
|
89
|
+
const hasUserConsentedToSessionRecording = () => {
|
|
90
|
+
if (typeof window.emui?.dangerouslyOverrideSessionRecordingConsent === "boolean") {
|
|
91
|
+
logger.warn(
|
|
92
|
+
"Using dangerouslyOverrideSessionRecordingConsent - this should only be used for testing purposes"
|
|
93
|
+
);
|
|
94
|
+
return window.emui.dangerouslyOverrideSessionRecordingConsent;
|
|
95
|
+
}
|
|
96
|
+
if (window.OnetrustActiveGroups) {
|
|
97
|
+
return window.OnetrustActiveGroups.includes("C0004");
|
|
98
|
+
}
|
|
99
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
100
|
+
if (urlParams.get("analyticsConsent") === "true") {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
return false;
|
|
104
|
+
};
|
|
105
|
+
const buildLogRocketQueryParams = () => {
|
|
106
|
+
const urlParams = new URLSearchParams();
|
|
107
|
+
urlParams.append(
|
|
108
|
+
"analyticsConsent",
|
|
109
|
+
hasUserConsentedToSessionRecording() === true ? "true" : "false"
|
|
110
|
+
);
|
|
111
|
+
urlParams.append("lrEnabled", isLogRocketDisabled() ? "false" : "true");
|
|
112
|
+
urlParams.append("lrAppId", lrAppId ?? "");
|
|
113
|
+
return urlParams.toString();
|
|
114
|
+
};
|
|
115
|
+
const getLRAppId = (appId) => {
|
|
116
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
117
|
+
const lrAppIdFromUrl = urlParams.get("lrAppId");
|
|
118
|
+
const lrAppIdFromWindow = window.emui?.logRocketConfig?.appId;
|
|
119
|
+
return lrAppIdFromUrl || appId || lrAppIdFromWindow || null;
|
|
120
|
+
};
|
|
121
|
+
const init = (options) => {
|
|
122
|
+
const { appId, isReact = true, ...rest } = options ?? {};
|
|
123
|
+
lrAppId = getLRAppId(appId);
|
|
124
|
+
if (!lrAppId) {
|
|
50
125
|
throw new Error(
|
|
51
126
|
"LogRocket appId is required to initialize LogRocket. Either pass it as parameter or set window.emui.logRocketConfig.appId"
|
|
52
127
|
);
|
|
53
128
|
}
|
|
54
|
-
if (
|
|
55
|
-
|
|
129
|
+
if (isLogRocketDisabled()) {
|
|
130
|
+
logger.info("LogRocket is disabled in this environment");
|
|
56
131
|
return;
|
|
57
132
|
}
|
|
58
|
-
|
|
133
|
+
const defaultOptions = getDefaultOptions();
|
|
134
|
+
const consent = hasUserConsentedToSessionRecording();
|
|
135
|
+
if (defaultOptions.dom) {
|
|
136
|
+
defaultOptions.dom.isEnabled = consent;
|
|
137
|
+
}
|
|
138
|
+
const finalLogRocketOptions = deepMerge(
|
|
139
|
+
defaultOptions,
|
|
140
|
+
rest
|
|
141
|
+
);
|
|
142
|
+
LogRocketLib.init(lrAppId, finalLogRocketOptions);
|
|
59
143
|
if (isReact) {
|
|
60
|
-
setupLogRocketReact(
|
|
144
|
+
setupLogRocketReact(LogRocketLib);
|
|
145
|
+
}
|
|
146
|
+
logger.info(
|
|
147
|
+
`LogRocket initialized ${finalLogRocketOptions.dom?.isEnabled ? "with" : "without"} session recording`
|
|
148
|
+
);
|
|
149
|
+
};
|
|
150
|
+
const initLogRocket = (options) => {
|
|
151
|
+
if (LogRocketLib.sessionURL) return;
|
|
152
|
+
if (window.hasOneTrust) {
|
|
153
|
+
window.onetrustCallback = () => {
|
|
154
|
+
init(options);
|
|
155
|
+
};
|
|
156
|
+
} else {
|
|
157
|
+
init(options);
|
|
61
158
|
}
|
|
62
159
|
};
|
|
63
160
|
window.emui = window.emui || {};
|
|
64
|
-
window.emui.logRocket =
|
|
161
|
+
window.emui.logRocket = LogRocketLib;
|
|
65
162
|
export {
|
|
66
163
|
LogRocket,
|
|
164
|
+
buildLogRocketQueryParams,
|
|
165
|
+
hasUserConsentedToSessionRecording,
|
|
67
166
|
initLogRocket
|
|
68
167
|
};
|
package/dist/esm/package.json
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const isObject = (item) => item !== null && typeof item === "object" && !Array.isArray(item);
|
|
2
|
+
const deepMerge = (target, source) => {
|
|
3
|
+
const output = { ...target };
|
|
4
|
+
if (isObject(target) && isObject(source)) {
|
|
5
|
+
Object.keys(source).forEach((key) => {
|
|
6
|
+
const sourceValue = source[key];
|
|
7
|
+
const targetValue = output[key];
|
|
8
|
+
if (isObject(sourceValue) && isObject(targetValue)) {
|
|
9
|
+
output[key] = deepMerge(targetValue, sourceValue);
|
|
10
|
+
} else {
|
|
11
|
+
output[key] = sourceValue;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return output;
|
|
16
|
+
};
|
|
17
|
+
export {
|
|
18
|
+
deepMerge
|
|
19
|
+
};
|
package/dist/public/index.html
CHANGED
|
@@ -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>
|
|
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.4599eff24f56589d959a.js"></script></head><body><h1>LogRocket Test</h1><button id="testButton">Click me</button></body></html>
|