@salesforce/lightning-out 2.2.0 → 2.2.1-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! @salesforce/lightning-out v2.2.0 (2026-03-20) */
1
+ /*! @salesforce/lightning-out v2.2.1-rc.1 (2026-04-09) */
2
2
  /**
3
3
  * EmbeddingResizer - Handles dynamic iframe/container resizing
4
4
  * Uses ResizeObserver to monitor element size changes and notify the host
@@ -451,6 +451,12 @@ class LightningOutIFrame {
451
451
  }
452
452
  }
453
453
  };
454
+ #handleResize(height) {
455
+ if (this.#element && this.#isVisible) {
456
+ this.#element.style.height = `${height}px`;
457
+ logger$3.debug(`#handleResize: applied height ${height}px to iframe`);
458
+ }
459
+ }
454
460
  #init() {
455
461
  if (!this.#element) {
456
462
  const iframe = window.document.createElement("iframe");
@@ -1336,7 +1342,7 @@ class LightningOutRouter {
1336
1342
  url.searchParams.set("parentElementId", parentElementId);
1337
1343
  url.searchParams.set("loAppOrigin", this.config.loAppOrigin);
1338
1344
  // This helps in general but also for cache busting
1339
- url.searchParams.set("loVersion", "2.2.0");
1345
+ url.searchParams.set("loVersion", "2.2.1-rc.1");
1340
1346
  if (this.config.appId) {
1341
1347
  url.searchParams.set("appId", this.config.appId);
1342
1348
  }
@@ -1436,13 +1442,7 @@ class LightningOutApplication extends HTMLElement {
1436
1442
  const logoutPage = this.#getPageURL(this.#lwrPageLogout);
1437
1443
  // Append the `redirect-uri` param to logout.jsp (using the same auth page just to get the lo.loaded message)
1438
1444
  logoutUrl.searchParams.set("redirect-uri", logoutPage.pathname + logoutPage.search);
1439
- // (This next piece of code should be removed after making sure `redirect-uri` works well)
1440
- logoutUrl.searchParams.set("retUrl", logoutPage.pathname + logoutPage.search);
1441
1445
  this.#loIFrame.load(logoutUrl.href);
1442
- // (This next piece of code should be removed after making sure `redirect-uri` works well)
1443
- setTimeout(() => {
1444
- this.dispatchEvent(new CustomEvent(events.lo.application.logout));
1445
- }, 3000);
1446
1446
  }
1447
1447
  getRouter() {
1448
1448
  if (this.#loRouter === undefined) {
@@ -1488,9 +1488,9 @@ class LightningOutApplication extends HTMLElement {
1488
1488
  // Notify the user that the application session has failed
1489
1489
  this.#loError.dispatch(events.lo.application.error, event);
1490
1490
  };
1491
- #iframeLogout = (event) => {
1491
+ #iframeLogout = (_event) => {
1492
1492
  // Notify the user that the application session is terminated
1493
- this.#loError.dispatch(events.lo.application.logout, event);
1493
+ this.dispatchEvent(new CustomEvent(events.lo.application.logout));
1494
1494
  };
1495
1495
  #iframeAuthRedirect = (event) => {
1496
1496
  // Notify the user that an authorization redirect was issued, and pass the redirectUrl and redirectOrigin
@@ -1,4 +1,4 @@
1
- /*! @salesforce/lightning-out v2.2.0 (2026-03-20) */
1
+ /*! @salesforce/lightning-out v2.2.1-rc.1 (2026-04-09) */
2
2
  var LO2 = (function (exports) {
3
3
  'use strict';
4
4
 
@@ -454,6 +454,12 @@ var LO2 = (function (exports) {
454
454
  }
455
455
  }
456
456
  };
457
+ #handleResize(height) {
458
+ if (this.#element && this.#isVisible) {
459
+ this.#element.style.height = `${height}px`;
460
+ logger$3.debug(`#handleResize: applied height ${height}px to iframe`);
461
+ }
462
+ }
457
463
  #init() {
458
464
  if (!this.#element) {
459
465
  const iframe = window.document.createElement("iframe");
@@ -1339,7 +1345,7 @@ var LO2 = (function (exports) {
1339
1345
  url.searchParams.set("parentElementId", parentElementId);
1340
1346
  url.searchParams.set("loAppOrigin", this.config.loAppOrigin);
1341
1347
  // This helps in general but also for cache busting
1342
- url.searchParams.set("loVersion", "2.2.0");
1348
+ url.searchParams.set("loVersion", "2.2.1-rc.1");
1343
1349
  if (this.config.appId) {
1344
1350
  url.searchParams.set("appId", this.config.appId);
1345
1351
  }
@@ -1439,13 +1445,7 @@ var LO2 = (function (exports) {
1439
1445
  const logoutPage = this.#getPageURL(this.#lwrPageLogout);
1440
1446
  // Append the `redirect-uri` param to logout.jsp (using the same auth page just to get the lo.loaded message)
1441
1447
  logoutUrl.searchParams.set("redirect-uri", logoutPage.pathname + logoutPage.search);
1442
- // (This next piece of code should be removed after making sure `redirect-uri` works well)
1443
- logoutUrl.searchParams.set("retUrl", logoutPage.pathname + logoutPage.search);
1444
1448
  this.#loIFrame.load(logoutUrl.href);
1445
- // (This next piece of code should be removed after making sure `redirect-uri` works well)
1446
- setTimeout(() => {
1447
- this.dispatchEvent(new CustomEvent(events.lo.application.logout));
1448
- }, 3000);
1449
1449
  }
1450
1450
  getRouter() {
1451
1451
  if (this.#loRouter === undefined) {
@@ -1491,9 +1491,9 @@ var LO2 = (function (exports) {
1491
1491
  // Notify the user that the application session has failed
1492
1492
  this.#loError.dispatch(events.lo.application.error, event);
1493
1493
  };
1494
- #iframeLogout = (event) => {
1494
+ #iframeLogout = (_event) => {
1495
1495
  // Notify the user that the application session is terminated
1496
- this.#loError.dispatch(events.lo.application.logout, event);
1496
+ this.dispatchEvent(new CustomEvent(events.lo.application.logout));
1497
1497
  };
1498
1498
  #iframeAuthRedirect = (event) => {
1499
1499
  // Notify the user that an authorization redirect was issued, and pass the redirectUrl and redirectOrigin
@@ -1,10 +1,10 @@
1
- /*! @salesforce/lightning-out v2.2.0 (2026-03-20) */
2
- var LO2=function(e){"use strict";function t(){return Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(36)}const r={application:{ready:"lo.application.ready",error:"lo.application.error",logout:"lo.application.logout",auth:{redirect:"lo.application.auth.redirect"}},component:{ready:"lo.component.ready",error:"lo.component.error"},iframe:{load:"lo.iframe.load",error:"lo.iframe.error",logout:"lo.iframe.logout",auth:{redirect:"lo.iframe.auth.redirect"}}},i={addEventListener:"lo.addEventListener",dispatchEvent:"lo.dispatchEvent",error:"lo.error",getComponentData:"lo.getComponentData",loaded:"lo.loaded",logout:"lo.logout",ready:"lo.ready",redirect:"lo.redirect",removeEventListener:"lo.removeEventListener",setComponentData:"lo.setComponentData",setComponentProps:"lo.setComponentProps"},s={error:0,warn:1,info:2,debug:3,trace:4};class o{static#e="LO2";static#t="error";#r;static set level(e){this.#t=e}static set prefix(e){this.#e=e}get brand(){return`${o.#e}:${this.#r}:`}constructor(e){this.#r="string"==typeof e?e:e.constructor?.name}error(...e){s.error<=s[o.#t]&&console.error(this.brand,...e)}warn(...e){s.warn<=s[o.#t]&&console.warn(this.brand,...e)}info(...e){s.info<=s[o.#t]&&console.info(this.brand,...e)}debug(...e){s.debug<=s[o.#t]&&console.debug(this.brand,...e)}trace(...e){s.trace<=s[o.#t]&&console.trace(this.brand,...e)}}const a=new o("LightningOutError");class n{#i;#r;constructor(e){this.#r="string"==typeof e?e:e.constructor?.name,"function"==typeof e.dispatchEvent&&(this.#i=e)}#s(e){return`${this.#r}: ${e}`}create(e){const t="string"==typeof e?e:e.message;return new Error(this.#s(t))}dispatch(e,t){const r="string"==typeof t?t:t.message||t.detail?.message;if(this.#i){const i=t.detail||{message:this.#s(r),originalError:t},s=new CustomEvent(e,{detail:i});this.#i.dispatchEvent(s),a.error(`${this.#s("dispatched error")} -> ${e}: ${r}`)}else a.error(`${this.#s("unable to dispatch error on a non-EventTarget object")} -> ${e}: ${r}`)}}const l=new n("LightningOutUtils");function h(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function c(e,t=!1){if(/[A-Z]/.test(e))throw l.create(`elementNameToStandardName: "${e}" is not a valid custom element name - must be all lowercase.`);const r=e.indexOf("-");if(-1===r)throw l.create(`elementNameToStandardName: "${e}" is not a valid custom element name - missing hyphen character.`);return`${function(e){if(/[A-Z]/.test(e))throw l.create(`snakeToCamel: "${e}" is not valid snake_case - must be all lowercase.`);return e.replace(/_([a-z_])/g,(e,t)=>t.toUpperCase())}(e.slice(0,r))}${t?":":"/"}${function(e){if(/[A-Z]/.test(e))throw l.create(`kebabToCamel: "${e}" is not valid kebab-case - must be all lowercase.`);return e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}(e.slice(r+1))}`}function d(e,t){const r=Object.entries(t).map(t=>{let[r,i]=t;const s=r.split("dataMirror");2===s.length&&""===s[0]&&(r=s[1].charAt(0).toLowerCase()+s[1].slice(1));const o=`_propertyChanged_${r}`;if("function"==typeof e[o]){i=(0,e[o])(i)}return[r,i]});return Object.fromEntries(r)}const p=new o("LightningOutIFrame");class m{#o;#a;#n;#l="display:none";#h="border:0px; width:100%; height:100%; overflow:auto;";#c;#d;#p;#m;#u;#g;constructor(e){this.#o=e.parentElement,this.#a=e.isVisible,this.#n=new n(e.parentElement)}get iframeReady(){return!!this.#p&&!!this.#m}get iframeElement(){return this.#d}#f(e,t){this.#p=e,this.#m=t}#b=e=>{if(e.data.id===this.#o._uuid)switch(p.debug("#messageListener:",`parentElement._uuid: ${this.#o._uuid}`,`parentElement.localName: ${this.#o.localName}`,JSON.stringify(e.data)),e.data.type){case i.loaded:this.#g=clearTimeout(this.#g),this.#f(e.source,e.origin),this.#o.dispatchEvent(new CustomEvent(r.iframe.load,{detail:e.origin}));break;case i.logout:this.#g=clearTimeout(this.#g),this.#o.dispatchEvent(new CustomEvent(r.iframe.logout));break;case i.redirect:this.#g=clearTimeout(this.#g),this.#o.dispatchEvent(new CustomEvent(r.iframe.auth.redirect,{detail:{redirectUrl:e.data.redirectUrl,redirectOrigin:e.origin}}))}};#w(){if(!this.#d){const e=window.document.createElement("iframe");e.name="lightning_af",e.setAttribute("sandbox",["allow-downloads","allow-forms","allow-popups","allow-same-origin","allow-scripts","allow-top-navigation-by-user-activation"].join(" ")),e.style.cssText=this.#a?this.#h:this.#l,this.#d=e,this.#c=this.#o.attachShadow({mode:"closed"}),this.#c.appendChild(this.#d),e.addEventListener("load",this.#v),window.addEventListener("message",this.#b)}return this.#d}load(e){const t=this.#w();this.#u=new URL(e),p.debug("#loadIframe: endpoint =",function(e){const t={},r=e=>{const t={};for(const[r,i]of e.entries())t[r]=i;return t};if(t.url=e.origin+e.pathname,t.urlParams=r(e.searchParams),"/secur/frontdoor.jsp"===e.pathname){const e=t.urlParams.otp?"startURL":"retURL",i=new URL(t.urlParams[e],"http://dummy.com");t.urlParams[e]={url:i.pathname,urlParams:r(i.searchParams)}}return t}(this.#u)),this.#f(void 0,void 0),this.#a?t.src=e:localStorage.getItem("LightningOutIFrame:load:window.open")?window.open(e,`LO2 Hidden ${this.#o._uuid}`,"left=200,top=200,width=800,height=800"):t.src=e}#v=()=>{this.#g&&clearTimeout(this.#g),this.#g=setTimeout(()=>{if(!this.iframeReady){const e="Error: Unknown error, unable to load the iframe.";this.#n.dispatch(r.iframe.error,e),this.#_(e)}},6e4)};destroy(){this.#c&&(this.#c.innerHTML=""),this.#d&&this.#d.remove(),this.#c=void 0,this.#d=void 0,this.#f(void 0,void 0)}#_(e){if(this.#a&&this.#u){const t=new URL("/lightning/lightning.out.message.html",this.#u.origin);t.search=new URLSearchParams({loAppOrigin:window.location.origin,parentElementId:this.#o._uuid,message:e}).toString(),this.load(t.href)}}postMessage(e){if(!this.#p||!this.#m)throw this.#n.create("Error attempting to postMessage on an iframe that is not ready.");p.debug("postMessage:",`parentElement: ${this.#o._uuid}`,JSON.stringify(e));try{this.#p.postMessage(e,this.#m)}catch(e){const t=`postMessage error: ${e}`;throw this.#n.dispatch(r.iframe.error,t),this.#n.create(t)}}}
1
+ /*! @salesforce/lightning-out v2.2.1-rc.1 (2026-04-09) */
2
+ var LO2=function(e){"use strict";function t(){return Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(36)}const r={application:{ready:"lo.application.ready",error:"lo.application.error",logout:"lo.application.logout",auth:{redirect:"lo.application.auth.redirect"}},component:{ready:"lo.component.ready",error:"lo.component.error"},iframe:{load:"lo.iframe.load",error:"lo.iframe.error",logout:"lo.iframe.logout",auth:{redirect:"lo.iframe.auth.redirect"}}},i={addEventListener:"lo.addEventListener",dispatchEvent:"lo.dispatchEvent",error:"lo.error",getComponentData:"lo.getComponentData",loaded:"lo.loaded",logout:"lo.logout",ready:"lo.ready",redirect:"lo.redirect",removeEventListener:"lo.removeEventListener",setComponentData:"lo.setComponentData",setComponentProps:"lo.setComponentProps"},s={error:0,warn:1,info:2,debug:3,trace:4};class o{static#e="LO2";static#t="error";#r;static set level(e){this.#t=e}static set prefix(e){this.#e=e}get brand(){return`${o.#e}:${this.#r}:`}constructor(e){this.#r="string"==typeof e?e:e.constructor?.name}error(...e){s.error<=s[o.#t]&&console.error(this.brand,...e)}warn(...e){s.warn<=s[o.#t]&&console.warn(this.brand,...e)}info(...e){s.info<=s[o.#t]&&console.info(this.brand,...e)}debug(...e){s.debug<=s[o.#t]&&console.debug(this.brand,...e)}trace(...e){s.trace<=s[o.#t]&&console.trace(this.brand,...e)}}const a=new o("LightningOutError");class n{#i;#r;constructor(e){this.#r="string"==typeof e?e:e.constructor?.name,"function"==typeof e.dispatchEvent&&(this.#i=e)}#s(e){return`${this.#r}: ${e}`}create(e){const t="string"==typeof e?e:e.message;return new Error(this.#s(t))}dispatch(e,t){const r="string"==typeof t?t:t.message||t.detail?.message;if(this.#i){const i=t.detail||{message:this.#s(r),originalError:t},s=new CustomEvent(e,{detail:i});this.#i.dispatchEvent(s),a.error(`${this.#s("dispatched error")} -> ${e}: ${r}`)}else a.error(`${this.#s("unable to dispatch error on a non-EventTarget object")} -> ${e}: ${r}`)}}const h=new n("LightningOutUtils");function l(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function c(e,t=!1){if(/[A-Z]/.test(e))throw h.create(`elementNameToStandardName: "${e}" is not a valid custom element name - must be all lowercase.`);const r=e.indexOf("-");if(-1===r)throw h.create(`elementNameToStandardName: "${e}" is not a valid custom element name - missing hyphen character.`);return`${function(e){if(/[A-Z]/.test(e))throw h.create(`snakeToCamel: "${e}" is not valid snake_case - must be all lowercase.`);return e.replace(/_([a-z_])/g,(e,t)=>t.toUpperCase())}(e.slice(0,r))}${t?":":"/"}${function(e){if(/[A-Z]/.test(e))throw h.create(`kebabToCamel: "${e}" is not valid kebab-case - must be all lowercase.`);return e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}(e.slice(r+1))}`}function d(e,t){const r=Object.entries(t).map(t=>{let[r,i]=t;const s=r.split("dataMirror");2===s.length&&""===s[0]&&(r=s[1].charAt(0).toLowerCase()+s[1].slice(1));const o=`_propertyChanged_${r}`;if("function"==typeof e[o]){i=(0,e[o])(i)}return[r,i]});return Object.fromEntries(r)}const p=new o("LightningOutIFrame");class m{#o;#a;#n;#h="display:none";#l="border:0px; width:100%; height:100%; overflow:auto;";#c;#d;#p;#m;#u;#g;constructor(e){this.#o=e.parentElement,this.#a=e.isVisible,this.#n=new n(e.parentElement)}get iframeReady(){return!!this.#p&&!!this.#m}get iframeElement(){return this.#d}#f(e,t){this.#p=e,this.#m=t}#b=e=>{if(e.data.id===this.#o._uuid)switch(p.debug("#messageListener:",`parentElement._uuid: ${this.#o._uuid}`,`parentElement.localName: ${this.#o.localName}`,JSON.stringify(e.data)),e.data.type){case i.loaded:this.#g=clearTimeout(this.#g),this.#f(e.source,e.origin),this.#o.dispatchEvent(new CustomEvent(r.iframe.load,{detail:e.origin}));break;case i.logout:this.#g=clearTimeout(this.#g),this.#o.dispatchEvent(new CustomEvent(r.iframe.logout));break;case i.redirect:this.#g=clearTimeout(this.#g),this.#o.dispatchEvent(new CustomEvent(r.iframe.auth.redirect,{detail:{redirectUrl:e.data.redirectUrl,redirectOrigin:e.origin}}))}};#w(e){this.#d&&this.#a&&(this.#d.style.height=`${e}px`,p.debug(`#handleResize: applied height ${e}px to iframe`))}#v(){if(!this.#d){const e=window.document.createElement("iframe");e.name="lightning_af",e.setAttribute("sandbox",["allow-downloads","allow-forms","allow-popups","allow-same-origin","allow-scripts","allow-top-navigation-by-user-activation"].join(" ")),e.style.cssText=this.#a?this.#l:this.#h,this.#d=e,this.#c=this.#o.attachShadow({mode:"closed"}),this.#c.appendChild(this.#d),e.addEventListener("load",this.#_),window.addEventListener("message",this.#b)}return this.#d}load(e){const t=this.#v();this.#u=new URL(e),p.debug("#loadIframe: endpoint =",function(e){const t={},r=e=>{const t={};for(const[r,i]of e.entries())t[r]=i;return t};if(t.url=e.origin+e.pathname,t.urlParams=r(e.searchParams),"/secur/frontdoor.jsp"===e.pathname){const e=t.urlParams.otp?"startURL":"retURL",i=new URL(t.urlParams[e],"http://dummy.com");t.urlParams[e]={url:i.pathname,urlParams:r(i.searchParams)}}return t}(this.#u)),this.#f(void 0,void 0),this.#a?t.src=e:localStorage.getItem("LightningOutIFrame:load:window.open")?window.open(e,`LO2 Hidden ${this.#o._uuid}`,"left=200,top=200,width=800,height=800"):t.src=e}#_=()=>{this.#g&&clearTimeout(this.#g),this.#g=setTimeout(()=>{if(!this.iframeReady){const e="Error: Unknown error, unable to load the iframe.";this.#n.dispatch(r.iframe.error,e),this.#y(e)}},6e4)};destroy(){this.#c&&(this.#c.innerHTML=""),this.#d&&this.#d.remove(),this.#c=void 0,this.#d=void 0,this.#f(void 0,void 0)}#y(e){if(this.#a&&this.#u){const t=new URL("/lightning/lightning.out.message.html",this.#u.origin);t.search=new URLSearchParams({loAppOrigin:window.location.origin,parentElementId:this.#o._uuid,message:e}).toString(),this.load(t.href)}}postMessage(e){if(!this.#p||!this.#m)throw this.#n.create("Error attempting to postMessage on an iframe that is not ready.");p.debug("postMessage:",`parentElement: ${this.#o._uuid}`,JSON.stringify(e));try{this.#p.postMessage(e,this.#m)}catch(e){const t=`postMessage error: ${e}`;throw this.#n.dispatch(r.iframe.error,t),this.#n.create(t)}}}
3
3
  /**
4
4
  * @file property-observer.ts
5
5
  * @author Caridy Patiño (2025)
6
6
  * @license MIT
7
7
  * @description Provides the PropertyObserver class, a utility to observe property and attribute
8
8
  * changes on any DOM element, with automatic getter/setter interception and batched notifications.
9
- */const u=new o("PropertyObserver");class g{_el;_cb;_cache;_shouldObserve;_interceptedProps;_originalDescriptors;_observer;_changesPending;_pendingChanges;_attributeExceptions=new Map([["for","htmlFor"],["class","className"],["formnovalidate","formNoValidate"],["readonly","readOnly"],["maxlength","maxLength"],["minlength","minLength"],["contenteditable","contentEditable"],["spellcheck","spellcheck"],["novalidate","noValidate"],["autofocus","autofocus"],["autocomplete","autocomplete"],["crossorigin","crossOrigin"]]);constructor(e,t,r){if(!(e instanceof Element))throw new TypeError("Target must be a DOM Element");if("function"!=typeof t)throw new TypeError("Callback must be a function");if(r&&"function"!=typeof r)throw new TypeError("shouldObserve callback must be a function");this._el=e,this._cb=t,this._cache=new Map,this._shouldObserve=r||((e,t)=>!1===t),this._interceptedProps=new Set,this._originalDescriptors=new Map,this._changesPending=!1,this._pendingChanges={},this._initialScan(),this._setupMutationObserver()}disconnect(){this._observer&&this._observer.disconnect();for(const[e,t]of this._originalDescriptors)Object.defineProperty(this._el,e,t);this._cache.clear(),this._interceptedProps.clear(),this._originalDescriptors.clear(),this._pendingChanges={},this._changesPending=!1}_initialScan(){const e={};for(const t of Array.from(this._el.attributes)){const r=t.name,i=this._isStandardAttribute(r);if(!this._shouldObserve(r,i))continue;const s=this._attributeNameToPropName(r),o=t.value;e[s]=o,this._cache.set(s,o),this._installPropertyInterceptor(s)}for(const t of Object.getOwnPropertyNames(this._el)){const r=this._isStandardProperty(t);if(this._cache.has(t)||!this._shouldObserve(t,r))continue;const i=this._el[t];e[t]=i,this._cache.set(t,i),this._installPropertyInterceptor(t)}if(Object.keys(e).length>0)try{this._cb(e)}catch(e){u.error("Error in initial PropertyObserver callback:",e)}}_setupMutationObserver(){this._observer=new MutationObserver(e=>{const t={};for(const r of e)if("attributes"===r.type&&r.attributeName){const e=r.attributeName,i=this._isStandardAttribute(e);if(!this._shouldObserve(e,i))continue;const s=this._attributeNameToPropName(e),o=this._el.getAttribute(e);o!==this._cache.get(s)&&(t[s]=o,this._cache.set(s,o),this._interceptedProps.has(s)||this._installPropertyInterceptor(s))}Object.keys(t).length>0&&this._batchChanges(t)}),this._observer.observe(this._el,{attributes:!0,attributeOldValue:!1})}_installPropertyInterceptor(e){if(this._interceptedProps.has(e))return;const t=Object.getOwnPropertyDescriptor(this._el,e)||{value:this._el[e],writable:!0,enumerable:!0,configurable:!0};this._originalDescriptors.set(e,t);const r={enumerable:t.enumerable,configurable:t.configurable,get:t.get||(()=>t.value),set:r=>{r!==this._cache.get(e)&&(t.set?t.set.call(this._el,r):t.value=r,this._cache.set(e,r),this._batchChanges({[e]:r}))}};Object.defineProperty(this._el,e,r),this._interceptedProps.add(e)}_batchChanges(e){Object.assign(this._pendingChanges,e),this._changesPending||(this._changesPending=!0,queueMicrotask(()=>{this._changesPending=!1;const e={...this._pendingChanges};this._pendingChanges={};try{this._cb(e)}catch(e){u.error("Error in PropertyObserver callback:",e)}}))}_attributeNameToPropName(e){return this._attributeExceptions.has(e)?this._attributeExceptions.get(e):e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}_isStandardAttribute(e){if(e.startsWith("data-")||e.startsWith("aria-")||e.startsWith("on"))return!0;const t=this._attributeNameToPropName(e);return this._isStandardProperty(t)}_isStandardProperty(e){return e in HTMLElement.prototype}}const f=new class{#y=new n("LightningOutRegistry");appToComps=new WeakMap;compToApp=new WeakMap;compNameToApp=new Map;registerApplication(e){this.appToComps.has(e)||this.appToComps.set(e,new Set)}registerComponentName(e,t){if(this.compNameToApp.has(e))throw this.#y.create(`"${e}" is already registered to another App.`);this.compNameToApp.set(e,t)}registerComponent(e,t){if(this.compToApp.has(e))throw this.#y.create("This Comp is already registered to another App.");let r=t;if(!r){const t=e.localName;if(r=this.compNameToApp.get(t),!r)throw this.#y.create(`Could not find a parent App for component "${e.localName}"`)}return this.appToComps.get(r).add(e),this.compToApp.set(e,r),r}unregisterComponent(e){const t=this.compToApp.get(e);if(!t)return!1;const r=this.appToComps.get(t);return r?.delete(e),this.compToApp.delete(e),!0}getComps(e){const t=this.appToComps.get(e);if(!t)throw this.#y.create("Unable to find set of LightningOutComponents");return t}},b=new o("LightningOutComponent"),w=new Set(["autocapitalize","autocorrect","dir","enterkeyhint","inputmode","lang","spellcheck","style","title","translate"]),v=new Set(["aria-disabled","aria-hidden","aria-label","aria-live","aria-modal","aria-pressed","aria-valuemax","aria-valuemin","aria-valuenow"]),_=new Set(["accesskey","autofocus","draggable","exportparts","hidden","inert","nonce","part","slot","tabindex"]),y=new Set(["aria-activedescendant","aria-controls","aria-describedby","aria-details","aria-errormessage","aria-flowto","aria-labelledby","aria-owns"]);class E extends HTMLElement{_uuid=t();_ready=!1;_standardName=c(this.localName);#E;#y=new n(this);#C=new m({parentElement:this,isVisible:!0});#L;#A=!0;#P=[];#O=new WeakMap;#$=0;constructor(){super(),b.trace("constructor: called",`_uuid: ${this._uuid}`)}_getComponentURL(){const e=this.#E;if(!e)throw this.#y.create("Undefined parent App!");return e._getComponentURL(this._standardName,this._uuid)}_init(){this._ready||this.#C.load(this._getComponentURL().href)}#b=e=>{if(e.data.id===this._uuid)switch(b.debug("#messageListener:",`this._uuid: ${this._uuid}`,`this._standardName: ${this._standardName}`,`event.data: ${JSON.stringify(e.data)}`),e.data.type){case i.ready:for(;this.#P.length;){const e=this.#P.shift();e&&("add"===e.type?this.addEventListener(...e.args):"remove"===e.type?this.removeEventListener(...e.args):"dispatch"===e.type&&this.dispatchEvent(e.event))}this._ready=!0,super.dispatchEvent(new CustomEvent(r.component.ready));break;case i.getComponentData:this.#L=new g(this,this.#U,this.#S);break;case i.dispatchEvent:{const t=new CustomEvent(e.data.name,{detail:e.data.detail});super.dispatchEvent(t);break}case i.error:this.#y.dispatch(r.component.error,e.data.error);break;default:b.info("#messageListener:","Unknown message received:",{"event.data":e.data})}};_propertyChanged_style=e=>{const t=this.style,r=[];for(let e=0;e<t.length;e+=1){const i=t.item(e);i.startsWith("--")&&r.push(`${i}:${t.getPropertyValue(i)}`)}return r.join(";")};#U=e=>{const t=d(this,e);b.debug("#propObserverCallback:",{changes:e,propsToSend:t}),this.#A?(this.#A=!1,this.#C.postMessage({type:i.setComponentData,componentData:{id:this._uuid,name:this._standardName,props:t}})):this.#C.postMessage({type:i.setComponentProps,componentProps:t})};#S=(e,t)=>{const r=h(e);return b.debug("#shouldObserveCallback:",{attrOrPropName:e,attrName:r,isStandard:t}),t?!(!w.has(r)&&!v.has(r))||(_.has(r)||y.has(r)||r.startsWith("on")?(b.warn(`"${r}" will not be mirrored.`),!1):!!r.startsWith("data-mirror-")||(b.warn(`"${r}" will not be mirrored.`),!1)):!r.startsWith("_")};addEventListener(e,t,r){let s=this.#O.get(t);s||(s=`${e}_${this.#$++}`,this.#O.set(t,s)),this.#C.iframeReady?(super.addEventListener(...arguments),this.#C.postMessage({name:e,options:r,listenerKey:s,type:i.addEventListener})):(this.#P.push({type:"add",args:[e,t,r]}),b.debug("addEventListener:","#eventQueue pushed add args:",[e,t,r]))}dispatchEvent(e){if(e.type.startsWith("lo."))return b.debug(`dispatchEvent: dispatching event "${e.type}" to this Element only`),super.dispatchEvent(e);if(this.#C.iframeReady){b.debug(`dispatchEvent: dispatching event "${e.type}" to this Element and embedded Element inside the iframe`);const t=super.dispatchEvent(e);return this.#C.postMessage({name:e.type,detail:e.detail||{},type:i.dispatchEvent}),t}return b.debug(`dispatchEvent: iframe not reade, queueing event "${e.type}"`),this.#P.push({type:"dispatch",event:e}),!0}removeEventListener(e,t,r){const s=this.#O.get(t);this.#C.iframeReady?(super.removeEventListener(...arguments),this.#C.postMessage({name:e,options:r,listenerKey:s,type:i.removeEventListener})):(this.#P.push({type:"remove",args:[e,t,r]}),b.debug("removeEventListener:","#eventQueue pushed remove args:",[e,t,r])),s&&this.#O.delete(t)}adoptedCallback(){throw this.remove(),this.#y.create("This component cannot be rerendered for security reasons.")}connectedCallback(){if(b.trace("connectedCallback: called",`_uuid: ${this._uuid}`),window.addEventListener("message",this.#b),this.hasChildNodes())throw this.#y.create("Should not have child nodes");this.style.display||="block",this.style.width||="100%",this.style.height||="100%",this.#E=f.registerComponent(this),this._standardName=this.#E._getComponentStandardName(this),this.#E._ready&&this._init()}disconnectedCallback(){b.trace("disconnectedCallback: called",`_uuid: ${this._uuid}`),this.#C.destroy(),window.removeEventListener("message",this.#b),f.unregisterComponent(this),this.#L?.disconnect()}connectedMoveCallback(){}}class C{config;errorHandler;constructor(e,t){if(this.config=e,this.errorHandler=t,!this.config.origin)throw this.errorHandler('Missing "frontdoor-url" or "org-url" attribute')}getComponentURL(e,t){let r;if(void 0===this.config.sitePrefix){let t=e.includes("/")?this.config.lwrAppComp:e.includes(":")?this.config.lwrAppAura:void 0;if(void 0===t)throw this.errorHandler(`Invalid componentName: ${e}`);t=t.replace("/","%2F");const i=this.config.lang?`l/${this.config.lang}/`:"";r=new URL(`lwr/application/amd/0/${i}ai/${t}`,this.config.origin)}else{const e=`${this.config.sitePrefix}/lightning-out`;r=new URL(e,this.config.origin)}return r.searchParams.set("componentName",e),this.#N(r,t)}getAuthURL(e){let t;if(void 0===this.config.sitePrefix){const e=this.config.lwrAppAuth.replace("/","%2F");t=new URL(`lwr/application/amd/0/ai/${e}`,this.config.origin)}else t=new URL(this.config.lwrPageAuth,this.config.origin);return this.#N(t,e)}getPageURL(e,t){const r=new URL(e,this.config.origin);return this.#N(r,t)}#N(e,t){return e.searchParams.set("parentElementId",t),e.searchParams.set("loAppOrigin",this.config.loAppOrigin),e.searchParams.set("loVersion","2.2.0"),this.config.appId&&e.searchParams.set("appId",this.config.appId),this.config.testMode&&e.searchParams.set("testMode","true"),this.config.designSystem&&e.searchParams.set("designSystem",this.config.designSystem),this.config.globalStyle&&e.searchParams.set("globalStyle",this.config.globalStyle),e}}const L=new o("LightningOutApplication"),A=new Set(["slds1","slds2","none"]),P=new Set(["frontdoorUrl","orgUrl"]);class O extends HTMLElement{_uuid=t();_ready=!1;#y=new n(this);#C=new m({parentElement:this,isVisible:!1});#R;#L;#k="";#I="lightningout/auth";#T="lightningout/container";#M="lightningout/auraContainer";#x="lightning/lightning.out.auth.html";#D="lightning/lightning.out.logout.html";#F="lightning/lightning.out.auth.error.html";#j="/secur/logout.jsp";lwrApplication;orgUrl;#V;frontdoorUrl;#W;appId;#H;components;#K=new Map;sitePrefix;#Q;designSystem;#Z;globalStyle;#z;#J=document.documentElement.lang??"";constructor(){super(),L.trace("constructor: called",`_uuid: ${this._uuid}`),f.registerApplication(this)}#q(e){try{this.#V=new URL(e)}catch{throw this.#y.create(`Invalid org-url: ${e}`)}this.dispatchEvent(new CustomEvent(r.iframe.load,{detail:this.#V.origin}))}#G(e){try{this.#W=new URL(e),this.#k=this.#W.origin;const t=this.#X(),r=this.#W.searchParams.has("otp")?"startURL":"retURL";this.#W.searchParams.set(r,t.pathname+t.search);const i=this.#B(this.#F);this.#W.searchParams.set("error-redirect-uri",i.pathname+i.search)}catch{throw this.#y.create(`Invalid frontdoor-url: ${e}`)}this.#C.load(this.#W.href)}#Y(){const e=new URL(this.#j,this.#k),t=this.#B(this.#D);e.searchParams.set("redirect-uri",t.pathname+t.search),e.searchParams.set("retUrl",t.pathname+t.search),this.#C.load(e.href),setTimeout(()=>{this.dispatchEvent(new CustomEvent(r.application.logout))},3e3)}getRouter(){if(void 0===this.#R){const e={origin:this.#k,lwrPageAuth:this.#x,lwrAppAuth:this.#I,lwrAppComp:this.#T,lwrAppAura:this.#M,sitePrefix:this.#Q,lang:this.#J,appId:this.#H,testMode:this.__testMode||!1,loAppOrigin:window.location.origin,designSystem:this.#Z,globalStyle:this.#z};this.#R=new C(e,e=>this.#y.create(e))}return this.#R}_getComponentURL(e,t){return this.getRouter().getComponentURL(e,t)}#X(){return this.getRouter().getAuthURL(this._uuid)}#B(e){return this.getRouter().getPageURL(e,this._uuid)}#ee=e=>{this._ready=!0,this.#k=e.detail,this.#te(),this.dispatchEvent(new CustomEvent(r.application.ready))};#re=e=>{this.#y.dispatch(r.application.error,e)};#ie=e=>{this.#y.dispatch(r.application.logout,e)};#se=e=>{this.dispatchEvent(new CustomEvent(r.application.auth.redirect,{detail:e.detail}))};#te(){f.getComps(this).forEach(e=>{e._init()})}#U=e=>{const t={},r={};Object.keys(e).forEach(i=>{P.has(i)?r[i]=e[i]:t[i]=e[i]}),d(this,t),d(this,r)};#S=(e,t)=>t?"lang"===e:!e.startsWith("_");_propertyChanged_lwrApplication=e=>{if(void 0!==e){const t=e.split("/");if(2!==t.length||!t[0]||!t[1])throw this.#y.create(`"${e}" is not a valid lwr-application name, must be of the form 'namespace/name'`);this.#T=e}};_propertyChanged_lang=e=>{this.#J=e??""};_propertyChanged_orgUrl=e=>{if(void 0!==e){if(void 0!==this.#W)throw this.#y.create('Can\'t set "org-url" because "frontdoor-url" is already set');""===e?this.#Y():this.#q(e)}};_propertyChanged_frontdoorUrl=e=>{if(void 0!==e){if(void 0!==this.#V)throw this.#y.create('Can\'t set "frontdoor-url" because "org-url" is already set');""===e?this.#Y():this.#G(e)}};_propertyChanged_sitePrefix=e=>{void 0!==e&&(this.#Q=e)};_propertyChanged_appId=e=>{void 0!==e&&(this.#H=e)};_propertyChanged_globalStyle=e=>{if(void 0!==e){const t=e.split(";").map(e=>e.trim()).filter(e=>e.length>0),r=[];for(const e of t){const[t,...i]=e.split(":"),s=t.trim();if(!s.startsWith("--"))throw this.#y.create(`Invalid global-style: "${s}" is not a CSS custom property. Only CSS custom properties (starting with --) are allowed.`);const o=i.join(":").trim();o&&r.push(`${s}:${o}`)}this.#z=r.join(";")+";"}};_propertyChanged_components=e=>{void 0!==e&&e.split(",").forEach(e=>{const[t,r]=e.split(" as ").map(e=>e.trim()),i=function(e){return e.includes("/")||e.includes(":")}(t);if(i&&t.includes(":"))throw this.#y.create(`"${t}" is not supported in components. Use kebab "namespace-name" in components and the "aura" attribute on the component element instead.`);const s=i?t:c(t),o=r||(i?function(e){const t=e.includes("/")?"/":":",r=e.indexOf(t);if(-1===r)throw l.create(`standardNameToElementName: "${e}" is not a valid component name - missing namespace separator.`);if(/-/.test(e))throw l.create(`standardNameToElementName: "${e}" is not a valid component name - must not contain hyphens.`);if(/^[A-Z]/.test(e))throw l.create(`standardNameToElementName: "${e}" is not a valid component name - first character must not be uppercase.`);const i=e.slice(0,r),s=e.slice(r+1);return`${i.replace(/([A-Z_])/g,"_$1").toLowerCase()}-${h(s)}`}(s):t);if(o&&!this.#K.has(o)){this.#K.set(o,s);try{f.registerComponentName(o,this),customElements.define(o,class extends E{})}catch(e){throw this.#y.create(`"${o}" is already registered. ${e}`)}}})};_propertyChanged_designSystem=e=>{if(void 0!==e&&!A.has(e))throw this.#y.create(`Invalid design-system: ${e}`);this.#Z=e};_getComponentStandardName(e){const t=e.localName,r=e.hasAttribute("aura"),i=this.#K.get(t);if(!i)throw this.#y.create(`"${t}" is not registered.`);return r&&i.includes("/")?i.replace("/",":"):i}get _compNames(){}connectedCallback(){if(L.trace("connectedCallback: called",`_uuid: ${this._uuid}`),this.hasChildNodes())throw this.#y.create("Should not have child nodes");this.style.display||="none",this.addEventListener(r.iframe.load,this.#ee),this.addEventListener(r.iframe.error,this.#re),this.addEventListener(r.iframe.logout,this.#ie),this.addEventListener(r.iframe.auth.redirect,this.#se),this.#L=new g(this,this.#U,this.#S)}disconnectedCallback(){L.trace("disconnectedCallback: called",`_uuid: ${this._uuid}`),this.#Y(),this.#C.destroy(),this.removeEventListener(r.iframe.load,this.#ee),this.removeEventListener(r.iframe.error,this.#re),this.removeEventListener(r.iframe.logout,this.#ie),this.removeEventListener(r.iframe.auth.redirect,this.#se),this.#L?.disconnect()}connectedMoveCallback(){}}return o.level="debug",window.customElements.define("lightning-out-application",O),e.LightningOutApplication=O,e}({});
9
+ */const u=new o("PropertyObserver");class g{_el;_cb;_cache;_shouldObserve;_interceptedProps;_originalDescriptors;_observer;_changesPending;_pendingChanges;_attributeExceptions=new Map([["for","htmlFor"],["class","className"],["formnovalidate","formNoValidate"],["readonly","readOnly"],["maxlength","maxLength"],["minlength","minLength"],["contenteditable","contentEditable"],["spellcheck","spellcheck"],["novalidate","noValidate"],["autofocus","autofocus"],["autocomplete","autocomplete"],["crossorigin","crossOrigin"]]);constructor(e,t,r){if(!(e instanceof Element))throw new TypeError("Target must be a DOM Element");if("function"!=typeof t)throw new TypeError("Callback must be a function");if(r&&"function"!=typeof r)throw new TypeError("shouldObserve callback must be a function");this._el=e,this._cb=t,this._cache=new Map,this._shouldObserve=r||((e,t)=>!1===t),this._interceptedProps=new Set,this._originalDescriptors=new Map,this._changesPending=!1,this._pendingChanges={},this._initialScan(),this._setupMutationObserver()}disconnect(){this._observer&&this._observer.disconnect();for(const[e,t]of this._originalDescriptors)Object.defineProperty(this._el,e,t);this._cache.clear(),this._interceptedProps.clear(),this._originalDescriptors.clear(),this._pendingChanges={},this._changesPending=!1}_initialScan(){const e={};for(const t of Array.from(this._el.attributes)){const r=t.name,i=this._isStandardAttribute(r);if(!this._shouldObserve(r,i))continue;const s=this._attributeNameToPropName(r),o=t.value;e[s]=o,this._cache.set(s,o),this._installPropertyInterceptor(s)}for(const t of Object.getOwnPropertyNames(this._el)){const r=this._isStandardProperty(t);if(this._cache.has(t)||!this._shouldObserve(t,r))continue;const i=this._el[t];e[t]=i,this._cache.set(t,i),this._installPropertyInterceptor(t)}if(Object.keys(e).length>0)try{this._cb(e)}catch(e){u.error("Error in initial PropertyObserver callback:",e)}}_setupMutationObserver(){this._observer=new MutationObserver(e=>{const t={};for(const r of e)if("attributes"===r.type&&r.attributeName){const e=r.attributeName,i=this._isStandardAttribute(e);if(!this._shouldObserve(e,i))continue;const s=this._attributeNameToPropName(e),o=this._el.getAttribute(e);o!==this._cache.get(s)&&(t[s]=o,this._cache.set(s,o),this._interceptedProps.has(s)||this._installPropertyInterceptor(s))}Object.keys(t).length>0&&this._batchChanges(t)}),this._observer.observe(this._el,{attributes:!0,attributeOldValue:!1})}_installPropertyInterceptor(e){if(this._interceptedProps.has(e))return;const t=Object.getOwnPropertyDescriptor(this._el,e)||{value:this._el[e],writable:!0,enumerable:!0,configurable:!0};this._originalDescriptors.set(e,t);const r={enumerable:t.enumerable,configurable:t.configurable,get:t.get||(()=>t.value),set:r=>{r!==this._cache.get(e)&&(t.set?t.set.call(this._el,r):t.value=r,this._cache.set(e,r),this._batchChanges({[e]:r}))}};Object.defineProperty(this._el,e,r),this._interceptedProps.add(e)}_batchChanges(e){Object.assign(this._pendingChanges,e),this._changesPending||(this._changesPending=!0,queueMicrotask(()=>{this._changesPending=!1;const e={...this._pendingChanges};this._pendingChanges={};try{this._cb(e)}catch(e){u.error("Error in PropertyObserver callback:",e)}}))}_attributeNameToPropName(e){return this._attributeExceptions.has(e)?this._attributeExceptions.get(e):e.replace(/-([a-z])/g,(e,t)=>t.toUpperCase())}_isStandardAttribute(e){if(e.startsWith("data-")||e.startsWith("aria-")||e.startsWith("on"))return!0;const t=this._attributeNameToPropName(e);return this._isStandardProperty(t)}_isStandardProperty(e){return e in HTMLElement.prototype}}const f=new class{#E=new n("LightningOutRegistry");appToComps=new WeakMap;compToApp=new WeakMap;compNameToApp=new Map;registerApplication(e){this.appToComps.has(e)||this.appToComps.set(e,new Set)}registerComponentName(e,t){if(this.compNameToApp.has(e))throw this.#E.create(`"${e}" is already registered to another App.`);this.compNameToApp.set(e,t)}registerComponent(e,t){if(this.compToApp.has(e))throw this.#E.create("This Comp is already registered to another App.");let r=t;if(!r){const t=e.localName;if(r=this.compNameToApp.get(t),!r)throw this.#E.create(`Could not find a parent App for component "${e.localName}"`)}return this.appToComps.get(r).add(e),this.compToApp.set(e,r),r}unregisterComponent(e){const t=this.compToApp.get(e);if(!t)return!1;const r=this.appToComps.get(t);return r?.delete(e),this.compToApp.delete(e),!0}getComps(e){const t=this.appToComps.get(e);if(!t)throw this.#E.create("Unable to find set of LightningOutComponents");return t}},b=new o("LightningOutComponent"),w=new Set(["autocapitalize","autocorrect","dir","enterkeyhint","inputmode","lang","spellcheck","style","title","translate"]),v=new Set(["aria-disabled","aria-hidden","aria-label","aria-live","aria-modal","aria-pressed","aria-valuemax","aria-valuemin","aria-valuenow"]),_=new Set(["accesskey","autofocus","draggable","exportparts","hidden","inert","nonce","part","slot","tabindex"]),y=new Set(["aria-activedescendant","aria-controls","aria-describedby","aria-details","aria-errormessage","aria-flowto","aria-labelledby","aria-owns"]);class E extends HTMLElement{_uuid=t();_ready=!1;_standardName=c(this.localName);#C;#E=new n(this);#L=new m({parentElement:this,isVisible:!0});#A;#P=!0;#O=[];#$=new WeakMap;#U=0;constructor(){super(),b.trace("constructor: called",`_uuid: ${this._uuid}`)}_getComponentURL(){const e=this.#C;if(!e)throw this.#E.create("Undefined parent App!");return e._getComponentURL(this._standardName,this._uuid)}_init(){this._ready||this.#L.load(this._getComponentURL().href)}#b=e=>{if(e.data.id===this._uuid)switch(b.debug("#messageListener:",`this._uuid: ${this._uuid}`,`this._standardName: ${this._standardName}`,`event.data: ${JSON.stringify(e.data)}`),e.data.type){case i.ready:for(;this.#O.length;){const e=this.#O.shift();e&&("add"===e.type?this.addEventListener(...e.args):"remove"===e.type?this.removeEventListener(...e.args):"dispatch"===e.type&&this.dispatchEvent(e.event))}this._ready=!0,super.dispatchEvent(new CustomEvent(r.component.ready));break;case i.getComponentData:this.#A=new g(this,this.#S,this.#R);break;case i.dispatchEvent:{const t=new CustomEvent(e.data.name,{detail:e.data.detail});super.dispatchEvent(t);break}case i.error:this.#E.dispatch(r.component.error,e.data.error);break;default:b.info("#messageListener:","Unknown message received:",{"event.data":e.data})}};_propertyChanged_style=e=>{const t=this.style,r=[];for(let e=0;e<t.length;e+=1){const i=t.item(e);i.startsWith("--")&&r.push(`${i}:${t.getPropertyValue(i)}`)}return r.join(";")};#S=e=>{const t=d(this,e);b.debug("#propObserverCallback:",{changes:e,propsToSend:t}),this.#P?(this.#P=!1,this.#L.postMessage({type:i.setComponentData,componentData:{id:this._uuid,name:this._standardName,props:t}})):this.#L.postMessage({type:i.setComponentProps,componentProps:t})};#R=(e,t)=>{const r=l(e);return b.debug("#shouldObserveCallback:",{attrOrPropName:e,attrName:r,isStandard:t}),t?!(!w.has(r)&&!v.has(r))||(_.has(r)||y.has(r)||r.startsWith("on")?(b.warn(`"${r}" will not be mirrored.`),!1):!!r.startsWith("data-mirror-")||(b.warn(`"${r}" will not be mirrored.`),!1)):!r.startsWith("_")};addEventListener(e,t,r){let s=this.#$.get(t);s||(s=`${e}_${this.#U++}`,this.#$.set(t,s)),this.#L.iframeReady?(super.addEventListener(...arguments),this.#L.postMessage({name:e,options:r,listenerKey:s,type:i.addEventListener})):(this.#O.push({type:"add",args:[e,t,r]}),b.debug("addEventListener:","#eventQueue pushed add args:",[e,t,r]))}dispatchEvent(e){if(e.type.startsWith("lo."))return b.debug(`dispatchEvent: dispatching event "${e.type}" to this Element only`),super.dispatchEvent(e);if(this.#L.iframeReady){b.debug(`dispatchEvent: dispatching event "${e.type}" to this Element and embedded Element inside the iframe`);const t=super.dispatchEvent(e);return this.#L.postMessage({name:e.type,detail:e.detail||{},type:i.dispatchEvent}),t}return b.debug(`dispatchEvent: iframe not reade, queueing event "${e.type}"`),this.#O.push({type:"dispatch",event:e}),!0}removeEventListener(e,t,r){const s=this.#$.get(t);this.#L.iframeReady?(super.removeEventListener(...arguments),this.#L.postMessage({name:e,options:r,listenerKey:s,type:i.removeEventListener})):(this.#O.push({type:"remove",args:[e,t,r]}),b.debug("removeEventListener:","#eventQueue pushed remove args:",[e,t,r])),s&&this.#$.delete(t)}adoptedCallback(){throw this.remove(),this.#E.create("This component cannot be rerendered for security reasons.")}connectedCallback(){if(b.trace("connectedCallback: called",`_uuid: ${this._uuid}`),window.addEventListener("message",this.#b),this.hasChildNodes())throw this.#E.create("Should not have child nodes");this.style.display||="block",this.style.width||="100%",this.style.height||="100%",this.#C=f.registerComponent(this),this._standardName=this.#C._getComponentStandardName(this),this.#C._ready&&this._init()}disconnectedCallback(){b.trace("disconnectedCallback: called",`_uuid: ${this._uuid}`),this.#L.destroy(),window.removeEventListener("message",this.#b),f.unregisterComponent(this),this.#A?.disconnect()}connectedMoveCallback(){}}class C{config;errorHandler;constructor(e,t){if(this.config=e,this.errorHandler=t,!this.config.origin)throw this.errorHandler('Missing "frontdoor-url" or "org-url" attribute')}getComponentURL(e,t){let r;if(void 0===this.config.sitePrefix){let t=e.includes("/")?this.config.lwrAppComp:e.includes(":")?this.config.lwrAppAura:void 0;if(void 0===t)throw this.errorHandler(`Invalid componentName: ${e}`);t=t.replace("/","%2F");const i=this.config.lang?`l/${this.config.lang}/`:"";r=new URL(`lwr/application/amd/0/${i}ai/${t}`,this.config.origin)}else{const e=`${this.config.sitePrefix}/lightning-out`;r=new URL(e,this.config.origin)}return r.searchParams.set("componentName",e),this.#N(r,t)}getAuthURL(e){let t;if(void 0===this.config.sitePrefix){const e=this.config.lwrAppAuth.replace("/","%2F");t=new URL(`lwr/application/amd/0/ai/${e}`,this.config.origin)}else t=new URL(this.config.lwrPageAuth,this.config.origin);return this.#N(t,e)}getPageURL(e,t){const r=new URL(e,this.config.origin);return this.#N(r,t)}#N(e,t){return e.searchParams.set("parentElementId",t),e.searchParams.set("loAppOrigin",this.config.loAppOrigin),e.searchParams.set("loVersion","2.2.1-rc.1"),this.config.appId&&e.searchParams.set("appId",this.config.appId),this.config.testMode&&e.searchParams.set("testMode","true"),this.config.designSystem&&e.searchParams.set("designSystem",this.config.designSystem),this.config.globalStyle&&e.searchParams.set("globalStyle",this.config.globalStyle),e}}const L=new o("LightningOutApplication"),A=new Set(["slds1","slds2","none"]),P=new Set(["frontdoorUrl","orgUrl"]);class O extends HTMLElement{_uuid=t();_ready=!1;#E=new n(this);#L=new m({parentElement:this,isVisible:!1});#k;#A;#I="";#T="lightningout/auth";#M="lightningout/container";#x="lightningout/auraContainer";#D="lightning/lightning.out.auth.html";#F="lightning/lightning.out.logout.html";#j="lightning/lightning.out.auth.error.html";#V="/secur/logout.jsp";lwrApplication;orgUrl;#W;frontdoorUrl;#H;appId;#K;components;#Q=new Map;sitePrefix;#z;designSystem;#Z;globalStyle;#J;#q=document.documentElement.lang??"";constructor(){super(),L.trace("constructor: called",`_uuid: ${this._uuid}`),f.registerApplication(this)}#G(e){try{this.#W=new URL(e)}catch{throw this.#E.create(`Invalid org-url: ${e}`)}this.dispatchEvent(new CustomEvent(r.iframe.load,{detail:this.#W.origin}))}#X(e){try{this.#H=new URL(e),this.#I=this.#H.origin;const t=this.#B(),r=this.#H.searchParams.has("otp")?"startURL":"retURL";this.#H.searchParams.set(r,t.pathname+t.search);const i=this.#Y(this.#j);this.#H.searchParams.set("error-redirect-uri",i.pathname+i.search)}catch{throw this.#E.create(`Invalid frontdoor-url: ${e}`)}this.#L.load(this.#H.href)}#ee(){const e=new URL(this.#V,this.#I),t=this.#Y(this.#F);e.searchParams.set("redirect-uri",t.pathname+t.search),this.#L.load(e.href)}getRouter(){if(void 0===this.#k){const e={origin:this.#I,lwrPageAuth:this.#D,lwrAppAuth:this.#T,lwrAppComp:this.#M,lwrAppAura:this.#x,sitePrefix:this.#z,lang:this.#q,appId:this.#K,testMode:this.__testMode||!1,loAppOrigin:window.location.origin,designSystem:this.#Z,globalStyle:this.#J};this.#k=new C(e,e=>this.#E.create(e))}return this.#k}_getComponentURL(e,t){return this.getRouter().getComponentURL(e,t)}#B(){return this.getRouter().getAuthURL(this._uuid)}#Y(e){return this.getRouter().getPageURL(e,this._uuid)}#te=e=>{this._ready=!0,this.#I=e.detail,this.#re(),this.dispatchEvent(new CustomEvent(r.application.ready))};#ie=e=>{this.#E.dispatch(r.application.error,e)};#se=e=>{this.dispatchEvent(new CustomEvent(r.application.logout))};#oe=e=>{this.dispatchEvent(new CustomEvent(r.application.auth.redirect,{detail:e.detail}))};#re(){f.getComps(this).forEach(e=>{e._init()})}#S=e=>{const t={},r={};Object.keys(e).forEach(i=>{P.has(i)?r[i]=e[i]:t[i]=e[i]}),d(this,t),d(this,r)};#R=(e,t)=>t?"lang"===e:!e.startsWith("_");_propertyChanged_lwrApplication=e=>{if(void 0!==e){const t=e.split("/");if(2!==t.length||!t[0]||!t[1])throw this.#E.create(`"${e}" is not a valid lwr-application name, must be of the form 'namespace/name'`);this.#M=e}};_propertyChanged_lang=e=>{this.#q=e??""};_propertyChanged_orgUrl=e=>{if(void 0!==e){if(void 0!==this.#H)throw this.#E.create('Can\'t set "org-url" because "frontdoor-url" is already set');""===e?this.#ee():this.#G(e)}};_propertyChanged_frontdoorUrl=e=>{if(void 0!==e){if(void 0!==this.#W)throw this.#E.create('Can\'t set "frontdoor-url" because "org-url" is already set');""===e?this.#ee():this.#X(e)}};_propertyChanged_sitePrefix=e=>{void 0!==e&&(this.#z=e)};_propertyChanged_appId=e=>{void 0!==e&&(this.#K=e)};_propertyChanged_globalStyle=e=>{if(void 0!==e){const t=e.split(";").map(e=>e.trim()).filter(e=>e.length>0),r=[];for(const e of t){const[t,...i]=e.split(":"),s=t.trim();if(!s.startsWith("--"))throw this.#E.create(`Invalid global-style: "${s}" is not a CSS custom property. Only CSS custom properties (starting with --) are allowed.`);const o=i.join(":").trim();o&&r.push(`${s}:${o}`)}this.#J=r.join(";")+";"}};_propertyChanged_components=e=>{void 0!==e&&e.split(",").forEach(e=>{const[t,r]=e.split(" as ").map(e=>e.trim()),i=function(e){return e.includes("/")||e.includes(":")}(t);if(i&&t.includes(":"))throw this.#E.create(`"${t}" is not supported in components. Use kebab "namespace-name" in components and the "aura" attribute on the component element instead.`);const s=i?t:c(t),o=r||(i?function(e){const t=e.includes("/")?"/":":",r=e.indexOf(t);if(-1===r)throw h.create(`standardNameToElementName: "${e}" is not a valid component name - missing namespace separator.`);if(/-/.test(e))throw h.create(`standardNameToElementName: "${e}" is not a valid component name - must not contain hyphens.`);if(/^[A-Z]/.test(e))throw h.create(`standardNameToElementName: "${e}" is not a valid component name - first character must not be uppercase.`);const i=e.slice(0,r),s=e.slice(r+1);return`${i.replace(/([A-Z_])/g,"_$1").toLowerCase()}-${l(s)}`}(s):t);if(o&&!this.#Q.has(o)){this.#Q.set(o,s);try{f.registerComponentName(o,this),customElements.define(o,class extends E{})}catch(e){throw this.#E.create(`"${o}" is already registered. ${e}`)}}})};_propertyChanged_designSystem=e=>{if(void 0!==e&&!A.has(e))throw this.#E.create(`Invalid design-system: ${e}`);this.#Z=e};_getComponentStandardName(e){const t=e.localName,r=e.hasAttribute("aura"),i=this.#Q.get(t);if(!i)throw this.#E.create(`"${t}" is not registered.`);return r&&i.includes("/")?i.replace("/",":"):i}get _compNames(){}connectedCallback(){if(L.trace("connectedCallback: called",`_uuid: ${this._uuid}`),this.hasChildNodes())throw this.#E.create("Should not have child nodes");this.style.display||="none",this.addEventListener(r.iframe.load,this.#te),this.addEventListener(r.iframe.error,this.#ie),this.addEventListener(r.iframe.logout,this.#se),this.addEventListener(r.iframe.auth.redirect,this.#oe),this.#A=new g(this,this.#S,this.#R)}disconnectedCallback(){L.trace("disconnectedCallback: called",`_uuid: ${this._uuid}`),this.#ee(),this.#L.destroy(),this.removeEventListener(r.iframe.load,this.#te),this.removeEventListener(r.iframe.error,this.#ie),this.removeEventListener(r.iframe.logout,this.#se),this.removeEventListener(r.iframe.auth.redirect,this.#oe),this.#A?.disconnect()}connectedMoveCallback(){}}return o.level="debug",window.customElements.define("lightning-out-application",O),e.LightningOutApplication=O,e}({});
10
10
  //# sourceMappingURL=index.iife.prod.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce/lightning-out",
3
- "version": "2.2.0",
3
+ "version": "2.2.1-rc.1",
4
4
  "private": false,
5
5
  "description": "Lightning Out 2.0 for Salesforce",
6
6
  "license": "SEE LICENSE IN LICENSE.txt",
@@ -22,8 +22,8 @@
22
22
  },
23
23
  "dependencies": {},
24
24
  "devDependencies": {
25
- "core": "2.2.0",
26
- "utils": "2.2.0"
25
+ "core": "2.2.1-rc.1",
26
+ "utils": "2.2.1-rc.1"
27
27
  },
28
28
  "files": [
29
29
  "dist/",
package/dist/index.js DELETED
@@ -1,9 +0,0 @@
1
- /**
2
- * @lightning-out/application
3
- *
4
- * Main entry point for Lightning Out 2.0
5
- */
6
- import { LightningOutApplication } from "@lightning-out/core";
7
- window.customElements.define("lightning-out-application", LightningOutApplication);
8
- export { LightningOutApplication };
9
- //# sourceMappingURL=index.js.map