@liquidcommercedev/rmn-sdk 1.5.0-beta.23 → 1.5.0-beta.25

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.cjs CHANGED
@@ -13,6 +13,8 @@ exports.RMN_SPOT_TYPE = void 0;
13
13
  RMN_SPOT_TYPE["RB_COLLECTION_BANNER_WITHOUT_TEXT_BLOCK"] = "rbCollectionBannerWithoutTextBlock";
14
14
  RMN_SPOT_TYPE["RB_PRODUCT_UPCS"] = "rbProductUpcs";
15
15
  RMN_SPOT_TYPE["RB_NAVIGATION_BANNER"] = "rbNavigationBanner";
16
+ RMN_SPOT_TYPE["RB_VIDEO_PLAYER"] = "rbVideoPlayer";
17
+ RMN_SPOT_TYPE["RB_IN_TEXT"] = "rbInText";
16
18
  // IAB Standard Spot Types
17
19
  RMN_SPOT_TYPE["BILLBOARD"] = "billboard";
18
20
  RMN_SPOT_TYPE["LARGE_RECTANGLE"] = "largeRectangle";
@@ -6158,6 +6160,8 @@ const extractorConfig = {
6158
6160
  'item_number',
6159
6161
  'article_number',
6160
6162
  'reference',
6163
+ 'salsifyGrouping',
6164
+ 'grouping',
6161
6165
  ],
6162
6166
  price: [
6163
6167
  'price',
@@ -15819,6 +15823,8 @@ const SPOT_DIMENSIONS = {
15819
15823
  [exports.RMN_SPOT_TYPE.RB_COLLECTION_BANNER_WITHOUT_TEXT_BLOCK]: { width: 887, height: 344 },
15820
15824
  [exports.RMN_SPOT_TYPE.RB_PRODUCT_UPCS]: { width: 1, height: 1 },
15821
15825
  [exports.RMN_SPOT_TYPE.RB_NAVIGATION_BANNER]: { width: 440, height: 220 },
15826
+ [exports.RMN_SPOT_TYPE.RB_VIDEO_PLAYER]: { width: 1280, height: 720 },
15827
+ [exports.RMN_SPOT_TYPE.RB_IN_TEXT]: { width: 1, height: 1 },
15822
15828
  [exports.RMN_SPOT_TYPE.SMALL_RECTANGLE]: { width: 180, height: 150 },
15823
15829
  [exports.RMN_SPOT_TYPE.MEDIUM_RECTANGLE]: { width: 300, height: 250 },
15824
15830
  [exports.RMN_SPOT_TYPE.LARGE_RECTANGLE]: { width: 336, height: 280 },
@@ -16668,8 +16674,15 @@ if (typeof window !== 'undefined' && typeof window.customElements !== 'undefined
16668
16674
  const clonedSlide = this.slides[index].cloneNode(true);
16669
16675
  // Map clone to original for event handling
16670
16676
  this.cloneToOriginalMap.set(clonedSlide, this.slides[index]);
16677
+ let isDragging = false;
16678
+ slideElement.addEventListener('mousedown', () => isDragging = false);
16679
+ slideElement.addEventListener('mousemove', () => isDragging = true);
16671
16680
  // Add event delegation to the slide container
16672
16681
  slideElement.addEventListener('click', (e) => {
16682
+ if (isDragging) {
16683
+ e.stopPropagation();
16684
+ return;
16685
+ }
16673
16686
  const original = this.slides[index];
16674
16687
  // Dispatch a new event on the original element
16675
16688
  const cloneEvent = new Event(e.type, { bubbles: true, cancelable: true });
@@ -17552,7 +17565,7 @@ function spotHtmlStringToElement(htmlString, spotType) {
17552
17565
  return spot;
17553
17566
  }
17554
17567
 
17555
- const STYLES$i = ({ primaryImage, secondaryImage }) => `
17568
+ const STYLES$j = ({ primaryImage, secondaryImage }) => `
17556
17569
  <style>
17557
17570
  .content {
17558
17571
  width: 100%;
@@ -17650,7 +17663,7 @@ function billboardV1Template(spot) {
17650
17663
  ${GFONT_PRECONNECT}
17651
17664
  ${GFONT_SOURCE_SANS_3}
17652
17665
  ${GFONT_CORMORANT}
17653
- ${STYLES$i(spot)}
17666
+ ${STYLES$j(spot)}
17654
17667
  <div class="content">
17655
17668
  <div class="big-image"></div>
17656
17669
  <div class="main">
@@ -17665,7 +17678,7 @@ function billboardV1Template(spot) {
17665
17678
  `;
17666
17679
  }
17667
17680
 
17668
- const STYLES$h = ({ primaryImage }) => `
17681
+ const STYLES$i = ({ primaryImage }) => `
17669
17682
  <style>
17670
17683
  .content {
17671
17684
  display: flex;
@@ -17739,7 +17752,7 @@ function billboardV2Template(spot) {
17739
17752
  ${GFONT_PRECONNECT}
17740
17753
  ${GFONT_SOURCE_SANS_3}
17741
17754
  ${GFONT_CORMORANT}
17742
- ${STYLES$h(spot)}
17755
+ ${STYLES$i(spot)}
17743
17756
  <div class="content">
17744
17757
  <div class="text-container">
17745
17758
  <h2 class="header">${spot.header}</h2>
@@ -17750,7 +17763,7 @@ function billboardV2Template(spot) {
17750
17763
  `;
17751
17764
  }
17752
17765
 
17753
- const STYLES$g = ({ primaryImage }) => `
17766
+ const STYLES$h = ({ primaryImage }) => `
17754
17767
  <style>
17755
17768
  .content {
17756
17769
  width: 100%;
@@ -17840,7 +17853,7 @@ function billboardV3Template(spot) {
17840
17853
  ${GFONT_PRECONNECT}
17841
17854
  ${GFONT_SOURCE_SANS_3}
17842
17855
  ${GFONT_CORMORANT}
17843
- ${STYLES$g(spot)}
17856
+ ${STYLES$h(spot)}
17844
17857
  <div class="content">
17845
17858
  <div class="text">
17846
17859
  <h2 class="header">${spot.header}</h2>
@@ -17852,7 +17865,7 @@ function billboardV3Template(spot) {
17852
17865
  `;
17853
17866
  }
17854
17867
 
17855
- const STYLES$f = () => `
17868
+ const STYLES$g = () => `
17856
17869
  <style>
17857
17870
  .content {
17858
17871
  display: inline-block;
@@ -17884,7 +17897,7 @@ function inTextV1Template(spot) {
17884
17897
  ${GFONT_PRECONNECT}
17885
17898
  ${GFONT_SOURCE_SANS_3}
17886
17899
  ${GFONT_CORMORANT}
17887
- ${STYLES$f()}
17900
+ ${STYLES$g()}
17888
17901
  <div class="content">
17889
17902
  <span class="header">${spot.header}</span>
17890
17903
  <span class="description">${spot.description}</span>
@@ -17892,7 +17905,7 @@ function inTextV1Template(spot) {
17892
17905
  `;
17893
17906
  }
17894
17907
 
17895
- const STYLES$e = ({ primaryImage }) => `
17908
+ const STYLES$f = ({ primaryImage }) => `
17896
17909
  <style>
17897
17910
  .content {
17898
17911
  width: 100%;
@@ -17974,7 +17987,7 @@ function largeLeaderboardV1Template(spot) {
17974
17987
  ${GFONT_PRECONNECT}
17975
17988
  ${GFONT_SOURCE_SANS_3}
17976
17989
  ${GFONT_CORMORANT}
17977
- ${STYLES$e(spot)}
17990
+ ${STYLES$f(spot)}
17978
17991
  <div class="content">
17979
17992
  <div class="text">
17980
17993
  <h2 class="header">${spot.header}</h2>
@@ -17985,7 +17998,7 @@ function largeLeaderboardV1Template(spot) {
17985
17998
  `;
17986
17999
  }
17987
18000
 
17988
- const STYLES$d = ({ primaryImage }) => `
18001
+ const STYLES$e = ({ primaryImage }) => `
17989
18002
  <style>
17990
18003
  .content {
17991
18004
  width: 100%;
@@ -18061,7 +18074,7 @@ function largeLeaderboardV2Template(spot) {
18061
18074
  ${GFONT_PRECONNECT}
18062
18075
  ${GFONT_SOURCE_SANS_3}
18063
18076
  ${GFONT_CORMORANT}
18064
- ${STYLES$d(spot)}
18077
+ ${STYLES$e(spot)}
18065
18078
  <div class="content">
18066
18079
  <div class="text">
18067
18080
  <h2 class="header">${spot.header}</h2>
@@ -18072,7 +18085,7 @@ function largeLeaderboardV2Template(spot) {
18072
18085
  `;
18073
18086
  }
18074
18087
 
18075
- const STYLES$c = ({ primaryImage }) => `
18088
+ const STYLES$d = ({ primaryImage }) => `
18076
18089
  <style>
18077
18090
  .content {
18078
18091
  width: 100%;
@@ -18120,7 +18133,7 @@ function largeRectangleV1Template(spot) {
18120
18133
  ${GFONT_PRECONNECT}
18121
18134
  ${GFONT_SOURCE_SANS_3}
18122
18135
  ${GFONT_CORMORANT}
18123
- ${STYLES$c(spot)}
18136
+ ${STYLES$d(spot)}
18124
18137
  <div class="content">
18125
18138
  <div class="image"></div>
18126
18139
  <div class="text">
@@ -18131,7 +18144,7 @@ function largeRectangleV1Template(spot) {
18131
18144
  `;
18132
18145
  }
18133
18146
 
18134
- const STYLES$b = ({ primaryImage }) => `
18147
+ const STYLES$c = ({ primaryImage }) => `
18135
18148
  <style>
18136
18149
  .content {
18137
18150
  width: 100%;
@@ -18218,7 +18231,7 @@ function squareV1Template(spot) {
18218
18231
  ${GFONT_PRECONNECT}
18219
18232
  ${GFONT_SOURCE_SANS_3}
18220
18233
  ${GFONT_CORMORANT}
18221
- ${STYLES$b(spot)}
18234
+ ${STYLES$c(spot)}
18222
18235
  <div class="content">
18223
18236
  <div class="text">
18224
18237
  <h2 class="header">${spot.header}</h2>
@@ -18229,7 +18242,7 @@ function squareV1Template(spot) {
18229
18242
  `;
18230
18243
  }
18231
18244
 
18232
- const STYLES$a = ({ primaryImage }) => `
18245
+ const STYLES$b = ({ primaryImage }) => `
18233
18246
  <style>
18234
18247
  .content {
18235
18248
  width: 100%;
@@ -18273,14 +18286,14 @@ function squareV2Template(spot) {
18273
18286
  ${GFONT_PRECONNECT}
18274
18287
  ${GFONT_SOURCE_SANS_3}
18275
18288
  ${GFONT_CORMORANT}
18276
- ${STYLES$a(spot)}
18289
+ ${STYLES$b(spot)}
18277
18290
  <div class="content">
18278
18291
  <span class="header">${spot.header}</span>
18279
18292
  </div>
18280
18293
  `;
18281
18294
  }
18282
18295
 
18283
- const STYLES$9 = ({ primaryImage }) => `
18296
+ const STYLES$a = ({ primaryImage }) => `
18284
18297
  <style>
18285
18298
  .content {
18286
18299
  width: 100%;
@@ -18338,7 +18351,7 @@ function verticalRectangleV1Template(spot) {
18338
18351
  ${GFONT_PRECONNECT}
18339
18352
  ${GFONT_SOURCE_SANS_3}
18340
18353
  ${GFONT_CORMORANT}
18341
- ${STYLES$9(spot)}
18354
+ ${STYLES$a(spot)}
18342
18355
  <div class="content">
18343
18356
  <div class="text">
18344
18357
  <h2 class="header">${spot.header}</h2>
@@ -18349,7 +18362,7 @@ function verticalRectangleV1Template(spot) {
18349
18362
  `;
18350
18363
  }
18351
18364
 
18352
- const STYLES$8 = ({ primaryImage }) => `
18365
+ const STYLES$9 = ({ primaryImage }) => `
18353
18366
  <style>
18354
18367
  .content {
18355
18368
  width: 100%;
@@ -18364,12 +18377,12 @@ const STYLES$8 = ({ primaryImage }) => `
18364
18377
  `;
18365
18378
  function wideSkyscraperV1Template(spot) {
18366
18379
  return `
18367
- ${STYLES$8(spot)}
18380
+ ${STYLES$9(spot)}
18368
18381
  <div class="content"></div>
18369
18382
  `;
18370
18383
  }
18371
18384
 
18372
- const STYLES$7 = ({ primaryImage, mobilePrimaryImage = primaryImage }, { prefix }) => `
18385
+ const STYLES$8 = ({ primaryImage, mobilePrimaryImage = primaryImage }, { prefix }) => `
18373
18386
  <style>
18374
18387
  .${prefix} {
18375
18388
  display: block;
@@ -18393,12 +18406,12 @@ const STYLES$7 = ({ primaryImage, mobilePrimaryImage = primaryImage }, { prefix
18393
18406
  function rbCollectionBannerWithoutTextBlockTemplate(spot, config) {
18394
18407
  const { prefix = '' } = config;
18395
18408
  return `
18396
- ${STYLES$7(spot, config)}
18409
+ ${STYLES$8(spot, config)}
18397
18410
  <div class="${prefix}"></div>
18398
18411
  `;
18399
18412
  }
18400
18413
 
18401
- const STYLES$6 = ({ textColor = '#ffffff', ctaTextColor = textColor, ctaBorderColor = ctaTextColor, primaryImage, mobilePrimaryImage = primaryImage, }, { prefix, overlay }) => {
18414
+ const STYLES$7 = ({ textColor = '#ffffff', ctaTextColor = textColor, ctaBorderColor = ctaTextColor, primaryImage, mobilePrimaryImage = primaryImage, }, { prefix, overlay }) => {
18402
18415
  const linearGradient = generateGradientColor(overlay, 'rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0) 40%');
18403
18416
  return `
18404
18417
  <style>
@@ -18537,7 +18550,7 @@ function rbHomepageHeroFullImageTemplate(spot, config) {
18537
18550
  ${GFONT_PRECONNECT}
18538
18551
  ${GFONT_SOURCE_SANS_3}
18539
18552
  ${GFONT_CORMORANT}
18540
- ${STYLES$6(spot, config)}
18553
+ ${STYLES$7(spot, config)}
18541
18554
  <div class="${prefix}">
18542
18555
  <div class="${prefix}__text">
18543
18556
  ${spot.header ? `<h2 class="${prefix}__header">${spot.header}</h2>` : ''}
@@ -18548,7 +18561,7 @@ function rbHomepageHeroFullImageTemplate(spot, config) {
18548
18561
  `;
18549
18562
  }
18550
18563
 
18551
- const STYLES$5 = ({ textColor = '#212121', backgroundColor = '#e8e6de', ctaTextColor = textColor, primaryImage, mobilePrimaryImage = primaryImage, secondaryImage, mobileSecondaryImage = secondaryImage, }, { prefix }) => `
18564
+ const STYLES$6 = ({ textColor = '#212121', backgroundColor = '#e8e6de', ctaTextColor = textColor, primaryImage, mobilePrimaryImage = primaryImage, secondaryImage, mobileSecondaryImage = secondaryImage, }, { prefix }) => `
18552
18565
  <style>
18553
18566
  .${prefix} {
18554
18567
  width: 100%;
@@ -18613,7 +18626,7 @@ const STYLES$5 = ({ textColor = '#212121', backgroundColor = '#e8e6de', ctaTextC
18613
18626
  color: inherit;
18614
18627
  margin: 0;
18615
18628
  font-size: 18px;
18616
- font-family: "Cormorant";
18629
+ font-family: "Cormorant", system-ui;
18617
18630
  font-style: normal;
18618
18631
  font-weight: 700;
18619
18632
  line-height: normal;
@@ -18725,7 +18738,7 @@ function rbHomepageHeroThreeTileTemplate(spot, config) {
18725
18738
  ${GFONT_PRECONNECT}
18726
18739
  ${GFONT_SOURCE_SANS_3}
18727
18740
  ${GFONT_CORMORANT}
18728
- ${STYLES$5(spot, config)}
18741
+ ${STYLES$6(spot, config)}
18729
18742
  <div class="${prefix}">
18730
18743
  <div class="${prefix}__content">
18731
18744
  <div class="${prefix}__primary-image"></div>
@@ -18742,7 +18755,7 @@ function rbHomepageHeroThreeTileTemplate(spot, config) {
18742
18755
  `;
18743
18756
  }
18744
18757
 
18745
- const STYLES$4 = ({ textColor = '#212121', backgroundColor = '#e8e6de', ctaTextColor = textColor, primaryImage, mobilePrimaryImage = primaryImage, }, { prefix }) => `
18758
+ const STYLES$5 = ({ textColor = '#212121', backgroundColor = '#e8e6de', ctaTextColor = textColor, primaryImage, mobilePrimaryImage = primaryImage, }, { prefix }) => `
18746
18759
  <style>
18747
18760
  .${prefix} {
18748
18761
  width: 100%;
@@ -18884,7 +18897,7 @@ function rbHomepageHeroTwoTileTemplate(spot, config) {
18884
18897
  ${GFONT_PRECONNECT}
18885
18898
  ${GFONT_SOURCE_SANS_3}
18886
18899
  ${GFONT_CORMORANT}
18887
- ${STYLES$4(spot, config)}
18900
+ ${STYLES$5(spot, config)}
18888
18901
  <div class="${prefix}">
18889
18902
  <div class="${prefix}__content">
18890
18903
  <div class="${prefix}__text">
@@ -18898,6 +18911,37 @@ function rbHomepageHeroTwoTileTemplate(spot, config) {
18898
18911
  `;
18899
18912
  }
18900
18913
 
18914
+ const STYLES$4 = ({ textColor = '#ffffff', backgroundColor = 'transparent' }, { prefix }) => `
18915
+ <style>
18916
+ .${prefix} {
18917
+ display: block;
18918
+ cursor: pointer;
18919
+ max-width: fit-content;
18920
+ padding: 0;
18921
+ background-color: ${backgroundColor};
18922
+ }
18923
+ .${prefix}__header {
18924
+ font-size: 0.875rem;
18925
+ line-height: 1.25rem;
18926
+ font-weight: 500;
18927
+ color: ${textColor};
18928
+ font-family: "Source Sans 3", system-ui;
18929
+ margin: 0;
18930
+ }
18931
+ </style>
18932
+ `;
18933
+ function rbInTextTemplate(spot, config) {
18934
+ const { prefix = '' } = config;
18935
+ return `
18936
+ ${GFONT_PRECONNECT}
18937
+ ${GFONT_SOURCE_SANS_3}
18938
+ ${STYLES$4(spot, config)}
18939
+ <div class="${prefix}">
18940
+ ${spot.header ? `<h2 class="${prefix}__header">${spot.header}</h2>` : ''}
18941
+ </div>
18942
+ `;
18943
+ }
18944
+
18901
18945
  const STYLES$3 = ({ textColor = '#ffffff', ctaTextColor = textColor, ctaBorderColor = ctaTextColor, primaryImage, mobilePrimaryImage = primaryImage, }, { prefix, overlay }) => {
18902
18946
  const linearGradient = generateGradientColor(overlay, 'rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0) 30%');
18903
18947
  return `
@@ -19254,6 +19298,13 @@ const SPOT_TEMPLATE_HTML_ELEMENT = (spot, config) => {
19254
19298
  [exports.RMN_SPOT_TYPE.RB_NAVIGATION_BANNER]: {
19255
19299
  rbNavigationBanner: rbNavigationBannerTemplate,
19256
19300
  },
19301
+ [exports.RMN_SPOT_TYPE.RB_IN_TEXT]: {
19302
+ rbInText: rbInTextTemplate,
19303
+ },
19304
+ [exports.RMN_SPOT_TYPE.RB_VIDEO_PLAYER]: {
19305
+ // rbVideoPlayer: rbVideoPlayerTemplate,
19306
+ rbVideoPlayer: () => '', // TODO: Implement this template.
19307
+ },
19257
19308
  [exports.RMN_SPOT_TYPE.RB_PRODUCT_UPCS]: {
19258
19309
  rbProductUpcs: () => '', // No template for this spot type, it will be handled by ReserveBar App.
19259
19310
  },
@@ -20189,6 +20240,39 @@ const SPOT_EVENTS_EXAMPLE = [
20189
20240
  productIds: [107, 108, 109, 110, 111],
20190
20241
  },
20191
20242
  ],
20243
+ rbInText: [
20244
+ {
20245
+ id: 'mxo259',
20246
+ spot: exports.RMN_SPOT_TYPE.RB_IN_TEXT,
20247
+ variant: exports.RMN_SPOT_TYPE.RB_IN_TEXT,
20248
+ width: 1,
20249
+ height: 1,
20250
+ header: 'Premium Vodka',
20251
+ textColor: '#ffffff',
20252
+ backgroundColor: '#000000',
20253
+ events: SPOT_EVENTS_EXAMPLE,
20254
+ productIds: [107, 108, 109, 110, 111],
20255
+ },
20256
+ ],
20257
+ rbVideoPlayer: [
20258
+ {
20259
+ id: 'mxo259',
20260
+ spot: exports.RMN_SPOT_TYPE.RB_VIDEO_PLAYER,
20261
+ variant: exports.RMN_SPOT_TYPE.RB_VIDEO_PLAYER,
20262
+ width: 1280,
20263
+ height: 720,
20264
+ videoUrl: 'https://www.youtube.com/watch?v=9bZkp7q19f0',
20265
+ videoOverlayImage: 'https://placehold.co/1280x720/png?text=Video+Overlay',
20266
+ videoOverlayHeader: 'Watch Our Story',
20267
+ videoOverlayDescription: 'Discover the history of our distillery',
20268
+ videoControls: true,
20269
+ videoAutoPlay: true,
20270
+ videoMute: true,
20271
+ videoLoop: true,
20272
+ events: SPOT_EVENTS_EXAMPLE,
20273
+ productIds: [107, 108, 109, 110, 111],
20274
+ },
20275
+ ],
20192
20276
  });
20193
20277
  ({
20194
20278
  banner: [],
@@ -20549,7 +20633,7 @@ class LiquidCommerceRmnClient {
20549
20633
  const spotElement = this.elementService.createSpotElement({
20550
20634
  content,
20551
20635
  config: {
20552
- fluid: config === null || config === void 0 ? void 0 : config.fluid,
20636
+ fluid: spot.spot === exports.RMN_SPOT_TYPE.RB_IN_TEXT ? true : config === null || config === void 0 ? void 0 : config.fluid,
20553
20637
  spot: spot.spot,
20554
20638
  width: spot.width,
20555
20639
  height: spot.height,