@elliemae/pui-app-bridge 2.9.9 → 2.16.6

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 (115) hide show
  1. package/dist/cjs/appBridge.js +380 -93
  2. package/dist/cjs/appRegistry.js +136 -0
  3. package/dist/cjs/config/app.js +15 -2
  4. package/dist/cjs/config/microFE.js +3 -3
  5. package/dist/cjs/eventManager.js +16 -16
  6. package/dist/cjs/frame.html +2 -2
  7. package/dist/cjs/frame.js +39 -14
  8. package/dist/cjs/index.html +1 -1
  9. package/dist/cjs/loaders/script.js +5 -5
  10. package/dist/cjs/loaders/style.js +1 -0
  11. package/dist/cjs/microfeHost.js +51 -31
  12. package/dist/cjs/tests/flights/23.1/app.checksum1.js +25 -24
  13. package/dist/cjs/tests/flights/latest/app.checksum.js +25 -24
  14. package/dist/cjs/tests/hotels/23.1/app.checksum.js +27 -24
  15. package/dist/cjs/tests/hotels/latest/app.checksum.js +27 -24
  16. package/dist/cjs/tests/loan/latest/index.js +49 -57
  17. package/dist/cjs/tests/scriptingObjects/analytics.js +7 -7
  18. package/dist/cjs/tests/scriptingObjects/appraisalServiceModule.js +8 -8
  19. package/dist/cjs/tests/scriptingObjects/global.js +1 -2
  20. package/dist/cjs/tests/task/latest/index.dev.js +29 -28
  21. package/dist/cjs/tests/task/latest/index.js +29 -28
  22. package/dist/cjs/tests/travelhub/23.1/app.checksum.js +24 -26
  23. package/dist/cjs/tests/travelhub/23.1/landing.checksum1.js +5 -7
  24. package/dist/cjs/utils.js +31 -1
  25. package/dist/esm/appBridge.js +390 -95
  26. package/dist/esm/appRegistry.js +116 -0
  27. package/dist/esm/config/app.js +15 -2
  28. package/dist/esm/config/microFE.js +3 -3
  29. package/dist/esm/eventManager.js +16 -16
  30. package/dist/esm/frame.html +2 -2
  31. package/dist/esm/frame.js +29 -14
  32. package/dist/esm/index.html +1 -1
  33. package/dist/esm/loaders/script.js +5 -5
  34. package/dist/esm/loaders/style.js +1 -0
  35. package/dist/esm/microfeHost.js +55 -31
  36. package/dist/esm/tests/flights/23.1/app.checksum1.js +25 -24
  37. package/dist/esm/tests/flights/latest/app.checksum.js +25 -24
  38. package/dist/esm/tests/hotels/23.1/app.checksum.js +27 -24
  39. package/dist/esm/tests/hotels/latest/app.checksum.js +27 -24
  40. package/dist/esm/tests/loan/latest/index.js +49 -57
  41. package/dist/esm/tests/scriptingObjects/analytics.js +7 -7
  42. package/dist/esm/tests/scriptingObjects/appraisalServiceModule.js +8 -8
  43. package/dist/esm/tests/scriptingObjects/global.js +1 -2
  44. package/dist/esm/tests/task/latest/index.dev.js +29 -28
  45. package/dist/esm/tests/task/latest/index.js +29 -28
  46. package/dist/esm/tests/travelhub/23.1/app.checksum.js +24 -26
  47. package/dist/esm/tests/travelhub/23.1/landing.checksum1.js +5 -7
  48. package/dist/esm/utils.js +31 -1
  49. package/dist/public/assets/frame.671d9de68be598da64ca.html +47 -0
  50. package/dist/public/creditService/latest/creditService.checksum.js.gz +0 -0
  51. package/dist/public/frame.html +1 -1
  52. package/dist/public/guest/businessObjects.js.gz +0 -0
  53. package/dist/public/guest/util.js.gz +0 -0
  54. package/dist/public/index.html +1 -1
  55. package/dist/public/init.js.gz +0 -0
  56. package/dist/public/js/emuiAppBridge.40c8880c94dbc97b49fd.js +51 -0
  57. package/dist/public/js/emuiAppBridge.40c8880c94dbc97b49fd.js.br +0 -0
  58. package/dist/public/js/emuiAppBridge.40c8880c94dbc97b49fd.js.gz +0 -0
  59. package/dist/public/js/emuiAppBridge.40c8880c94dbc97b49fd.js.map +1 -0
  60. package/dist/public/loan-object.js +1 -1
  61. package/dist/public/loan-object.js.br +0 -0
  62. package/dist/public/loan-object.js.gz +0 -0
  63. package/dist/public/loan-object.js.map +1 -1
  64. package/dist/public/loanValidation/latest/loanValidation.checksum.js.gz +0 -0
  65. package/dist/public/pricingService/latest/pricingService.checksum.js.gz +0 -0
  66. package/dist/public/utils.js.gz +0 -0
  67. package/dist/types/lib/appBridge.d.ts +38 -28
  68. package/dist/types/lib/appRegistry.d.ts +41 -0
  69. package/dist/types/lib/eventManager.d.ts +4 -4
  70. package/dist/types/lib/frame.d.ts +45 -4
  71. package/dist/types/lib/index.d.ts +3 -3
  72. package/dist/types/lib/loaders/script.d.ts +2 -1
  73. package/dist/types/lib/microfeHost.d.ts +15 -25
  74. package/dist/types/lib/tests/flights/23.1/app.checksum1.d.ts +7 -0
  75. package/dist/types/lib/tests/flights/latest/app.checksum.d.ts +7 -0
  76. package/dist/types/lib/tests/hotels/23.1/app.checksum.d.ts +7 -0
  77. package/dist/types/lib/tests/hotels/latest/app.checksum.d.ts +7 -0
  78. package/dist/types/lib/tests/loan/latest/index.d.ts +11 -0
  79. package/dist/types/lib/tests/scriptingObjects/analytics.d.ts +3 -3
  80. package/dist/types/lib/tests/scriptingObjects/appraisalServiceModule.d.ts +2 -1
  81. package/dist/types/lib/tests/task/latest/index.d.ts +10 -0
  82. package/dist/types/lib/tests/task/latest/index.dev.d.ts +10 -0
  83. package/dist/types/lib/tests/travelhub/23.1/app.checksum.d.ts +7 -0
  84. package/dist/types/lib/tests/travelhub/23.1/landing.checksum1.d.ts +2 -0
  85. package/dist/types/lib/typings/appInfo.d.ts +1 -0
  86. package/dist/types/lib/typings/common.d.ts +0 -66
  87. package/dist/types/lib/typings/guest.d.ts +10 -3
  88. package/dist/types/lib/typings/host.d.ts +32 -32
  89. package/dist/types/lib/typings/window.d.ts +6 -1
  90. package/dist/types/lib/utils.d.ts +7 -0
  91. package/dist/types/tsconfig.tsbuildinfo +1 -1
  92. package/dist/umd/671d9de68be598da64ca.html +47 -0
  93. package/dist/umd/creditService/latest/creditService.checksum.js.gz +0 -0
  94. package/dist/umd/frame.html +1 -1
  95. package/dist/umd/guest/businessObjects.js.gz +0 -0
  96. package/dist/umd/guest/util.js.gz +0 -0
  97. package/dist/umd/index.html +1 -1
  98. package/dist/umd/index.js +35 -9
  99. package/dist/umd/index.js.br +0 -0
  100. package/dist/umd/index.js.gz +0 -0
  101. package/dist/umd/index.js.map +1 -1
  102. package/dist/umd/init.js.gz +0 -0
  103. package/dist/umd/loan-object.js +1 -1
  104. package/dist/umd/loan-object.js.br +0 -0
  105. package/dist/umd/loan-object.js.gz +0 -0
  106. package/dist/umd/loan-object.js.map +1 -1
  107. package/dist/umd/loanValidation/latest/loanValidation.checksum.js.gz +0 -0
  108. package/dist/umd/pricingService/latest/pricingService.checksum.js.gz +0 -0
  109. package/dist/umd/utils.js.gz +0 -0
  110. package/package.json +9 -12
  111. package/dist/public/js/emuiAppBridge.530390c3bb03f32357f7.js +0 -25
  112. package/dist/public/js/emuiAppBridge.530390c3bb03f32357f7.js.br +0 -0
  113. package/dist/public/js/emuiAppBridge.530390c3bb03f32357f7.js.gz +0 -0
  114. package/dist/public/js/emuiAppBridge.530390c3bb03f32357f7.js.map +0 -1
  115. package/dist/types/lib/tests/pubsubAPI.test.d.ts +0 -1
@@ -1,28 +1,27 @@
1
1
  "use strict";
2
- (function() {
3
- const appId = "flights";
4
- const appName = "Flights App";
5
- const getWindow = () => {
6
- try {
7
- window.parent.document;
8
- return window.parent;
9
- } catch (err) {
10
- return window;
11
- }
12
- };
13
- let host = null;
14
- let parentHistory = null;
15
- let logger = null;
16
- const browserWindow = getWindow();
17
- browserWindow.emui = browserWindow.emui || {};
18
- browserWindow.emui[appId] = browserWindow.emui[appId] || {};
19
- browserWindow.emui[appId].init = async (options) => {
2
+ const appId = "flights";
3
+ const appName = "Flights App";
4
+ const getWindow = () => {
5
+ try {
6
+ window.parent.document;
7
+ return window.parent;
8
+ } catch (err) {
9
+ return window;
10
+ }
11
+ };
12
+ let host = null;
13
+ let parentHistory = null;
14
+ let logger = null;
15
+ window.emui = window.emui || { uuid: crypto.randomUUID() };
16
+ window.emui.app = {
17
+ uuid: window.emui.uuid,
18
+ init: async (options) => {
20
19
  host = options.host;
21
20
  parentHistory = options.history;
22
21
  logger = options.logger;
23
22
  return Promise.resolve();
24
- };
25
- browserWindow.emui[appId].mount = async () => {
23
+ },
24
+ mount: async () => {
26
25
  const mainElement = document.createElement("main");
27
26
  const pageHeaderEle = document.createElement("h1");
28
27
  pageHeaderEle.textContent = appName;
@@ -34,10 +33,12 @@
34
33
  mainElement.appendChild(versionEle);
35
34
  document.body.appendChild(mainElement);
36
35
  return Promise.resolve();
37
- };
38
- browserWindow.emui[appId].unmount = () => {
36
+ },
37
+ unmount: () => {
39
38
  const mainEle = document.getElementsByTagName("main")[0];
40
39
  if (mainEle) mainEle.remove();
41
40
  return Promise.resolve();
42
- };
43
- })();
41
+ }
42
+ };
43
+ const browserWindow = getWindow();
44
+ browserWindow.emui?.registerApp?.({ appId, app: window.emui.app });
@@ -1,41 +1,44 @@
1
1
  "use strict";
2
- (function() {
3
- const appId = "hotels";
4
- const appName = "Hotels App";
5
- const getWindow = () => {
6
- try {
7
- window.parent.document;
8
- return window.parent;
9
- } catch (err) {
10
- return window;
11
- }
12
- };
13
- let host = null;
14
- let parentHistory = null;
15
- let logger = null;
16
- const browserWindow = getWindow();
17
- browserWindow.emui = browserWindow.emui || {};
18
- browserWindow.emui[appId] = browserWindow.emui[appId] || {};
19
- browserWindow.emui[appId].init = async (options) => {
2
+ const appId = "hotels";
3
+ const appName = "Hotels App";
4
+ const getWindow = () => {
5
+ try {
6
+ window.parent.document;
7
+ return window.parent;
8
+ } catch (err) {
9
+ return window;
10
+ }
11
+ };
12
+ let host = null;
13
+ let parentHistory = null;
14
+ let logger = null;
15
+ window.emui = window.emui || { uuid: crypto.randomUUID() };
16
+ window.emui.app = {
17
+ uuid: window.emui.uuid,
18
+ init: async (options) => {
20
19
  host = options.host;
21
20
  parentHistory = options.history;
22
21
  logger = options.logger;
23
22
  return Promise.resolve();
24
- };
25
- browserWindow.emui[appId].mount = async () => {
23
+ },
24
+ mount: async () => {
26
25
  const mainElement = document.createElement("main");
27
26
  const pageHeaderEle = document.createElement("h1");
28
27
  pageHeaderEle.textContent = appName;
28
+ pageHeaderEle.id = "header";
29
29
  mainElement.appendChild(pageHeaderEle);
30
30
  const versionEle = document.createElement("p");
31
31
  versionEle.textContent = "Version: 23.1";
32
+ versionEle.id = "version";
32
33
  mainElement.appendChild(versionEle);
33
34
  document.body.appendChild(mainElement);
34
35
  return Promise.resolve();
35
- };
36
- browserWindow.emui[appId].unmount = () => {
36
+ },
37
+ unmount: () => {
37
38
  const mainEle = document.getElementsByTagName("main")[0];
38
39
  if (mainEle) mainEle.remove();
39
40
  return Promise.resolve();
40
- };
41
- })();
41
+ }
42
+ };
43
+ const browserWindow = getWindow();
44
+ browserWindow.emui?.registerApp?.({ appId, app: window.emui.app });
@@ -1,41 +1,44 @@
1
1
  "use strict";
2
- (function() {
3
- const appId = "hotels";
4
- const appName = "Hotels App";
5
- const getWindow = () => {
6
- try {
7
- window.parent.document;
8
- return window.parent;
9
- } catch (err) {
10
- return window;
11
- }
12
- };
13
- let host = null;
14
- let parentHistory = null;
15
- let logger = null;
16
- const browserWindow = getWindow();
17
- browserWindow.emui = browserWindow.emui || {};
18
- browserWindow.emui[appId] = browserWindow.emui[appId] || {};
19
- browserWindow.emui[appId].init = async (options) => {
2
+ const appId = "hotels";
3
+ const appName = "Hotels App";
4
+ const getWindow = () => {
5
+ try {
6
+ window.parent.document;
7
+ return window.parent;
8
+ } catch (err) {
9
+ return window;
10
+ }
11
+ };
12
+ let host = null;
13
+ let parentHistory = null;
14
+ let logger = null;
15
+ window.emui = window.emui || { uuid: crypto.randomUUID() };
16
+ window.emui.app = {
17
+ uuid: window.emui.uuid,
18
+ init: async (options) => {
20
19
  host = options.host;
21
20
  parentHistory = options.history;
22
21
  logger = options.logger;
23
22
  return Promise.resolve();
24
- };
25
- browserWindow.emui[appId].mount = async () => {
23
+ },
24
+ mount: async () => {
26
25
  const mainElement = document.createElement("main");
27
26
  const pageHeaderEle = document.createElement("h1");
28
27
  pageHeaderEle.textContent = appName;
28
+ pageHeaderEle.id = "header";
29
29
  mainElement.appendChild(pageHeaderEle);
30
30
  const versionEle = document.createElement("p");
31
31
  versionEle.textContent = "Version: latest";
32
+ versionEle.id = "version";
32
33
  mainElement.appendChild(versionEle);
33
34
  document.body.appendChild(mainElement);
34
35
  return Promise.resolve();
35
- };
36
- browserWindow.emui[appId].unmount = () => {
36
+ },
37
+ unmount: () => {
37
38
  const mainEle = document.getElementsByTagName("main")[0];
38
39
  if (mainEle) mainEle.remove();
39
40
  return Promise.resolve();
40
- };
41
- })();
41
+ }
42
+ };
43
+ const browserWindow = getWindow();
44
+ browserWindow.emui?.registerApp?.({ appId, app: window.emui.app });
@@ -1,63 +1,53 @@
1
1
  "use strict";
2
- (function() {
3
- const appId = "loanapp";
4
- const appName = "Loan App";
5
- const appElementId = `pui-app-container-${appId}`;
6
- const pipelinePath = "/pipeline";
7
- const pipelineLinkText = "Pipeline";
8
- const getWindow = () => {
9
- try {
10
- window.parent.document;
11
- return window.parent;
12
- } catch (err) {
13
- return window;
14
- }
15
- };
16
- let host = null;
17
- let parentHistory = null;
18
- let logger = null;
19
- const browserWindow = getWindow();
20
- browserWindow.emui = browserWindow.emui || {};
21
- browserWindow.emui[appId] = browserWindow.emui[appId] || {};
22
- window.__TEST__ = {};
23
- const setFrameSize = () => {
24
- const { document: document2 } = window;
25
- const iframeBody = document2.body;
26
- const iframeHTML = document2.documentElement;
27
- const size = {
28
- height: Math.max(
29
- iframeBody.scrollHeight,
30
- iframeBody.offsetHeight,
31
- iframeHTML.offsetHeight
32
- ),
33
- width: Math.max(
34
- iframeBody.scrollWidth,
35
- iframeBody.offsetWidth,
36
- iframeHTML.offsetWidth
37
- )
38
- };
39
- host.setAppWindowSize({
40
- appId,
41
- size
42
- });
2
+ const appId = "loanapp";
3
+ const appName = "Loan App";
4
+ const appElementId = `pui-app-container-${appId}`;
5
+ const pipelinePath = "/pipeline";
6
+ const pipelineLinkText = "Pipeline";
7
+ const getWindow = () => {
8
+ try {
9
+ window.parent.document;
10
+ return window.parent;
11
+ } catch (err) {
12
+ return window;
13
+ }
14
+ };
15
+ let host = null;
16
+ let parentHistory = null;
17
+ let logger = null;
18
+ window.__TEST__ = {};
19
+ const setFrameSize = () => {
20
+ const { document: document2 } = window;
21
+ const iframeBody = document2.body;
22
+ const iframeHTML = document2.documentElement;
23
+ const size = {
24
+ height: Math.max(
25
+ iframeBody.scrollHeight,
26
+ iframeBody.offsetHeight,
27
+ iframeHTML.offsetHeight
28
+ ),
29
+ width: Math.max(
30
+ iframeBody.scrollWidth,
31
+ iframeBody.offsetWidth,
32
+ iframeHTML.offsetWidth
33
+ )
43
34
  };
44
- browserWindow.emui[appId].init = async (options) => {
35
+ host.setAppWindowSize({
36
+ appId,
37
+ size
38
+ });
39
+ };
40
+ window.emui = window.emui || { uuid: crypto.randomUUID() };
41
+ window.emui.app = {
42
+ uuid: window.emui.uuid,
43
+ init: async (options) => {
45
44
  host = options.host;
46
45
  parentHistory = options.history;
47
46
  logger = options.logger;
48
47
  window.__TEST__.initOptions = options;
49
- host.subscribe("loanSaved", (msg, data) => {
50
- const appContainer = document.getElementById(appElementId);
51
- if (appContainer) {
52
- const dataEle = document.createElement("p");
53
- dataEle.id = "loanSavedData";
54
- dataEle.innerText = `Loan saved: ${JSON.stringify(data)}`;
55
- appContainer.appendChild(dataEle);
56
- }
57
- });
58
48
  setFrameSize();
59
- };
60
- browserWindow.emui[appId].mount = async (options) => {
49
+ },
50
+ mount: async (options) => {
61
51
  window.__TEST__.mountOptions = options;
62
52
  const appContainer = document.getElementById(appElementId);
63
53
  if (appContainer) {
@@ -81,12 +71,14 @@
81
71
  `App container element with id ${appElementId} not found`
82
72
  );
83
73
  }
84
- };
85
- browserWindow.emui[appId].unmount = () => {
74
+ },
75
+ unmount: () => {
86
76
  const appContainer = document.getElementById(appElementId);
87
77
  if (appContainer) {
88
78
  appContainer.removeChild(appContainer.getElementsByTagName("main")[0]);
89
79
  }
90
80
  return Promise.resolve();
91
- };
92
- })();
81
+ }
82
+ };
83
+ const browserWindow = getWindow();
84
+ browserWindow.emui?.registerApp?.({ appId, app: window.emui.app });
@@ -24,22 +24,22 @@ module.exports = __toCommonJS(analytics_exports);
24
24
  var import_microfe_common = require("@elliemae/microfe-common");
25
25
  class Analytics extends import_microfe_common.ScriptingObject {
26
26
  constructor() {
27
- super("Analytics");
27
+ super("analytics");
28
28
  }
29
- sendBAEvent(event) {
29
+ sendBAEvent = (event) => {
30
30
  console.log("Analytics.sendBAEvent", event);
31
31
  return Promise.resolve();
32
- }
33
- startTiming(name, options) {
32
+ };
33
+ startTiming = (name, options) => {
34
34
  console.log("Analytics.perfMarkStart", name);
35
35
  return Promise.resolve(performance.mark(name, { detail: options }));
36
- }
37
- endTiming(start, options) {
36
+ };
37
+ endTiming = (start, options) => {
38
38
  console.log("Analytics.perfMarkEnd", start);
39
39
  performance.measure(start, {
40
40
  detail: options,
41
41
  start
42
42
  });
43
43
  return Promise.resolve();
44
- }
44
+ };
45
45
  }
@@ -28,23 +28,19 @@ class AppraisalService extends import_microfe_common.ScriptingObject {
28
28
  #creditScore;
29
29
  Close = new import_microfe_common.Event({
30
30
  name: "Close",
31
- requiresFeedback: false,
32
- so: this
31
+ objectId: import_pui_scripting_object.ScriptingObjectNames.Module
33
32
  });
34
33
  Unloading = new import_microfe_common.Event({
35
34
  name: "Unloading",
36
- requiresFeedback: false,
37
- so: this
35
+ objectId: import_pui_scripting_object.ScriptingObjectNames.Module
38
36
  });
39
37
  onPreCommit = new import_microfe_common.Event({
40
38
  name: "onPreCommit",
41
- requiresFeedback: true,
42
- so: this
39
+ objectId: import_pui_scripting_object.ScriptingObjectNames.Module
43
40
  });
44
41
  onSaved = new import_microfe_common.Event({
45
42
  name: "onSaved",
46
- requiresFeedback: false,
47
- so: this
43
+ objectId: import_pui_scripting_object.ScriptingObjectNames.Module
48
44
  });
49
45
  constructor({
50
46
  loanId,
@@ -76,6 +72,10 @@ class AppraisalService extends import_microfe_common.ScriptingObject {
76
72
  delete = () => {
77
73
  throw new Error("Not implemented");
78
74
  };
75
+ log = async (message, level) => {
76
+ console.log(message, level);
77
+ return Promise.resolve();
78
+ };
79
79
  unload = async () => {
80
80
  };
81
81
  }
@@ -29,8 +29,7 @@ class Global extends import_microfe_common.ScriptingObject {
29
29
  }
30
30
  Change = new import_microfe_common.Event({
31
31
  name: "Change",
32
- requiresFeedback: false,
33
- so: this
32
+ objectId: this.constructor.name
34
33
  });
35
34
  set = (key, value) => {
36
35
  this.#data.set(key, value);
@@ -1,32 +1,31 @@
1
1
  "use strict";
2
- (function() {
3
- const appId = "taskapp";
4
- const appName = "Task App Dev";
5
- const appElementId = `pui-app-container-${appId}`;
6
- const pipelinePath = "/pipeline";
7
- const pipelineLinkText = "Pipeline";
8
- const getWindow = () => {
9
- try {
10
- window.parent.document;
11
- return window.parent;
12
- } catch (err) {
13
- return window;
14
- }
15
- };
16
- let host = null;
17
- let parentHistory = null;
18
- let logger = null;
19
- const browserWindow = getWindow();
20
- browserWindow.emui = browserWindow.emui || {};
21
- browserWindow.emui[appId] = browserWindow.emui[appId] || {};
22
- window.__TEST__ = {};
23
- browserWindow.emui[appId].init = async (options) => {
2
+ const appId = "taskapp";
3
+ const appName = "Task App Dev";
4
+ const appElementId = `pui-app-container-${appId}`;
5
+ const pipelinePath = "/pipeline";
6
+ const pipelineLinkText = "Pipeline";
7
+ const getWindow = () => {
8
+ try {
9
+ window.parent.document;
10
+ return window.parent;
11
+ } catch (err) {
12
+ return window;
13
+ }
14
+ };
15
+ let host = null;
16
+ let parentHistory = null;
17
+ let logger = null;
18
+ window.__TEST__ = {};
19
+ window.emui = window.emui || { uuid: crypto.randomUUID() };
20
+ window.emui.app = {
21
+ uuid: window.emui.uuid,
22
+ init: async (options) => {
24
23
  window.__TEST__.initOptions = options;
25
24
  host = options.host;
26
25
  parentHistory = options.history;
27
26
  logger = options.logger;
28
- };
29
- browserWindow.emui[appId].mount = async (options) => {
27
+ },
28
+ mount: async (options) => {
30
29
  window.__TEST__.mountOptions = options;
31
30
  const appContainer = document.getElementById(appElementId);
32
31
  if (appContainer) {
@@ -50,12 +49,14 @@
50
49
  `App container element with id ${appElementId} not found`
51
50
  );
52
51
  }
53
- };
54
- browserWindow.emui[appId].unmount = () => {
52
+ },
53
+ unmount: () => {
55
54
  const appContainer = document.getElementById(appElementId);
56
55
  if (appContainer) {
57
56
  appContainer.removeChild(appContainer.getElementsByTagName("main")[0]);
58
57
  }
59
58
  return Promise.resolve();
60
- };
61
- })();
59
+ }
60
+ };
61
+ const browserWindow = getWindow();
62
+ browserWindow.emui?.registerApp?.({ appId, app: window.emui.app });
@@ -1,32 +1,31 @@
1
1
  "use strict";
2
- (function() {
3
- const appId = "taskapp";
4
- const appName = "Task App";
5
- const appElementId = `pui-app-container-${appId}`;
6
- const pipelinePath = "/pipeline";
7
- const pipelineLinkText = "Pipeline";
8
- const getWindow = () => {
9
- try {
10
- window.parent.document;
11
- return window.parent;
12
- } catch (err) {
13
- return window;
14
- }
15
- };
16
- let host = null;
17
- let parentHistory = null;
18
- let logger = null;
19
- const browserWindow = getWindow();
20
- browserWindow.emui = browserWindow.emui || {};
21
- browserWindow.emui[appId] = browserWindow.emui[appId] || {};
22
- window.__TEST__ = {};
23
- browserWindow.emui[appId].init = async (options) => {
2
+ const appId = "taskapp";
3
+ const appName = "Task App";
4
+ const appElementId = `pui-app-container-${appId}`;
5
+ const pipelinePath = "/pipeline";
6
+ const pipelineLinkText = "Pipeline";
7
+ const getWindow = () => {
8
+ try {
9
+ window.parent.document;
10
+ return window.parent;
11
+ } catch (err) {
12
+ return window;
13
+ }
14
+ };
15
+ let host = null;
16
+ let parentHistory = null;
17
+ let logger = null;
18
+ window.__TEST__ = {};
19
+ window.emui = window.emui || { uuid: crypto.randomUUID() };
20
+ window.emui.app = {
21
+ uuid: window.emui.uuid,
22
+ init: async (options) => {
24
23
  window.__TEST__.initOptions = options;
25
24
  host = options.host;
26
25
  parentHistory = options.history;
27
26
  logger = options.logger;
28
- };
29
- browserWindow.emui[appId].mount = async (options) => {
27
+ },
28
+ mount: async (options) => {
30
29
  window.__TEST__.mountOptions = options;
31
30
  const appContainer = document.getElementById(appElementId);
32
31
  if (appContainer) {
@@ -50,12 +49,14 @@
50
49
  `App container element with id ${appElementId} not found`
51
50
  );
52
51
  }
53
- };
54
- browserWindow.emui[appId].unmount = () => {
52
+ },
53
+ unmount: () => {
55
54
  const appContainer = document.getElementById(appElementId);
56
55
  if (appContainer) {
57
56
  appContainer.removeChild(appContainer.getElementsByTagName("main")[0]);
58
57
  }
59
58
  return Promise.resolve();
60
- };
61
- })();
59
+ }
60
+ };
61
+ const browserWindow = getWindow();
62
+ browserWindow.emui?.registerApp?.({ appId, app: window.emui.app });
@@ -1,27 +1,25 @@
1
1
  "use strict";
2
- (function() {
3
- const appId = "travelhub";
4
- const appName = "Travel Hub";
5
- const getWindow = () => {
6
- try {
7
- window.parent.document;
8
- return window.parent;
9
- } catch (err) {
10
- return window;
11
- }
12
- };
13
- const browserWindow = getWindow();
14
- browserWindow.emui = browserWindow.emui || {};
15
- browserWindow.emui[appId] = browserWindow.emui[appId] || {};
16
- const mainElement = document.createElement("main");
17
- mainElement.id = "travelhub";
18
- const pageHeaderEle = document.createElement("h1");
19
- pageHeaderEle.id = "header";
20
- pageHeaderEle.textContent = appName;
21
- mainElement.appendChild(pageHeaderEle);
22
- const versionEle = document.createElement("p");
23
- versionEle.id = "version";
24
- versionEle.textContent = "Version: 23.1";
25
- mainElement.appendChild(versionEle);
26
- document.body.appendChild(mainElement);
27
- })();
2
+ const appId = "travelhub";
3
+ const appName = "Travel Hub";
4
+ const getWindow = () => {
5
+ try {
6
+ window.parent.document;
7
+ return window.parent;
8
+ } catch (err) {
9
+ return window;
10
+ }
11
+ };
12
+ const browserWindow = getWindow();
13
+ browserWindow.emui = browserWindow.emui || {};
14
+ browserWindow.emui[appId] = browserWindow.emui[appId] || {};
15
+ const mainElement = document.createElement("main");
16
+ mainElement.id = "travelhub";
17
+ const pageHeaderEle = document.createElement("h1");
18
+ pageHeaderEle.id = "header";
19
+ pageHeaderEle.textContent = appName;
20
+ mainElement.appendChild(pageHeaderEle);
21
+ const versionEle = document.createElement("p");
22
+ versionEle.id = "version";
23
+ versionEle.textContent = "Version: 23.1";
24
+ mainElement.appendChild(versionEle);
25
+ document.body.appendChild(mainElement);
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
- (function() {
3
- const mainElement = document.getElementById("travelhub");
4
- const contentEle = document.createElement("p");
5
- contentEle.id = "greeting";
6
- contentEle.textContent = "Hello Travellers!";
7
- mainElement.appendChild(contentEle);
8
- })();
2
+ const mainElement = document.getElementById("travelhub");
3
+ const contentEle = document.createElement("p");
4
+ contentEle.id = "greeting";
5
+ contentEle.textContent = "Hello Travellers!";
6
+ mainElement.appendChild(contentEle);