@liquidcommercedev/rmn-sdk 1.4.4 → 1.4.5-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -15152,60 +15152,56 @@ class AuthService extends BaseApi {
15152
15152
  }
15153
15153
 
15154
15154
  const SPOT_ELEMENT_TAG = 'spot-element';
15155
+ const SPOT_ELEMENT_SLOT_NAME = `${SPOT_ELEMENT_TAG}-custom-content`;
15155
15156
  const SPOTS_SELECTION_API_PATH = '/spots/selection';
15156
- const SPOT_EVENT_API_PATH = '/spots/event';
15157
15157
 
15158
- const SPOT_ELEMENT_SHADOW_ROOT = (width, height, hasCustomHtmlElement) => {
15158
+ const GFONT_PRECONNECT = `
15159
+ <link rel="preconnect" href="https://fonts.googleapis.com">
15160
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
15161
+ `;
15162
+ const GFONT_SOURCE_SANS_3 = `
15163
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Source+Sans+3:ital,wght@0,200..900;1,200..900&display=swap">
15164
+ `;
15165
+ const GFONT_CORMORANT = `
15166
+ <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Cormorant:ital,wght@0,300..700;1,300..700&family=Source+Sans+3:ital,wght@0,200..900;1,200..900&display=swap">
15167
+ `;
15168
+ const SPOT_ELEMENT_TEMPLATE = (width, height, hasCustomContent) => {
15159
15169
  const style = document.createElement('style');
15170
+ style.textContent = `
15171
+ :host {
15172
+ display: block;
15173
+ position: relative;
15174
+ container-type: inline-size;
15175
+ overflow: hidden;
15176
+ }
15177
+ :host([fluid="true"]) {
15178
+ width: 100%;
15179
+ height: 100%;
15180
+ }
15181
+ :host([fluid="false"]) {
15182
+ width: ${width}px;
15183
+ height: ${height}px;
15184
+ }
15185
+ `;
15160
15186
  const wrapper = document.createElement('div');
15161
15187
  wrapper.className = 'wrapper';
15162
- style.textContent = `
15163
- :host {
15164
- display: block;
15165
- position: relative;
15166
- container-type: inline-size;
15167
- overflow: hidden;
15168
- }
15169
- :host([fluid="true"]) {
15170
- width: 100%;
15171
- height: 100%;
15172
- }
15173
- :host([fluid="false"]) {
15174
- width: ${width}px;
15175
- height: ${height}px;
15176
- }
15188
+ const slot = document.createElement('slot');
15189
+ slot.name = SPOT_ELEMENT_SLOT_NAME;
15190
+ if (!hasCustomContent) {
15191
+ style.textContent += `
15192
+ :host .wrapper {
15193
+ position: absolute;
15194
+ top: 0;
15195
+ left: 0;
15196
+ width: 100%;
15197
+ height: 100%;
15198
+ overflow: hidden;
15199
+ }
15177
15200
  `;
15178
- if (hasCustomHtmlElement) {
15179
- return { style, wrapper };
15180
15201
  }
15181
- style.textContent += `
15182
- .wrapper {
15183
- position: absolute;
15184
- top: 0;
15185
- left: 0;
15186
- width: 100%;
15187
- height: 100%;
15188
- overflow: hidden;
15189
- }
15190
- `;
15191
- return { style, wrapper };
15202
+ return { style, wrapper, slot };
15192
15203
  };
15193
15204
 
15194
- const GFONT_PRECONNECT = () => `
15195
- <link rel="preconnect" href="https://fonts.googleapis.com">
15196
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
15197
- `;
15198
- const GFONT_SOURCE_SANS_3 = () => `
15199
- <link rel="stylesheet"
15200
- href="https://fonts.googleapis.com/css2?family=Source+Sans+3:ital,wght@0,200..900;1,200..900&display=swap"
15201
- >
15202
- `;
15203
- const GFONT_CORMORANT = () => `
15204
- <link rel="stylesheet"
15205
- href="https://fonts.googleapis.com/css2?family=Cormorant:ital,wght@0,300..700;1,300..700&family=Source+Sans+3:ital,wght@0,200..900;1,200..900&display=swap"
15206
- >
15207
- `;
15208
-
15209
15205
  const STYLES$i = ({ primaryImage, secondaryImage }) => `
15210
15206
  <style>
15211
15207
  .content {
@@ -15301,9 +15297,9 @@ const STYLES$i = ({ primaryImage, secondaryImage }) => `
15301
15297
  `;
15302
15298
  function billboardV1Template(spot) {
15303
15299
  return `
15304
- ${GFONT_PRECONNECT()}
15305
- ${GFONT_SOURCE_SANS_3()}
15306
- ${GFONT_CORMORANT()}
15300
+ ${GFONT_PRECONNECT}
15301
+ ${GFONT_SOURCE_SANS_3}
15302
+ ${GFONT_CORMORANT}
15307
15303
  ${STYLES$i(spot)}
15308
15304
  <div class="content">
15309
15305
  <div class="big-image"></div>
@@ -15390,9 +15386,9 @@ const STYLES$h = ({ primaryImage }) => `
15390
15386
  `;
15391
15387
  function billboardV2Template(spot) {
15392
15388
  return `
15393
- ${GFONT_PRECONNECT()}
15394
- ${GFONT_SOURCE_SANS_3()}
15395
- ${GFONT_CORMORANT()}
15389
+ ${GFONT_PRECONNECT}
15390
+ ${GFONT_SOURCE_SANS_3}
15391
+ ${GFONT_CORMORANT}
15396
15392
  ${STYLES$h(spot)}
15397
15393
  <div class="content">
15398
15394
  <div class="text-container">
@@ -15491,9 +15487,9 @@ const STYLES$g = ({ primaryImage }) => `
15491
15487
  `;
15492
15488
  function billboardV3Template(spot) {
15493
15489
  return `
15494
- ${GFONT_PRECONNECT()}
15495
- ${GFONT_SOURCE_SANS_3()}
15496
- ${GFONT_CORMORANT()}
15490
+ ${GFONT_PRECONNECT}
15491
+ ${GFONT_SOURCE_SANS_3}
15492
+ ${GFONT_CORMORANT}
15497
15493
  ${STYLES$g(spot)}
15498
15494
  <div class="content">
15499
15495
  <div class="text">
@@ -15535,9 +15531,9 @@ const STYLES$f = () => `
15535
15531
  `;
15536
15532
  function inTextV1Template(spot) {
15537
15533
  return `
15538
- ${GFONT_PRECONNECT()}
15539
- ${GFONT_SOURCE_SANS_3()}
15540
- ${GFONT_CORMORANT()}
15534
+ ${GFONT_PRECONNECT}
15535
+ ${GFONT_SOURCE_SANS_3}
15536
+ ${GFONT_CORMORANT}
15541
15537
  ${STYLES$f()}
15542
15538
  <div class="content">
15543
15539
  <span class="header">${spot.header}</span>
@@ -15625,9 +15621,9 @@ const STYLES$e = ({ primaryImage }) => `
15625
15621
  `;
15626
15622
  function largeLeaderboardV1Template(spot) {
15627
15623
  return `
15628
- ${GFONT_PRECONNECT()}
15629
- ${GFONT_SOURCE_SANS_3()}
15630
- ${GFONT_CORMORANT()}
15624
+ ${GFONT_PRECONNECT}
15625
+ ${GFONT_SOURCE_SANS_3}
15626
+ ${GFONT_CORMORANT}
15631
15627
  ${STYLES$e(spot)}
15632
15628
  <div class="content">
15633
15629
  <div class="text">
@@ -15712,9 +15708,9 @@ const STYLES$d = ({ primaryImage }) => `
15712
15708
  `;
15713
15709
  function largeLeaderboardV2Template(spot) {
15714
15710
  return `
15715
- ${GFONT_PRECONNECT()}
15716
- ${GFONT_SOURCE_SANS_3()}
15717
- ${GFONT_CORMORANT()}
15711
+ ${GFONT_PRECONNECT}
15712
+ ${GFONT_SOURCE_SANS_3}
15713
+ ${GFONT_CORMORANT}
15718
15714
  ${STYLES$d(spot)}
15719
15715
  <div class="content">
15720
15716
  <div class="text">
@@ -15771,9 +15767,9 @@ const STYLES$c = ({ primaryImage }) => `
15771
15767
  `;
15772
15768
  function largeRectangleV1Template(spot) {
15773
15769
  return `
15774
- ${GFONT_PRECONNECT()}
15775
- ${GFONT_SOURCE_SANS_3()}
15776
- ${GFONT_CORMORANT()}
15770
+ ${GFONT_PRECONNECT}
15771
+ ${GFONT_SOURCE_SANS_3}
15772
+ ${GFONT_CORMORANT}
15777
15773
  ${STYLES$c(spot)}
15778
15774
  <div class="content">
15779
15775
  <div class="image"></div>
@@ -15869,9 +15865,9 @@ const STYLES$b = ({ primaryImage }) => `
15869
15865
  `;
15870
15866
  function squareV1Template(spot) {
15871
15867
  return `
15872
- ${GFONT_PRECONNECT()}
15873
- ${GFONT_SOURCE_SANS_3()}
15874
- ${GFONT_CORMORANT()}
15868
+ ${GFONT_PRECONNECT}
15869
+ ${GFONT_SOURCE_SANS_3}
15870
+ ${GFONT_CORMORANT}
15875
15871
  ${STYLES$b(spot)}
15876
15872
  <div class="content">
15877
15873
  <div class="text">
@@ -15924,9 +15920,9 @@ const STYLES$a = ({ primaryImage }) => `
15924
15920
  `;
15925
15921
  function squareV2Template(spot) {
15926
15922
  return `
15927
- ${GFONT_PRECONNECT()}
15928
- ${GFONT_SOURCE_SANS_3()}
15929
- ${GFONT_CORMORANT()}
15923
+ ${GFONT_PRECONNECT}
15924
+ ${GFONT_SOURCE_SANS_3}
15925
+ ${GFONT_CORMORANT}
15930
15926
  ${STYLES$a(spot)}
15931
15927
  <div class="content">
15932
15928
  <span class="header">${spot.header}</span>
@@ -15989,9 +15985,9 @@ const STYLES$9 = ({ primaryImage }) => `
15989
15985
  `;
15990
15986
  function verticalRectangleV1Template(spot) {
15991
15987
  return `
15992
- ${GFONT_PRECONNECT()}
15993
- ${GFONT_SOURCE_SANS_3()}
15994
- ${GFONT_CORMORANT()}
15988
+ ${GFONT_PRECONNECT}
15989
+ ${GFONT_SOURCE_SANS_3}
15990
+ ${GFONT_CORMORANT}
15995
15991
  ${STYLES$9(spot)}
15996
15992
  <div class="content">
15997
15993
  <div class="text">
@@ -16053,7 +16049,7 @@ function rbCollectionBannerWithoutTextBlockTemplate(spot) {
16053
16049
  `;
16054
16050
  }
16055
16051
 
16056
- const STYLES$6 = ({ textColor = '#fff', ctaTextColor = textColor, ctaBorderColor = ctaTextColor, primaryImage, mobilePrimaryImage = primaryImage, }) => `
16052
+ const STYLES$6 = ({ textColor = '#ffffff', ctaTextColor = textColor, ctaBorderColor = ctaTextColor, primaryImage, mobilePrimaryImage = primaryImage, }) => `
16057
16053
  <style>
16058
16054
  :host {
16059
16055
  min-width: 320px;
@@ -16171,9 +16167,9 @@ const STYLES$6 = ({ textColor = '#fff', ctaTextColor = textColor, ctaBorderColor
16171
16167
  `;
16172
16168
  function rbHomepageHeroFullImageTemplate(spot) {
16173
16169
  return `
16174
- ${GFONT_PRECONNECT()}
16175
- ${GFONT_SOURCE_SANS_3()}
16176
- ${GFONT_CORMORANT()}
16170
+ ${GFONT_PRECONNECT}
16171
+ ${GFONT_SOURCE_SANS_3}
16172
+ ${GFONT_CORMORANT}
16177
16173
  ${STYLES$6(spot)}
16178
16174
  <div class="content">
16179
16175
  <div class="text">
@@ -16338,9 +16334,9 @@ const STYLES$5 = ({ textColor = '#212121', backgroundColor = '#e8e6de', ctaTextC
16338
16334
  `;
16339
16335
  function rbHomepageHeroThreeTileTemplate(spot) {
16340
16336
  return `
16341
- ${GFONT_PRECONNECT()}
16342
- ${GFONT_SOURCE_SANS_3()}
16343
- ${GFONT_CORMORANT()}
16337
+ ${GFONT_PRECONNECT}
16338
+ ${GFONT_SOURCE_SANS_3}
16339
+ ${GFONT_CORMORANT}
16344
16340
  ${STYLES$5(spot)}
16345
16341
  <div class="content">
16346
16342
  <div class="primary-image"></div>
@@ -16481,9 +16477,9 @@ const STYLES$4 = ({ textColor = '#212121', backgroundColor = '#e8e6de', ctaTextC
16481
16477
  `;
16482
16478
  function rbHomepageHeroTwoTileTemplate(spot) {
16483
16479
  return `
16484
- ${GFONT_PRECONNECT()}
16485
- ${GFONT_SOURCE_SANS_3()}
16486
- ${GFONT_CORMORANT()}
16480
+ ${GFONT_PRECONNECT}
16481
+ ${GFONT_SOURCE_SANS_3}
16482
+ ${GFONT_CORMORANT}
16487
16483
  ${STYLES$4(spot)}
16488
16484
  <div class="content">
16489
16485
  <div class="text">
@@ -16496,7 +16492,7 @@ function rbHomepageHeroTwoTileTemplate(spot) {
16496
16492
  `;
16497
16493
  }
16498
16494
 
16499
- const STYLES$3 = ({ textColor = '#fff', ctaTextColor = textColor, ctaBorderColor = ctaTextColor, primaryImage, mobilePrimaryImage = primaryImage, }) => `
16495
+ const STYLES$3 = ({ textColor = '#ffffff', ctaTextColor = textColor, ctaBorderColor = ctaTextColor, primaryImage, mobilePrimaryImage = primaryImage, }) => `
16500
16496
  <style>
16501
16497
  :host {
16502
16498
  min-width: 320px;
@@ -16603,9 +16599,9 @@ const STYLES$3 = ({ textColor = '#fff', ctaTextColor = textColor, ctaBorderColor
16603
16599
  `;
16604
16600
  function rbLargeCategoryImageToutTemplate(spot) {
16605
16601
  return `
16606
- ${GFONT_PRECONNECT()}
16607
- ${GFONT_SOURCE_SANS_3()}
16608
- ${GFONT_CORMORANT()}
16602
+ ${GFONT_PRECONNECT}
16603
+ ${GFONT_SOURCE_SANS_3}
16604
+ ${GFONT_CORMORANT}
16609
16605
  ${STYLES$3(spot)}
16610
16606
  <div class="content">
16611
16607
  <div class="text">
@@ -16617,7 +16613,7 @@ function rbLargeCategoryImageToutTemplate(spot) {
16617
16613
  `;
16618
16614
  }
16619
16615
 
16620
- const STYLES$2 = ({ textColor = '#fff', primaryImage, mobilePrimaryImage = primaryImage, }) => `
16616
+ const STYLES$2 = ({ textColor = '#ffffff', primaryImage, mobilePrimaryImage = primaryImage, }) => `
16621
16617
  <style>
16622
16618
  :host {
16623
16619
  min-width: 320px;
@@ -16675,8 +16671,8 @@ const STYLES$2 = ({ textColor = '#fff', primaryImage, mobilePrimaryImage = prima
16675
16671
  `;
16676
16672
  function rbNavigationBannerTemplate(spot) {
16677
16673
  return `
16678
- ${GFONT_PRECONNECT()}
16679
- ${GFONT_SOURCE_SANS_3()}
16674
+ ${GFONT_PRECONNECT}
16675
+ ${GFONT_SOURCE_SANS_3}
16680
16676
  ${STYLES$2(spot)}
16681
16677
  <div class="content">
16682
16678
  <div class="text">
@@ -16686,7 +16682,7 @@ function rbNavigationBannerTemplate(spot) {
16686
16682
  `;
16687
16683
  }
16688
16684
 
16689
- const STYLES$1 = ({ textColor = '#fff', primaryImage, mobilePrimaryImage = primaryImage, }) => `
16685
+ const STYLES$1 = ({ textColor = '#ffffff', primaryImage, mobilePrimaryImage = primaryImage, }) => `
16690
16686
  <style>
16691
16687
  :host {
16692
16688
  min-width: 165px;
@@ -16718,6 +16714,7 @@ const STYLES$1 = ({ textColor = '#fff', primaryImage, mobilePrimaryImage = prima
16718
16714
  font-style: normal;
16719
16715
  font-weight: 400;
16720
16716
  line-height: normal;
16717
+ margin: 0;
16721
16718
  }
16722
16719
  @media (min-width: 640px) {
16723
16720
  .content {
@@ -16728,8 +16725,8 @@ const STYLES$1 = ({ textColor = '#fff', primaryImage, mobilePrimaryImage = prima
16728
16725
  `;
16729
16726
  function rbSmallCategoryImageToutTemplate(spot) {
16730
16727
  return `
16731
- ${GFONT_PRECONNECT()}
16732
- ${GFONT_CORMORANT()}
16728
+ ${GFONT_PRECONNECT}
16729
+ ${GFONT_CORMORANT}
16733
16730
  ${STYLES$1(spot)}
16734
16731
  <div class="content">
16735
16732
  <div class="text">
@@ -16739,7 +16736,7 @@ function rbSmallCategoryImageToutTemplate(spot) {
16739
16736
  `;
16740
16737
  }
16741
16738
 
16742
- const STYLES = ({ textColor = '#000', backgroundColor = 'transparent', primaryImage, mobilePrimaryImage = primaryImage, }) => `
16739
+ const STYLES = ({ textColor = '#000000', backgroundColor = 'transparent', primaryImage, mobilePrimaryImage = primaryImage, }) => `
16743
16740
  <style>
16744
16741
  :host {
16745
16742
  min-width: 165px;
@@ -16782,6 +16779,7 @@ const STYLES = ({ textColor = '#000', backgroundColor = 'transparent', primaryIm
16782
16779
  font-style: normal;
16783
16780
  font-weight: 400;
16784
16781
  line-height: normal;
16782
+ margin: 0;
16785
16783
  }
16786
16784
  @media (min-width: 640px) {
16787
16785
  .image {
@@ -16792,8 +16790,8 @@ const STYLES = ({ textColor = '#000', backgroundColor = 'transparent', primaryIm
16792
16790
  `;
16793
16791
  function rbSmallDiscoverToutTemplate(spot) {
16794
16792
  return `
16795
- ${GFONT_PRECONNECT()}
16796
- ${GFONT_CORMORANT()}
16793
+ ${GFONT_PRECONNECT}
16794
+ ${GFONT_CORMORANT}
16797
16795
  ${STYLES(spot)}
16798
16796
  <div class="content">
16799
16797
  <div class="image"></div>
@@ -16889,16 +16887,20 @@ if (typeof window !== 'undefined' && typeof window.customElements !== 'undefined
16889
16887
  class CustomSpotElement extends HTMLElement {
16890
16888
  constructor() {
16891
16889
  super();
16890
+ this.hasCustomContent = false;
16891
+ this.handleClick = this.handleClick.bind(this);
16892
16892
  this.attachShadow({ mode: 'open' });
16893
16893
  }
16894
16894
  connectedCallback() {
16895
- this.addEventListener('click', () => this.registerEvent(exports.RMN_SPOT_EVENT.CLICK));
16895
+ this.hasCustomContent = Boolean(this.customContent);
16896
+ this.addEventListener('click', this.handleClick);
16896
16897
  this.setupIntersectionObserver();
16897
16898
  this.render();
16898
16899
  }
16899
16900
  disconnectedCallback() {
16900
16901
  var _a;
16901
16902
  (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
16903
+ this.removeEventListener('click', this.handleClick);
16902
16904
  }
16903
16905
  attributeChangedCallback(_name, oldValue, newValue) {
16904
16906
  if (oldValue !== newValue) {
@@ -16908,14 +16910,26 @@ if (typeof window !== 'undefined' && typeof window.customElements !== 'undefined
16908
16910
  render() {
16909
16911
  if (!this.shadowRoot || !this.data)
16910
16912
  return;
16911
- const { style, wrapper } = SPOT_ELEMENT_SHADOW_ROOT(this.data.width, this.data.height, Boolean(this.customHtmlElement));
16912
- if (this.customHtmlElement) {
16913
- wrapper.innerHTML = this.customHtmlElement.outerHTML;
16913
+ const { style, wrapper, slot } = SPOT_ELEMENT_TEMPLATE(this.data.width, this.data.height, this.hasCustomContent);
16914
+ this.shadowRoot.replaceChildren(style, slot);
16915
+ if (this.hasCustomContent) {
16916
+ this.setCustomContent();
16914
16917
  }
16915
- else {
16918
+ if (!this.hasCustomContent) {
16916
16919
  wrapper.innerHTML = GET_SPOT_TEMPLATE_HTML_STRING(this.data);
16920
+ this.shadowRoot.appendChild(wrapper);
16917
16921
  }
16918
- this.shadowRoot.replaceChildren(style, wrapper);
16922
+ }
16923
+ setCustomContent() {
16924
+ const wrapper = document.createElement('div');
16925
+ wrapper.setAttribute('slot', SPOT_ELEMENT_SLOT_NAME);
16926
+ if (typeof this.customContent === 'string') {
16927
+ wrapper.innerHTML = this.customContent;
16928
+ }
16929
+ if (this.customContent instanceof HTMLElement) {
16930
+ wrapper.appendChild(this.customContent);
16931
+ }
16932
+ this.appendChild(wrapper);
16919
16933
  }
16920
16934
  setupIntersectionObserver() {
16921
16935
  const options = {
@@ -16932,47 +16946,37 @@ if (typeof window !== 'undefined' && typeof window.customElements !== 'undefined
16932
16946
  }, options);
16933
16947
  this.observer.observe(this);
16934
16948
  }
16949
+ handleClick() {
16950
+ this.registerEvent(exports.RMN_SPOT_EVENT.CLICK);
16951
+ }
16935
16952
  async registerEvent(event) {
16936
16953
  var _a, _b;
16937
16954
  if (!this.data)
16938
16955
  return;
16939
16956
  const shouldRedirectOnClick = this.getAttribute(ENUM_SPOT_ELEMENT_ATTRIBUTE.REDIRECT_ON_CLICK) === 'true';
16940
- const url = (_b = (_a = this.data.events.find((e) => e.event === event)) === null || _a === void 0 ? void 0 : _a.url) !== null && _b !== void 0 ? _b : '';
16957
+ const eventUrl = (_b = (_a = this.data.events.find((e) => e.event === event)) === null || _a === void 0 ? void 0 : _a.url) !== null && _b !== void 0 ? _b : '';
16941
16958
  try {
16942
16959
  const options = {
16943
16960
  method: 'POST',
16944
- redirect: 'manual',
16961
+ redirect: event === exports.RMN_SPOT_EVENT.CLICK && shouldRedirectOnClick ? 'follow' : 'manual',
16945
16962
  };
16946
- if (event === exports.RMN_SPOT_EVENT.CLICK && shouldRedirectOnClick) {
16947
- options.redirect = 'follow';
16948
- }
16949
- const normalizedUrl = this.normalizeUrl(url);
16950
- const response = await fetch(normalizedUrl, options);
16963
+ const response = await fetch(eventUrl, options);
16951
16964
  if (response.ok && event === exports.RMN_SPOT_EVENT.CLICK && shouldRedirectOnClick) {
16952
- window.location.href = this.getRedirectUrlFromPayload(normalizedUrl);
16965
+ window.location.href = this.getRedirectUrlFromPayload(eventUrl);
16953
16966
  }
16954
16967
  }
16955
16968
  catch (error) {
16956
16969
  console.error(`Rmn error sending ${event} event:`, error);
16957
16970
  }
16958
16971
  }
16959
- normalizeUrl(url) {
16960
- if (!this.data)
16961
- return url;
16962
- const rmnUrl = `${SDK_CONFIG.url[this.data.env]}/api${SPOT_EVENT_API_PATH}`;
16963
- return url.replace(/https?:\/\/[^/]+\/[^?]+/, `${rmnUrl}`);
16964
- }
16965
16972
  getRedirectUrlFromPayload(url) {
16966
- var _a;
16973
+ var _a, _b;
16967
16974
  const base64String = (_a = new URL(url).searchParams.get('e')) !== null && _a !== void 0 ? _a : '';
16968
16975
  try {
16969
- const obj = JSON.parse(atob(base64String));
16970
- if (obj.ur) {
16971
- return obj.ur;
16972
- }
16973
- return '';
16976
+ const data = JSON.parse(atob(base64String));
16977
+ return (_b = data.ur) !== null && _b !== void 0 ? _b : '';
16974
16978
  }
16975
- catch (_b) {
16979
+ catch (_c) {
16976
16980
  return '';
16977
16981
  }
16978
16982
  }
@@ -16993,7 +16997,7 @@ class SpotHtmlService {
16993
16997
  * @param {ISpot} spot - The spot data.
16994
16998
  * @param {ICreateSpotElementConfig} config - The configuration object.
16995
16999
  * @param {ICreateSpotElementConfig.fluid} config.fluid - If the spot should be fluid or not.
16996
- * @param {ICreateSpotElementConfig.customHtmlElement} config.customHtmlElement - Use a custom html element.
17000
+ * @param {ICreateSpotElementConfig.customContent} config.customContent - Use a custom html element/string.
16997
17001
  * @param {ICreateSpotElementConfig.redirectOnClick} config.redirectOnClick - If the spot should redirect on click.
16998
17002
  *
16999
17003
  * @return {HTMLElement | null} - The spot html element or null if the browser environment is not available.
@@ -17012,8 +17016,9 @@ class SpotHtmlService {
17012
17016
  element.setAttribute(ENUM_SPOT_ELEMENT_ATTRIBUTE.REDIRECT_ON_CLICK, shouldRedirectOnClick.toString());
17013
17017
  // Share the spot data with the element
17014
17018
  element.data = spot;
17015
- if (config === null || config === void 0 ? void 0 : config.customHtmlElement) {
17016
- element.customHtmlElement = config.customHtmlElement;
17019
+ // Set custom content
17020
+ if (config === null || config === void 0 ? void 0 : config.customContent) {
17021
+ element.customContent = config.customContent;
17017
17022
  }
17018
17023
  return element;
17019
17024
  }
@@ -17054,22 +17059,10 @@ class SpotSelectionService extends BaseApi {
17054
17059
  if (isOk && val && val.data && (val === null || val === void 0 ? void 0 : val.refresh.token)) {
17055
17060
  this.authInfo.authenticated = true;
17056
17061
  this.authInfo.token = val.refresh.token;
17057
- let spots = val.data.spots;
17058
- spots = this.addEnvToSpotData(spots, this.authInfo.env);
17059
- return spots;
17062
+ return val.data.spots;
17060
17063
  }
17061
17064
  throw new Error('Spot selection response was not successful');
17062
17065
  }
17063
- addEnvToSpotData(spots, env) {
17064
- for (const key in spots) {
17065
- if (spots[key]) {
17066
- spots[key].forEach((spot) => {
17067
- spot.env = env;
17068
- });
17069
- }
17070
- }
17071
- return spots;
17072
- }
17073
17066
  }
17074
17067
 
17075
17068
  class LiquidCommerceRmnClient {
@@ -17097,7 +17090,7 @@ class LiquidCommerceRmnClient {
17097
17090
  * @param {ISpot} spot - The spot data.
17098
17091
  * @param {ICreateSpotElementConfig} config - The configuration object.
17099
17092
  * @param {ICreateSpotElementConfig.fluid} config.fluid - If the spot should be fluid or not.
17100
- * @param {ICreateSpotElementConfig.customHtmlElement} config.customHtmlElement - Use a custom html element.
17093
+ * @param {ICreateSpotElementConfig.customContent} config.customContent - Use a custom html element/string.
17101
17094
  * @param {ICreateSpotElementConfig.redirectOnClick} config.redirectOnClick - If the spot should redirect on click.
17102
17095
  *
17103
17096
  * @return {HTMLElement | null} - The spot html element or null if the browser environment is not available.
@@ -17129,7 +17122,7 @@ async function RmnClient(apiKey, config) {
17129
17122
  * @param {ISpot} spot - The spot data.
17130
17123
  * @param {ICreateSpotElementConfig} config - The configuration object.
17131
17124
  * @param {ICreateSpotElementConfig.fluid} config.fluid - If the spot should be fluid or not.
17132
- * @param {ICreateSpotElementConfig.customHtmlElement} config.customHtmlElement - Use a custom html element.
17125
+ * @param {ICreateSpotElementConfig.customContent} config.customContent - Use a custom html element/string.
17133
17126
  * @param {ICreateSpotElementConfig.redirectOnClick} config.redirectOnClick - If the spot should redirect on click.
17134
17127
  *
17135
17128
  * @return {HTMLElement | null} - The spot html element or null if the browser environment is not available.