iframe-coordinator-cli 6.3.11 → 6.4.0-beta.afb5b99.0

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 (41) hide show
  1. package/dist/assets/index-DEUCFuke.css +1 -0
  2. package/dist/assets/index-UGIPE_8f.js +57 -0
  3. package/dist/favicon.svg +1 -0
  4. package/dist/help-circle.svg +1 -0
  5. package/dist/ifc-docs/.nojekyll +1 -0
  6. package/dist/ifc-docs/assets/hierarchy.js +1 -0
  7. package/dist/ifc-docs/assets/highlight.css +134 -0
  8. package/dist/ifc-docs/assets/icons.js +18 -0
  9. package/dist/ifc-docs/assets/icons.svg +1 -0
  10. package/dist/ifc-docs/assets/main.js +60 -0
  11. package/dist/ifc-docs/assets/navigation.js +1 -0
  12. package/dist/ifc-docs/assets/search.js +1 -0
  13. package/dist/ifc-docs/assets/style.css +1633 -0
  14. package/dist/ifc-docs/classes/client.Client.html +99 -0
  15. package/dist/ifc-docs/classes/host.FrameRouterElement.html +24 -0
  16. package/dist/ifc-docs/classes/workerClient.WorkerClient.html +91 -0
  17. package/dist/ifc-docs/classes/workerPool.WorkerPool.html +24 -0
  18. package/dist/ifc-docs/documents/client-setup.html +94 -0
  19. package/dist/ifc-docs/functions/host.registerCustomElements.html +3 -0
  20. package/dist/ifc-docs/hierarchy.html +1 -0
  21. package/dist/ifc-docs/index.html +43 -0
  22. package/dist/ifc-docs/interfaces/client.ClientConfigOptions.html +4 -0
  23. package/dist/ifc-docs/interfaces/host.ClientConfig.html +7 -0
  24. package/dist/ifc-docs/interfaces/host.ClientRegistration.html +24 -0
  25. package/dist/ifc-docs/interfaces/host.RoutingMap.html +4 -0
  26. package/dist/ifc-docs/interfaces/workerPool.AppData.html +6 -0
  27. package/dist/ifc-docs/interfaces/workerPool.WorkerConfig.html +7 -0
  28. package/dist/ifc-docs/interfaces/workerPool.WorkerItem.html +6 -0
  29. package/dist/ifc-docs/interfaces/workerPool.WorkerRegistry.html +2 -0
  30. package/dist/ifc-docs/modules/client.html +2 -0
  31. package/dist/ifc-docs/modules/host.html +1 -0
  32. package/dist/ifc-docs/modules/workerClient.html +1 -0
  33. package/dist/ifc-docs/modules/workerPool.html +1 -0
  34. package/dist/ifc-docs/modules.html +1 -0
  35. package/dist/index.html +3 -3
  36. package/dist/sidebar.svg +1 -0
  37. package/dist/tool.svg +1 -0
  38. package/package.json +1 -2
  39. package/dist/assets/index-BACxQIa4.css +0 -1
  40. package/dist/assets/index-D2HpqHIZ.js +0 -49
  41. package/dist/favicon.ico +0 -0
@@ -0,0 +1,91 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>WorkerClient | iframe-coordinator - v6.4.0-beta.afb5b99.0</title><meta name="description" content="Documentation for iframe-coordinator"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">iframe-coordinator - v6.4.0-beta.afb5b99.0</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/workerClient.html">workerClient</a></li><li><a href="" aria-current="page">WorkerClient</a></li></ul><h1>Class WorkerClient</h1></div><section class="tsd-panel tsd-hierarchy" data-refl="124"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">IfcClient</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">DedicatedWorkerGlobalScope</span><span class="tsd-signature-symbol">&gt;</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">WorkerClient</span></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/workerClient.ts#L4">workerClient.ts:4</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
2
+ </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="#environmentdata" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Accessor"><use href="../assets/icons.svg#icon-262144"></use></svg><span>environment<wbr/>Data</span></a>
3
+ <a href="#messaging" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Accessor"><use href="../assets/icons.svg#icon-262144"></use></svg><span>messaging</span></a>
4
+ </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="#addlistener" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Listener</span></a>
5
+ <a href="#ashosturl" class="tsd-index-link deprecated tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>as<wbr/>Host<wbr/>Url</span></a>
6
+ <a href="#clearpromptonleave" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>clear<wbr/>Prompt<wbr/>On<wbr/>Leave</span></a>
7
+ <a href="#publish" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>publish</span></a>
8
+ <a href="#removealllisteners" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>remove<wbr/>All<wbr/>Listeners</span></a>
9
+ <a href="#removelistener" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>remove<wbr/>Listener</span></a>
10
+ <a href="#requestmodal" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>request<wbr/>Modal</span></a>
11
+ <a href="#requestnavigation" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>request<wbr/>Navigation</span></a>
12
+ <a href="#requestnotification" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>request<wbr/>Notification</span></a>
13
+ <a href="#requestpromptonleave" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>request<wbr/>Prompt<wbr/>On<wbr/>Leave</span></a>
14
+ <a href="#sendpagemetadata" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>send<wbr/>Page<wbr/>Metadata</span></a>
15
+ <a href="#start" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>start</span></a>
16
+ <a href="#stop" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>stop</span></a>
17
+ <a href="#urlfromclientpath" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>url<wbr/>From<wbr/>Client<wbr/>Path</span></a>
18
+ <a href="#urlfromhostpath" class="tsd-index-link tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>url<wbr/>From<wbr/>Host<wbr/>Path</span></a>
19
+ </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Constructors</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="constructor"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="constructorworkerclient"><span class="tsd-signature-keyword">new</span> <span class="tsd-kind-constructor-signature">WorkerClient</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">WorkerClient</a><a href="#constructorworkerclient" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Creates a new Web Worker client.</p>
20
+ </div><h4 class="tsd-returns-title">Returns <a href="" class="tsd-signature-type tsd-kind-class">WorkerClient</a></h4><aside class="tsd-sources"><p>Overrides IfcClient&lt;DedicatedWorkerGlobalScope&gt;.constructor</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/workerClient.ts#L8">workerClient.ts:8</a></li></ul></aside></div></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Accessors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Accessors</h2></summary><section><section class="tsd-panel tsd-member tsd-is-inherited"><h3 class="tsd-anchor-link" id="environmentdata"><span>environment<wbr/>Data</span><a href="#environmentdata" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li><div class="tsd-signature" id="environmentdataenvironmentdata"><span class="tsd-signature-keyword">get</span> <span class="tsd-kind-get-signature">environmentData</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">EnvData</span></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Gets the environmental data provided by the host application. This includes
21
+ the locale the client should use, the base URL of the host app, and any
22
+ custom data sent by the host.</p>
23
+ </div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">EnvData</span></h4><aside class="tsd-sources"><p>Inherited from IfcClient.environmentData</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/baseClient.ts#L183">baseClient.ts:183</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><h3 class="tsd-anchor-link" id="messaging"><span>messaging</span><a href="#messaging" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li><div class="tsd-signature" id="messagingmessaging"><span class="tsd-signature-keyword">get</span> <span class="tsd-kind-get-signature">messaging</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">EventEmitter</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Publication</span><span class="tsd-signature-symbol">&gt;</span></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Accessor for the general-purpose pub-sub bus between client and host applications.
24
+ The content of messages on this bus are not defined by this API beyond a basic
25
+ data wrapper of topic and payload. This is for application-specific messages
26
+ agreed upon as a shared API between host and client.</p>
27
+ </div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">EventEmitter</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Publication</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><p>Inherited from IfcClient.messaging</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/baseClient.ts#L283">baseClient.ts:283</a></li></ul></aside></div></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Methods</h2></summary><section><section class="tsd-panel tsd-member tsd-is-inherited"><h3 class="tsd-anchor-link" id="addlistener"><span>add<wbr/>Listener</span><a href="#addlistener" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-is-inherited"><div class="tsd-signature tsd-anchor-link" id="addlistener-1"><span class="tsd-kind-call-signature">addListener</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">type</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;environmentalData&quot;</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">listener</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">EnvDataHandler</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">IfcClient</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">DedicatedWorkerGlobalScope</span><span class="tsd-signature-symbol">&gt;</span><a href="#addlistener-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Sets up a function that will be called whenever the specified event type is delivered to the target.
28
+ This should not be confused with the general-purpose pub-sub listeners that can be set via the
29
+ IfcClient.messaging | messaging interface.</p>
30
+ </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">type</span>: <span class="tsd-signature-type">&quot;environmentalData&quot;</span></span><div class="tsd-comment tsd-typography"><p>A case-sensitive string representing the event type to listen for. Currently, hosts only
31
+ send <code>environmentalData</code> events.</p>
32
+ </div></li><li><span><span class="tsd-kind-parameter">listener</span>: <span class="tsd-signature-type">EnvDataHandler</span></span><div class="tsd-comment tsd-typography"><p>The handler which receives a notification when an event of the specified type occurs.</p>
33
+ </div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IfcClient</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">DedicatedWorkerGlobalScope</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><p>Inherited from IfcClient.addListener</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/baseClient.ts#L81">baseClient.ts:81</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><h3 class="tsd-anchor-link" id="ashosturl"><span class="deprecated">as<wbr/>Host<wbr/>Url</span><a href="#ashosturl" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-is-inherited"><div class="tsd-signature tsd-anchor-link" id="ashosturl-1"><span class="tsd-kind-call-signature">asHostUrl</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">clientRouteLegacy</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><a href="#ashosturl-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Translates a client route like <code>/foo/bar</code> to the full URL used in the host
34
+ app for the same page, e.g. <code>https://hostapp.com/#/client-app/foo/bar</code>.</p>
35
+ </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">clientRouteLegacy</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>The /-separated path within the client app to link to.</p>
36
+ </div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"><div class="tsd-tag-deprecated"><h4 class="tsd-anchor-link" id="deprecated">Deprecated<a href="#deprecated" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><p>Use the new <a href="#urlfromclientpath" class="tsd-kind-method">urlFromClientPath</a> method instead</p>
37
+ </div></div><aside class="tsd-sources"><p>Inherited from IfcClient.asHostUrl</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/baseClient.ts#L226">baseClient.ts:226</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><h3 class="tsd-anchor-link" id="clearpromptonleave"><span>clear<wbr/>Prompt<wbr/>On<wbr/>Leave</span><a href="#clearpromptonleave" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-is-inherited"><div class="tsd-signature tsd-anchor-link" id="clearpromptonleave-1"><span class="tsd-kind-call-signature">clearPromptOnLeave</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#clearpromptonleave-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Asks the host application to clear the prompt on leave dialog.</p>
38
+ </div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><p>Inherited from IfcClient.clearPromptOnLeave</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/baseClient.ts#L401">baseClient.ts:401</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><h3 class="tsd-anchor-link" id="publish"><span>publish</span><a href="#publish" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-is-inherited"><div class="tsd-signature tsd-anchor-link" id="publish-1"><span class="tsd-kind-call-signature">publish</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">publication</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Publication</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#publish-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Publish a general message to the host application.</p>
39
+ </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">publication</span>: <span class="tsd-signature-type">Publication</span></span><div class="tsd-comment tsd-typography"><p>The data object to be published.</p>
40
+ </div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><p>Inherited from IfcClient.publish</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/baseClient.ts#L305">baseClient.ts:305</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><h3 class="tsd-anchor-link" id="removealllisteners"><span>remove<wbr/>All<wbr/>Listeners</span><a href="#removealllisteners" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-is-inherited"><div class="tsd-signature tsd-anchor-link" id="removealllisteners-1"><span class="tsd-kind-call-signature">removeAllListeners</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">type</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;environmentalData&quot;</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">IfcClient</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">DedicatedWorkerGlobalScope</span><span class="tsd-signature-symbol">&gt;</span><a href="#removealllisteners-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Removes all event listeners previously registered with IfcClient.addListener | addListener.</p>
41
+ </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">type</span>: <span class="tsd-signature-type">&quot;environmentalData&quot;</span></span><div class="tsd-comment tsd-typography"><p>A string which specifies the type of event for which to remove an event listener.</p>
42
+ </div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IfcClient</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">DedicatedWorkerGlobalScope</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><p>Inherited from IfcClient.removeAllListeners</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/baseClient.ts#L106">baseClient.ts:106</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><h3 class="tsd-anchor-link" id="removelistener"><span>remove<wbr/>Listener</span><a href="#removelistener" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-is-inherited"><div class="tsd-signature tsd-anchor-link" id="removelistener-1"><span class="tsd-kind-call-signature">removeListener</span><span class="tsd-signature-symbol">(</span><br/>    <span class="tsd-kind-parameter">type</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;environmentalData&quot;</span><span class="tsd-signature-symbol">,</span><br/>    <span class="tsd-kind-parameter">listener</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">EnvDataHandler</span><span class="tsd-signature-symbol">,</span><br/><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">IfcClient</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">DedicatedWorkerGlobalScope</span><span class="tsd-signature-symbol">&gt;</span><a href="#removelistener-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Removes an event listener previously registered with IfcClient.addListener | addListener.</p>
43
+ </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">type</span>: <span class="tsd-signature-type">&quot;environmentalData&quot;</span></span><div class="tsd-comment tsd-typography"><p>A string which specifies the type of event for which to remove an event listener.</p>
44
+ </div></li><li><span><span class="tsd-kind-parameter">listener</span>: <span class="tsd-signature-type">EnvDataHandler</span></span><div class="tsd-comment tsd-typography"><p>The event handler to remove from the event target.</p>
45
+ </div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">IfcClient</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">DedicatedWorkerGlobalScope</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources"><p>Inherited from IfcClient.removeListener</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/baseClient.ts#L94">baseClient.ts:94</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><h3 class="tsd-anchor-link" id="requestmodal"><span>request<wbr/>Modal</span><a href="#requestmodal" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-is-inherited"><div class="tsd-signature tsd-anchor-link" id="requestmodal-1"><span class="tsd-kind-call-signature">requestModal</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">modalRequest</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">ModalRequest</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#requestmodal-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Asks the host application to open a modal dialog.</p>
46
+ <p>The modalId property names the modal that should be displayed
47
+ Data passed via the modalData property can be used by the host application to set up initial state specific to that modal</p>
48
+ </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">modalRequest</span>: <span class="tsd-signature-type">ModalRequest</span></span><div class="tsd-comment tsd-typography"><p>the ID and any data specific to the modal instance required</p>
49
+ </div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><p>Inherited from IfcClient.requestModal</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/baseClient.ts#L321">baseClient.ts:321</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><h3 class="tsd-anchor-link" id="requestnavigation"><span>request<wbr/>Navigation</span><a href="#requestnavigation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-is-inherited"><div class="tsd-signature tsd-anchor-link" id="requestnavigation-1"><span class="tsd-kind-call-signature">requestNavigation</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">destination</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">NavRequest</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#requestnavigation-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Asks the host application to navigate to a new location.</p>
50
+ <p>By requesting navigation from the host app instead of navigating directly in the client frame,
51
+ a host-client pair can maintain a consistent browser history even if the client frame is removed
52
+ from the page in some situations. It also helps avoid any corner-case differences in how older
53
+ browsers handle iframe history</p>
54
+ </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">destination</span>: <span class="tsd-signature-type">NavRequest</span></span><div class="tsd-comment tsd-typography"><p>a description of where the client wants to navigate the app to.</p>
55
+ </div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><p>Inherited from IfcClient.requestNavigation</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/baseClient.ts#L381">baseClient.ts:381</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><h3 class="tsd-anchor-link" id="requestnotification"><span>request<wbr/>Notification</span><a href="#requestnotification" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-is-inherited"><div class="tsd-signature tsd-anchor-link" id="requestnotification-1"><span class="tsd-kind-call-signature">requestNotification</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">notification</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Notification</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#requestnotification-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Asks the host application to display a user notification.</p>
56
+ <p>The page embedding the client app is responsible for handling the fired custom event and
57
+ presenting/styling the notification. Application-specific concerns such as level, TTLs,
58
+ ids for action callbacks (notification click, notification action buttons), etc. can be passed via
59
+ the <code>custom</code> property of the <code>notification</code> type.</p>
60
+ </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">notification</span>: <span class="tsd-signature-type">Notification</span></span><div class="tsd-comment tsd-typography"><p>the desired notification configuration.</p>
61
+ </div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example">Example<a href="#example" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-4">client</span><span class="hl-2">.</span><span class="hl-5">requestNotification</span><span class="hl-2">({ </span><span class="hl-4">title:</span><span class="hl-2"> </span><span class="hl-3">&#39;Hello world&#39;</span><span class="hl-2"> });</span>
62
+ </code><button type="button">Copy</button></pre>
63
+
64
+ </div><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-1">Example<a href="#example-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-4">client</span><span class="hl-2">.</span><span class="hl-5">requestNotification</span><span class="hl-2">({</span><br/><span class="hl-2"> </span><span class="hl-4">title:</span><span class="hl-2"> </span><span class="hl-3">&#39;Hello&#39;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-4">message:</span><span class="hl-2"> </span><span class="hl-3">&#39;World&#39;</span><br/><span class="hl-2">});</span>
65
+ </code><button type="button">Copy</button></pre>
66
+
67
+ </div><div class="tsd-tag-example"><h4 class="tsd-anchor-link" id="example-2">Example<a href="#example-2" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-4">client</span><span class="hl-2">.</span><span class="hl-5">requestNotification</span><span class="hl-2">({</span><br/><span class="hl-2"> </span><span class="hl-4">title:</span><span class="hl-2"> </span><span class="hl-3">&#39;Hello&#39;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-4">message:</span><span class="hl-2"> </span><span class="hl-3">&#39;World&#39;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-4">custom:</span><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-4">displaySeconds:</span><span class="hl-2"> </span><span class="hl-12">5</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-4">level:</span><span class="hl-2"> </span><span class="hl-3">&#39;info&#39;</span><br/><span class="hl-2"> }</span><br/><span class="hl-2">});</span>
68
+ </code><button type="button">Copy</button></pre>
69
+
70
+ </div></div><aside class="tsd-sources"><p>Inherited from IfcClient.requestNotification</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/baseClient.ts#L363">baseClient.ts:363</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><h3 class="tsd-anchor-link" id="requestpromptonleave"><span>request<wbr/>Prompt<wbr/>On<wbr/>Leave</span><a href="#requestpromptonleave" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-is-inherited"><div class="tsd-signature tsd-anchor-link" id="requestpromptonleave-1"><span class="tsd-kind-call-signature">requestPromptOnLeave</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">messagePrompt</span><span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#requestpromptonleave-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Asks the host application to display a prompt on leave dialog.</p>
71
+ </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">messagePrompt</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><p>Inherited from IfcClient.requestPromptOnLeave</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/baseClient.ts#L391">baseClient.ts:391</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><h3 class="tsd-anchor-link" id="sendpagemetadata"><span>send<wbr/>Page<wbr/>Metadata</span><a href="#sendpagemetadata" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-is-inherited"><div class="tsd-signature tsd-anchor-link" id="sendpagemetadata-1"><span class="tsd-kind-call-signature">sendPageMetadata</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">metadata</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">PageMetadata</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#sendpagemetadata-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Sends page metadata to host for display and browser settings</p>
72
+ <p>title property is for the page title in the browser
73
+ breadcrumbs is an array of breadcrumb data for display in host application
74
+ custom is any custom data wanting to be sent by client app</p>
75
+ </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">metadata</span>: <span class="tsd-signature-type">PageMetadata</span></span><div class="tsd-comment tsd-typography"><p>data that will be used for display in host application and browser page title</p>
76
+ </div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><p>Inherited from IfcClient.sendPageMetadata</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/baseClient.ts#L417">baseClient.ts:417</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><h3 class="tsd-anchor-link" id="start"><span>start</span><a href="#start" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-is-inherited"><div class="tsd-signature tsd-anchor-link" id="start-1"><span class="tsd-kind-call-signature">start</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#start-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Initiates responding to events triggered by the host application.</p>
77
+ </div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><p>Inherited from IfcClient.start</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/baseClient.ts#L266">baseClient.ts:266</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><h3 class="tsd-anchor-link" id="stop"><span>stop</span><a href="#stop" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-is-inherited"><div class="tsd-signature tsd-anchor-link" id="stop-1"><span class="tsd-kind-call-signature">stop</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#stop-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Disconnects this client from the host application. This is mostly provided for
78
+ the sake of API completeness. It's unlikely to be used by most applications.</p>
79
+ </div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><p>Inherited from IfcClient.stop</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/baseClient.ts#L291">baseClient.ts:291</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><h3 class="tsd-anchor-link" id="urlfromclientpath"><span>url<wbr/>From<wbr/>Client<wbr/>Path</span><a href="#urlfromclientpath" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-is-inherited"><div class="tsd-signature tsd-anchor-link" id="urlfromclientpath-1"><span class="tsd-kind-call-signature">urlFromClientPath</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">clientRoute</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><a href="#urlfromclientpath-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Translates a client route like <code>/foo/bar</code> to the full URL used in the host
80
+ app for the same page, e.g. <code>https://hostapp.com/#/client-app/foo/bar</code>.
81
+ You should use this whenever generating an internal link within a client
82
+ application so that the user gets a nice experience if they open a link in
83
+ a new tab, or copy and paste a link URL into a chat message or email.</p>
84
+ </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">clientRoute</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>The /-separated path within the client app to link to.</p>
85
+ </div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><aside class="tsd-sources"><p>Inherited from IfcClient.urlFromClientPath</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/baseClient.ts#L196">baseClient.ts:196</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member tsd-is-inherited"><h3 class="tsd-anchor-link" id="urlfromhostpath"><span>url<wbr/>From<wbr/>Host<wbr/>Path</span><a href="#urlfromhostpath" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-inherited"><li class="tsd-is-inherited"><div class="tsd-signature tsd-anchor-link" id="urlfromhostpath-1"><span class="tsd-kind-call-signature">urlFromHostPath</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">hostRoute</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><a href="#urlfromhostpath-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Translates a host route like <code>/app2</code> to the full URL used in the host
86
+ app, e.g. <code>https://hostapp.com/#/app2</code>.
87
+ You should use this whenever generating a host link within a client
88
+ application so that the user gets a nice experience if they open a link in
89
+ a new tab, or copy and paste a link URL into a chat message or email.</p>
90
+ </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">hostRoute</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>The /-separated path within the host app to link to.</p>
91
+ </div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><aside class="tsd-sources"><p>Inherited from IfcClient.urlFromHostPath</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/baseClient.ts#L212">baseClient.ts:212</a></li></ul></aside></div></li></ul></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Constructors</summary><div><a href="#constructor"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Accessors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Accessors</summary><div><a href="#environmentdata" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Accessor"><use href="../assets/icons.svg#icon-262144"></use></svg><span>environment<wbr/>Data</span></a><a href="#messaging" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Accessor"><use href="../assets/icons.svg#icon-262144"></use></svg><span>messaging</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary><div><a href="#addlistener" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Listener</span></a><a href="#ashosturl" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>as<wbr/>Host<wbr/>Url</span></a><a href="#clearpromptonleave" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>clear<wbr/>Prompt<wbr/>On<wbr/>Leave</span></a><a href="#publish" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>publish</span></a><a href="#removealllisteners" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>remove<wbr/>All<wbr/>Listeners</span></a><a href="#removelistener" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>remove<wbr/>Listener</span></a><a href="#requestmodal" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>request<wbr/>Modal</span></a><a href="#requestnavigation" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>request<wbr/>Navigation</span></a><a href="#requestnotification" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>request<wbr/>Notification</span></a><a href="#requestpromptonleave" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>request<wbr/>Prompt<wbr/>On<wbr/>Leave</span></a><a href="#sendpagemetadata" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>send<wbr/>Page<wbr/>Metadata</span></a><a href="#start" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>start</span></a><a href="#stop" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>stop</span></a><a href="#urlfromclientpath" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>url<wbr/>From<wbr/>Client<wbr/>Path</span></a><a href="#urlfromhostpath" class="tsd-is-inherited"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>url<wbr/>From<wbr/>Host<wbr/>Path</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">iframe-coordinator - v6.4.0-beta.afb5b99.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -0,0 +1,24 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>WorkerPool | iframe-coordinator - v6.4.0-beta.afb5b99.0</title><meta name="description" content="Documentation for iframe-coordinator"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">iframe-coordinator - v6.4.0-beta.afb5b99.0</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/workerPool.html">workerPool</a></li><li><a href="" aria-current="page">WorkerPool</a></li></ul><h1>Class WorkerPool</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>Class for managing a collection of worker processes. The WorkerPool is an
2
+ EventTarget and emits events in the same way as the <a href="host.FrameRouterElement.html" class="tsd-kind-class">FrameRouterElement</a>,
3
+ although with fewer possible events.</p>
4
+ </div></section><section class="tsd-panel tsd-hierarchy" data-refl="102"><h4>Hierarchy</h4><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-signature-type">EventTarget</span><ul class="tsd-hierarchy"><li class="tsd-hierarchy-item"><span class="tsd-hierarchy-target">WorkerPool</span></li></ul></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/workerPool.ts#L53">workerPool.ts:53</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h5 class="tsd-index-heading uppercase">Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
5
+ </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="#isrunning" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Accessor"><use href="../assets/icons.svg#icon-262144"></use></svg><span>is<wbr/>Running</span></a>
6
+ <a href="#workerconfig" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Accessor"><use href="../assets/icons.svg#icon-262144"></use></svg><span>worker<wbr/>Config</span></a>
7
+ </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="#publish" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>publish</span></a>
8
+ <a href="#start" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>start</span></a>
9
+ <a href="#stop" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>stop</span></a>
10
+ </div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Constructors</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="constructor"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="constructorworkerpool"><span class="tsd-signature-keyword">new</span> <span class="tsd-kind-constructor-signature">WorkerPool</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <a href="" class="tsd-signature-type tsd-kind-class">WorkerPool</a><a href="#constructorworkerpool" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Creates a new worker pool</p>
11
+ </div><h4 class="tsd-returns-title">Returns <a href="" class="tsd-signature-type tsd-kind-class">WorkerPool</a></h4><aside class="tsd-sources"><p>Overrides EventTarget.constructor</p><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/workerPool.ts#L59">workerPool.ts:59</a></li></ul></aside></div></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Accessors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Accessors</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="isrunning"><span>is<wbr/>Running</span><a href="#isrunning" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li><div class="tsd-signature" id="isrunningisrunning"><span class="tsd-signature-keyword">get</span> <span class="tsd-kind-get-signature">isRunning</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>True if the worker is running.</p>
12
+ </div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/workerPool.ts#L104">workerPool.ts:104</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="workerconfig"><span>worker<wbr/>Config</span><a href="#workerconfig" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li><div class="tsd-signature" id="workerconfigworkerconfig"><span class="tsd-signature-keyword">get</span> <span class="tsd-kind-get-signature">workerConfig</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/workerPool.WorkerConfig.html" class="tsd-signature-type tsd-kind-interface">WorkerConfig</a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Get the configured workers for the pool.</p>
13
+ </div><h4 class="tsd-returns-title">Returns <a href="../interfaces/workerPool.WorkerConfig.html" class="tsd-signature-type tsd-kind-interface">WorkerConfig</a></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/workerPool.ts#L97">workerPool.ts:97</a></li></ul></aside></div></li><li><div class="tsd-signature" id="workerconfigworkerconfig-1"><span class="tsd-signature-keyword">set</span> <span class="tsd-kind-set-signature">workerConfig</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">clientConfig</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/workerPool.WorkerConfig.html" class="tsd-signature-type tsd-kind-interface">WorkerConfig</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Set the configured workers for the pool.</p>
14
+ <p>Changing this after the pool has been started will throw an Error. If you
15
+ have a need to dynamically change the set of running workers, please reach
16
+ out with your use case.</p>
17
+ </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">clientConfig</span>: <a href="../interfaces/workerPool.WorkerConfig.html" class="tsd-signature-type tsd-kind-interface">WorkerConfig</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/workerPool.ts#L86">workerPool.ts:86</a></li></ul></aside></div></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h2>Methods</h2></summary><section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="publish"><span>publish</span><a href="#publish" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="publish-1"><span class="tsd-kind-call-signature">publish</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">clientId</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">,</span> <span class="tsd-kind-parameter">publication</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Publication</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#publish-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Publish a message to a worker.</p>
18
+ </div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">clientId</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>The id of the worker the message should be published to</p>
19
+ </div></li><li><span><span class="tsd-kind-parameter">publication</span>: <span class="tsd-signature-type">Publication</span></span><div class="tsd-comment tsd-typography"><p>The information published to the woker.
20
+ The topic may not be of interest, and could be ignored.</p>
21
+ </div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/workerPool.ts#L151">workerPool.ts:151</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="start"><span>start</span><a href="#start" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="start-1"><span class="tsd-kind-call-signature">start</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#start-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Start the worker pool, and all associated workers.</p>
22
+ </div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/workerPool.ts#L111">workerPool.ts:111</a></li></ul></aside></div></li></ul></section><section class="tsd-panel tsd-member"><h3 class="tsd-anchor-link" id="stop"><span>stop</span><a href="#stop" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="stop-1"><span class="tsd-kind-call-signature">stop</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#stop-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Stops the worker pool, immediately terminating all registered workers. Does
23
+ nothing if the pool was never started.</p>
24
+ </div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/workerPool.ts#L131">workerPool.ts:131</a></li></ul></aside></div></li></ul></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Constructors</summary><div><a href="#constructor"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Constructor"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Accessors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Accessors</summary><div><a href="#isrunning"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Accessor"><use href="../assets/icons.svg#icon-262144"></use></svg><span>is<wbr/>Running</span></a><a href="#workerconfig"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Accessor"><use href="../assets/icons.svg#icon-262144"></use></svg><span>worker<wbr/>Config</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="section-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary><div><a href="#publish"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>publish</span></a><a href="#start"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>start</span></a><a href="#stop"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Method"><use href="../assets/icons.svg#icon-2048"></use></svg><span>stop</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">iframe-coordinator - v6.4.0-beta.afb5b99.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -0,0 +1,94 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>client-setup | iframe-coordinator - v6.4.0-beta.afb5b99.0</title><meta name="description" content="Documentation for iframe-coordinator"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">iframe-coordinator - v6.4.0-beta.afb5b99.0</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">client-setup</a></li></ul></div><div class="tsd-panel tsd-typography"><h1 id="client-application-setup" class="tsd-anchor-link">Client Application Setup<a href="#client-application-setup" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h1><p>To seamlessly integrate a client application with a host, you will need to alter the client
2
+ application's default behavior in a few ways. Detailed instructions are below. <em>Navigation is
3
+ the trickiest item to get correct. Be sure to read that section carefully.</em></p>
4
+ <h2 id="application-bootstrap" class="tsd-anchor-link">Application Bootstrap<a href="#application-bootstrap" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Early in the application bootstrap process, you will need to create a <a href="../classes/client.Client.html" class="tsd-kind-class"> client.Client</a> instance, add an event
5
+ listener for environment data passed from the host application, and start the client.</p>
6
+ <p>client.EnvData | Environment data is data set in the host application that is static over time, but that clients will
7
+ need to function, such as the user-selected locale. It supports both pre-defined common/required
8
+ options and custom data.</p>
9
+ <p>Calling <a href="../classes/client.Client.html#start" class="tsd-kind-method"> client.Client.start</a> on the client sets up messaging
10
+ listeners, and sends a signal to the host application to inform it that your application is
11
+ ready to start receiving messages.</p>
12
+ <p>The iframe-coordinator phase of a typical client bootstrap might look like this:</p>
13
+ <pre><code class="typescript"><span class="hl-1">import</span><span class="hl-2"> { </span><span class="hl-4">Client</span><span class="hl-2"> } </span><span class="hl-1">from</span><span class="hl-2"> </span><span class="hl-3">&quot;iframe-coordinator/client&quot;</span><span class="hl-2">;</span><br/><br/><span class="hl-6">let</span><span class="hl-2"> </span><span class="hl-4">ifcClient</span><span class="hl-2"> = </span><span class="hl-6">new</span><span class="hl-2"> </span><span class="hl-5">Client</span><span class="hl-2">();</span><br/><br/><span class="hl-0">// envDataHandler can be used to store the data in a service module or</span><br/><span class="hl-0">// somewhere else useful for future reference</span><br/><span class="hl-4">ifcClient</span><span class="hl-2">.</span><span class="hl-5">addListener</span><span class="hl-2">(</span><span class="hl-3">&quot;environmentalData&quot;</span><span class="hl-2">, </span><span class="hl-4">envDataHandler</span><span class="hl-2">);</span><br/><br/><span class="hl-4">ifcClient</span><span class="hl-2">.</span><span class="hl-5">start</span><span class="hl-2">();</span>
14
+ </code><button type="button">Copy</button></pre>
15
+
16
+ <h2 id="navigation" class="tsd-anchor-link">Navigation<a href="#navigation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Creating a seamless navigation experience for users is the most challenging part of iframe-embedded
17
+ applications. We need to preserve all of these experiences:</p>
18
+ <ul>
19
+ <li>Browser history navigation must work correctly, even if the iframe is removed from the page or
20
+ navigates to a blank page when inactive</li>
21
+ <li>Requests to open a link rendered in a client application in a new tab must open the whole
22
+ application in the new tab, not just the client application</li>
23
+ <li>Copying the link URL in a client application and sharing it with others out of band should
24
+ result in them seeing the whole application, not just the embedded client</li>
25
+ </ul>
26
+ <h3 id="preserving-browser-history" class="tsd-anchor-link">Preserving Browser History<a href="#preserving-browser-history" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>To preserve browser history, the client application should never navigate directly to a new page.
27
+ Instead, it should always request that the host application change its url. This is done with
28
+ a <a href="../classes/client.Client.html#requestnavigation" class="tsd-kind-method"> client.Client.requestNavigation</a> call or by using links
29
+ with <code>target=&quot;_top&quot;</code> set.</p>
30
+ <h3 id="ensuring-link-urls-reference-the-host-application" class="tsd-anchor-link">Ensuring Link URLs Reference the Host Application<a href="#ensuring-link-urls-reference-the-host-application" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Links rendered by the client application should have the <code>href</code> attribute set to the full host
31
+ application URL rather than a relative path within the client. To make this easier, the client
32
+ provides the <code>urlFromClientPath</code> method that can translate
33
+ client application routes to the corresponding host application URL. The client application also provides the <code>urlFromHostPath</code> method that can translate a host application relative path to the full URL used in the host application.</p>
34
+ <h3 id="using-custom-elements-to-create-links" class="tsd-anchor-link">Using Custom Elements to Create Links<a href="#using-custom-elements-to-create-links" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>To further simplify the generation of these links, there are custom elements that can be used to create links. These elements are <code>ifc-client-link</code> and <code>ifc-host-link</code>. These custom elements are registered and provided by the client. These custom elements require a <code>path</code> attribute with the relative path (either client or host) that will be used to create the full URL. The <code>ifc-client-link</code> custom element uses the <code>urlFromClientPath</code> method to translate a client application route provided in the <code>path</code> attribute to a full URL. The <code>ifc-host-link</code> custom element uses the <code>urlFromHostPath</code> method to translate a host application route provided in the <code>path</code> attribute to a full URL.</p>
35
+ <h3 id="examples" class="tsd-anchor-link">Examples<a href="#examples" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Here are some basic examples of how you might generate links or request navigation in your
36
+ application. If you are using an application framework such as Vue, Angular, etc, you may need to
37
+ wrap, extend, or avoid built-in navigation and link generation utilities.</p>
38
+ <p><strong>Programmatically Navigating</strong></p>
39
+ <pre><code class="typescript"><span class="hl-0">// Navigate to a new route in the client app: /foo/bar</span><br/><span class="hl-4">ifcClient</span><span class="hl-2">.</span><span class="hl-5">requestNavigation</span><span class="hl-2">({ </span><span class="hl-4">url:</span><span class="hl-2"> </span><span class="hl-4">ifcClient</span><span class="hl-2">.</span><span class="hl-5">urlFromClientPath</span><span class="hl-2">(</span><span class="hl-3">&quot;/foo/bar&quot;</span><span class="hl-2">) });</span><br/><br/><span class="hl-0">// Navigate to a host application route</span><br/><span class="hl-4">ifcClient</span><span class="hl-2">.</span><span class="hl-5">requestNavigation</span><span class="hl-2">({ </span><span class="hl-4">url:</span><span class="hl-2"> </span><span class="hl-4">ifcClient</span><span class="hl-2">.</span><span class="hl-5">urlFromHostPath</span><span class="hl-2">(</span><span class="hl-3">&quot;/path&quot;</span><span class="hl-2">) });</span><br/><br/><span class="hl-0">// Navigate to a 3rd party url</span><br/><span class="hl-4">ifcClient</span><span class="hl-2">.</span><span class="hl-5">requestNavigation</span><span class="hl-2">({ </span><span class="hl-4">url:</span><span class="hl-2"> </span><span class="hl-3">&quot;https://external-site.com/external/path&quot;</span><span class="hl-2"> });</span>
40
+ </code><button type="button">Copy</button></pre>
41
+
42
+ <p><strong>Generating Links</strong></p>
43
+ <pre><code class="typescript"><span class="hl-6">let</span><span class="hl-2"> </span><span class="hl-4">internalLink</span><span class="hl-2"> = </span><span class="hl-3">`&lt;a href=&quot;</span><span class="hl-6">${</span><span class="hl-4">ifcClient</span><span class="hl-15">.</span><span class="hl-5">urlFromClientPath</span><span class="hl-15">(</span><br/><span class="hl-15"> </span><span class="hl-3">&quot;foo/bar&quot;</span><span class="hl-15">,</span><br/><span class="hl-15">)</span><span class="hl-6">}</span><span class="hl-3">&quot; target=&quot;_top&quot;&gt;Internal Link&lt;/a&gt;`</span><span class="hl-2">;</span><br/><br/><span class="hl-6">let</span><span class="hl-2"> </span><span class="hl-4">hostLink</span><span class="hl-2"> = </span><span class="hl-3">`&lt;a href=&quot;</span><span class="hl-6">${</span><span class="hl-4">ifcClient</span><span class="hl-15">.</span><span class="hl-5">urlFromHostPath</span><span class="hl-15">(</span><br/><span class="hl-15"> </span><span class="hl-3">&quot;/path&quot;</span><span class="hl-15">,</span><br/><span class="hl-15">)</span><span class="hl-6">}</span><span class="hl-3">&quot; target=&quot;_top&quot;&gt;Internal Link&lt;/a&gt;`</span><span class="hl-2">;</span><br/><br/><span class="hl-6">let</span><span class="hl-2"> </span><span class="hl-4">externalLink</span><span class="hl-2"> = </span><span class="hl-3">`&lt;a href=&quot;https://external-site.com/external/path&quot; target=&quot;_top&quot;&gt;Internal Link&lt;/a&gt;`</span><span class="hl-2">;</span>
44
+ </code><button type="button">Copy</button></pre>
45
+
46
+ <p><strong>Generating Links Using Custom Elements</strong></p>
47
+ <pre><code class="html"><span class="hl-0">&lt;!-- Creates a link to a new route in the client app: /foo/bar --&gt;</span><br/><span class="hl-7">&lt;</span><span class="hl-8">ifc-client-link</span><span class="hl-2"> </span><span class="hl-9">path</span><span class="hl-2">=</span><span class="hl-10">&quot;/foo/bar&quot;</span><span class="hl-7">&gt;</span><span class="hl-2">Internal Link</span><span class="hl-7">&lt;/</span><span class="hl-8">ifc-client-link</span><span class="hl-7">&gt;</span><br/><br/><span class="hl-0">&lt;!-- Creates a link to a host application route: /path --&gt;</span><br/><span class="hl-7">&lt;</span><span class="hl-8">ifc-host-link</span><span class="hl-2"> </span><span class="hl-9">path</span><span class="hl-2">=</span><span class="hl-10">&quot;/path&quot;</span><span class="hl-7">&gt;</span><span class="hl-2">Internal Link</span><span class="hl-7">&lt;/</span><span class="hl-8">ifc-host-link</span><span class="hl-7">&gt;</span>
48
+ </code><button type="button">Copy</button></pre>
49
+
50
+ <h2 id="providing-page-metadata" class="tsd-anchor-link">Providing Page Metadata<a href="#providing-page-metadata" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>When your application loads a page, you may want to provide metadata to the host application to improve the user experience. This is done with
51
+ a <a href="../classes/client.Client.html#sendpagemetadata" class="tsd-kind-method"> client.Client.sendPageMetadata</a> call.</p>
52
+ <pre><code class="typescript"><span class="hl-4">ifcClient</span><span class="hl-2">.</span><span class="hl-5">sendPageMetadata</span><span class="hl-2">({</span><br/><span class="hl-2"> </span><span class="hl-0">// The localized title for your page</span><br/><span class="hl-2"> </span><span class="hl-4">title:</span><span class="hl-2"> </span><span class="hl-3">&quot;My Cool Feature&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-0">// An array of breadcrumbs to be displayed</span><br/><span class="hl-2"> </span><span class="hl-4">breadcrumbs:</span><span class="hl-2"> [{ </span><span class="hl-4">text:</span><span class="hl-2"> </span><span class="hl-3">&quot;Home&quot;</span><span class="hl-2">, </span><span class="hl-4">href:</span><span class="hl-2"> </span><span class="hl-3">&quot;/home&quot;</span><span class="hl-2"> }],</span><br/><span class="hl-2"> </span><span class="hl-0">// Optionally, any additional data that your host expects</span><br/><span class="hl-2"> </span><span class="hl-4">custom:</span><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-4">foo:</span><span class="hl-2"> </span><span class="hl-3">&quot;bar&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> },</span><br/><span class="hl-2">});</span>
53
+ </code><button type="button">Copy</button></pre>
54
+
55
+ <p>The frame-router element will emit a custom event of 'pageMetadata' with the PageMetaData object in the detail property.</p>
56
+ <h2 id="requesting-host-actions" class="tsd-anchor-link">Requesting Host Actions<a href="#requesting-host-actions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>There are common requests a client application will want to make of a host application and we strive
57
+ to provide nice default APIs for these.</p>
58
+ <p>Currently there are four implemented:</p>
59
+ <p><a href="../classes/client.Client.html#requestnotification" class="tsd-kind-method"> client.Client.requestNotification</a>, which asks the host
60
+ app to send a notification message to the user.</p>
61
+ <p><a href="../classes/client.Client.html#requestmodal" class="tsd-kind-method"> client.Client.requestModal</a>, which asks the host
62
+ app to launch a modal identified by a given ID, also accepts initial setup data specific to that modal.</p>
63
+ <p><a href="../classes/client.Client.html#requestpromptonleave" class="tsd-kind-method"> client.Client.requestPromptOnLeave</a>, which asks the host
64
+ app to display a prompt on leave dialog to the user before navigating.</p>
65
+ <p><a href="../classes/client.Client.html#clearpromptonleave" class="tsd-kind-method"> client.Client.clearPromptOnLeave</a>, which asks the host
66
+ app to clear the prompt on leave dialog before navigating.</p>
67
+ <p>A client application may request a modal on the host like so:</p>
68
+ <pre><code class="typescript"><span class="hl-4">ifcClient</span><span class="hl-2">.</span><span class="hl-5">requestModal</span><span class="hl-2">({</span><br/><span class="hl-2"> </span><span class="hl-4">modalType:</span><span class="hl-2"> </span><span class="hl-3">&#39;idOfTheModalToDisplay&#39;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-4">modalData:</span><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-4">id:</span><span class="hl-2"> </span><span class="hl-3">&#39;1234567890&#39;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-4">userList :</span><span class="hl-2"> [{</span><span class="hl-4">id:</span><span class="hl-2"> </span><span class="hl-3">&#39;2345678901&#39;</span><span class="hl-2">, </span><span class="hl-4">name:</span><span class="hl-2"> </span><span class="hl-3">&#39;User1&#39;</span><span class="hl-2">}]</span><br/><span class="hl-2">});</span>
69
+ </code><button type="button">Copy</button></pre>
70
+
71
+ <p>The frame-router element will emit a custom event of 'modalRequest' with the ModalRequest object in the detail property.</p>
72
+ <p>A client application may request a prompt on leave dialog on the host like so:</p>
73
+ <pre><code class="typescript"><span class="hl-4">ifcClient</span><span class="hl-2">.</span><span class="hl-5">requestPromptOnLeave</span><span class="hl-2">();</span>
74
+ </code><button type="button">Copy</button></pre>
75
+
76
+ <p>The frame-router element will emit a custom event of 'promptOnLeave' with the PromptOnLeave object in the detail property.</p>
77
+ <p>A client application may request to clear the prompt on leave dialog on the host like so:</p>
78
+ <pre><code class="typescript"><span class="hl-4">ifcClient</span><span class="hl-2">.</span><span class="hl-5">clearPromptOnLeave</span><span class="hl-2">();</span>
79
+ </code><button type="button">Copy</button></pre>
80
+
81
+ <p>The frame-router element will emit a custom event 'promptOnLeave' with the PromptOnLeave object in the detail property.</p>
82
+ <h2 id="custom-clienthost-messaging" class="tsd-anchor-link">Custom Client/Host Messaging<a href="#custom-clienthost-messaging" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h2><p>Client and Host applications may also need to communicate about topics specific to their use case.
83
+ iframe-coordinator provides a lightweight pub-sub wrapper around the
84
+ <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage">postmessage api</a> to meet that
85
+ need with a consistent message interface.</p>
86
+ <p>You can publish messages to the host application via the <a href="../classes/client.Client.html#publish" class="tsd-kind-method"> client.Client.publish</a> method.</p>
87
+ <pre><code class="typescript"><span class="hl-4">ifcClient</span><span class="hl-2">.</span><span class="hl-5">publish</span><span class="hl-2">({</span><br/><span class="hl-2"> </span><span class="hl-4">topic:</span><span class="hl-2"> </span><span class="hl-3">&quot;please.do.the.thing&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-4">payload:</span><span class="hl-2"> {</span><br/><span class="hl-2"> </span><span class="hl-4">foo:</span><span class="hl-2"> </span><span class="hl-3">&quot;bar&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> </span><span class="hl-4">baz:</span><span class="hl-2"> </span><span class="hl-3">&quot;qux&quot;</span><span class="hl-2">,</span><br/><span class="hl-2"> },</span><br/><span class="hl-2">});</span>
88
+ </code><button type="button">Copy</button></pre>
89
+
90
+ <p>You can listen for messages from the host on a topic via the client.EventEmitter | messaging API</p>
91
+ <pre><code class="typescript"><span class="hl-4">ifcClient</span><span class="hl-2">.</span><span class="hl-4">messaging</span><span class="hl-2">.</span><span class="hl-5">addEventListener</span><span class="hl-2">(</span><span class="hl-3">&quot;topic.from.host&quot;</span><span class="hl-2">, </span><span class="hl-4">payloadHandler</span><span class="hl-2">);</span>
92
+ </code><button type="button">Copy</button></pre>
93
+
94
+ </div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#client-application-setup"><span>Client <wbr/>Application <wbr/>Setup</span></a><ul><li><a href="#application-bootstrap"><span>Application <wbr/>Bootstrap</span></a></li><li><a href="#navigation"><span>Navigation</span></a></li><li><ul><li><a href="#preserving-browser-history"><span>Preserving <wbr/>Browser <wbr/>History</span></a></li><li><a href="#ensuring-link-urls-reference-the-host-application"><span>Ensuring <wbr/>Link <wbr/>UR<wbr/>Ls <wbr/>Reference the <wbr/>Host <wbr/>Application</span></a></li><li><a href="#using-custom-elements-to-create-links"><span>Using <wbr/>Custom <wbr/>Elements to <wbr/>Create <wbr/>Links</span></a></li><li><a href="#examples"><span>Examples</span></a></li></ul></li><li><a href="#providing-page-metadata"><span>Providing <wbr/>Page <wbr/>Metadata</span></a></li><li><a href="#requesting-host-actions"><span>Requesting <wbr/>Host <wbr/>Actions</span></a></li><li><a href="#custom-clienthost-messaging"><span>Custom <wbr/>Client/<wbr/>Host <wbr/>Messaging</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">iframe-coordinator - v6.4.0-beta.afb5b99.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -0,0 +1,3 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>registerCustomElements | iframe-coordinator - v6.4.0-beta.afb5b99.0</title><meta name="description" content="Documentation for iframe-coordinator"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">iframe-coordinator - v6.4.0-beta.afb5b99.0</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/host.html">host</a></li><li><a href="" aria-current="page">registerCustomElements</a></li></ul><h1>Function registerCustomElements</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="registercustomelements"><span class="tsd-kind-call-signature">registerCustomElements</span><span class="tsd-signature-symbol">()</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">void</span><a href="#registercustomelements" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Registers custom elements used by the host application
2
+ when hosting the coordinated client UI fragments.</p>
3
+ </div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/purecloudlabs/iframe-coordinator/blob/5038b975b9e5431fdc7730ce4b446b87c660e445/packages/iframe-coordinator/src/host.ts#L10">host.ts:10</a></li></ul></aside></div></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">iframe-coordinator - v6.4.0-beta.afb5b99.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
@@ -0,0 +1 @@
1
+ <!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>iframe-coordinator - v6.4.0-beta.afb5b99.0</title><meta name="description" content="Documentation for iframe-coordinator"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">iframe-coordinator - v6.4.0-beta.afb5b99.0</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>iframe-coordinator - v6.4.0-beta.afb5b99.0</h1></div><h2>Hierarchy Summary</h2></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">iframe-coordinator - v6.4.0-beta.afb5b99.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>