@liquidcommercedev/rmn-sdk 1.5.0-beta.46 → 1.5.0-beta.48
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 +654 -2
- package/dist/index.esm.js +654 -2
- package/dist/types/enums.d.ts +4 -0
- package/dist/types/modules/spot-template/rb-template.interface.d.ts +53 -0
- package/dist/types/modules/spot-template/reservebar/carousel-horizontal-info-card.template.d.ts +9 -0
- package/dist/types/modules/spot-template/reservebar/carousel-horizontal-short-info-card.template.d.ts +9 -0
- package/dist/types/modules/spot-template/reservebar/carousel-vertical-small-image-info-card.template.d.ts +9 -0
- package/dist/types/modules/spot-template/reservebar/index.d.ts +3 -0
- package/package.json +1 -1
- package/umd/liquidcommerce-rmn-sdk.min.js +1 -1
package/dist/index.esm.js
CHANGED
@@ -15,6 +15,9 @@ var RMN_SPOT_TYPE;
|
|
15
15
|
RMN_SPOT_TYPE["RB_NAVIGATION_BANNER"] = "rbNavigationBanner";
|
16
16
|
RMN_SPOT_TYPE["RB_VIDEO_PLAYER"] = "rbVideoPlayer";
|
17
17
|
RMN_SPOT_TYPE["RB_IN_TEXT"] = "rbInText";
|
18
|
+
RMN_SPOT_TYPE["RB_CAROUSEL_HORIZONTAL_INFO_CARD"] = "rbCarouselHorizontalInfoCard";
|
19
|
+
RMN_SPOT_TYPE["RB_CAROUSEL_VERTICAL_SMALL_IMAGE_INFO_CARD"] = "rbCarouselVerticalSmallImageInfoCard";
|
20
|
+
RMN_SPOT_TYPE["RB_CAROUSEL_HORIZONTAL_SHORT_INFO_CARD"] = "rbCarouselHorizontalShortInfoCard";
|
18
21
|
// IAB Standard Spot Types
|
19
22
|
RMN_SPOT_TYPE["BILLBOARD"] = "billboard";
|
20
23
|
RMN_SPOT_TYPE["LARGE_RECTANGLE"] = "largeRectangle";
|
@@ -89,6 +92,7 @@ var ENUM_TEXT_BLOCK_POSITION;
|
|
89
92
|
ENUM_TEXT_BLOCK_POSITION["TOP"] = "top";
|
90
93
|
ENUM_TEXT_BLOCK_POSITION["BOTTOM"] = "bottom";
|
91
94
|
ENUM_TEXT_BLOCK_POSITION["MIDDLE"] = "middle";
|
95
|
+
ENUM_TEXT_BLOCK_POSITION["CENTER"] = "center";
|
92
96
|
ENUM_TEXT_BLOCK_POSITION["TOP_LEFT"] = "top-left";
|
93
97
|
ENUM_TEXT_BLOCK_POSITION["TOP_RIGHT"] = "top-right";
|
94
98
|
ENUM_TEXT_BLOCK_POSITION["BOTTOM_LEFT"] = "bottom-left";
|
@@ -16969,6 +16973,9 @@ const SPOT_DIMENSIONS = {
|
|
16969
16973
|
[RMN_SPOT_TYPE.RB_NAVIGATION_BANNER]: { width: 440, height: 220 },
|
16970
16974
|
[RMN_SPOT_TYPE.RB_VIDEO_PLAYER]: { width: 1280, height: 720 },
|
16971
16975
|
[RMN_SPOT_TYPE.RB_IN_TEXT]: { width: 1, height: 1 },
|
16976
|
+
[RMN_SPOT_TYPE.RB_CAROUSEL_HORIZONTAL_INFO_CARD]: { width: 592, height: 386 },
|
16977
|
+
[RMN_SPOT_TYPE.RB_CAROUSEL_VERTICAL_SMALL_IMAGE_INFO_CARD]: { width: 285, height: 386 },
|
16978
|
+
[RMN_SPOT_TYPE.RB_CAROUSEL_HORIZONTAL_SHORT_INFO_CARD]: { width: 285, height: 416 },
|
16972
16979
|
[RMN_SPOT_TYPE.SMALL_RECTANGLE]: { width: 180, height: 150 },
|
16973
16980
|
[RMN_SPOT_TYPE.MEDIUM_RECTANGLE]: { width: 300, height: 250 },
|
16974
16981
|
[RMN_SPOT_TYPE.LARGE_RECTANGLE]: { width: 336, height: 280 },
|
@@ -17945,6 +17952,641 @@ class BillboardV1SE extends BaseSpotComponent {
|
|
17945
17952
|
}
|
17946
17953
|
}
|
17947
17954
|
|
17955
|
+
class RbCarouselHorizontalInfoCardSE extends BaseSpotComponent {
|
17956
|
+
constructor() {
|
17957
|
+
super();
|
17958
|
+
this.reRenderOnDeviceChange = true;
|
17959
|
+
}
|
17960
|
+
template() {
|
17961
|
+
const prefix = this._config.prefix;
|
17962
|
+
const { preHeader, mobilePreHeader, header, mobileHeader, description, mobileDescription, ctaText, mobileCtaText, textBlockPosition = ENUM_TEXT_BLOCK_POSITION.LEFT, mobileTextBlockPosition = ENUM_TEXT_BLOCK_POSITION.TOP,
|
17963
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
17964
|
+
enableMobileTexts = true, } = this._data;
|
17965
|
+
const content = this._isMobileDevice && enableMobileTexts
|
17966
|
+
? {
|
17967
|
+
preHeader: mobilePreHeader,
|
17968
|
+
header: mobileHeader,
|
17969
|
+
description: mobileDescription,
|
17970
|
+
ctaText: mobileCtaText,
|
17971
|
+
}
|
17972
|
+
: { preHeader, header, description, ctaText };
|
17973
|
+
const elements = this.hasContent
|
17974
|
+
? [
|
17975
|
+
renderElement('p', `${prefix}__preHeader`, content.preHeader),
|
17976
|
+
renderElement('h2', `${prefix}__header`, content.header),
|
17977
|
+
renderElement('p', `${prefix}__description`, content.description),
|
17978
|
+
renderElement('span', `${prefix}__cta-button`, content.ctaText),
|
17979
|
+
]
|
17980
|
+
: [];
|
17981
|
+
return `
|
17982
|
+
${importFonts()}
|
17983
|
+
<div class="${prefix}">
|
17984
|
+
<div class="${prefix}__content ${prefix}__text-block--${textBlockPosition} ${prefix}__text-block-mobile--${mobileTextBlockPosition}">
|
17985
|
+
<div class="${prefix}__image"></div>
|
17986
|
+
<div class="${prefix}__text">
|
17987
|
+
<div class="${prefix}__text-container">
|
17988
|
+
${elements.join('')}
|
17989
|
+
</div>
|
17990
|
+
</div>
|
17991
|
+
</div>
|
17992
|
+
</div>
|
17993
|
+
`;
|
17994
|
+
}
|
17995
|
+
styles() {
|
17996
|
+
const { headerColor = '#212121', textColor = '#616161', backgroundColor = '#f7f5f3', ctaTextColor = '#b5914a', primaryImage, mobilePrimaryImage = primaryImage, } = this._data;
|
17997
|
+
const prefix = this._config.prefix;
|
17998
|
+
return `
|
17999
|
+
.${prefix} {
|
18000
|
+
width: 100%;
|
18001
|
+
height: 100%;
|
18002
|
+
position: relative;
|
18003
|
+
border-radius: 5px;
|
18004
|
+
}
|
18005
|
+
|
18006
|
+
.${prefix}__content {
|
18007
|
+
width: 100%;
|
18008
|
+
height: 100%;
|
18009
|
+
display: flex;
|
18010
|
+
flex-direction: ${this._isMobileDevice ? 'column' : 'row'};
|
18011
|
+
overflow: hidden;
|
18012
|
+
border-radius: 5px;
|
18013
|
+
}
|
18014
|
+
|
18015
|
+
.${prefix}__image {
|
18016
|
+
width: 100%;
|
18017
|
+
height: 100%;
|
18018
|
+
background-image: url("${mobilePrimaryImage}");
|
18019
|
+
background-position: center;
|
18020
|
+
background-repeat: no-repeat;
|
18021
|
+
background-size: cover;
|
18022
|
+
min-width: 100px;
|
18023
|
+
overflow: hidden;
|
18024
|
+
}
|
18025
|
+
|
18026
|
+
.${prefix}__text {
|
18027
|
+
background-color: ${backgroundColor};
|
18028
|
+
display: flex;
|
18029
|
+
flex-direction: column;
|
18030
|
+
justify-content: center;
|
18031
|
+
width: 100%;
|
18032
|
+
height: 100%;
|
18033
|
+
padding: 10px;
|
18034
|
+
box-sizing: border-box;
|
18035
|
+
}
|
18036
|
+
|
18037
|
+
.${prefix}__text-container {
|
18038
|
+
display: flex;
|
18039
|
+
flex-direction: column;
|
18040
|
+
gap: 5px;
|
18041
|
+
padding: 0 20px;
|
18042
|
+
}
|
18043
|
+
|
18044
|
+
.${prefix}__preHeader {
|
18045
|
+
margin: 0;
|
18046
|
+
color:${headerColor};
|
18047
|
+
font-family: "Cormorant", system-ui;
|
18048
|
+
font-size: ${this._isMobileDevice ? '8px' : '9px'};
|
18049
|
+
line-height: normal;
|
18050
|
+
letter-spacing: 0.8px;
|
18051
|
+
}
|
18052
|
+
|
18053
|
+
.${prefix}__header {
|
18054
|
+
margin: 0;
|
18055
|
+
color: ${headerColor};
|
18056
|
+
font-family: "Cormorant", system-ui;
|
18057
|
+
font-weight: bold;
|
18058
|
+
font-size: ${this._isMobileDevice ? '16px' : '18px'};
|
18059
|
+
line-height: 24px;
|
18060
|
+
position: relative;
|
18061
|
+
padding-bottom: 10px;
|
18062
|
+
margin-bottom: 5px;
|
18063
|
+
}
|
18064
|
+
|
18065
|
+
.${prefix}__header::after {
|
18066
|
+
content: '';
|
18067
|
+
position: absolute;
|
18068
|
+
bottom: 0;
|
18069
|
+
left: 0;
|
18070
|
+
width: 76px;
|
18071
|
+
height: 1px;
|
18072
|
+
background-color: ${ctaTextColor};
|
18073
|
+
}
|
18074
|
+
|
18075
|
+
.${prefix}__description {
|
18076
|
+
color: ${textColor};
|
18077
|
+
margin: 0;
|
18078
|
+
font-size: 10px;
|
18079
|
+
font-family: "Source Sans 3", system-ui;
|
18080
|
+
font-weight: 400;
|
18081
|
+
}
|
18082
|
+
|
18083
|
+
.${prefix}__cta-button {
|
18084
|
+
color: ${ctaTextColor};
|
18085
|
+
font-size: ${this._isMobileDevice ? '10px' : '12px'};
|
18086
|
+
font-weight: 700;
|
18087
|
+
font-family: "Source Sans 3", system-ui;
|
18088
|
+
border: none;
|
18089
|
+
cursor: pointer;
|
18090
|
+
padding: 10px 0;
|
18091
|
+
transition: opacity 0.3s ease;
|
18092
|
+
display: inline-block;
|
18093
|
+
align-self: flex-end;
|
18094
|
+
text-decoration: none;
|
18095
|
+
}
|
18096
|
+
|
18097
|
+
.${prefix}__content:hover .${prefix}__cta-button {
|
18098
|
+
opacity: 0.8;
|
18099
|
+
}
|
18100
|
+
|
18101
|
+
@container (max-width: 639px) {
|
18102
|
+
.${prefix}__text-container {
|
18103
|
+
padding: 0 10px;
|
18104
|
+
}
|
18105
|
+
}
|
18106
|
+
|
18107
|
+
@container (min-width: 640px) {
|
18108
|
+
.${prefix}__image {
|
18109
|
+
background-image: url("${primaryImage}");
|
18110
|
+
}
|
18111
|
+
|
18112
|
+
.${prefix}__text-block--${ENUM_TEXT_BLOCK_POSITION.LEFT} {
|
18113
|
+
flex-direction: row;
|
18114
|
+
}
|
18115
|
+
|
18116
|
+
.${prefix}__text-block--${ENUM_TEXT_BLOCK_POSITION.RIGHT} {
|
18117
|
+
flex-direction: row-reverse;
|
18118
|
+
}
|
18119
|
+
}
|
18120
|
+
|
18121
|
+
@container (min-width: 768px) {
|
18122
|
+
|
18123
|
+
.${prefix}__image {
|
18124
|
+
width: 50%;
|
18125
|
+
height: auto;
|
18126
|
+
}
|
18127
|
+
|
18128
|
+
.${prefix}__text {
|
18129
|
+
width: 50%;
|
18130
|
+
align-self: center;
|
18131
|
+
}
|
18132
|
+
|
18133
|
+
.${prefix}__preHeader {
|
18134
|
+
font-size: 9px;
|
18135
|
+
}
|
18136
|
+
|
18137
|
+
.${prefix}__cta-button {
|
18138
|
+
font-size: 12px;
|
18139
|
+
}
|
18140
|
+
}
|
18141
|
+
|
18142
|
+
@container (min-width: 1024px) {
|
18143
|
+
.${prefix}__text {
|
18144
|
+
padding: 20px;
|
18145
|
+
}
|
18146
|
+
|
18147
|
+
.${prefix}__text-container {
|
18148
|
+
padding-right: 20px;
|
18149
|
+
}
|
18150
|
+
|
18151
|
+
.${prefix}__preHeader {
|
18152
|
+
font-size: 10px;
|
18153
|
+
}
|
18154
|
+
|
18155
|
+
.${prefix}__header {
|
18156
|
+
font-size: 18px;
|
18157
|
+
}
|
18158
|
+
|
18159
|
+
.${prefix}__description {
|
18160
|
+
font-size: 14px;
|
18161
|
+
}
|
18162
|
+
|
18163
|
+
}
|
18164
|
+
|
18165
|
+
@container (min-width: 1280px) {
|
18166
|
+
.${prefix}__header {
|
18167
|
+
font-size: 24px;
|
18168
|
+
}
|
18169
|
+
}
|
18170
|
+
`;
|
18171
|
+
}
|
18172
|
+
get hasContent() {
|
18173
|
+
const { preHeader, header, mobileHeader, description, mobileDescription, ctaText, mobileCtaText, mobilePreHeader,
|
18174
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
18175
|
+
enableMobileTexts = true, } = this._data;
|
18176
|
+
const content = this._isMobileDevice && enableMobileTexts
|
18177
|
+
? {
|
18178
|
+
preHeader: mobilePreHeader,
|
18179
|
+
header: mobileHeader,
|
18180
|
+
description: mobileDescription,
|
18181
|
+
ctaText: mobileCtaText,
|
18182
|
+
}
|
18183
|
+
: { preHeader, header, description, ctaText };
|
18184
|
+
return Object.values(content).some(Boolean);
|
18185
|
+
}
|
18186
|
+
}
|
18187
|
+
|
18188
|
+
class RbCarouselHorizontalShortInfoCardSE extends BaseSpotComponent {
|
18189
|
+
constructor() {
|
18190
|
+
super();
|
18191
|
+
this.reRenderOnDeviceChange = true;
|
18192
|
+
}
|
18193
|
+
template() {
|
18194
|
+
const prefix = this._config.prefix;
|
18195
|
+
const { preHeader, mobilePreHeader, header, mobileHeader, description, mobileDescription, ctaText, mobileCtaText, textBlockPosition = ENUM_TEXT_BLOCK_POSITION.BOTTOM,
|
18196
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
18197
|
+
enableMobileTexts = true, } = this._data;
|
18198
|
+
const content = this._isMobileDevice && enableMobileTexts
|
18199
|
+
? {
|
18200
|
+
preHeader: mobilePreHeader,
|
18201
|
+
header: mobileHeader,
|
18202
|
+
description: mobileDescription,
|
18203
|
+
ctaText: mobileCtaText,
|
18204
|
+
}
|
18205
|
+
: { preHeader, header, description, ctaText };
|
18206
|
+
const elements = this.hasContent
|
18207
|
+
? [
|
18208
|
+
renderElement('p', `${prefix}__preHeader`, content.preHeader),
|
18209
|
+
renderElement('h2', `${prefix}__header`, content.header),
|
18210
|
+
renderElement('p', `${prefix}__description`, content.description),
|
18211
|
+
renderElement('span', `${prefix}__cta-button`, content.ctaText),
|
18212
|
+
]
|
18213
|
+
: [];
|
18214
|
+
return `
|
18215
|
+
${importFonts()}
|
18216
|
+
<div class="${prefix}">
|
18217
|
+
<div class="${prefix}__content ${prefix}__text-block--${textBlockPosition} ${prefix}__text-block-mobile--${textBlockPosition}">
|
18218
|
+
<div class="${prefix}__image"></div>
|
18219
|
+
<div class="${prefix}__text">
|
18220
|
+
<div class="${prefix}__text-container">
|
18221
|
+
${elements.join('')}
|
18222
|
+
</div>
|
18223
|
+
</div>
|
18224
|
+
</div>
|
18225
|
+
</div>
|
18226
|
+
`;
|
18227
|
+
}
|
18228
|
+
styles() {
|
18229
|
+
const { headerColor = '#212121', textColor = '#616161', backgroundColor = '#f7f5f3', ctaTextColor = '#b5914a', primaryImage, mobilePrimaryImage = primaryImage, } = this._data;
|
18230
|
+
const prefix = this._config.prefix;
|
18231
|
+
return `
|
18232
|
+
.${prefix} {
|
18233
|
+
width: 100%;
|
18234
|
+
height: 100%;
|
18235
|
+
position: relative;
|
18236
|
+
border-radius: 5px;
|
18237
|
+
}
|
18238
|
+
|
18239
|
+
.${prefix}__content {
|
18240
|
+
width: 100%;
|
18241
|
+
height: 100%;
|
18242
|
+
display: flex;
|
18243
|
+
flex-direction: column;
|
18244
|
+
overflow: hidden;
|
18245
|
+
border-radius: 5px;
|
18246
|
+
}
|
18247
|
+
|
18248
|
+
.${prefix}__image {
|
18249
|
+
width: 100%;
|
18250
|
+
height: 62.5%;
|
18251
|
+
background-image: url("${this._isMobileDevice ? mobilePrimaryImage : primaryImage}");
|
18252
|
+
background-position: center;
|
18253
|
+
background-repeat: no-repeat;
|
18254
|
+
background-size: cover;
|
18255
|
+
min-width: 100px;
|
18256
|
+
overflow: hidden;
|
18257
|
+
}
|
18258
|
+
|
18259
|
+
.${prefix}__text {
|
18260
|
+
background-color: ${backgroundColor};
|
18261
|
+
display: flex;
|
18262
|
+
flex-direction: column;
|
18263
|
+
justify-content: center;
|
18264
|
+
width: 100%;
|
18265
|
+
height: 37.5%;
|
18266
|
+
padding: 15px;
|
18267
|
+
box-sizing: border-box;
|
18268
|
+
}
|
18269
|
+
|
18270
|
+
.${prefix}__text-container {
|
18271
|
+
display: flex;
|
18272
|
+
flex-direction: column;
|
18273
|
+
gap: 5px;
|
18274
|
+
}
|
18275
|
+
|
18276
|
+
.${prefix}__preHeader {
|
18277
|
+
margin: 0;
|
18278
|
+
color:${headerColor};
|
18279
|
+
font-family: "Cormorant", system-ui;
|
18280
|
+
font-size: ${this._isMobileDevice ? '8px' : '9px'};
|
18281
|
+
line-height: normal;
|
18282
|
+
letter-spacing: 0.8px;
|
18283
|
+
}
|
18284
|
+
|
18285
|
+
.${prefix}__header {
|
18286
|
+
margin: 0;
|
18287
|
+
color: ${headerColor};
|
18288
|
+
font-family: "Cormorant", system-ui;
|
18289
|
+
font-weight: bold;
|
18290
|
+
font-size: ${this._isMobileDevice ? '16px' : '18px'};
|
18291
|
+
line-height: 24px;
|
18292
|
+
position: relative;
|
18293
|
+
padding-bottom: 10px;
|
18294
|
+
margin-bottom: 5px;
|
18295
|
+
}
|
18296
|
+
|
18297
|
+
.${prefix}__header::after {
|
18298
|
+
content: '';
|
18299
|
+
position: absolute;
|
18300
|
+
bottom: 0;
|
18301
|
+
left: 0;
|
18302
|
+
width: 76px;
|
18303
|
+
height: 1px;
|
18304
|
+
background-color: ${ctaTextColor};
|
18305
|
+
}
|
18306
|
+
|
18307
|
+
.${prefix}__description {
|
18308
|
+
color: ${textColor};
|
18309
|
+
margin: 0;
|
18310
|
+
font-size: 10px;
|
18311
|
+
font-family: "Source Sans 3", system-ui;
|
18312
|
+
font-weight: 400;
|
18313
|
+
}
|
18314
|
+
|
18315
|
+
.${prefix}__cta-button {
|
18316
|
+
color: ${ctaTextColor};
|
18317
|
+
font-size: ${this._isMobileDevice ? '10px' : '12px'};
|
18318
|
+
font-weight: 700;
|
18319
|
+
font-family: "Source Sans 3", system-ui;
|
18320
|
+
border: none;
|
18321
|
+
cursor: pointer;
|
18322
|
+
transition: opacity 0.3s ease;
|
18323
|
+
display: inline-block;
|
18324
|
+
align-self: flex-end;
|
18325
|
+
text-decoration: none;
|
18326
|
+
margin-top: auto;
|
18327
|
+
}
|
18328
|
+
|
18329
|
+
.${prefix}__content:hover .${prefix}__cta-button {
|
18330
|
+
opacity: 0.8;
|
18331
|
+
}
|
18332
|
+
|
18333
|
+
@container (min-width: 768px) {
|
18334
|
+
.${prefix}__preHeader {
|
18335
|
+
font-size: 9px;
|
18336
|
+
}
|
18337
|
+
|
18338
|
+
.${prefix}__cta-button {
|
18339
|
+
font-size: 12px;
|
18340
|
+
}
|
18341
|
+
}
|
18342
|
+
|
18343
|
+
@container (min-width: 1024px) {
|
18344
|
+
.${prefix}__text {
|
18345
|
+
padding: 20px;
|
18346
|
+
}
|
18347
|
+
|
18348
|
+
.${prefix}__text-container {
|
18349
|
+
padding-right: 20px;
|
18350
|
+
}
|
18351
|
+
|
18352
|
+
.${prefix}__preHeader {
|
18353
|
+
font-size: 10px;
|
18354
|
+
}
|
18355
|
+
|
18356
|
+
.${prefix}__header {
|
18357
|
+
font-size: 18px;
|
18358
|
+
}
|
18359
|
+
|
18360
|
+
.${prefix}__description {
|
18361
|
+
font-size: 14px;
|
18362
|
+
}
|
18363
|
+
}
|
18364
|
+
|
18365
|
+
@container (min-width: 1280px) {
|
18366
|
+
.${prefix}__header {
|
18367
|
+
font-size: 24px;
|
18368
|
+
}
|
18369
|
+
}
|
18370
|
+
`;
|
18371
|
+
}
|
18372
|
+
get hasContent() {
|
18373
|
+
const { preHeader, mobilePreHeader, header, mobileHeader, description, mobileDescription, ctaText, mobileCtaText,
|
18374
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
18375
|
+
enableMobileTexts = true, } = this._data;
|
18376
|
+
const content = this._isMobileDevice && enableMobileTexts
|
18377
|
+
? {
|
18378
|
+
preHeader: mobilePreHeader,
|
18379
|
+
header: mobileHeader,
|
18380
|
+
description: mobileDescription,
|
18381
|
+
ctaText: mobileCtaText,
|
18382
|
+
}
|
18383
|
+
: { preHeader, header, description, ctaText };
|
18384
|
+
return Object.values(content).some(Boolean);
|
18385
|
+
}
|
18386
|
+
}
|
18387
|
+
|
18388
|
+
class RbCarouselVerticalSmallImageInfoCardSE extends BaseSpotComponent {
|
18389
|
+
constructor() {
|
18390
|
+
super();
|
18391
|
+
this.reRenderOnDeviceChange = true;
|
18392
|
+
}
|
18393
|
+
template() {
|
18394
|
+
const prefix = this._config.prefix;
|
18395
|
+
const { preHeader, mobilePreHeader, header, mobileHeader, description, mobileDescription, ctaText, mobileCtaText, textBlockPosition = ENUM_TEXT_BLOCK_POSITION.BOTTOM,
|
18396
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
18397
|
+
enableMobileTexts = true, } = this._data;
|
18398
|
+
const content = this._isMobileDevice && enableMobileTexts
|
18399
|
+
? {
|
18400
|
+
preHeader: mobilePreHeader,
|
18401
|
+
header: mobileHeader,
|
18402
|
+
description: mobileDescription,
|
18403
|
+
ctaText: mobileCtaText,
|
18404
|
+
}
|
18405
|
+
: { preHeader, header, description, ctaText };
|
18406
|
+
const elements = this.hasContent
|
18407
|
+
? [
|
18408
|
+
renderElement('p', `${prefix}__preHeader`, content.preHeader),
|
18409
|
+
renderElement('h2', `${prefix}__header`, content.header),
|
18410
|
+
renderElement('p', `${prefix}__description`, content.description),
|
18411
|
+
renderElement('span', `${prefix}__cta-button`, content.ctaText),
|
18412
|
+
]
|
18413
|
+
: [];
|
18414
|
+
return `
|
18415
|
+
${importFonts()}
|
18416
|
+
<div class="${prefix}">
|
18417
|
+
<div class="${prefix}__content ${prefix}__text-block--${textBlockPosition} ${prefix}__text-block-mobile--${textBlockPosition}">
|
18418
|
+
<div class="${prefix}__image"></div>
|
18419
|
+
<div class="${prefix}__text">
|
18420
|
+
<div class="${prefix}__text-container">
|
18421
|
+
${elements.join('')}
|
18422
|
+
</div>
|
18423
|
+
</div>
|
18424
|
+
</div>
|
18425
|
+
</div>
|
18426
|
+
`;
|
18427
|
+
}
|
18428
|
+
styles() {
|
18429
|
+
const { headerColor = '#212121', textColor = '#616161', backgroundColor = '#f7f5f3', ctaTextColor = '#b5914a', primaryImage, mobilePrimaryImage = primaryImage, } = this._data;
|
18430
|
+
const prefix = this._config.prefix;
|
18431
|
+
return `
|
18432
|
+
.${prefix} {
|
18433
|
+
width: 100%;
|
18434
|
+
height: 100%;
|
18435
|
+
position: relative;
|
18436
|
+
border-radius: 5px;
|
18437
|
+
}
|
18438
|
+
|
18439
|
+
.${prefix}__content {
|
18440
|
+
width: 100%;
|
18441
|
+
height: 100%;
|
18442
|
+
display: flex;
|
18443
|
+
flex-direction: column;
|
18444
|
+
overflow: hidden;
|
18445
|
+
border-radius: 5px;
|
18446
|
+
}
|
18447
|
+
|
18448
|
+
.${prefix}__image {
|
18449
|
+
width: 100%;
|
18450
|
+
height: 50%;
|
18451
|
+
background-image: url("${this._isMobileDevice ? mobilePrimaryImage : primaryImage}");
|
18452
|
+
background-position: center;
|
18453
|
+
background-repeat: no-repeat;
|
18454
|
+
background-size: cover;
|
18455
|
+
min-width: 100px;
|
18456
|
+
overflow: hidden;
|
18457
|
+
}
|
18458
|
+
|
18459
|
+
.${prefix}__text {
|
18460
|
+
background-color: ${backgroundColor};
|
18461
|
+
display: flex;
|
18462
|
+
flex-direction: column;
|
18463
|
+
justify-content: center;
|
18464
|
+
width: 100%;
|
18465
|
+
height: 50%;
|
18466
|
+
padding: 16px;
|
18467
|
+
box-sizing: border-box;
|
18468
|
+
}
|
18469
|
+
|
18470
|
+
.${prefix}__text-container {
|
18471
|
+
display: flex;
|
18472
|
+
flex-direction: column;
|
18473
|
+
gap: 5px;
|
18474
|
+
height: 100%;
|
18475
|
+
justify-content: space-between;
|
18476
|
+
}
|
18477
|
+
|
18478
|
+
.${prefix}__preHeader {
|
18479
|
+
margin: 0;
|
18480
|
+
color:${headerColor};
|
18481
|
+
font-family: "Cormorant", system-ui;
|
18482
|
+
font-size: ${this._isMobileDevice ? '8px' : '9px'};
|
18483
|
+
line-height: normal;
|
18484
|
+
letter-spacing: 0.8px;
|
18485
|
+
}
|
18486
|
+
|
18487
|
+
.${prefix}__header {
|
18488
|
+
margin: 0;
|
18489
|
+
color: ${headerColor};
|
18490
|
+
font-family: "Cormorant", system-ui;
|
18491
|
+
font-weight: bold;
|
18492
|
+
font-size: ${this._isMobileDevice ? '16px' : '18px'};
|
18493
|
+
line-height: 24px;
|
18494
|
+
position: relative;
|
18495
|
+
padding-bottom: 10px;
|
18496
|
+
margin-bottom: 5px;
|
18497
|
+
}
|
18498
|
+
|
18499
|
+
.${prefix}__header::after {
|
18500
|
+
content: '';
|
18501
|
+
position: absolute;
|
18502
|
+
bottom: 0;
|
18503
|
+
left: 0;
|
18504
|
+
width: 76px;
|
18505
|
+
height: 1px;
|
18506
|
+
background-color: ${ctaTextColor};
|
18507
|
+
}
|
18508
|
+
|
18509
|
+
.${prefix}__description {
|
18510
|
+
color: ${textColor};
|
18511
|
+
margin: 0;
|
18512
|
+
font-size: 10px;
|
18513
|
+
font-family: "Source Sans 3", system-ui;
|
18514
|
+
font-weight: 400;
|
18515
|
+
}
|
18516
|
+
|
18517
|
+
.${prefix}__cta-button {
|
18518
|
+
color: ${ctaTextColor};
|
18519
|
+
font-size: ${this._isMobileDevice ? '10px' : '12px'};
|
18520
|
+
font-weight: 700;
|
18521
|
+
font-family: "Source Sans 3", system-ui;
|
18522
|
+
border: none;
|
18523
|
+
cursor: pointer;
|
18524
|
+
transition: opacity 0.3s ease;
|
18525
|
+
display: inline-block;
|
18526
|
+
align-self: flex-end;
|
18527
|
+
text-decoration: none;
|
18528
|
+
margin-top: auto;
|
18529
|
+
}
|
18530
|
+
|
18531
|
+
.${prefix}__content:hover .${prefix}__cta-button {
|
18532
|
+
opacity: 0.8;
|
18533
|
+
}
|
18534
|
+
|
18535
|
+
@container (min-width: 768px) {
|
18536
|
+
.${prefix}__preHeader {
|
18537
|
+
font-size: 9px;
|
18538
|
+
}
|
18539
|
+
|
18540
|
+
.${prefix}__cta-button {
|
18541
|
+
font-size: 12px;
|
18542
|
+
}
|
18543
|
+
}
|
18544
|
+
|
18545
|
+
@container (min-width: 1024px) {
|
18546
|
+
.${prefix}__text {
|
18547
|
+
padding: 20px;
|
18548
|
+
}
|
18549
|
+
|
18550
|
+
.${prefix}__text-container {
|
18551
|
+
padding-right: 20px;
|
18552
|
+
}
|
18553
|
+
|
18554
|
+
.${prefix}__preHeader {
|
18555
|
+
font-size: 10px;
|
18556
|
+
}
|
18557
|
+
|
18558
|
+
.${prefix}__header {
|
18559
|
+
font-size: 18px;
|
18560
|
+
}
|
18561
|
+
|
18562
|
+
.${prefix}__description {
|
18563
|
+
font-size: 14px;
|
18564
|
+
}
|
18565
|
+
}
|
18566
|
+
|
18567
|
+
@container (min-width: 1280px) {
|
18568
|
+
.${prefix}__header {
|
18569
|
+
font-size: 24px;
|
18570
|
+
}
|
18571
|
+
}
|
18572
|
+
`;
|
18573
|
+
}
|
18574
|
+
get hasContent() {
|
18575
|
+
const { preHeader, mobilePreHeader, header, mobileHeader, description, mobileDescription, ctaText, mobileCtaText,
|
18576
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
18577
|
+
enableMobileTexts = true, } = this._data;
|
18578
|
+
const content = this._isMobileDevice && enableMobileTexts
|
18579
|
+
? {
|
18580
|
+
preHeader: mobilePreHeader,
|
18581
|
+
header: mobileHeader,
|
18582
|
+
description: mobileDescription,
|
18583
|
+
ctaText: mobileCtaText,
|
18584
|
+
}
|
18585
|
+
: { preHeader, header, description, ctaText };
|
18586
|
+
return Object.values(content).some(Boolean);
|
18587
|
+
}
|
18588
|
+
}
|
18589
|
+
|
17948
18590
|
class RbCollectionBannerWithoutTextBlockSE extends BaseSpotComponent {
|
17949
18591
|
constructor() {
|
17950
18592
|
super();
|
@@ -18756,13 +19398,13 @@ class RbInTextSE extends BaseSpotComponent {
|
|
18756
19398
|
`;
|
18757
19399
|
}
|
18758
19400
|
styles() {
|
18759
|
-
const { textColor = '#212121', backgroundColor = 'transparent' } = this._data;
|
19401
|
+
const { textColor = '#212121', backgroundColor = 'transparent', textBlockPosition = ENUM_TEXT_BLOCK_POSITION.LEFT, } = this._data;
|
18760
19402
|
const prefix = this._config.prefix;
|
18761
19403
|
return `
|
18762
19404
|
.${prefix} {
|
18763
19405
|
display: block;
|
18764
19406
|
cursor: pointer;
|
18765
|
-
|
19407
|
+
width: 100%;
|
18766
19408
|
padding: 0;
|
18767
19409
|
background-color: ${backgroundColor};
|
18768
19410
|
}
|
@@ -18773,6 +19415,7 @@ class RbInTextSE extends BaseSpotComponent {
|
|
18773
19415
|
color: ${textColor};
|
18774
19416
|
font-family: "Source Sans 3", system-ui;
|
18775
19417
|
margin: 0;
|
19418
|
+
text-align: ${textBlockPosition};
|
18776
19419
|
}
|
18777
19420
|
.${prefix}__header:hover {
|
18778
19421
|
color: #b5914a;
|
@@ -20265,6 +20908,15 @@ class SpotTemplateService {
|
|
20265
20908
|
[RMN_SPOT_TYPE.RB_VIDEO_PLAYER]: {
|
20266
20909
|
rbVideoPlayer: RbVideoPlayerSE,
|
20267
20910
|
},
|
20911
|
+
[RMN_SPOT_TYPE.RB_CAROUSEL_HORIZONTAL_INFO_CARD]: {
|
20912
|
+
rbCarouselHorizontalInfoCard: RbCarouselHorizontalInfoCardSE,
|
20913
|
+
},
|
20914
|
+
[RMN_SPOT_TYPE.RB_CAROUSEL_VERTICAL_SMALL_IMAGE_INFO_CARD]: {
|
20915
|
+
rbCarouselVerticalSmallImageInfoCard: RbCarouselVerticalSmallImageInfoCardSE,
|
20916
|
+
},
|
20917
|
+
[RMN_SPOT_TYPE.RB_CAROUSEL_HORIZONTAL_SHORT_INFO_CARD]: {
|
20918
|
+
rbCarouselHorizontalShortInfoCard: RbCarouselHorizontalShortInfoCardSE,
|
20919
|
+
},
|
20268
20920
|
};
|
20269
20921
|
}
|
20270
20922
|
initializeIabTemplates() {
|