@elliemae/pui-app-sdk 5.13.0 → 5.13.2

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.
@@ -23,23 +23,28 @@ __export(analytics_exports, {
23
23
  module.exports = __toCommonJS(analytics_exports);
24
24
  var import_guest = require("../utils/micro-frontend/guest.js");
25
25
  var import_web_analytics = require("../utils/micro-frontend/scripting-objects/web-analytics.js");
26
+ var import_helpers = require("../utils/helpers.js");
26
27
  const sendBAEventToSelf = (data) => {
28
+ const eventData = {
29
+ ...(0, import_web_analytics.getBAEventParameters)(),
30
+ ...(0, import_helpers.getProductAppDetails)(),
31
+ ...data
32
+ };
27
33
  window.gtmDataLayer = window.gtmDataLayer || [];
28
- window.gtmDataLayer.push(data);
34
+ window.gtmDataLayer.push(eventData);
29
35
  };
30
36
  const sendBAEvent = ({
31
37
  data,
32
38
  self = true
33
39
  }) => {
34
- const eventData = { ...(0, import_web_analytics.getBAEventParameters)(), ...data };
35
40
  if (!self) {
36
41
  const sendEvent = import_guest.CMicroAppGuest.getInstance()?.getHost()?.sendBAEvent;
37
42
  if (sendEvent) {
38
- sendEvent(eventData);
43
+ sendEvent(data);
39
44
  } else {
40
- sendBAEventToSelf(eventData);
45
+ sendBAEventToSelf(data);
41
46
  }
42
47
  } else {
43
- sendBAEventToSelf(eventData);
48
+ sendBAEventToSelf(data);
44
49
  }
45
50
  };
@@ -22,29 +22,11 @@ __export(page_view_event_exports, {
22
22
  });
23
23
  module.exports = __toCommonJS(page_view_event_exports);
24
24
  var import_index = require("./index.js");
25
- const getWindow = () => {
26
- try {
27
- window.top?.document;
28
- return window.top || window.self;
29
- } catch (e) {
30
- return window.self;
31
- }
32
- };
33
25
  const pageViewEvent = ({ pageTitle }) => {
34
- const pageWindow = getWindow();
35
- const { pathname, href } = pageWindow.location;
36
- const { title } = pageWindow.document;
37
- const { pathname: guestPagePath, href: guestPageUrl } = window.location;
38
- const { title: guestPageTitle } = document;
39
26
  (0, import_index.sendBAEvent)({
40
27
  data: {
41
28
  event: "pageView",
42
- pageUrl: href,
43
- pagePath: pathname,
44
- pageTitle: title,
45
- guestPageUrl,
46
- guestPagePath,
47
- guestPageTitle: pageTitle || guestPageTitle
29
+ appPageTitle: pageTitle
48
30
  }
49
31
  });
50
32
  };
@@ -44,6 +44,8 @@ const parseAppConfig = (data) => {
44
44
  if (data.env) delete data.env;
45
45
  (0, import_config.setAppConfig)(import_lodash.default.merge(data, activeEnvConfig));
46
46
  sessionStorage.setItem("envName", activeEnv);
47
+ window.emui = window.emui || {};
48
+ window.emui.appId = (0, import_config.getAppConfigValue)("appId") ?? window.emui.appId ?? "";
47
49
  (0, import_appdynamics.setAppDynamicsUserData)({ envName: activeEnv });
48
50
  (0, import_web_analytics.updateBAEventParameters)({ envName: activeEnv });
49
51
  };
@@ -19,10 +19,12 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
19
19
  var helpers_exports = {};
20
20
  __export(helpers_exports, {
21
21
  convertRelativeToAbsoluteUrl: () => convertRelativeToAbsoluteUrl,
22
+ getProductAppDetails: () => getProductAppDetails,
22
23
  isCIBuild: () => isCIBuild,
23
24
  isProd: () => isProd
24
25
  });
25
26
  module.exports = __toCommonJS(helpers_exports);
27
+ var import_window = require("./window.js");
26
28
  const isProd = () => false;
27
29
  const isCIBuild = () => process.env.CI === "true";
28
30
  const PROTOCOL = /^(?:[a-z]+:)?\/\//;
@@ -32,3 +34,24 @@ const convertRelativeToAbsoluteUrl = (url) => {
32
34
  }
33
35
  return url;
34
36
  };
37
+ const getProductAppDetails = () => {
38
+ const pageWindow = (0, import_window.getWindow)();
39
+ const { title: productPageTitle } = pageWindow.document;
40
+ const { title: appPageTitle } = document;
41
+ const productId = pageWindow?.emui?.appId ?? "";
42
+ const version = pageWindow?.emui?.version ?? "";
43
+ const appId = window?.emui?.appId ?? "";
44
+ const { pathname: productPath, href: productUrl } = pageWindow.location;
45
+ const { pathname: appPath, href: appUrl } = window.location;
46
+ return {
47
+ productId,
48
+ productPath,
49
+ productUrl,
50
+ productPageTitle,
51
+ version,
52
+ appId,
53
+ appPath,
54
+ appUrl,
55
+ appPageTitle
56
+ };
57
+ };
@@ -33,6 +33,7 @@ __export(analytics_exports, {
33
33
  module.exports = __toCommonJS(analytics_exports);
34
34
  var import_em_ssf_host = __toESM(require("@elliemae/em-ssf-host"));
35
35
  var import_web_analytics = require("./web-analytics.js");
36
+ var import_helpers = require("../../helpers.js");
36
37
  class Analytics extends import_em_ssf_host.default.ScriptingObject {
37
38
  /**
38
39
  * logger instance
@@ -89,7 +90,11 @@ class Analytics extends import_em_ssf_host.default.ScriptingObject {
89
90
  * @returns promise
90
91
  */
91
92
  sendBAEvent = (event) => {
92
- const eventEx = { ...(0, import_web_analytics.getBAEventParameters)(), ...event };
93
+ const eventEx = {
94
+ ...(0, import_web_analytics.getBAEventParameters)(),
95
+ ...(0, import_helpers.getProductAppDetails)(),
96
+ ...event
97
+ };
93
98
  window.gtmDataLayer = window.gtmDataLayer || [];
94
99
  window.gtmDataLayer.push(eventEx);
95
100
  return Promise.resolve();
@@ -1,23 +1,28 @@
1
1
  import { CMicroAppGuest } from "../utils/micro-frontend/guest.js";
2
2
  import { getBAEventParameters } from "../utils/micro-frontend/scripting-objects/web-analytics.js";
3
+ import { getProductAppDetails } from "../utils/helpers.js";
3
4
  const sendBAEventToSelf = (data) => {
5
+ const eventData = {
6
+ ...getBAEventParameters(),
7
+ ...getProductAppDetails(),
8
+ ...data
9
+ };
4
10
  window.gtmDataLayer = window.gtmDataLayer || [];
5
- window.gtmDataLayer.push(data);
11
+ window.gtmDataLayer.push(eventData);
6
12
  };
7
13
  const sendBAEvent = ({
8
14
  data,
9
15
  self = true
10
16
  }) => {
11
- const eventData = { ...getBAEventParameters(), ...data };
12
17
  if (!self) {
13
18
  const sendEvent = CMicroAppGuest.getInstance()?.getHost()?.sendBAEvent;
14
19
  if (sendEvent) {
15
- sendEvent(eventData);
20
+ sendEvent(data);
16
21
  } else {
17
- sendBAEventToSelf(eventData);
22
+ sendBAEventToSelf(data);
18
23
  }
19
24
  } else {
20
- sendBAEventToSelf(eventData);
25
+ sendBAEventToSelf(data);
21
26
  }
22
27
  };
23
28
  export {
@@ -1,27 +1,9 @@
1
1
  import { sendBAEvent } from "./index.js";
2
- const getWindow = () => {
3
- try {
4
- window.top?.document;
5
- return window.top || window.self;
6
- } catch (e) {
7
- return window.self;
8
- }
9
- };
10
2
  const pageViewEvent = ({ pageTitle }) => {
11
- const pageWindow = getWindow();
12
- const { pathname, href } = pageWindow.location;
13
- const { title } = pageWindow.document;
14
- const { pathname: guestPagePath, href: guestPageUrl } = window.location;
15
- const { title: guestPageTitle } = document;
16
3
  sendBAEvent({
17
4
  data: {
18
5
  event: "pageView",
19
- pageUrl: href,
20
- pagePath: pathname,
21
- pageTitle: title,
22
- guestPageUrl,
23
- guestPagePath,
24
- guestPageTitle: pageTitle || guestPageTitle
6
+ appPageTitle: pageTitle
25
7
  }
26
8
  });
27
9
  };
@@ -1,15 +1,17 @@
1
1
  import _ from "lodash";
2
- import { setAppConfig } from "./config.js";
2
+ import { getAppConfigValue, setAppConfig } from "./config.js";
3
3
  import { setAppDynamicsUserData } from "../../analytics/appdynamics.js";
4
4
  import { updateBAEventParameters } from "../micro-frontend/scripting-objects/web-analytics.js";
5
5
  import { getAssetPath } from "../window.js";
6
- import { getAppConfigValue } from "./config.js";
6
+ import { getAppConfigValue as getAppConfigValue2 } from "./config.js";
7
7
  const parseAppConfig = (data) => {
8
8
  const { activeEnv } = data;
9
9
  const activeEnvConfig = data.env[activeEnv] || {};
10
10
  if (data.env) delete data.env;
11
11
  setAppConfig(_.merge(data, activeEnvConfig));
12
12
  sessionStorage.setItem("envName", activeEnv);
13
+ window.emui = window.emui || {};
14
+ window.emui.appId = getAppConfigValue("appId") ?? window.emui.appId ?? "";
13
15
  setAppDynamicsUserData({ envName: activeEnv });
14
16
  updateBAEventParameters({ envName: activeEnv });
15
17
  };
@@ -41,6 +43,6 @@ const loadAppConfig = async (configPath = getAssetPath()) => {
41
43
  }
42
44
  };
43
45
  export {
44
- getAppConfigValue,
46
+ getAppConfigValue2 as getAppConfigValue,
45
47
  loadAppConfig
46
48
  };
@@ -1,3 +1,4 @@
1
+ import { getWindow } from "./window.js";
1
2
  const isProd = () => false;
2
3
  const isCIBuild = () => process.env.CI === "true";
3
4
  const PROTOCOL = /^(?:[a-z]+:)?\/\//;
@@ -7,8 +8,30 @@ const convertRelativeToAbsoluteUrl = (url) => {
7
8
  }
8
9
  return url;
9
10
  };
11
+ const getProductAppDetails = () => {
12
+ const pageWindow = getWindow();
13
+ const { title: productPageTitle } = pageWindow.document;
14
+ const { title: appPageTitle } = document;
15
+ const productId = pageWindow?.emui?.appId ?? "";
16
+ const version = pageWindow?.emui?.version ?? "";
17
+ const appId = window?.emui?.appId ?? "";
18
+ const { pathname: productPath, href: productUrl } = pageWindow.location;
19
+ const { pathname: appPath, href: appUrl } = window.location;
20
+ return {
21
+ productId,
22
+ productPath,
23
+ productUrl,
24
+ productPageTitle,
25
+ version,
26
+ appId,
27
+ appPath,
28
+ appUrl,
29
+ appPageTitle
30
+ };
31
+ };
10
32
  export {
11
33
  convertRelativeToAbsoluteUrl,
34
+ getProductAppDetails,
12
35
  isCIBuild,
13
36
  isProd
14
37
  };
@@ -1,5 +1,6 @@
1
1
  import ssfHost from "@elliemae/em-ssf-host";
2
2
  import { getBAEventParameters } from "./web-analytics.js";
3
+ import { getProductAppDetails } from "../../helpers.js";
3
4
  class Analytics extends ssfHost.ScriptingObject {
4
5
  /**
5
6
  * logger instance
@@ -56,7 +57,11 @@ class Analytics extends ssfHost.ScriptingObject {
56
57
  * @returns promise
57
58
  */
58
59
  sendBAEvent = (event) => {
59
- const eventEx = { ...getBAEventParameters(), ...event };
60
+ const eventEx = {
61
+ ...getBAEventParameters(),
62
+ ...getProductAppDetails(),
63
+ ...event
64
+ };
60
65
  window.gtmDataLayer = window.gtmDataLayer || [];
61
66
  window.gtmDataLayer.push(eventEx);
62
67
  return Promise.resolve();
@@ -1,4 +1,11 @@
1
1
  import { BAEvent } from '@elliemae/pui-micro-frontend-base';
2
+ /**
3
+ * Sends business analytics event
4
+ * @param root0
5
+ * @param root0.data
6
+ * @param root0.self
7
+ * @deprecated use Analytics.sendBAEvent scripting object method instead
8
+ */
2
9
  export declare const sendBAEvent: ({ data, self, }: {
3
10
  data: BAEvent;
4
11
  self?: boolean;
@@ -1,3 +1,14 @@
1
1
  export declare const isProd: () => boolean;
2
2
  export declare const isCIBuild: () => boolean;
3
3
  export declare const convertRelativeToAbsoluteUrl: (url: string) => string;
4
+ export declare const getProductAppDetails: () => {
5
+ productId: string;
6
+ productPath: string;
7
+ productUrl: string;
8
+ productPageTitle: string;
9
+ version: string;
10
+ appId: string;
11
+ appPath: string;
12
+ appUrl: string;
13
+ appPageTitle: string;
14
+ };