@elliemae/ssf-host 2.9.9 → 2.16.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/dist/cjs/host.js +73 -41
  2. package/dist/cjs/index.html +1 -1
  3. package/dist/cjs/tests/scriptingObjects/appObjects.js +13 -1
  4. package/dist/cjs/tests/scriptingObjects/appraisalServiceModule.js +8 -8
  5. package/dist/cjs/tests/scriptingObjects/floodServiceModule.js +6 -4
  6. package/dist/cjs/utils.js +0 -5
  7. package/dist/cjs/v1-guest-v2-host.html +1 -1
  8. package/dist/cjs/v2-host-v1-guest.html +1 -1
  9. package/dist/esm/host.js +76 -43
  10. package/dist/esm/index.html +1 -1
  11. package/dist/esm/tests/scriptingObjects/appObjects.js +13 -1
  12. package/dist/esm/tests/scriptingObjects/appraisalServiceModule.js +8 -8
  13. package/dist/esm/tests/scriptingObjects/floodServiceModule.js +6 -4
  14. package/dist/esm/utils.js +0 -5
  15. package/dist/esm/v1-guest-v2-host.html +1 -1
  16. package/dist/esm/v2-host-v1-guest.html +1 -1
  17. package/dist/public/analytics-object-v1.js +1 -1
  18. package/dist/public/analytics-object-v1.js.br +0 -0
  19. package/dist/public/analytics-object-v1.js.gz +0 -0
  20. package/dist/public/analytics-object-v1.js.map +1 -1
  21. package/dist/public/analytics-object-v2.js +1 -1
  22. package/dist/public/analytics-object-v2.js.br +0 -0
  23. package/dist/public/analytics-object-v2.js.gz +0 -0
  24. package/dist/public/analytics-object-v2.js.map +1 -1
  25. package/dist/public/application-object-v1.js +1 -1
  26. package/dist/public/application-object-v1.js.br +0 -0
  27. package/dist/public/application-object-v1.js.gz +0 -0
  28. package/dist/public/application-object-v1.js.map +1 -1
  29. package/dist/public/application-object-v2.js +1 -1
  30. package/dist/public/application-object-v2.js.br +0 -0
  31. package/dist/public/application-object-v2.js.gz +0 -0
  32. package/dist/public/application-object-v2.js.map +1 -1
  33. package/dist/public/autoFill.js.gz +0 -0
  34. package/dist/public/index.html +1 -1
  35. package/dist/public/init.js.gz +0 -0
  36. package/dist/public/js/emuiSsfHost.5339b0bc88e73c59c58d.js +3 -0
  37. package/dist/public/js/emuiSsfHost.5339b0bc88e73c59c58d.js.br +0 -0
  38. package/dist/public/js/emuiSsfHost.5339b0bc88e73c59c58d.js.gz +0 -0
  39. package/dist/public/js/emuiSsfHost.5339b0bc88e73c59c58d.js.map +1 -0
  40. package/dist/public/loan-object-v1.js.gz +0 -0
  41. package/dist/public/loan-object.js +1 -1
  42. package/dist/public/loan-object.js.br +0 -0
  43. package/dist/public/loan-object.js.gz +0 -0
  44. package/dist/public/loan-object.js.map +1 -1
  45. package/dist/public/utils.js.gz +0 -0
  46. package/dist/public/v1-guest-v2-host.html +1 -1
  47. package/dist/public/v2-host-v1-guest.html +1 -1
  48. package/dist/types/lib/host.d.ts +5 -5
  49. package/dist/types/lib/ihost.d.ts +4 -4
  50. package/dist/types/lib/index.d.ts +1 -1
  51. package/dist/types/lib/tests/scriptingObjects/appObjects.d.ts +10 -0
  52. package/dist/types/lib/tests/scriptingObjects/appraisalServiceModule.d.ts +2 -1
  53. package/dist/types/lib/tests/scriptingObjects/floodServiceModule.d.ts +2 -1
  54. package/dist/types/lib/types.d.ts +4 -24
  55. package/dist/types/lib/utils.d.ts +1 -2
  56. package/dist/types/tsconfig.tsbuildinfo +1 -1
  57. package/dist/umd/analytics-object-v1.js +1 -1
  58. package/dist/umd/analytics-object-v1.js.br +0 -0
  59. package/dist/umd/analytics-object-v1.js.gz +0 -0
  60. package/dist/umd/analytics-object-v1.js.map +1 -1
  61. package/dist/umd/analytics-object-v2.js +1 -1
  62. package/dist/umd/analytics-object-v2.js.br +0 -0
  63. package/dist/umd/analytics-object-v2.js.gz +0 -0
  64. package/dist/umd/analytics-object-v2.js.map +1 -1
  65. package/dist/umd/application-object-v1.js +1 -1
  66. package/dist/umd/application-object-v1.js.br +0 -0
  67. package/dist/umd/application-object-v1.js.gz +0 -0
  68. package/dist/umd/application-object-v1.js.map +1 -1
  69. package/dist/umd/application-object-v2.js +1 -1
  70. package/dist/umd/application-object-v2.js.br +0 -0
  71. package/dist/umd/application-object-v2.js.gz +0 -0
  72. package/dist/umd/application-object-v2.js.map +1 -1
  73. package/dist/umd/autoFill.js.gz +0 -0
  74. package/dist/umd/index.html +1 -1
  75. package/dist/umd/index.js +1 -1
  76. package/dist/umd/index.js.br +0 -0
  77. package/dist/umd/index.js.gz +0 -0
  78. package/dist/umd/index.js.map +1 -1
  79. package/dist/umd/init.js.gz +0 -0
  80. package/dist/umd/loan-object-v1.js.gz +0 -0
  81. package/dist/umd/loan-object.js +1 -1
  82. package/dist/umd/loan-object.js.br +0 -0
  83. package/dist/umd/loan-object.js.gz +0 -0
  84. package/dist/umd/loan-object.js.map +1 -1
  85. package/dist/umd/utils.js.gz +0 -0
  86. package/dist/umd/v1-guest-v2-host.html +1 -1
  87. package/dist/umd/v2-host-v1-guest.html +1 -1
  88. package/package.json +7 -7
  89. package/dist/public/js/emuiSsfHost.d69dde08f6e0048b5ae8.js +0 -3
  90. package/dist/public/js/emuiSsfHost.d69dde08f6e0048b5ae8.js.br +0 -0
  91. package/dist/public/js/emuiSsfHost.d69dde08f6e0048b5ae8.js.gz +0 -0
  92. package/dist/public/js/emuiSsfHost.d69dde08f6e0048b5ae8.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://ice.host/loan-object.js"],"sourcesContent":["import { getHost } from './utils.js';\nimport { Analytics } from './analytics-object-v2.js';\n\nconst getLoanField = (name) => document.getElementById(name);\n\nconst host = getHost(new Analytics());\n\nclass Loan extends ice.host.ScriptingObject {\n constructor() {\n super('Loan');\n this.loanId = 'ABC123';\n this.creditScore = 0;\n this.serviceOrderStatus = {\n title: false,\n credit: false,\n };\n this.onSaved = new ice.host.Event({\n name: 'onSaved',\n requiresFeedback: false,\n so: this,\n });\n this.onPreSave = new ice.host.Event({\n name: 'onPreSave',\n requiresFeedback: true,\n so: this,\n });\n this.onLoanAmountChanged = new ice.host.Event({\n name: 'onLoanAmountChanged',\n requiresFeedback: false,\n so: this,\n });\n this.onLoanTermChanged = new ice.host.Event({\n name: 'onLoanTermChanged',\n requiresFeedback: false,\n so: this,\n });\n this.onDownPaymentChanged = new ice.host.Event({\n name: 'onDownPaymentChanged',\n requiresFeedback: false,\n so: this,\n });\n\n getLoanField('amount')?.addEventListener?.('blur', (e) => {\n host.dispatchEvent({\n event: this.onLoanAmountChanged,\n eventParams: {\n amount: e.target.value,\n },\n });\n });\n\n getLoanField('term')?.addEventListener?.('blur', (e) => {\n host.dispatchEvent({\n event: this.onLoanTermChanged,\n eventParams: { term: e.target.value },\n });\n });\n\n getLoanField('downPayment')?.addEventListener?.('blur', (e) => {\n host.dispatchEvent({\n event: this.onDownPaymentChanged,\n eventParams: {\n downPayment: e.target.value,\n },\n });\n });\n }\n\n getLoanDetails = () => ({\n id: this.loanId,\n firstName: getLoanField('firstName')?.value,\n lastName: getLoanField('lastName')?.value,\n ssn: getLoanField('ssn')?.value,\n amount: getLoanField('amount')?.value,\n term: getLoanField('term')?.value,\n downPayment: getLoanField('downPayment')?.value,\n creditScore: this.creditScore,\n });\n\n setCreditScore = (creditScore) => {\n this.serviceOrderStatus.credit = true;\n this.creditScore = creditScore;\n const creditBtn = document.getElementById('credit');\n if (creditBtn) {\n creditBtn.disabled = true;\n creditBtn.textContent = `${creditBtn.textContent} : ${creditScore}`;\n }\n };\n\n setServiceOrderStatus = (service, completed) => {\n this.serviceOrderStatus[service] = completed;\n const btn = document.getElementById(service);\n if (btn) {\n btn.disabled = completed;\n btn.textContent = `${btn.textContent} : Done`;\n }\n };\n\n saveLoan = async () => {\n host.dispatchEvent({\n event: this.onSaved,\n eventParams: { id: this.loanId },\n });\n };\n}\n\nexport { Loan };\n"],"mappings":"AAAA,OAAS,WAAAA,MAAe,aACxB,OAAS,aAAAC,MAAiB,2BAE1B,MAAMC,EAAgBC,GAAS,SAAS,eAAeA,CAAI,EAErDC,EAAOJ,EAAQ,IAAIC,CAAW,EAEpC,MAAMI,UAAa,IAAI,KAAK,eAAgB,CAC1C,aAAc,CACZ,MAAM,MAAM,EACZ,KAAK,OAAS,SACd,KAAK,YAAc,EACnB,KAAK,mBAAqB,CACxB,MAAO,GACP,OAAQ,EACV,EACA,KAAK,QAAU,IAAI,IAAI,KAAK,MAAM,CAChC,KAAM,UACN,iBAAkB,GAClB,GAAI,IACN,CAAC,EACD,KAAK,UAAY,IAAI,IAAI,KAAK,MAAM,CAClC,KAAM,YACN,iBAAkB,GAClB,GAAI,IACN,CAAC,EACD,KAAK,oBAAsB,IAAI,IAAI,KAAK,MAAM,CAC5C,KAAM,sBACN,iBAAkB,GAClB,GAAI,IACN,CAAC,EACD,KAAK,kBAAoB,IAAI,IAAI,KAAK,MAAM,CAC1C,KAAM,oBACN,iBAAkB,GAClB,GAAI,IACN,CAAC,EACD,KAAK,qBAAuB,IAAI,IAAI,KAAK,MAAM,CAC7C,KAAM,uBACN,iBAAkB,GAClB,GAAI,IACN,CAAC,EAEDH,EAAa,QAAQ,GAAG,mBAAmB,OAAS,GAAM,CACxDE,EAAK,cAAc,CACjB,MAAO,KAAK,oBACZ,YAAa,CACX,OAAQ,EAAE,OAAO,KACnB,CACF,CAAC,CACH,CAAC,EAEDF,EAAa,MAAM,GAAG,mBAAmB,OAAS,GAAM,CACtDE,EAAK,cAAc,CACjB,MAAO,KAAK,kBACZ,YAAa,CAAE,KAAM,EAAE,OAAO,KAAM,CACtC,CAAC,CACH,CAAC,EAEDF,EAAa,aAAa,GAAG,mBAAmB,OAAS,GAAM,CAC7DE,EAAK,cAAc,CACjB,MAAO,KAAK,qBACZ,YAAa,CACX,YAAa,EAAE,OAAO,KACxB,CACF,CAAC,CACH,CAAC,CACH,CAEA,eAAiB,KAAO,CACtB,GAAI,KAAK,OACT,UAAWF,EAAa,WAAW,GAAG,MACtC,SAAUA,EAAa,UAAU,GAAG,MACpC,IAAKA,EAAa,KAAK,GAAG,MAC1B,OAAQA,EAAa,QAAQ,GAAG,MAChC,KAAMA,EAAa,MAAM,GAAG,MAC5B,YAAaA,EAAa,aAAa,GAAG,MAC1C,YAAa,KAAK,WACpB,GAEA,eAAkBI,GAAgB,CAChC,KAAK,mBAAmB,OAAS,GACjC,KAAK,YAAcA,EACnB,MAAMC,EAAY,SAAS,eAAe,QAAQ,EAC9CA,IACFA,EAAU,SAAW,GACrBA,EAAU,YAAc,GAAGA,EAAU,WAAW,MAAMD,CAAW,GAErE,EAEA,sBAAwB,CAACE,EAASC,IAAc,CAC9C,KAAK,mBAAmBD,CAAO,EAAIC,EACnC,MAAMC,EAAM,SAAS,eAAeF,CAAO,EACvCE,IACFA,EAAI,SAAWD,EACfC,EAAI,YAAc,GAAGA,EAAI,WAAW,UAExC,EAEA,SAAW,SAAY,CACrBN,EAAK,cAAc,CACjB,MAAO,KAAK,QACZ,YAAa,CAAE,GAAI,KAAK,MAAO,CACjC,CAAC,CACH,CACF,CAEA,OAASC,KAAA","names":["getHost","Analytics","getLoanField","name","host","Loan","creditScore","creditBtn","service","completed","btn"],"sourceRoot":"","file":"loan-object.js"}
1
+ {"version":3,"sources":["webpack://ice.host/loan-object.js"],"sourcesContent":["import { getHost } from './utils.js';\nimport { Analytics } from './analytics-object-v2.js';\n\nconst getLoanField = (name) => document.getElementById(name);\n\nconst host = getHost(new Analytics());\n\nclass Loan extends ice.host.ScriptingObject {\n constructor() {\n super('Loan');\n this.loanId = 'ABC123';\n this.creditScore = 0;\n this.serviceOrderStatus = {\n title: false,\n credit: false,\n };\n this.onSaved = new ice.host.Event({\n name: 'onSaved',\n objectId: this.constructor.name,\n });\n this.onPreSave = new ice.host.Event({\n name: 'onPreSave',\n objectId: this.constructor.name,\n });\n this.onLoanAmountChanged = new ice.host.Event({\n name: 'onLoanAmountChanged',\n objectId: this.constructor.name,\n });\n this.onLoanTermChanged = new ice.host.Event({\n name: 'onLoanTermChanged',\n objectId: this.constructor.name,\n });\n this.onDownPaymentChanged = new ice.host.Event({\n name: 'onDownPaymentChanged',\n objectId: this.constructor.name,\n });\n\n getLoanField('amount')?.addEventListener?.('blur', (e) => {\n host.dispatchEvent({\n event: this.onLoanAmountChanged,\n eventParams: {\n amount: e.target.value,\n },\n });\n });\n\n getLoanField('term')?.addEventListener?.('blur', (e) => {\n host.dispatchEvent({\n event: this.onLoanTermChanged,\n eventParams: { term: e.target.value },\n });\n });\n\n getLoanField('downPayment')?.addEventListener?.('blur', (e) => {\n host.dispatchEvent({\n event: this.onDownPaymentChanged,\n eventParams: {\n downPayment: e.target.value,\n },\n });\n });\n }\n\n getLoanDetails = () => ({\n id: this.loanId,\n firstName: getLoanField('firstName')?.value,\n lastName: getLoanField('lastName')?.value,\n ssn: getLoanField('ssn')?.value,\n amount: getLoanField('amount')?.value,\n term: getLoanField('term')?.value,\n downPayment: getLoanField('downPayment')?.value,\n creditScore: this.creditScore,\n });\n\n setCreditScore = (creditScore) => {\n this.serviceOrderStatus.credit = true;\n this.creditScore = creditScore;\n const creditBtn = document.getElementById('credit');\n if (creditBtn) {\n creditBtn.disabled = true;\n creditBtn.textContent = `${creditBtn.textContent} : ${creditScore}`;\n }\n };\n\n setServiceOrderStatus = (service, completed) => {\n this.serviceOrderStatus[service] = completed;\n const btn = document.getElementById(service);\n if (btn) {\n btn.disabled = completed;\n btn.textContent = `${btn.textContent} : Done`;\n }\n };\n\n saveLoan = async () => {\n host.dispatchEvent({\n event: this.onSaved,\n eventParams: { id: this.loanId },\n });\n };\n}\n\nexport { Loan };\n"],"mappings":"AAAA,OAAS,WAAAA,MAAe,aACxB,OAAS,aAAAC,MAAiB,2BAE1B,MAAMC,EAAgBC,GAAS,SAAS,eAAeA,CAAI,EAErDC,EAAOJ,EAAQ,IAAIC,CAAW,EAEpC,MAAMI,UAAa,IAAI,KAAK,eAAgB,CAC1C,aAAc,CACZ,MAAM,MAAM,EACZ,KAAK,OAAS,SACd,KAAK,YAAc,EACnB,KAAK,mBAAqB,CACxB,MAAO,GACP,OAAQ,EACV,EACA,KAAK,QAAU,IAAI,IAAI,KAAK,MAAM,CAChC,KAAM,UACN,SAAU,KAAK,YAAY,IAC7B,CAAC,EACD,KAAK,UAAY,IAAI,IAAI,KAAK,MAAM,CAClC,KAAM,YACN,SAAU,KAAK,YAAY,IAC7B,CAAC,EACD,KAAK,oBAAsB,IAAI,IAAI,KAAK,MAAM,CAC5C,KAAM,sBACN,SAAU,KAAK,YAAY,IAC7B,CAAC,EACD,KAAK,kBAAoB,IAAI,IAAI,KAAK,MAAM,CAC1C,KAAM,oBACN,SAAU,KAAK,YAAY,IAC7B,CAAC,EACD,KAAK,qBAAuB,IAAI,IAAI,KAAK,MAAM,CAC7C,KAAM,uBACN,SAAU,KAAK,YAAY,IAC7B,CAAC,EAEDH,EAAa,QAAQ,GAAG,mBAAmB,OAAS,GAAM,CACxDE,EAAK,cAAc,CACjB,MAAO,KAAK,oBACZ,YAAa,CACX,OAAQ,EAAE,OAAO,KACnB,CACF,CAAC,CACH,CAAC,EAEDF,EAAa,MAAM,GAAG,mBAAmB,OAAS,GAAM,CACtDE,EAAK,cAAc,CACjB,MAAO,KAAK,kBACZ,YAAa,CAAE,KAAM,EAAE,OAAO,KAAM,CACtC,CAAC,CACH,CAAC,EAEDF,EAAa,aAAa,GAAG,mBAAmB,OAAS,GAAM,CAC7DE,EAAK,cAAc,CACjB,MAAO,KAAK,qBACZ,YAAa,CACX,YAAa,EAAE,OAAO,KACxB,CACF,CAAC,CACH,CAAC,CACH,CAEA,eAAiB,KAAO,CACtB,GAAI,KAAK,OACT,UAAWF,EAAa,WAAW,GAAG,MACtC,SAAUA,EAAa,UAAU,GAAG,MACpC,IAAKA,EAAa,KAAK,GAAG,MAC1B,OAAQA,EAAa,QAAQ,GAAG,MAChC,KAAMA,EAAa,MAAM,GAAG,MAC5B,YAAaA,EAAa,aAAa,GAAG,MAC1C,YAAa,KAAK,WACpB,GAEA,eAAkBI,GAAgB,CAChC,KAAK,mBAAmB,OAAS,GACjC,KAAK,YAAcA,EACnB,MAAMC,EAAY,SAAS,eAAe,QAAQ,EAC9CA,IACFA,EAAU,SAAW,GACrBA,EAAU,YAAc,GAAGA,EAAU,WAAW,MAAMD,CAAW,GAErE,EAEA,sBAAwB,CAACE,EAASC,IAAc,CAC9C,KAAK,mBAAmBD,CAAO,EAAIC,EACnC,MAAMC,EAAM,SAAS,eAAeF,CAAO,EACvCE,IACFA,EAAI,SAAWD,EACfC,EAAI,YAAc,GAAGA,EAAI,WAAW,UAExC,EAEA,SAAW,SAAY,CACrBN,EAAK,cAAc,CACjB,MAAO,KAAK,QACZ,YAAa,CAAE,GAAI,KAAK,MAAO,CACjC,CAAC,CACH,CACF,CAEA,OAASC,KAAA","names":["getHost","Analytics","getLoanField","name","host","Loan","creditScore","creditBtn","service","completed","btn"],"sourceRoot":"","file":"loan-object.js"}
Binary file
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>Guest V1 -> V2 Host</title><style>body,html,main{height:100%;margin:2px;padding:0}iframe{width:100%;height:100%;border:none}#guest-container{height:100%}</style><script src="https://qa.assets.rd.elliemae.io/pui-diagnostics@3"></script><script src="https://cdn.elliemae.io/elliemae/core/ssf/1.0/elli.ssf.guest.js"></script><script defer="defer" src="js/emuiSsfHost.d69dde08f6e0048b5ae8.js"></script></head><body><h2>Guest V1 nesting Host V2</h2><div id="result"><p id="loan-details"></p><p id="loan-pre-save-event-details"></p></div><div id="guest-container"></div><script type="module">import{getGuestBaseUrl,getHost}from"./utils.js";import{Analytics}from"./analytics-object-v2.js";const analyticsObj=new Analytics,hostV2=getHost(analyticsObj),loadV2Guest=async()=>{const t=await getGuestBaseUrl(),{id:e}=hostV2.loadGuest({id:"guestV2",url:new URL("./v2-guest.html",t).href,title:"Guest V2",targetElement:document.getElementById("guest-container")})};window.addEventListener("load",(async()=>{await elli.script.connect();const t=await elli.script.getObject("Application"),e=await elli.script.getObject("Loan"),a=await e.getLoanDetails();document.getElementById("loan-details").innerText=`Loan Data: ${JSON.stringify(a)}`,elli.script.subscribe("loan","onPreSave",((t,e)=>(document.getElementById("loan-pre-save-event-details").innerText=`Presave event data: ${JSON.stringify(e)}`,!1))),hostV2.addScriptingObject(hostV2.cloneScriptingObject(t,{})),hostV2.addScriptingObject(hostV2.cloneScriptingObject(e,{})),await loadV2Guest()}))</script></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>Guest V1 -> V2 Host</title><style>body,html,main{height:100%;margin:2px;padding:0}iframe{width:100%;height:100%;border:none}#guest-container{height:100%}</style><script src="https://cdn.qa1.ice.com/pui-diagnostics@3"></script><script src="https://cdn.elliemae.io/elliemae/core/ssf/1.0/elli.ssf.guest.js"></script><script defer="defer" src="js/emuiSsfHost.5339b0bc88e73c59c58d.js"></script></head><body><h2>Guest V1 nesting Host V2</h2><div id="result"><p id="loan-details"></p><p id="loan-pre-save-event-details"></p></div><div id="guest-container"></div><script type="module">import{getGuestBaseUrl,getHost}from"./utils.js";import{Analytics}from"./analytics-object-v2.js";const analyticsObj=new Analytics,hostV2=getHost(analyticsObj),loadV2Guest=async()=>{const t=await getGuestBaseUrl(),{id:e}=hostV2.loadGuest({id:"guestV2",url:new URL("./v2-guest.html",t).href,title:"Guest V2",targetElement:document.getElementById("guest-container")})};window.addEventListener("load",(async()=>{await elli.script.connect();const t=await elli.script.getObject("Application"),e=await elli.script.getObject("Loan"),a=await e.getLoanDetails();document.getElementById("loan-details").innerText=`Loan Data: ${JSON.stringify(a)}`,elli.script.subscribe("loan","onPreSave",((t,e)=>(document.getElementById("loan-pre-save-event-details").innerText=`Presave event data: ${JSON.stringify(e)}`,!1))),hostV2.addScriptingObject(hostV2.cloneScriptingObject(t,{})),hostV2.addScriptingObject(hostV2.cloneScriptingObject(e,{})),await loadV2Guest()}))</script></body></html>
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>Host V2 -> V1 Guest</title><style>body,html,main{height:100%;margin:4px;padding:0}iframe{width:100%;height:100%;border:none}#guest-container{height:100%}</style><script src="https://qa.assets.rd.elliemae.io/pui-diagnostics@3"></script><script defer="defer" src="js/emuiSsfHost.d69dde08f6e0048b5ae8.js"></script></head><body><main><h1>Host V2 nesting V1 Guest</h1><button id="save-btn" type="button" onclick="saveLoan()">Save Loan</button><div id="results"><p id="pre-save-feedback-result"></p></div><div id="guest-container"></div></main><script type="module">import{Loan}from"./loan-object.js";import{getGuestBaseUrl,getHost}from"./utils.js";import{Analytics}from"./analytics-object-v2.js";const analyticsObj=new Analytics,hostV2=getHost(analyticsObj),loanObj=new Loan;hostV2.addScriptingObject(loanObj);const params=new URLSearchParams(document.location.search),{id:id}=hostV2.loadGuest({id:"guestV1",url:new URL("true"!==params.get("nestV1GuestV2Host")?"./v1-guest.html":"./v1-guest-v2-host.html",window.location.href).href,searchParams:{nestHostV1:!0},title:"Guest V1",targetElement:document.getElementById("guest-container")});window.saveLoan=async()=>{const e=loanObj.getLoanDetails();(await hostV2.dispatchEvent({event:loanObj.onPreSave,eventParams:e,eventOptions:{timeout:1e3}})).some((e=>!1===e))?document.getElementById("pre-save-feedback-result").innerText="Pre save failed":document.getElementById("pre-save-feedback-result").innerText="Pre save succeeded"}</script></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>Host V2 -> V1 Guest</title><style>body,html,main{height:100%;margin:4px;padding:0}iframe{width:100%;height:100%;border:none}#guest-container{height:100%}</style><script src="https://cdn.qa1.ice.com/pui-diagnostics@3"></script><script defer="defer" src="js/emuiSsfHost.5339b0bc88e73c59c58d.js"></script></head><body><main><h1>Host V2 nesting V1 Guest</h1><button id="save-btn" type="button" onclick="saveLoan()">Save Loan</button><div id="results"><p id="pre-save-feedback-result"></p></div><div id="guest-container"></div></main><script type="module">import{Loan}from"./loan-object.js";import{getGuestBaseUrl,getHost}from"./utils.js";import{Analytics}from"./analytics-object-v2.js";const analyticsObj=new Analytics,hostV2=getHost(analyticsObj),loanObj=new Loan;hostV2.addScriptingObject(loanObj);const params=new URLSearchParams(document.location.search),{id:id}=hostV2.loadGuest({id:"guestV1",url:new URL("true"!==params.get("nestV1GuestV2Host")?"./v1-guest.html":"./v1-guest-v2-host.html",window.location.href).href,searchParams:{nestHostV1:!0},title:"Guest V1",targetElement:document.getElementById("guest-container")});window.saveLoan=async()=>{const e=loanObj.getLoanDetails();(await hostV2.dispatchEvent({event:loanObj.onPreSave,eventParams:e,eventOptions:{timeout:1e3}})).some((e=>!1===e))?document.getElementById("pre-save-feedback-result").innerText="Pre save failed":document.getElementById("pre-save-feedback-result").innerText="Pre save succeeded"}</script></body></html>
@@ -1,7 +1,7 @@
1
1
  import type { IScriptingObjectProxy, ScriptingObjectTypes, Events } from '@elliemae/pui-scripting-object';
2
- import type { ISSFGuest, EventListeners, AddScriptingObjectParams, GetObjectParams } from '@elliemae/microfe-common';
2
+ import type { EventListeners, AddScriptingObjectParams, GetObjectParams, DispatchEventParam, EventOptions } from '@elliemae/microfe-common';
3
3
  import { LogLevels } from '@elliemae/pui-diagnostics';
4
- import { ValueOf, EventOptions, ScriptingObjects, EventDetail } from './types.js';
4
+ import { ValueOf, ScriptingObjects } from './types.js';
5
5
  import { ISSFHost, HostOption, LoadGuestParam, LoadGuestsParam, GuestCloseParam } from './ihost.js';
6
6
  import { Guest } from './guest.js';
7
7
  /**
@@ -33,17 +33,17 @@ export declare class SSFHost<AppObjects extends ScriptingObjects = ScriptingObje
33
33
  * @param guest - reference to the ssf guest
34
34
  * @returns cloned version of the scripting object
35
35
  */
36
- cloneScriptingObject: <ObjectId extends Extract<keyof AppObjects, string>>(proxy: IScriptingObjectProxy, guest: ISSFGuest<AppObjects, AppEvents>) => AppObjects[ObjectId];
36
+ cloneScriptingObject: <ObjectId extends Extract<keyof AppObjects, string>>(proxy: IScriptingObjectProxy) => AppObjects[ObjectId];
37
37
  /**
38
38
  * dispose the resources used by the host application
39
39
  */
40
40
  close: () => void;
41
41
  /**
42
42
  * dispatch event to guest application(s)
43
- * @param {EventDetail} details details of the event to be dispatched
43
+ * @param {EventDetail} params details of the event to be dispatched
44
44
  * @returns promise that resolves to an array with result from each guest application
45
45
  */
46
- dispatchEvent: <EventId extends Extract<keyof AppEvents, string>, Params extends Parameters<AppEvents[EventId]>[0]["eventParams"], Options extends EventOptions>(details: EventDetail<EventId, Params, Options>) => Promise<any[]>;
46
+ dispatchEvent: <EventId extends Extract<keyof AppEvents, string>, Params extends Parameters<AppEvents[EventId]>[0]["eventParams"], Options extends EventOptions>(params: DispatchEventParam<EventId, Params, Options>) => Promise<any[]>;
47
47
  /**
48
48
  * get reference to all guest applications
49
49
  * @returns list of guest application references
@@ -1,7 +1,7 @@
1
1
  import type { IScriptingObjectProxy, ScriptingObjectTypes, Events, IAnalytics } from '@elliemae/pui-scripting-object';
2
- import type { ISSFGuest, EventListeners, AddScriptingObjectParams, GetObjectParams } from '@elliemae/microfe-common';
2
+ import type { ISSFGuest, EventListeners, AddScriptingObjectParams, GetObjectParams, EventOptions, DispatchEventParam } from '@elliemae/microfe-common';
3
3
  import { Logger, LogLevels } from '@elliemae/pui-diagnostics';
4
- import { GuestOptions, ValueOf, EventOptions, ScriptingObjects, EventDetail } from './types.js';
4
+ import { GuestOptions, ValueOf, ScriptingObjects } from './types.js';
5
5
  import { Guest } from './guest.js';
6
6
  /**
7
7
  * options for the SSF Host
@@ -93,10 +93,10 @@ export interface ISSFHost<AppObjects extends ScriptingObjects = ScriptingObjectT
93
93
  close: () => void;
94
94
  /**
95
95
  * dispatch event to guest application(s)
96
- * @param {EventDetail} details details of the event to be dispatched
96
+ * @param {EventDetail} params details of the event to be dispatched
97
97
  * @returns promise that resolves to an array with result from each guest application
98
98
  */
99
- dispatchEvent: <EventId extends Extract<keyof AppEvents, string>, Params extends Parameters<AppEvents[EventId]>[0]['eventParams'], Options extends EventOptions>(details: EventDetail<EventId, Params, Options>) => Promise<any[]>;
99
+ dispatchEvent: <EventId extends Extract<keyof AppEvents, string>, Params extends Parameters<AppEvents[EventId]>[0]['eventParams'], Options extends EventOptions>(params: DispatchEventParam<EventId, Params, Options>) => Promise<any[]>;
100
100
  /**
101
101
  * get reference to all guest applications
102
102
  * @returns list of guest application references
@@ -1,5 +1,5 @@
1
1
  export { Event, ScriptingObject } from '@elliemae/microfe-common';
2
- export type { GuestOptions, AttachParam, EventDetail, EventOptions, } from './types.js';
2
+ export type { GuestOptions, AttachParam } from './types.js';
3
3
  export type { HostOption, LoadGuestParam, LoadGuestsParam } from './ihost.js';
4
4
  export { Guest } from './guest.js';
5
5
  export { IFrameSandboxValues } from './types.js';
@@ -15,6 +15,7 @@ export declare const applicationScriptingObject: {
15
15
  type: string;
16
16
  };
17
17
  export declare const APPLICATION_SERVICE_OBJECT = "application";
18
+ export declare const MODULE_OBJECT = "module";
18
19
  export declare const authScriptingObject: {
19
20
  object: {
20
21
  events: never[];
@@ -24,3 +25,12 @@ export declare const authScriptingObject: {
24
25
  };
25
26
  type: string;
26
27
  };
28
+ export declare const moduleScriptingObject: {
29
+ object: {
30
+ events: never[];
31
+ functions: string[];
32
+ objectId: string;
33
+ objectType: string;
34
+ };
35
+ type: string;
36
+ };
@@ -1,4 +1,4 @@
1
- import { IModule, Listener, Events } from '@elliemae/pui-scripting-object';
1
+ import { IModule, Listener, Events, LogLevels, LogMessage } from '@elliemae/pui-scripting-object';
2
2
  import { ScriptingObject, Event } from '@elliemae/microfe-common';
3
3
  export declare const APPRAISAL_SERVICE_OBJECT = "AppraisalService";
4
4
  export type LoanInfo = {
@@ -35,6 +35,7 @@ export declare class AppraisalService extends ScriptingObject implements IModule
35
35
  saveLoan: () => Promise<void>;
36
36
  commit: () => Promise<unknown>;
37
37
  delete: () => never;
38
+ log: (message: string | LogMessage, level: keyof typeof LogLevels) => Promise<void>;
38
39
  unload: () => Promise<void>;
39
40
  }
40
41
  export declare const appraisalServiceObject: {
@@ -1,4 +1,4 @@
1
- import type { IModule, Events } from '@elliemae/pui-scripting-object';
1
+ import type { IModule, Events, LogMessage, LogLevels } from '@elliemae/pui-scripting-object';
2
2
  import { ScriptingObject, Event } from '@elliemae/microfe-common';
3
3
  export declare const FLOOD_SERVICE_OBJECT = "FloodService";
4
4
  export declare class FloodService extends ScriptingObject implements IModule {
@@ -15,6 +15,7 @@ export declare class FloodService extends ScriptingObject implements IModule {
15
15
  getParameters: () => Promise<{
16
16
  moduleId: string;
17
17
  }>;
18
+ log: (message: string | LogMessage, level: keyof typeof LogLevels) => Promise<void>;
18
19
  unload: () => Promise<void>;
19
20
  _dispose: () => void;
20
21
  }
@@ -96,23 +96,12 @@ export type GuestOptions = {
96
96
  * @default { width: 800, height: 600, top: 100, left: 100 }
97
97
  */
98
98
  popupWindowFeatures?: WindowFeatures;
99
- };
100
- /**
101
- * event properties
102
- */
103
- export type EventOptions = {
104
- /**
105
- * guest window to send the event to
106
- */
107
- window?: Window;
108
99
  /**
109
- * time in milliseconds to wait for the guest to respond back for the event
100
+ * permission policy for the guest iframe
101
+ * check https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/iframe#allow for more details
102
+ * @example "microphone 'self' https://example.com; geolocation 'none'"
110
103
  */
111
- timeout?: number;
112
- /**
113
- * global function that handles the event on the guest
114
- */
115
- eventHandler?: string;
104
+ permissionPolicy?: string;
116
105
  };
117
106
  /**
118
107
  * collection of scripting objects
@@ -151,12 +140,3 @@ export type AttachParam = {
151
140
  */
152
141
  searchParams?: Record<string, any>;
153
142
  };
154
- export type EventDetail<EventId, Params, Options extends EventOptions> = {
155
- event: {
156
- id: EventId;
157
- name: string;
158
- scriptingObject: IScriptingObject;
159
- };
160
- eventParams: Params;
161
- eventOptions?: Options;
162
- };
@@ -1,8 +1,7 @@
1
- import type { IScriptingObjectProxy, ScriptingObjectTypes } from '@elliemae/pui-scripting-object';
1
+ import type { ScriptingObjectTypes } from '@elliemae/pui-scripting-object';
2
2
  import { GenericFunction, ValueOf } from './types.js';
3
3
  export declare const getOrigin: (url: string) => string;
4
4
  export declare const flatten: (source: any[], target?: any[]) => any[];
5
5
  export declare const isScriptingObject: (value: any) => value is ValueOf<ScriptingObjectTypes>;
6
6
  export declare function isFunction(value: any): value is GenericFunction;
7
- export declare const isProxy: (value: any) => value is IScriptingObjectProxy;
8
7
  export declare const getObjectId: (elementOrId: HTMLElement | string) => string;